Grafpup-2.01beta

June 24th, 2008

I’ve uploaded one more testing iso to the repo at puppylinux.ca. This is labeled as beta, but is really nearly there. I would actually have marked it as rc1 if I had a chance to test the universal installer a bit more and update the changelog.

There are a few major program upgrades from alpha2. As noted in an earlier post, Opera is now at version 9.5. I also upgraded ROX-Filer to version 2.8. I’m really quite happy with this version of ROX. There was a problem with mime-types in version 2.71 and that bug is now gone. About my only issue still outstanding with ROX is that it crashes occasionally when running fr_FR or ru_RU locales. I will be posting a bug report to the devs about this sometime soon.

Menu heirarchy localized, updates

June 18th, 2008

The screenshot at right shows the main menu in French. I went through today and did the bulk of the menu translations using a combination of Google translate and my Fedora installation as reference. For some applications and menu titles I was able to just pull the translations directly from their counterparts in Gnome. While not gauranteed accurate, and certainly not complete at this point, the applications menu is now localized into 18 languages (besides English, that is). Right now the list includes Arabic, Bulgarian, Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Norwegian, Polish, Potuguese, Romanian, Russian, Spanish, and Swedish. I would have included some far Eastern languages as well, but the selection I have just mentioned is fully supported by the DejaVu fonts which are already standard in Grafpup.

In other news I have upgraded Opera to 9.5 and am quite pleased with this build. There seem to be some noticable speed improvements and a few nice little interface tweaks. I’ve also updated Pburn to the latest (as of today). I had been looking into doing an upgrade of libgphoto2 and gtkam, but there are issues there. As stated in an earlier post, libgphoto2 will not compile. I grabbed the latest code out of svn and it did compile, but gtkam cannot find the camera libs. Well, I grabbed gtkam out of svn and tried to compile it against the new camera libs, and it failed ate the “make install” stage. I’m going to leave well enough alone for now and check back on it in a month or so.

I know I’m off my timetable again, but it just can’t be helped at this point. Work has been extremely busy and I have had a lot of personal business to attend to. There is, however, a lot of progress. I mainly just need to find the time to sit down and work out the installer issues and I should then be able to push 2.01 out the door. The I can focus more on the new 3.xx code and binary upgrades.

Language support fun, gtk+ theme engines

June 16th, 2008

As several previous entries show I have been making a serious push lately towards adding native language support. Until a few days ago everything seemed to be going exactly according to plan.

A few days ago I started testing some of the translation files which have been contributed by members of the Puppy Linux forum. The translations were loading and displaying right, but with an odd side effect that I did not expect. Certain languages (Italian, French, Spanish, etc.) use accented characters. These accented characters were being replaced with a question mark in the displayed text. When I ran the offending programs on the command line I saw numerous identical PANGO warnings, to the effect that an invalid utf-8 string had been passed to pango.

Well, all of the translation files are saved in valid utf-8, so it made no sense. I spent nearly half a day trying to track the problem down with no success. Finally I came upon a hit on google which identified the problem for me, in a forum post about an application crash in php-gtk. In that post the offending bit of programming turned out to be the Clearlooks gtk+ theme engine. Since I created Grafpup’s new Melange gtk+ theme using Clearlooks I experimented with changing to a blank theme and right away the problem disappeared.

This is really upsetting since I put so much time and effort into crafting that theme, and the corresponding Openbox theme and desktop wallpaper. I did some experimenting with other, related theme engines to see if I could come up with a similar look and still avoid the text rendering bug. I tried Ubuntulooks, Candido, Murrine, and Nudoko. All of them came close with a little tweaking, but all of them did at least one or two things visually that I just couldn’t stand. Ubuntulooks and Candido both brightened menu gradients and progress bars, turning my rich brown into a really awful bright orange like in Ubuntu’s Human theme. Nudoko came close, but has really ugly looking scrollbars and a tacky looking gradient on tab widgets. Probably the closest to the look I wanted was Murrine, but it gives too glossy of a look to buttons and tree headers, and also has a bit of the same issue with lightening of progress bars and menu gradients.

