Search Results: "Michael Koch"

18 October 2009

Christian Perrier: 4621 potential "spams" left to review for me

A few of us are working on spam removal from Debian lists archives. The wiki page linked above explains how to report spam on Debian mailing lists. This is in short as easy as bouncing a mail to a specific address, from your favourite MUA. These "reported spams" then need to be reviewed. Once a given message has been identified as "spam" by enough DD's (there are many false positives in the candidates, particularly in non English-speaking mailing lists), it is removed from the archives. Many mails have already been removed and any help is welcomed. Since Frans Pop launched this for debian-boot, back in May, I use 1 or 2 hours every Sunday to this work. After working on debian-boot only, I gradually worked on reported spams in other lists. As of now, I only have 4 lists where I still have work to do: The Chinese and the Spanish ones are tricky because identifying spam there is much less easy (for Chinese, I'm quite conservative and only tag very obvious spam....for Spanish, I read enough of the language to be able to target spam). What about you? Will you be able to help the few of us who work on getting clean archives (noticeably, Sandro Tosi, Giacomo Catenazzi, Cord Beermann, Luk Claes, Frans Pop, Bastian Blank, Luca Falavigna, Michael Koch, Bernd Steinmetz, Thoomas Viehmann, Florian Ernst, Adam D. Barratt, to name thos ewho reviewed more than 1000 mails)? Working on lists in your own language might be a good idea (I'm particularly thinking about lists in German, Spanish, Chinese and French).

26 July 2008

Philipp Kern: Stable Point Release: Etch 4.0r4 (aka etchnhalf)

Another point release for Etch has been done; now it's the time for the CD team to roll out new images after the next mirror pulse. The official announcements (prepared by Alexander Reichle-Schmehl, thanks!) will follow shortly afterwards. FTP master of the day was Joerg Jaspert, who did his first point release since Woody, as he told us on IRC. We appreciate your work and you spending your time that shortly before going to Argentina. This point release includes the etchnhalf update introducing a new kernel image (based on 2.6.24) and some driver updates. Additionally the infamous openssl hole will be fixed for good, even for new installs. Again I want to present you a list of people who contributed to this release. It cannot be complete as I got the information out of the Changed-by fields of the uploads. From the Release Team we had dann frazier (who drove the important kernel part of etchnhalf), Luk Claes, Neil McGovern, Andreas Barth, Martin Zobel-Helas and me working on it. ;-)

12 April 2008

Philipp Kern: Wrapping up Sarge into a nice package

We escorted Sarge to its last home. 3.1r8 is done, thanks to all the people who made it possible. A big thanks goes to James Troup, our ftpmaster of the day doing all the grunt work of getting a new point release out of the door. To bring in a more personal feeling of who makes this all possible, here is a list of people contributing uploads to 3.1r8 (mostly people from our fabulous Security Team): I would also like to thank dann frazier, Luk Claes, Martin Zobel-Helas and Neil McGovern for helping with the preparation of the point release.

15 February 2008

Stefano Zacchiroli: XQuery and XSLT 2.0 with Debian

XQuery 1.0 and XSLT 2.0: news and how to use them in Debian (long post about the second generation of the XSL family and how to use the related languages in Debian)
The 2nd generation of the XSL family At the beginning of 2007, W3C released a family of interrelated specification: XPath 2.0, XSLT 2.0, XQuery (1.0). The 3 specifications are based on the very same underlying data model which (finally!) supports typed values and exploits them to some extent, for example permitting some form of static type checking in XPath and XQuery. Types usually come from XML Schema, with both built-in and user-defined types supported. A brief overview of the 3 specifications and what they change in the state of the art follows. XPath 2.0 XPath 2.0 basically consists in XPath 1.0 + 3 new macro features. The first one is a revamp of those language features which are dealing with types, in order to better integrate them with the new typed data model. XPath now has operators to check whether a value belongs to a given type (so yes, type information are kept at run time), and to cast them from one type to another. The basic new type constructor is now the sequence, which replaces the old node-set solving many annoying issues, such as the impossibility of having a node ordering other than document order. The second feature is the improvement of standard library of functions which was ridiculously small in XPath 1.0; it is much better now. Additionally, 2nd generation languages (XSLT 2.0 and XQuery) now support the ability to define functions which will then be visible to inner (XPath) expressions, pushing yet forward the possibilities of plain old XPath. Functions can now also declare types in their signatures (for their arguments and return value) and untyped arguments will be automatically casted to them upon invocation. Hence, even if you are not using an implementation which assigns types to your XML trees, once you "enter" the typed world calling a typed function (almost all standard library functions are decently typed) you will be able to stay there avoiding annoying casts everywhere. Finally XPath 2.0 has turned into a powerful purely functional language and is now powered by constructs like conditionals, for-each loops, existential/universal quantifiers, and existentially-quantified comparison operators for sequences. Here is a complex expression to hwet your appetite (or scare you away ...), comments come as (: smiley faces :)
for $book in /bookshelf//books
  if ((every $author in $book/authors/author
       satisfies $author/nativeLang eq "it_IT")
      and $book/lang eq "it_IT")
  then $book
  else ()
(: think about the trouble of writing this in XSLT/XPath 1.0 ... :)

XSLT 2.0 XSLT 2.0 is what I would call a "bug fix release" of XSLT 1.0 + the routinary reworking of the language to deal with typed values, which is not sensibly different than what has been done for XPath 2.0. The fixed "bugs" are several, starting from the annoying issue of result tree fragments. They are basically tree snippets that in XSLT 1.0 you were able to generate for future use. Unfortunately they were not thaaat reusable, given that you were not even able to navigate them with XPath operators! Now the specification is much more clear and distinguishes final result trees from ordinary variables, which can now contain sequences of (navigable) tree nodes. Another important "bug" fixed is the new ability to output multiple documents with a single XSLT stylesheet: it marks the end of stupid extra post processing to be added in pipeline to a XSLT processor. Other minor "bugs" fixed are a limited amount of backtracking capabilities among imported templates, regular expression support directly in the language, and powerful grouping constructs on the lines of SQL's GROUP BY (but much more powerful). Here is a template snippet exploiting the latter feature:
<xsl:for-each-group select="*" group-starting-with="h1">
    <xsl:apply-templates select="current-group()" />

XQuery XQuery is the end of the chains imposed by XML-based syntaxes. Why the heck one has to use an XML syntax (as in the above snippet) only because she is manipulating XML tress is one of the mysteries of XML technologies which have always been floating around in my head. XQuery is the (supposedly) SQL equivalent for databases of XML documents, but is actually much more than that. I depict it in my head as the XML manipulation language with a syntax I can finally stand. Technically it is XPath 2.0 (say 80% of the whole language) + some extra ingredients (say 20%); so remember that every XPath 2.0 expression is also a XQuery expression. The main extra ingredient is the so called FLWOR expression (to be read: "flower expression", which in addition to the "smiley faces" used for comments gives a "back to 1968"-flavour to the language .... erm FLWOR/flower/flavour, no pun intended). A FLWOR expression is very similar to SQL's SELECT-FROM-WHERE: it lets you generate a tuple stream by iterating on sequences (F: for clauses), binding expression values to names (L: let clauses), filter out tuples which do not satisfy a required condition (W: where clause), order the survived tuples (O: order by clause), and finally return a sequence built using the residual tuple stream (R: return clause). The other interesting extra ingredient is the ability to build the XML snippets you want to manipulate. Within XQuery you do that using plain XML syntax (the only place where a sane-minded programmer actually wants to see it!) which also supports a classical interpolation mechanism to embed expressions which will be evaluated inside XML snippets, and also the other way around. A canonical XQuery example is:
for $t in doc("books.xml")//title,
    $e in doc("reviews.xml")//entry
where $t = $e/title
return <review>  $t, $e/remarks  </review>
(: braces denote the escaping context where XQuery expressions will
   be evaluated inside snippets; plain XML syntax is used for the
   other way around :)

But remember: XQuery for XML is much more than SQL for RDBMS, thanks to the implicit templating mechanism implemented by interpolation, and thanks to several language features fostering modularity (user-defined functions, library modules, XPath 2.0 standard library, ...) you can basically do with it any kind of XML manipulation you can imagine. I don't think I will ever write myself any other single line of XML output in DOM or XSLT ...
Cool, how can I use it in Debian? ... if only this stuff were decently supported in the open source world. Last time I checked, the author of most parts of the GNOME toolchain for dealing with XML (libxml2, libxslt, ...) was not intentioned to implement XSLT 2.0, not even mentioning XQuery. This comes as no surprise, the whole GNOME XML toolkit is written in C, and XSLT 2.0 / XQuery have reached a level of complexity and formal specification which usually entails a higher level approach. So on the GNOME side we are stuck. The other open source implementations of XSLT 2.0 / XQuery I'm aware of are Saxon and Galax. Saxon is an XSLT 2.0 and XQuery implementation written in Java, which is unfortunate per se. Additionally, it is also unfortunate that it is only partially open source. Indeed, Saxon is split into SaxonB (for "basic") which is open source under the Mozilla Public License and SaxonSA which is commercial. While SaxonSA is a fully conformant, XML Schema-aware processor, with support for static typing, SaxonB is a basic-conformant processor with no type-aware features and actually much less optimized than SaxonSA. This is annoying. (Much more annoying is the fact that SaxonSA's author is the only editor of the XSLT 2.0 specification and that instead of his mail address the specification includes an URL pointing to the website selling SaxonSA ...) Galax is an open source (IBM CPL / Lucent license) OCaml implementation of XQuery which is not fully conformant to the specification (though it gets quite close) which is type-aware and implements static typing. The only XQuery / XSLT 2.0 implementation available in Debian at the time of writing is SaxonB. The binary package is libsaxonb-java, kudos to Michael Koch and the Debian Java Maintainers for having packaged it (and to have stood some annoying pings of mine :-) bug #408842). To execute XQuery code you just have to aptitude install libsaxonb-java, prepare a query.xq file containing your query, and then execute something like:
CLASSPATH=/usr/share/java/saxonb.jar \
java net.sf.saxon.Query query.xq

