This post refers to DotKernel 1, based on Zend Framework 1.
If you are looking for DotKernel 3 related posts, go here.

We integrated long time ago the WURFL PHP API into DotKernel code base. At that time, the license of that WURFL library was GNU/GPL, which make it perfect compatible with Zend Framework license( new BSD) and DotKernel ( OSL 3.0). Everybody was happy, users was able to make web applications for them or for their customers without worry about licensing costs at all.

On June 6th, 2011, the WURFL PHP API library was updated to version 1.3.0. So we updated too the latest DotKernel 1.5.0 ( now in release candidate stage, soon to be released as stable) , without noticing the change on its license, from GNU/GPL to AGPL which suddenly transform it into a ‘trial only’ library, for “Product evaluation” only.

See the official announcement here.

We respect the work of Luca Passani and Steve Kamerman ( thank you and keep up the good work 🙂 ).
But we must keep DotKernel Application Framework free, without such license limitations. Only thing to do in this stage is :

  • remove WURFL PHP API library version 1.3.0 from DotKernel code base
  • integrate back version 1.2.1 which is still GNU/GPL
  • we are still collecting device informations, so we will contribute to WURFL XML data which remain free. This file, which represent the data itself, it is and must be the industry standard
  • fork WURFL PHP APi 1.2.1 to a new library maybe ?
  • change the name of that library to avoid trademark issues ?


later edit: the correct link to announcement is here


  1. Mike

    Thats pretty bad… for WURFL

  2. Luca Passani

    Hi, Luca Passani of WURFL and ScientiaMobile here.

    I think you got the link to the announcement wrong, because you pointed to the product page of ScientiaMobile. The real announcement is here (posted on WMLprogramming, the WURFL mailing list):

    In that announcement, I and Steve explain the reason for the move as openly as we could possibly do. To make a long story short, GPL was created at a time when the web did not exist. As such, it was not enough of a disincentive for companies not willing to share to actually do so. AGPL (an FSF license, also approved by OSI) fixes this rather nicely in our view. Free Software developers have a better license. On the other hand, commercial companies who do not want to share, have a strong incentive to contribute to the project economically by purchasing a so-called GPL exception (i.e. what some commonly call “dual licensing”). This also benefits the community in the end, since that money goes in better future APIs and data.
    There is nothing wrong with this. I actually asked RMS (Richard Stallman) in person a few months back. He agrees with me that selling GPL exceptions is a totally fine and ethically acceptable business model for a company.
    This brings me to the next point. One may try to fork version 1.2.1, of course. But why should that be necessary? to get a free-ride for the work the ScientiaMobile will be doing to maintain the data in the months and years to come? Free Software developers are right at home with AGPL. Commercial developers have access to a good and very reasonably price commercial API. Isn’t this the best of both worlds?
    Happy to discuss more in a frank but civilized way…

    Thank you

    Luca Passani

  3. Julian

    I am sorry if this post was interpreted , maybe, as been against the ScientiaMobile. It wasn’t my intention at all.
    I am only confused. And not sure about next steps .
    At the moment, i just downgraded to 1.2.1 the library in DotKernel trunk, to avoid any potential issues.
    I understand your point about free developers versus commercial ones. But is not that simple. The main purpose of this DotKernel framework is to be used as a quick tool to develop software for various customers, so commercial work. I am pretty sure those customers do not want to deal with potential license issues, and are not interested in legal debates about combination of different licenses. Is not a matter of paying or not a fee for commercial API , is simply an attitude of avoiding anything that can complicate their business.
    We are here also contributors to Zend Framework. We signed the CLA agreements, and we voluntarely transfered all rights of the code we write for ZF to Zend. We advocated in past years the ZF license model as: ” finally the business friendly license “. Every customer was scared in past 10 years since i started doing PHP development about GPL virus. Almost everyone asked about potential license issues, about external libraries that we included in their systems, and such.
    Forking WURFL PHP API is not something that i can do easily. I am not in the mood for that, no time and no resources. And will not solve the licensing issues. Pfff, i don’t know what’s next.

  4. Luca Passani

    I think I see your problem. You would like to bundle the WURFL API so that dotkernel works out of the box. The problem is that this may convey the wrong impression that the WURFL API is free of charge also for those who have no intention of complying to AGPL. Which would be bad.
    Over the past few months, I interacted with the Zend team and approved that certain WURFL API “connectors” could be shipped as part of Zend thanks to the fact that, in my quality of WURFL API copyright holder, I approved a GPL exception for the non-GPL connectors. I would be more than happy to do something similar for you guys, if that soothes your pain.
    I do not recommend that you maintain 1.2.1. Not only is that version not going to be supported, but official data and API are bound to evolve and 1.2.1 users will see the accuracy of their device matching degrade over time. You can probably simply point users to the WURFL website so they can download the API autonomously and be informed of the licensing terms in the process.


  5. Simon Wilcox

    The license for the WURFL data has now changed as well:

Leave a Reply to Mike Cancel Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>