Well for now, since I don’t want to start from scratch on a new theme and also don’t feel like fixing the Clearlooks bug, I’m just going to leave it as is. The nls push is mainly for 3.xx development, so I plan to get the bug sorted out by then but not in time for 2.01. Perhaps I can find where the bug lies in the Clearlooks source by comparing it with one of the other engines (all of which are descended from Clearlooks, btw).

Speaking of nls support I want to mention a few brainstorms I had. I was thinking, how best can native language support be added to the live cd, without having too large an impact on the amount of ram used whhen the system copies itself to memory. Adding one extra language does not add much overhead, perhaps a couple mb’s actually, but adding several languages and you have a lot of space taken up by files which are not being used at all. I had one idea which stood out as being the most workable.

What I propose is to create, at the time the live cd is created, an extra squashfile for each additional language I want to support. At first this would be a basic list of mainly European languages, probably German, French, Italian, Spanish, and Russian. Perhaps one or two others. Each of these squashfiles would contain the language files for all of the programs in that particular build of the live cd, corresponding to that language. By default none of these additional squashfiles would be loaded during normal bootup, so while the size of the live cd itself would increase somewhat the overall memory footprint while running would be exactly the same as if they weren’t there at all. However, passing an extra LANG parameter on the boot command line would cause Grafpup to add that squashfile to the aufs union and set the LANG environment variable, so that you could have, say, a German localized desktop by typing in “grafpup lang=de” when the boot screen appears.

This approach has several other benefits to it. It would be quite easy to create a localized remaster by making sure the appropriate nls squashfile was present and modifying isolinux.cfg to pass the extra lang parameter. Hard drive installations could be localized by having the installer copy the contents of the nls file at the same time the graf_3.xx.sfs file was copied to the desired partition. And there would be a relatively lower memory handicap when running the live cd localized over trying to add several other languages to the graf_3.xx.sfs file.

As of right now this is in the purely theoretical realm and I haven’t even begun any actual implementation of the idea, but I see no reason at this juncture why it wouldn’t work. It would require modification to unleashed, to allow the creation of the nls squashfiles, and modification of the init scripts to allow their loading during bootup.

I think this is going to be the one major area of improvement in 3.xx over it’s predecessors. In Grafpup-2.0 I implemented multi-user support, which was the main outstanding feature. Grafpup-3.xx will have the distinction of being multi-national. Yes, I like that idea very much.

May/June progress

June 8th, 2008

The news blog doesn’t show it but I’ve been pretty busy. Lot’s of little tweaks and improvements, and a good bit of coding done. Here’s a brief rundown, not all-inclusive.

The majority of my recent work has been on preparing various programs for localization. There are about 9 separate projects now in svn which are either ready for translation or already underway. The wallpaper setter is now localized into French and Italian, and the new package manager for the 3.xx branch is localized into Italian. When this gets a little further along I want to do a total rewrite of the “chooselocale” script, which is taken straight from an older version of Puppy and is in bad need of a new approach.

Speaking of the wallpaper setter I have made a number of other improvements to it. The radio buttons which set the backdrop mode now also apply their changes immediately. Also, a doubleclick on an image file in the file chooser now applies that image as the backdrop. And the slideshow function runs in alphabetical order now.

The Gpkg package manager (3.xx development branch) has undergone some changes as well. The icon displayed next to each package in the list views now matches the icon for that package’s category. There is also now a nice confirmation window which displays which packages are queued for installation and/or removal, and also lets the user know how much space is going to be used up or freed when the transactions are complete.

I am working on a new event handling script, which bears some resemblence to the pup_eventd script in Puppy-4.1alpha2. The reason for starting from scratch rather than just using the Puppy version is to make it play nice with non-root users. I’m also adding in some extra detection as I go for things like cameras and iPod. Right now on my machine when I plug in my iPod it is automatically added to fstab, mounted, and gtkpod opens up if it was not already running. This works for root as well as any other user. Unplugging the iPod removes it from fstab. Actually, all removable drives are going to be handled in a similar manner (adding an fstab entry), but there is a lot more code to write to get it all running smoothly. I also intend to create a gui to set up how you want media insertion to be handled, whether a certain program should be opened for a given media type, whether or not to auto-mount, etc.