note that the information in README.Debian are still referring to old Saxon versions, see bug #465894 which proposes a more up to date README.Debian. Similarly, to perform a XSLT 2.0 transformation you have to do something like:
CLASSPATH=/usr/share/java/saxonb.jar \
java net.sf.saxon.Transform -ext:off -s:input.xml -xsl:style.xsl -o:output.xml

Do not remove the -ext:off flag when processing untrusted stylesheets!, see bug #465885 for the reason. I've written some handier (1-liner) shell script helpers which remove the need of invoking java manually. They are attached to bug #465894 and I've proposed their addition to the saxonb package. Using them the above invocations become:
saxonb-xquery query.xq
saxonb-xslt -ext:off -s:input.xml -xsl:style.xsl -o:output.xml

Galax in Debian ... well, since long time I've been planning to package it (the ITP has been filed some months ago: bug #447984) and the authors sent me a newer version than what is available online to gather feedback before the long overdue final release. Unfortunately I've been lagging behind in finishing the packaging (which is tricky due to the need of binding libraries to several different languages: OCaml is native, but there is also Java for example). Hopefully this post will give me some renewed motivation for finishing the work ...
Acknowledgements Thanks to godog for his helpful comments.
Update: the helpers I've proposed have been accepted into the official package, I've also made available their manpages. Also the pending changes to README.Debian has been accepted. Kudos again to Michael Koch for his quick feedback on my patches!

