OpenJDK SRU exception

Tiago Daitx tiago.daitx at canonical.com
Thu Aug 2 03:54:52 UTC 2018


OpenJDK-11 has been made the default-jdk in Bionic [1] a few months
back. The source package was named openjdk-lts and the binaries are
named openjdk-11-*, although we are still using openjdk-10 as the
source. We will move to openjdk-11 after it reaches GA.

Meanwhile we would also like to ask for a blanket SRU exception for
java related packages for purposes of fixing and improving openjdk-11
compatibility. Those packages might need additional backports in order
to fix FTBFS and runtime errors when moving to the newer OpenJDK.

The list of packages - 1005 in total as of now - is the same as the
ones maintained by the pkg-java group in Debian [2] and can be seen by
the end of this email. For reference please see the list of packages
for which we requested a FFe before the Bionic release [3].


References:
[1] https://launchpad.net/ubuntu/+source/java-common/0.62ubuntu2
[2] https://qa.debian.org/developer.php?login=pkg-java-maintainers%40lists.alioth.debian.org&set=yes&comaint=yes&version=experimental
[3] https://launchpad.net/bugs/1760920

Packages for which we are requesting the SRU exception:
abego-treelayout
access-modifier-checker
activemq
activemq-activeio
activemq-protobuf
aether
aether-ant-tasks
afterburner.fx
airlift-airline
airlift-slice
akuma
androidsdk-tools
angular-maven-plugin
animal-sniffer
annotation-indexer
ant
ant-contrib
antelope
antlr-maven-plugin
antlr3
antlr3.2
antlr4
apache-curator
apache-directory-api
apache-directory-jdbm
apache-directory-server
apache-log4j-extras1.2
apache-log4j1.2
apache-log4j2
apache-mime4j
apache-pom
argparse4j
args4j
asm
asm3
aspectj
aspectj-maven-plugin
assertj-core
async-http-client
at-at-clojure
atinject-jsr330
autocomplete
automaton
avalon-framework
avro-java
axis
axmlrpc
barclay
batik
bcel
beansbinding
beckon-clojure
bidi-clojure
bindex
bintray-client-java
bnd
boilerpipe
bookkeeper
bouncycastle
bridge-method-injector
bsaf
bsh
build-helper-maven-plugin
byte-buddy
bytecode
c3p0
ca-certificates-java
carrotsearch-hppc
carrotsearch-randomizedtesting
castor
cdi-api
cdk
cglib
checkstyle
cheshire-clojure
classycle
clirr
clj-digest-clojure
clj-http-clojure
clj-time-clojure
clj-tuple-clojure
clj-yaml-clojure
clojure
clojure-maven-plugin
closure-compiler
clout-clojure
cmdreader
cobertura
codenarc
cofoja
colorpicker
comidi-clojure
commons-beanutils
commons-configuration
commons-configuration2
commons-csv
commons-daemon
commons-exec
commons-httpclient
commons-io
commons-jci
commons-jcs
commons-math
commons-math3
commons-parent
commons-pool
commons-pool2
commons-vfs
compojure-clojure
compress-lzf
conversant-disruptor
core-match-clojure
core-memoize-clojure
cortado
cpath-clojure
cpptasks
cronometer
crypto-equality-clojure
crypto-random-clojure
css2xslfo
csvjdbc
cup
curvesapi
data-priority-map-clojure
dbus-java
dd-plist
derby
dirgra
disruptor
dnsjava
dnssecjava
dokujclient
dom4j
doxia
doxia-sitetools
dropwizard-metrics
dtd-parser
dujour-version-check-clojure
dumbster
dynalang
easybind
easyconf
easymock
ecj
eclipse
eclipse-anyedit
eclipse-cdt
eclipse-cdt-pkg-config
eclipse-eclox
eclipse-egit
eclipse-emf
eclipse-gef
eclipse-linuxtools
eclipse-mercurialeclipse
eclipse-mylyn
eclipse-mylyn-tasks-github
eclipse-ptp
eclipse-pydev
eclipse-remote-services-api
eclipse-rse
eclipse-subclipse
eclipse-wtp
eclipse-xsd
eclipselink
eclipselink-jpa-2.1-spec
ehcache
eigenbase-resgen
electric
entagged
excalibur-logger
excalibur-logkit
exec-maven-plugin
f2j
fast-zip-clojure
fastinfoset
felix-bundlerepository
felix-framework
felix-gogo-command
felix-gogo-runtime
felix-gogo-shell
felix-main
felix-osgi-obr
felix-resolver
felix-shell
felix-shell-tui
felix-utils
fest-assert
fest-reflect
fest-test
fest-util
findbugs
flute
fontawesomefx
fontchooser
fop
freehep-chartableconverter-plugin
freehep-export
freehep-graphics2d
freehep-graphicsio
freehep-graphicsio-emf
freehep-graphicsio-java
freehep-graphicsio-pdf
freehep-graphicsio-ps
freehep-graphicsio-svg
freehep-graphicsio-swf
freehep-graphicsio-tests
freehep-io
freehep-swing
freehep-util
freehep-xml
freeplane
gant
ganymed-ssh2
gatk-native-bindings
gentlyweb-utils
geogebra
geronimo-annotation-1.3-spec
geronimo-commonj-spec
geronimo-concurrent-1.0-spec
geronimo-ejb-3.2-spec
geronimo-interceptor-3.0-spec
geronimo-j2ee-management-1.1-spec
geronimo-jacc-1.1-spec
geronimo-jcache-1.0-spec
geronimo-jpa-2.0-spec
geronimo-jta-1.1-spec
geronimo-jta-1.2-spec
geronimo-osgi-support
geronimo-validation-1.0-spec
geronimo-validation-1.1-spec
gettext-ant-tasks
gettext-maven-plugin
gkl
glassfish
gluegen2
gmavenplus
gmbal
gmbal-commons
gmbal-pfl
gmetric4j
gmetrics
gnome-split
gossip
gradle
gradle-debian-helper
gradle-jflex-plugin
gradle-plugin-protobuf
gradle-propdeps-plugin
graxxia
groovy
groovycsv
gs-collections
guava-libraries
guice
h2database
hawtbuf
hawtdispatch
hawtjni
hbci4java
hdrhistogram
headius-options
hessian
hiccup-clojure
hikaricp
honeysql-clojure
hsqldb
htrace
httpcomponents-asyncclient
httpcomponents-client
httpcomponents-core
httpunit
icu4j
icu4j-4.2
icu4j-4.4
icu4j-49
ini4j
instaparse-clojure
insubstantial
intellij-annotations
invokebinder
isorelax
istack-commons
ivy
ivy-debian-helper
ivyplusplus
jabref
jackrabbit
jackson-annotations
jackson-core
jackson-databind
jackson-dataformat-cbor
jackson-dataformat-smile
jackson-dataformat-xml
jackson-dataformat-yaml
jackson-datatype-joda
jackson-jaxrs-providers
jackson-jr
jackson-module-jaxb-annotations
jacoco
jajuk
jakarta-ecs
jakarta-jmeter
jama
jameica
jameica-datasource
jameica-util
janino
jansi
jansi-native
japi-compliance-checker
jardiff
jargs
jarjar
jarjar-maven-plugin
jas
jas-plotter
jasmin-sable
jasperreports
jasypt
jatl
java-allocation-instrumenter
java-classpath-clojure
java-comment-preprocessor
java-common
java-gnome
java-policy
java-sdp-api
java-sip-api
java-string-similarity
java-wrappers
java-xmlbuilder
java3d
java3ds-fileloader
javabeans-activation-framework
javacc
javacc4
javafxsvg
javahelp2
javamail
javaparser
javassist
javatools
javatuples
javawriter
jawn
jaxb
jaxb-api
jaxrs-api
jaxws-api
jayway-jsonpath
jblas
jboss-bridger
jboss-classfilewriter
jboss-jdeparser2
jboss-logging
jboss-logging-tools
jboss-logmanager
jboss-modules
jboss-threads
jboss-xnio
jcharts
jcifs
jcm
jcodings
jcommander
jcsp
jctools
jdeb
jdependency
jedit
jenkins-htmlunit-core-js
jenkins-json
jenkins-trilead-ssh2
jericho-html
jeromq
jersey1
jesd
jets3t
jetty9
jexcelapi
jffi
jflex
jformatstring
jftp
jfugue
jgit
jhighlight
jimfs
jinput
jitescript
jlapack
jline
jline2
jmagick
jmdns
jmock
jmock2
jmxetric
jnlp-servlet
jnr-constants
jnr-enxio
jnr-ffi
jnr-netdb
jnr-posix
jnr-unixsocket
jnr-x86asm
joda-convert
joptsimple
josql
jpathwatch
jruby
jruby-joni
jruby-maven-plugins
jruby-openssl
jsap
jsch
jsch-agent-proxy
jsemver
jsmpp
json-simple
json-smart
json4s
jsoup
jssc
jtharness
jtidy
jtreg
jug
junit
junit4
jutils
jvyamlb
jxgrabkey
jxplorer
jython
jzlib
kdgcommons-java
kitchensink-clojure
knopflerfish-osgi
kryo-serializers
kunststoff
kxml2
lazymap-clojure
ldapjdk
leveldb-java
lgooddatepicker
libajaxtags-java
libandroid-json-org-java
libaopalliance-java
libapache-mod-jk
libapache-poi-java
libasm4-java
libaxiom-java
libbase
libbasicplayer-java
libbsf-java
libbtm-java
libbytelist-java
libcobra-java
libcodesize-java
libcommons-cli-java
libcommons-codec-java
libcommons-collections3-java
libcommons-collections4-java
libcommons-compress-java
libcommons-dbcp-java
libcommons-digester-java
libcommons-discovery-java
libcommons-el-java
libcommons-fileupload-java
libcommons-jexl-java
libcommons-jexl2-java
libcommons-jxpath-java
libcommons-lang-java
libcommons-lang3-java
libcommons-launcher-java
libcommons-logging-java
libcommons-modeler-java
libcommons-net-java
libcommons-validator-java
libconcurrentlinkedhashmap-java
libcsv-java
libdb-je-java
libdecentxml-java
libejml-java
libequinox-osgi-java
libexternalsortinginjava-java
libezmorph-java
libfastutil-java
libflexdock-java
libfonts-java
libformula
libfreemarker-java
libgetopt-java
libgettext-commons-java
libglazedlists-java
libgoogle-gson-java
libgpars-groovy-java
libhamcrest-java
libhibernate-commons-annotations-java
libhibernate-validator-java
libhibernate3-java
libhtml5parser-java
libhtmlparser-java
libibatis-java
libidw-java
libimglib2-java
libimgscalr-java
libirclib-java
libiscwt-java
libisfreetype-java
libisrt-java
libitext-java
libitext1-java
libitext5-java
libj2ssh-java
libjackson-json-java
libjamon-java
libjaudiotagger-java
libjavaewah-java
libjaxen-java
libjaxp1.3-java
libjazzy-java
libjbcrypt-java
libjcalendar-java
libjchart2d-java
libjcip-annotations-java
libjcommon-java
libjdepend-java
libjdo-api-java
libjdom1-java
libjdom2-java
libjemmy2-java
libjettison-java
libjfreechart-java
libjgoodies-animation-java
libjgoodies-binding-java
libjgoodies-common-java
libjgoodies-forms-java
libjgoodies-looks-java
libjgraph-java
libjgrapht0.6-java
libjgrapht0.8-java
libjgraphx-java
libjgroups-java
libjhlabs-filters-java
libjibx1.2-java
libjide-oss-java
libjlatexmath-java
libjlayer-java
libjlha-java
libjmac-java
libjna-java
libjoda-time-java
libjogl2-java
libjopendocument-java
libjorbis-java
libjpf-java
libjpfcodegen-java
libjrosetta-java
libjson-java
libjsonp-java
libjspeex-java
libjsr166y-java
libjsr305-java
libjsr311-api-java
libjsyntaxpane-java
libjt400-java
libjtds-java
libjtype-java
libjuniversalchardet-java
libjxp-java
libkryo-java
liblastfm-java
liblayout
libloader
libmecab-java
libmetadata-extractor-java
libmicroba-java
libmiglayout-java
libmime-util-java
libminlog-java
libmnemonicsetter-java
libmp3spi-java
libnanoxml2-java
libnative-platform-java
libnb-javaparser-java
libnb-platform18-java
libnetx-java
libokhttp-java
libonemind-commons-invoke-java
libonemind-commons-java-java
liboro-java
libowasp-antisamy-java
libowasp-esapi-java
libparanamer-java
libparsington-java
libpdfbox-java
libpdfbox2-java
libpdfrenderer-java
libpgjava
libphonenumber
libpicocontainer-java
libpixie-java
libproxool-java
libpulse-java
libquartz-java
libquartz2-java
libreadline-java
libreflectasm-java
libregexp-java
librelaxng-datatype-java
librepository
libsambox-java
libsaxon-java
libscram-java
libsejda-eventstudio-java
libsejda-injector-java
libsejda-io-java
libsejda-java
libsequence-library-java
libserializer
libsimple-validation-java
libskinlf-java
libslf4j-java
libspi-java
libspin-java
libspring-java
libstax-java
libstax2-api-java
libswarmcache-java
libswingx-java
libswingx1-java
libtablelayout-java
libtritonus-java
libtruth-java
libtwelvemonkeys-java
libvldocking-java
libvorbisspi-java
libvt-ldap-java
libwoodstox-java
libws-commons-util-java
libxalan2-java
libxbean-java
libxerces2-java
libxml-commons-resolver1.1-java
libxml-java
libxml-security-java
libxmlenc-java
libxmlrpc3-java
libxmpcore-java
libxpp2-java
libxpp3-java
libxstream-java
libyanfs-java
libzeus-jscl-java
lightcouch
livetribe-jsr223
localizer
logback
lombok
lombok-ast
lombok-patcher
lucene-solr
lucene2
lucene4.10
lwjgl
mac-widgets
math-combinatorics-clojure
math-numeric-tower-clojure
mathpiper
mauve
maven
maven-ant-helper
maven-antrun-extended-plugin
maven-antrun-plugin
maven-archiver
maven-artifact-transfer
maven-assembly-plugin
maven-bundle-plugin
maven-cache-cleanup
maven-clean-plugin
maven-common-artifact-filters
maven-compiler-plugin
maven-debian-helper
maven-dependency-analyzer
maven-dependency-plugin
maven-dependency-tree
maven-deploy-plugin
maven-doxia-tools
maven-ejb-plugin
maven-enforcer
maven-file-management
maven-filtering
maven-indexer
maven-install-plugin
maven-invoker
maven-invoker-plugin
maven-jar-plugin
maven-javadoc-plugin
maven-jaxb2-plugin
maven-mapping
maven-parent
maven-plugin-testing
maven-plugin-tools
maven-processor-plugin
maven-replacer-plugin
maven-repo-helper
maven-reporting-api
maven-reporting-exec
maven-reporting-impl
maven-repository-builder
maven-resolver
maven-resources-plugin
maven-scm
maven-script-interpreter
maven-shade-plugin
maven-shared-incremental
maven-shared-io
maven-shared-jar
maven-shared-utils
maven-site-plugin
maven-source-plugin
maven-verifier
maven-war-plugin
mavibot
medley-clojure
metainf-services
metrics-clojure
mimepull
mina
mina2
minify-maven-plugin
mockito
mockobjects
modello
modello-maven-plugin
modulator
mojarra
mondrian
mongo-java-driver
mp4parser
mpj
mqtt-client
msv
mtj
multiverse-core
munge-maven-plugin
mustache-java
mvel
mysql-connector-java
naga
nailgun
nekohtml
netbeans
netbeans-cvsclient
netlib-java
netty
netty-3.9
netty-tcnative
netty-tcnative-1.1
noggit
obantoo
objenesis
ognl
okio
olap4j
opencsv
openhft-affinity
openhft-chronicle-bytes
openhft-chronicle-core
openhft-chronicle-network
openhft-chronicle-queue
openhft-chronicle-threads
openhft-chronicle-wire
openhft-compiler
openhft-lang
openid4java
openjdk-7-jre-dcevm
openjdk-8-jre-dcevm
openjfx
openjpa
oscache
osgi-annotation
osgi-compendium
osgi-core
osgi-foundation-ee
owasp-java-html-sanitizer
pantomime-clojure
parboiled
pdfsam
pegdown
pentaho-reporting-flow-engine
pleiades
plexus-ant-factory
plexus-archiver
plexus-bsh-factory
plexus-build-api
plexus-cdc
plexus-cipher
plexus-classworlds
plexus-cli
plexus-compiler
plexus-containers
plexus-digest
plexus-i18n
plexus-interactivity-api
plexus-interpolation
plexus-io
plexus-languages
plexus-maven-plugin
plexus-resources
plexus-sec-dispatcher
plexus-utils
plexus-utils2
plexus-velocity
polyglot-maven
potemkin-clojure
powermock
practicalxml-java
prismatic-plumbing-clojure
prismatic-schema-clojure
processing-core
procyon
proguard
projectreactor
properties-maven-plugin
protobuf-java-format
puppetlabs-http-client-clojure
puppetlabs-i18n-clojure
puppetlabs-ring-middleware-clojure
qdox
qdox2
qdwizard
rabbitmq-java-client
raynes-fs-clojure
reactive-streams
relaxngcc
remotetea
resteasy
resteasy3.0
rhino
riddley-clojure
ring-anti-forgery-clojure
ring-clojure
ring-codec-clojure
ring-defaults-clojure
ring-headers-clojure
ring-mock-clojure
ring-ssl-clojure
robert-hooke
robocode
robust-http-client
rome
rsyntaxtextarea
rxtx
saaj
sablecc
sacjava
saxonb
saxonhe
sbbi-upnplib
sbt
sbt-ivy
sbt-launcher-interface
sbt-serialization
sbt-template-resolver
sbt-test-interface
scala
scala-asm
scala-parser-combinators
scala-pickling
scala-xml
scannotation
scopt
sdes4j
sdo-api-java
serp
service-wrapper-java
sezpoz
shimdandy
shiro
sikulix
simple-http
simple-xml
simplyhtml
sisu-guice
sisu-inject
sisu-ioc
sisu-maven-plugin
sisu-plexus
sitemesh
slashtime
snakeyaml
snappy-java
spatial4j
spatial4j-0.4
specter-clojure
spock
sqljet
sqlline
squareness
ssl-utils-clojure
stax-ex
stegosuite
stockpile-clojure
stringtemplate
stringtemplate4
stylebook
sunflow
super-csv
surefire
svgsalamander
svnclientadapter
svnkit
sweethome3d
sweethome3d-furniture
sweethome3d-furniture-editor
sweethome3d-textures-editor
swing-layout
swt-gtk
swt-paperclips
swt4-gtk
swtcalendar
swtchart
syncany
t-digest
taglibs-standard
tagsoup
tcode
testng
tigris
tika
tiles
tiles-autotag
tiles-request
tomcat-native
tomcat7
tomcat8
tomcat8.0
tools-analyzer-clojure
tools-analyzer-jvm-clojure
tools-namespace-clojure
tools-reader-clojure
trapperkeeper-clojure
trapperkeeper-metrics-clojure
trapperkeeper-scheduler-clojure
trapperkeeper-status-clojure
trapperkeeper-webserver-jetty9-clojure
trilead-putty-extension
trilead-ssh2
triplea
trove
trove3
truffle
truffle-dsl-processor
tuxguitar
tycho
typesafe-config
typesafe-config-clojure
uddi4j
uima-addons
uima-as
uimaj
unbescape
uncommons-maths
uncommons-watchmaker
undertow
unirest-java
unsafe-fences
unsafe-mock
user-agent-utils
vecmath
velocity
velocity-tools
visualvm
vorbis-java
wagon
wagon2
wala
webjars-locator
webjars-locator-core
weirdx
weka
werken.xpath
weupnp
wildfly-client-config
wildfly-common
wsdl4j
wsil4j
wss4j
xhtmlrenderer
xml-maven-plugin
xmlbeans
xmlbeans-maven-plugin
xmlgraphics-commons
xmlstreambuffer
xmlunit
xom
xslthl
xz-java
yecht
yui-compressor
yydebug
zookeeper


