Tag Archives: Things I do

UCK 2.4.4 is out!

A new maintainance release is ready just for you, giving you full natty compatibility, here’s the changelog:

— 2.4.4 —

* Frontend:
* Fixed usage message in uck-remaster to match the parameter handling
that was already implemented.
* Start message now contains output of uname and lsb_release. This
should help to better diagnose problems.
* customize script now outputs kernel and lsb_release info. This
should help to better diagnose problems,
* uck-gui now gives proper usage message and outputs uname and
lsb_release information.
* uck-gui now passes REMASTER_HOME to uck-remaster. Necessary for
changed behaviour of sudo in Natty. Fixes (#748209). Answer
questions #151311, #151108, #150223
* Backend:
* Extract proxy environment variables in uck-gui and pass them on to
the chroot environment around sudo calls. Solves (#111253)
* Modified customize_iso to correctly use REMASTER_HOME if SCRIPT_DIR
was not specified.
* Documentation:
* Fixed uck-gui man page: uck-gui does not accept a customization-dir

Download UCK 2.4.4 or use our stable PPA.

Some tests for P4A 4.0

In the last few weeks I’ve been thinking a lot about the future of P4A, there would be a lot of small things to do but I wanted to think about something big enough for a major release jump.

Some time ago we discussed about the rendering layer, at the moment we generate all the HTML and we use our custom CSS + some jQuery/jQuery UI goodness to enhance everithing a little bit. Point is that jQuery UI is growing too slowly and we need something bigger and more RIA oriented, like Dojo, ExtJS or Qooxdoo. We discussed about which one would be better and at the moment I’d go with Dojo, it has a great FLOSS license, it’s supported by a lot of major players, it’s highly modular and it has my preferred way of including modules. At last I cannot avoid talking about the new wonderful “Claro” graphical theme, simply amazing.

So I started coding some of P4A’s widgets just to test something out and everything was pretty easy, I’d choose to use the declarative syntax because it was the fastest way to have everything running but now I’m running into a few major problems.

First of all I faced a performance issue, maybe it’s due to dojo’s declarative syntax I chose and I should definetively do a comparison test with the programmatic syntax (also if I do not like generating javascript too much). Another problem is due to the fact that most P4A developers tend to use the easiest P4A’s AJAX stack, which actually redraws all the mask (the body tag) without a full page refresh. To do the dojo has to redraw all the widgets in the mask and so the performance issue is not only visible during the first page loading but on every page redrawing. The user would see the page flicker (if we decide to hide the DOM while dojo is rendering) or the unstyled elements for a sec and than the styled widgets. This is not the best way to go…

But here we’ve the most critical issue, every time the page is redesigned (not using a full page refresh) we’ve a noticable memory leak, dojo keeps allocating memory and this is very very bad. That’s not a dojo problem, I mean, I replease the DOM nodes and recall the dojo parser, but the previously built dojo objects are not removed from memory. Actually I hoped that dojo would have recognized that an element was already parsed but this is not happening. Thus we would have to destroy all dojo objects before redrawing them but this operation will make the page flickering longer.

Conclusions? Hard to tell at the moment. I think I want to try a different way doing a quick test using only dojo’s CSS instead of the whole javascripts also because in a P4A application all the events have to be managen by the server and not by the client. I’ll try to do this kind of test ASAP and let you know some more considerations about this topic.

P4A 3.8.1 is out!

A bugfix release for the 3.8.x serie, if you’re using P4A be sure to update to the new release, here you’ve the changelog:

– jQuery was updated to 1.4.4
– a bug with multiple p4a_load_js calls (with the same url and within the
same loading cycle) was solved
– a bug with MSSQL and query limits was fixed (thanks to Diego Fattori)
– CKEditor was updated to 3.5
– P4A_DB_Source::getRowPosition() now returns 1 if the query throws an error
– P4A_DB_Source::addHaving(), setHaving() and getHaving() methods were added
– Zend Framework was updated to 1.11.2
– a bug with P4A::restart() method was fixed (thanks to Daniel Carrero)
– a bug with P4A_Data_Source::saveUploads() and custom file paths was solved
– a new technique to unload CKEditor was implemented

Download P4A 3.8.1

– UPDATE: due to a SourceForge downtime P4A 3.8.1 tarballs can’t be downloaded at the moment, I’ll update this post when everything will be up again, in the meanwhile you can check out the P4A SVN (tags/3.8.1).

– UPDATE 2: SF should have fixed the problem, P4A 3.8.1 packages are available right now.

UCK 2.4.3 is out!

A new maintainance release is ready just for you, we had to jump some minor release numbers because of some experimental builds we put out in the last weeks but here you’ve the complete changelog since the latest stable:

— 2.4.3 —

* Backend:
* uck-remaster-prepare-alternate and uck-remaster-finalize-alternate now
support all architectures (and not only i386)

— 2.4.2 —

* Backend:
* Added code to remember kernel update state (shared /var/run
issue). (#682108)
* yaboot dep was added (only for ppc)

— 2.4.1 —

* Backend:
* Applied patch to handle changed named of syslinux config file.
Thanks to Tom Freudenberg for this patch. (#681032)

Download UCK 2.4.3 or use our new PPA.

UCK 2.4.0 is out!

It was a long awaited release, and we’ve a huge changelog too! The most visible thing we worked on is the complete maverick support but there are a lot of changes under the hood to give a better user experience to every user.

Our great developer Wolf introduced an experimental feature (disabled by default) to use unionfs mounts instead of extracting the full ISO/squashfs, it’s a great new approach and really speeds up the first phases of a remastering operation (the squashfs/iso packing is still the same and can’t be optimized anymore). The point is that we DO NOT suggest to use this feature because it relies on some experimental versions of unionfs that are still a bit buggy and not completely released at the moment.

We also implemented a few methods to allow the installation of particular software in the remaster ISO, like MySQL and deamons requiring the deamon itself to start right after the installation.

Here you’ve the complete changelog

* GUI:
* GUI now uses kdialog, zenity, dialog or builtin (in that order) if
available. (#577197)
* Updated uck-gui to accept parameters for loopback/unionfs mounting
and added the possibility to specify a directory different from ~/tmp
for remaster-dir. Change is backward compatible to uck-2.2.0.
(Question/Answer 110374)
* Backend:
* Sequence of actions in uck-remaster changed so that initrd is
unpacked/customized/packed after the changes to the root file system
and the ISO have been done. This avoids problems when customize_iso
installs a new Live-CD kernel and initrd (which would previously be
overwritten by the contents of the old initrd, causing a mismatch
between the kernel (new) and the initrd (old)).
* Extended remaster-live-cd.sh by two procedures to perform
loopback+union mounts. (#72727)
* Added a -m option to uck-gui, uck-remaster, uck-remaster-unpack-iso
and uck-remaster-unpack-rootfs that uses a combination of loopback
and unionfs mounts instead of copying. This is an experimental
feature as of now and not activated by default. It also depends on
the packages fuse-utils and unionfs-fuse or aufs-tools, which are not
(yet?) pre-requisites for UCK. Documentation for these commands
updated accordingly. (#72727)
At least unionfs-fuse 0.25~hg.20100315-1 is required (Currently
only available from https://launchpad.net/~aakef/+archive/ppa )!
Thanks to Bernd Schubert for the superb support in fixing the
problems encountered.
* Added two new commands (uck-remaster-mount and uck-remaster-umount)
and documentation. These commands are used to do the loopback/
unionfs mounts/umounts required by the -m option described above.
* Added code to library for union_umount to kill processes still using
files in the mount. This happens when updates start daemons in the
root fs.
* Updated all manual pages to reference the source / bug reporting URLs.
* initctl is disabled (replaced with /bin/true) during chroot sessions.
With this change is now possible to install mysql/apache and other
services in the guest system.
* update-grub is disabled (replaced with /bin/true) during chroot sessions.
With this change is now possible to upgrade kernel in maverick too.
* host’s fstab/mtab are copied to the guest so that chrooted “df” can work.
* Backend now checks for kpackagekit as packaging tool, too.
Note: This requires that packagekit ist installed on the hosting
system – otherwise the dbus queries to packagekitd will fail.
FIXME: Running packagekitd on the host will give wrong results!!!
–> We need to change the strategy here! Upstart has similar issues
–> need to start “private” dbus system bus instance?!?
* Added error checking for arguments to uck-remaster-mount.
* improved error checking and handling for union mounts: either all or
nothing now; imply -m if tell-tale directory (-cache) is found;
made reentrant for use by uck-flow; pointless check for
uck-remaster-mount removed; fallback to copy if union mount not
possible; do not remove target when using mounts.
* uck-remaster-remove-win32-files now removes usb-creator.exe which
was added in maverick
* Fixed immediate umount in uck-remaster-unpack-{iso,rootfs} by trap
EXIT handling when using -m.
* unmount strategy (after chroot) was rewritten to unmount every mountpoint
found inside remaster-root.
* Package:
* gfxboot-dev dep added for maverick
* Internal:
* New target updman in Makefile to update manual page version numbers.
* Updated localbuild.sh procedure to patch the debian/changelog file
so that a local unsigned test version can be generated correctly.

Download UCK 2.4.0 or use our new PPA.

P4A 3.8.0 is out!

It took me a couple of month to work on this release, we’ve a pretty long changelog you’ve to be sure to check out because we’ve a lot of important changes that may impact your upgrades.

One of the most important things is that now P4A supports MS SQL, it was quite easy but surely we need a stronger user base to test out every possible scenario. The next big thing is that MySQL connections are now UTF-8 safe, it could hurt your existing applications so please check out the notes in the changelog before upgrating.

– !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
– !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
– !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
– P4A_DB’s connection charset is now set to UTF 8
This could lead to possible data corruption, if you’re upgrading from a
previous release and you’re using MySQL or PostgreSQL (Oracle and SQLite
should not be involved in this change) you’ve to be sure to convert the DB
charset to UTF-8 before editing data in your P4A applications.


For MySQL we used this procedure to migrate our DBs:
mysqldump –default-character-set=latin1 DBNAME > dump.sql
open dump.sql and replace this line
/*!40101 SET NAMES latin1 */;
/*!40101 SET NAMES utf8 */;
mysql NEWDBNAME < dump.sql - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - Support For MS SQL was added, check out the README file - AJAX STACK REVERTED TO XML (instead of JSON) due to the bugs with jQuery::form - README file was updated - CKEditor was updated to 3.4.1 - a new strategy to avoid CKEDITOR loading problems was implemented - P4A_Data_Fields::getSchemaTableField now correctly handles calculated fields - a bug with P4A_I18N::format and time fields was fixed - P4A::__construct() now has a "cache" param, simply pass a Zend_Cache object to override all Zend_Cache configurations inside P4A - P4A::getCache() method was added - P4A_I18N now uses P4A::getCache() to pass an overridden Zend_Cache object to Zend_Locale_Data - a bug with "onreturnpress" and IE was fixed - a bug with multicple CKEditor instances (loaded via AJAX call) and IE was solved - CKEditor's forcePasteAsPlainText option was enabled again - jQuery::form was updated to 2.49 - jQuery was updated to 1.4.3 - file upload percentage and speed is shown while uploading (if PECL uploadprogress is available, APC not implemented beacuse it does not work with PHP CGI) - a bug with autocomplete and HTML tags (in the value) was fixed - a bug with autocomplete loading was fixed (thank to Lorenzo Valori) - a bug with CKEDITOR and AJAX was fixed

Download P4A 3.8.0

Ubuntu Camp initiative

Hello everybody, it’s a long time since the last non-announce post, today I feel I want to share an idea I worked on in the last few days.

Last saturday I went to the Drupal Camp in Turin, it was a sweet event, with a great organization, but that’s another story :) Going back home I thought about the fact that our beloved Ubuntu does not have a camp initiative, there is the Linux Day, which is wonderful, but an Ubuntu focused Camp would definitively rock!

I wrote Mark about my idea and he gave me a positive feedback, later I wrote the Ubuntu trademarks team to understand how to register the ubuntucamp domains (remember you should not register an *ubuntu* domain without the authorization of the Ubuntu trademarks team), they gave me positive feedback telling me they wanted me to work with the LoCo team to do that, wrote the Italian LoCo team council, now I’m waiting for their answer.

Working since 10 years in the FLOSS world I have a few contacts interested in participating, I had some talks with a few of them and got some other contacts for places and sponsorships so things are already moving fast! I’m not going to tell you everything right now but I’m sure it will be great.

The first Italian Ubuntu Camp? I want it to be for natty release, we’re 6 months to get everything done, I think it’s a great timing, not too long and not too short.

I’m committed to make this thing work out and be a success, it will create more audience for Ubuntu itself and more work opportunities for all the great professionals who work with Ubuntu, it will be awesome!

If you want to be a host, be a speaker or be a part of it please drop me a line!

P4A 3.6.2 available now!

Another 3.6 serie release, let’s take a look at the changelog

– P4A_Field::setSource() now correctly handles null param
– CKEditor was updated to 3.4
– P4A_DB_Source::getRowPosition() now correctly handles multivalue fields
(bug #3057839)
– forcing IE to use his latest rendering engine
– some javascript fixes were applied to make IE ajax system work
– Zend Framework was updated to 1.10.8
– P4A_I18N now correcly handles 3 chars languages (like “fil”)
– translations were updated
– Filipino translation was added (thanks to Elin Eon)

Download P4A 3.6.2