Daniel Leidert: pbuilder and SUN Java

pbuilder with default settings will fail to build a package depending on sun-java5 or sun-java6, because the license needs to be accepted first. Now some time ago I saw a patch for pbuilder itself to “fix” this, but for the time beeing I used to set DEBIAN_FRONTEND to readline in my pbuilderrc. But today Michael Koch came up with much better suggestions: Preset the debconf value in the CHROOT and save it. It’s pretty easy:
$ sudo pbuilder login --save-after-login
# echo "sun-java5-jdk shared/accepted-sun-dlj-v1-1 boolean true"   debconf-set-selections
# echo "sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true"   debconf-set-selections
# exit
and voila, problem solved. Thanks to Michael for the tip.

4 October 2007

Michael Koch: Funny code

Today I worked on packaging Saxon 8 for Debian. While looking at some of its code I saw the following:

if (System.getProperty("java.vendor").equals("Jeroen Frijters"))
platform = DotNetPlatform.getInstance();

Note: Jeroen Frijters is the author of IKVM.

11 June 2007

Michael Koch: Icedtea for Debian and Ubuntu

I have built a package based on icedtea for Ubuntu and Debian.
You can apt-get it from
deb ./
Its currently very raw. E.g. it builds with GCJ but has wrong build
dependencies for it. And its only buildable for i386 currently. Patches are welcome. Please test and report back.

