I Strongly Dislike Open-Source Developers And So Should You
Open source projects are awesome, right? They provide usually excellent programs, with source that allows any random developer to hack it apart and improve and bugfix. They allow people like Michael Niedermeyer to yell at people and be tyranical about media players and what code is allowed (fuck you I want matroska editions, uau plz2provide) and they allow people like the great folks at the Chakra Project to make what I like to refer to as KDE on crack.
Yesterday, I went about the usual task of adding another disk to my LVM grid. I had also upgraded from KDE 4.2 to 4.3, and because KDEmod is awesome, I assumed there would be no conflict with the absolute retardation that stock KDE in Arch had introduced with its crazy package splitting (fuck you Debian for encouraging people to split shit) My LVM went fine. I had 950GB of space floating there for the ComSSA LAN this weekend. Excellent. Reboot. FUCK.
Somebody had FORGOTTEN TO TELL ME AND THEN PROCEED TO MAKE NO NOTE OF IT ANYWHERE AT ALL that due to Arch’s dumb splitting, KDEmod had been forced to rename the ~/.kde4 dir to ~/.kdemod4. I rebooted into a system that appeared to lack ALL my settings in their entirety. A simple symlink fixed this but the time it took me to find out about it was crazy. This is by no means the biggest cockup Arch has done recently, I recommend reading http://archlinux.me/brain0/2009/08/16/shit-happens-when-you-party-naked-or-use-crappy-shell-scripts/ for a good read on how to fuck up a repo, admitedly I have done this to Ophion twice, but not quite as spectacularly.
I guess I can complain about Arch but it is still my favourite distro, at least until FreeBSD implements Pacman, and then I am getting the fuck away from Linux. Arch is quirky, and it has some really random bugs that no other distro seems to have, expecially involving wine and ffmpeg, and the 64bit version is a load of shit for the most part. Curse their insanely good package manager for keeping me in Linux-land.
Now to finish all that Gulden Draak in my fridge and worry about finding a good window border style and wallpaper, because I am finally changing my desktop for the first time in 3 years. I might even ditch KDE, who knows~
All about makepkg and splitpkg .conf files
Today I was looking into ICC (Intel’s C/C++ Compiler) after someone in #x264 mentioned it. I was wondering if it was possible to not only customise a pkgbuild, but also the entire build environment as well. Obviously it’s possible if anyone takes the time to read makepkg.conf, however it got me thinking on some other things. Makepkg, for those who aren’t aware, is like a lot of the other Arch tools: simple shell script. The same goes for abs, and various other daemon and startup related things Arch does.
Customised compiler usage, or “I want to use ICC on everything”
To configure makepkg or splitpkg for ICC, simply open the required conf file, skim down to the ‘Architecture, Compile Flags’ block (for cleanliness rather than necessity,) and add in CC=icc and CXX=icpc. That’s it. As makepkg is a shellscript, it automatically loads the correct info into the build environment when running your pkgbuild. For an individual pkgbuild once off or whatever, add those variables to your build block pre-make.
Package differences and binary patching
I only noticed this feature earlier today, but makepkg actually has an xdelta module. One could add in the xdelta flag (read the source, too much :EFFORT: for me) and generate binary patches of previous patches, allowing relatively small changes to HUEG packages to not raep the connections of Indonesian, Brazillian, and Australian users. You could also stick Options=(xdelta) in your pkgbuild I guess. You’d need to have your previous package on hand however.
What the shit is splitpkg?
Chakra and KDEmod users, FLOCK! Splitpkg is the build system Chakra and KDEmod development uses. It’s an exact copy of makepkg and makepkg.conf, only the config is edited to allow for building regular packages as well as KDEmod packages. Splitpkg automatically outputs the built packages in the directory of choice, as well as a few other things.
I also run Quadpkg on my machine, another variation that compiles for -j5, outputs .tar.xz packages, and does some other handy optimisations for quadcores. My quadpkg is also configured for ICC now, which hopefully gives it more oomf.
There are other things one could try, for laziness, like distpkg, which is identical to makepkg, only setup to always use DistCC. Some things are better off not being done over distcc, but really it’s as simple as editan the pkgbuild for this, however, :EFFORT:
Now to figure out why nVidia is still broken, and then do some ICC builds of x264, ffmpeg, and mplayer. Ophion is sorely in need of repository updates on these as well as Aegisub, and quadcore optimisations could be interesting, although not too big a difference is for sure.