Speaking of cameras, I attempted to upgrade libgphoto in order to support newer cameras but the newer versions of this package depend on a deprecated function in libtool. This is rather crazy. I just pulled the latest code out of svn and I’m going to see if that particular problem has been addressed at all yet. If not then it may have to wait until 3.0.

I’m removing the ubuntulooks theme engine and themes to conserve on size. The default gtk+ theme is now a clearlooks based theme anyway, so these are a bit redundant. The package can of course be installed later if you wish.

There is a lot more that I’ve been working on but that’s all I’m going to write about for now. I think the next iso will be a release candidate actually, once I’ve fixed a couple bugs in frugal and hard disk installs (incorrect grub configuration mostly). Probably a couple more weeks will be required because my time is going to be a little short for a while. Once it’s out there though I’m going straight into serious work on 3.0.

Tinfoil hat?

May 28th, 2008

I got rather tired of what I consider circular logic and misinformation constantly being applied to the subject of security in Puppy Linux. I decided to have a go at putting some of my more important thoughts down in a permanant page which is available on this blog here.

More projects added to subversion/translating programs

May 26th, 2008

I have added the new firewall configuration tool, the wallpaper setter, and the Xlockmore gui to the subversion repo. I am working on making the changes neccessary to these scripts to make localization possible. So far Gpkg and the Xlock gui are completely nls capable, but so far the only translations provided are English. However I now have several volunteers to aid in translations and hopefully the work will start to progress at a steady pace now.

This brings up another long term goal for 3.0 - I want to make it simple to change the locale to whatever language is desired. One of the biggest complaints about Grafpup right from the beginning has been that it is an English only distro. Well I have listened to the complaints and am now beginning to do something about it.

Grafpup-2.01alpha 2

May 24th, 2008

The new iso is uploaded at puppylinux.ca. For a list of changes please see the release notes in the same download directory. This release fixes several key bugs such as the broken firewall, and introduces several new and/or updated programs. Beta is set for a couple weeks from now, subject to revision as the need arises.

Firewall Manager

May 24th, 2008

Firewall ManagerI finally got around to writing this little gui to control the firewall. As mentioned in an earlier post, dead simple. The only option available for configuring is a list of ports to open. When the “Add” button is pressed you get a list of ports to choose from for common services, and an option to specify a custom port.

This will be in the 2nd alpha, which I am in the process of building right now and plan to upload tonight if all goes well.

Syncing an iPod with gtkpod

May 24th, 2008

This is something I’ve wanted to tackle for a while now but never had a chance due to not owning and iPod. Anyway, last week I broke down and shelled out the cash for a shiny new iPod classic, and quickly discovered that support is sketchy at best in a lot of Linux distros. Read the rest of this entry »

Feedback requested - binary compatibility with Puppy

May 21st, 2008

I have a question to put to anyone reading this blog. I had intended to recompile everything from source for the 3.xx series, but I’m thinking more and more of just syncing with Puppy-4.0. There would be a few caveats if I were to do so, like the fact that Grafpup will have a different package format, but it wouldn’t be hard to write a script to convert a .pet package to the new .tbz format I’m putting into action.

There would of course likely be some major differences, such as the kernel, but it would expand the pool of available packages for Grafpup. Well, it would expand the pool of packages for Puppy as well, because I usually keep the repositories a lot more full than Barry does. Not only that but it would make development go a bit faster and allow me to focus, as I have been doing, on desktop and usability improvements and advancing the state of the programs I’ve been writing specifically for Grafpup.

The upside to the complete recompile would be the chance to use newer versions of a lot of packages, and to select more options. We could possibly even have a Gnome desktop option. Plus, even if I use Puppy as a base there will be a lot of recompiling neccessary where Barry’s choices might differ from my own (for instance whether gtk+ should support svg). And if I did everything from scratch it might make certain things like localization a bit easier to accomplish because I would have the tarballs for the nls packages.

So, comments are requested.