11 April 2007

Michael Koch: Yesterday I was happy about SUN

Yesterday I was happy about SUN, because I saw an announcement that WTK 2.5.1 was released. And it includes a Linux version. The versions 2.3 and 2.5 were Windows only. The only available Linux version was 2.2. It worked nice but missed some features and had an annoying bug that signing of midlets were not possible. This bug was introduced in WTK 1.1 and fixed in WTK 2.5. Today I download WTK 2.5.1 for Linux and installed it. I tried to run a first midlet and got this error message:
java.lang.UnsatisfiedLinkError: /home/mkoch/local/WTK2.5.1/bin/ /lib/tls/i686/cmov/ version  GLIBC_2.4' not found (required by /home/mkoch/local/WTK2.5.1/bin/
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(
        at java.lang.ClassLoader.loadLibrary(
        at java.lang.Runtime.load0(
        at java.lang.System.load(
        at com.sun.kvem.Sublime.(Unknown Source)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
        at java.lang.reflect.Constructor.newInstance(
        at java.lang.Class.newInstance0(
        at java.lang.Class.newInstance(
        at com.sun.kvem.Lime.createLime(Unknown Source)
        at com.sun.kvem.KVMBridge.(Unknown Source)
        at com.sun.kvem.KVMBridge.getBridge(Unknown Source)
        at Source)
        at com.sun.kvem.environment.EmulatorInvoker.runEmulatorImpl(Unknown Source)
        at com.sun.kvem.environment.EmulatorInvoker.main(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
        at java.lang.reflect.Method.invoke(
        at com.sun.kvem.environment.JVM.main(Unknown Source)
I run a pure Debian Etch system as my desktop. So its not too old. I know there are releasons for etch not to include Glibc 2.4. Thats really okay. But I really wonder why builds against Glibc 2.4? What feature introduced in Glibc 2.4 is needed? I guess none.
They are just stupid and built against a new, shiny Glibc without caring about their users. SUN: Please care about your users and release a new build against Glibc 2.3 soon. Not everyone will update his/her development machine just to be able to run WTK. When you release proprietary software, do it right. If you are not able to, make it open source, so the community can fix it.

2 March 2007

Michael Koch: Maven 2 for Debian

I have built a preliminary Debian packages for Maven 2 for people who need it or wanna look into Maven. I did this by using the binary distribution from upstream. You can install it by adding
deb ./
to your
and then do
aptitude update
aptitude install maven2-binary
This package is just for personal usage. It will not get uploaded to the official Debian archive. The Debian Java team (including me) is working on a maven2 package for Debian which builds from source but has itself around 90 dependencies. And the dependencies mostly need maven2 for building too. Bootstrapping can be fun.

28 February 2007

Michael Koch: Spam protection considered harmful?

I wanted to read some blog entry today I got a lot of 403 errors. I thought this is strange that bloggers deny access to their readers. So I wanted to blog about this. So I wanted to access my own blog but got a lot of 403 errors again. After some digging into the issue I found out that I had the BadBehavior plugin for Wordpress enabled and my IP was listed in three different RBLs. I really wonder how it got into them all. What do others do about this? Disabling comments or just live with this? Or use a different way to fight against spam in your blogs?

20 February 2007

Michael Koch: New Eclipse committer

I have been approved as Committer for the <a href=””>Eclipse Linux Distributions Project</a>. This project aims to improve <a href=””>Eclipse</a> on Linux distrubutions, make it work better on the the system and make development for Linux easier. Main distributions working in this project are Debian, Fedora, Novell/SuSE and Ubuntu. Other Linux distributions are welcome.

13 June 2006

Michael Koch: Experimental GNU classpath snapshots

Inspired by a blog post from Anthony Green about gcjwebplugin uploaded for FedoraCore 5 I created an experimental package for GNU classpath based on CVS. It includes the latest fixes for AWT/Swing. This means the new CairoGraphics2D implementation is used by default. This enables much more Java applications to work with GNU classpath. Another point to note is that this is the first upload of GNU classpath that includes gcjwebplugin, a free java applet plugin for web browsers. This version of it is fully reworked from the last solo release of it. It should be much more stable then ever. You can find it currently in the “experimental” distritbution of Debian. The next release of GNU classpath will be released in approximately 3-4 weeks. Then all these cool features will land in Debian “unstable”. I plan to continue uploading newer GNU classpath CVS snapshots to experimental. Stay tuned for more features and Java applications working with free runtimes. Who wants proprietary Java anyway?

22 May 2006

Michael Koch: SUN JDK in Debian non-free

As most people know already SUN JDK is now included in the non-free section of Debian. There where much discussions about the license of the JDK. To me its very questionable in its current state. For sure it would be better if the license would be more clear. But lets no debate about this again. I wanna raise another question: Who will do the needed support for our users? Noone of the Debian Java maintainers group was really involved in the inclusion of SUN JDK in non-free. Noone from the team wants to really put much effort into closed source Java. I dont speak about closing bugs. I mean answering questions in the IRC channel or on the mailing list. People need help with everything from setting JAVA_HOME environment variable correctly to setting up running a bigger application with a runtime. As I see it. SUN JDK will only rot in our archive. Noone likes it. FTP-Master put work on our shoulders but we don’t do it. It would have been great if FTP-Master would have contact us to clear the situation before doing any blindfold action. I think this got totally lost in the current discussions inside Debian.

9 February 2006

Michael Koch: Fwd: Hacking for beer!

As Robert Schuster stats in his blog we are looking for people who can help with porting issues of GCJ and other free runtimes for Java. For example we have problems with GCJ on arm, hppa, mips/el and m68k in Debian. I extend Robert’s offer to all architectures Debian supports. Earn a beer or another drink at your choice at FOSDEM.

6 February 2006

Michael Koch: https works out of the box with GNU classpath CVS

In order to debug/solve Debian bug #341818 I tried to run gcjappletviewer.jar with jamvm 1.4.2-1, classpath 2:0.20-2 and libjessie-java 1.0.1-2. Everything I tried failed. Then I updated my classpath packages to a current CVS snapshot and it worked out of the box. libjessie-java is not needed anymore as Jessie is merged into GNU classpath in upstream. This means we can access HTTPS urls with free runtimes for Java in the near future. This will also help gcjwebplugin to access applets on HTTPS sites.

22 December 2005

Michael Koch: Funny bug reports

Yes. It’s true. Even Eclipse hackers can be funny. Read more in this bug report.