On Sat, Mar 24, 2018 at 1:43 AM, Steve Langasek
<steve.langasek at ubuntu.com> wrote:
> Hi Tiago,
>
> Thanks for this additional analysis.  This is useful to understand in light
> of the concerns (which we discussed off list) that future releases of
> OpenJDK between 9 and 11 may not be fully binary compatible after all with
> binaries built against OpenJDK8, and may therefore not be a viable fallback
> for packages which fail to build with OpenJDK 10 or 11.
>
> It would be ideal to fix as many of these build failures as possible before
> 18.04 releases.  The number of these currently failing packages looks
> manageable, especially considering the good news that maven-related fixes
> are currently in progress in Debian.
>
> I do not consider these build failures a blocker for the plan to switch to
> OpenJDK10 by default in 18.04.
>
> To make sure I understand the whole plan: will the maven stack need to be
> rebuilt in 18.04 against OpenJDK9 to ensure packages do not fail to build in
> SRU?  Or were these rebuilds only for testing?




On Sat, Mar 24, 2018 at 1:52 AM, Steve Langasek
<steve.langasek at canonical.com> wrote:
> On Fri, Mar 23, 2018 at 09:43:40PM -0700, Steve Langasek wrote:
>> On Fri, Feb 2, 2018 at 11:58 AM, Tiago Daitx <tiago.daitx at canonical.com> wrote:
>> > On behalf of the Ubuntu Foundations Team, I am requesting an SRU
>> > exception for OpenJDK. Our plan is to release OpenJDK 10 as the
>> > default JRE/JDK [1] for Bionic, and then move the default JRE/JDK in
>> > main to OpenJDK 11 in September/October 2018 as an SRU.
>
>> > = Proposed Plan =
>> > Bionic will be released with OpenJDK 10 as the default JRE/JDK and
>> > OpenJDK 11 will replace it once it reaches GA.
>
>> > OpenJDK 8 will be moved to universe and remain available there for
>> > 18.04, to provide migration time for packages that can't be build with
>> > OpenJDK 10 or 11.
>
>> > OpenJDK 8 will remain in main in 16.04 LTS (which reaches EOL in April 2021).
>
>> Not mentioned in this description is that we should migrate ASAP to OpenJDK9
>> by default, to ease the transition to OpenJDK10 between now and release.
>
>> (Not mentioned because at the time you first wrote, this wasn't expected to
>> miss feature freeze.)
>
>> > If we are going to switch to OpenJDK 11 in bionic once released, we
>> > want to avoid OpenJDK 8 as the default JRE/JDK in Bionic at release
>> > time because any additional interface delta that exists between 8 and
>> > 11 not only exposes the archive to breakage, it also exposes external
>> > consumers of the JDK to breakage.  In comparison, the interface delta
>> > between OpenJDK 10 and OpenJDK 11 is expected to be fairly small,
>> > especially in comparison with the delta between OpenJDK 8 and OpenJDK
>> > 9 that we already know is large.  We should therefore release with
>> > OpenJDK 10 as the default JDK in 18.04, transitioning to OpenJDK 11
>> > when it is released.
>
>> I agree with this rationale and approve this SRU exception for OpenJDK 11 in
>> Ubuntu 18.04 LTS.
>
> One further outstanding question is how to name these packages in order to
> avoid leaving binary packages in main at release time with no security
> support and no automated upgrade path.
>
> My suggestion is to use the same source and binary package names for both
> openjdk-10 (at release time) and openjdk-11 (once SRUed) in bionic, so that
> the upgrade just happens normally as part of security updates and there are
> no concerns of users who upgraded to 18.04 early being islanded on a
> no-longer-supported openjdk-10 package.
>
> One way to do this would be to simply name the openjdk-10 package
> "openjdk-11", with a 10.x version number.  This would signal to users that
> openjdk-11 is coming, making it less of a surprise.
>
> You could also call it openjdk-10, but it's less obvious to have an
> openjdk-10 version 11, IMHO.
>
> You could even do something like "openjdk-lts", but that also has downsides
> of confusion with the upstream meaning of LTS.
>
>
> Alternative approaches, which have been considered but that I think are
> worse than the above:
>
>  - Keep openjdk-10 only in the -proposed pocket until after release, then
>    publish it to -updates.  This would mean that either there is no openjdk
>    in the release pocket at bionic release, so 18.04 is not self-buildable;
>    or there would be some other version of openjdk left in the release which
>    is *also* going to go EOL, and is therefore also going to mislead users.
>
>  - Publish openjdk-10 in main in the bionic release pocket, but use metadata
>    in the archive to mark it only supported in September.  This doesn't help
>    the majority of users who never run ubuntu-supported-status or look at
>    the field in their Packages files.
>
> --
> Steve Langasek                   Give me a lever long enough and a Free OS
> Debian Developer                   to set it on, and I can move the world.
> Ubuntu Developer                                    http://www.debian.org/
> slangasek at ubuntu.com                                     vorlon at debian.org

--
Tiago Stürmer Daitx
Software Engineer
tiago.daitx at canonical.com

PGP Key: 4096R/F5B213BE (hkp://keyserver.ubuntu.com)
Fingerprint = 45D0 FE5A 8109 1E91 866E  8CA4 1931 8D5E F5B2 13BE



More information about the Ubuntu-release mailing list