* [Buildroot] [PATCH v6 0/2] Mono new package
@ 2014-10-22 20:22 Angelo Compagnucci
2014-10-22 20:22 ` [Buildroot] [PATCH v6 1/2] package/monolite: " Angelo Compagnucci
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Angelo Compagnucci @ 2014-10-22 20:22 UTC (permalink / raw)
To: buildroot
This patch adds mono and monolite packages.
Changes v5 -> v6:
- Fixed /etc/mono configs files installation
Changes v4 -> v5:
- Defaulting BR2_PACKAGE_MONO_45 now depends on select
- Minor formatting issues
[Thomas:
- Merge mono-managed and mono-native as a single package. The
mono-managed stuff is done by the host variant of the mono
package, while the mono-native stuff is done as the target variant
of the mono package.
- Introduce a BR2_PACKAGE_MONO_ARCH_SUPPORTS blind Config.in option
to make sure the IPv6 related comment is not displayed when the
architecture being used anyway doesn't support Mono.
- Add a patch to Mono to fix the C library path when uClibc and Musl
is used. This is a better approach than the
POST_INSTALL_TARGET_HOOKS because this approach can potentially be
submitted upstreamed, which ultimately allows to simplify the
Buildroot package.
- Depend on a 'monolite' package, and use it instead of letting Mono
download Monolite by itself, which circumvents Buildroot's
download infrastructure.
mono-managed stuff is done by the host variant of the mono
package, while the mono-native stuff is done as the target variant
of the mono package.
- Introduce a BR2_PACKAGE_MONO_ARCH_SUPPORTS blind Config.in option
to make sure the IPv6 related comment is not displayed when the
architecture being used anyway doesn't support Mono.
- Add a patch to Mono to fix the C library path when uClibc and Musl
is used. This is a better approach than the
POST_INSTALL_TARGET_HOOKS because this approach can potentially be
submitted upstreamed, which ultimately allows to simplify the
Buildroot package.
- Depend on a 'monolite' package, and use it instead of letting Mono
download Monolite by itself, which circumvents Buildroot's
download infrastructure.
- Move the installation of Mono libraries to the target Mono
package, as a POST_INSTALL_TARGET_HOOKS.]
[Angelo:
- Bump to the latest Mono version 3.10.0
- Add selection for .Net runtime compilation and installation in
target.]
Angelo Compagnucci (2):
package/monolite: new package
package/mono: new package
package/Config.in | 1 +
package/mono/Config.in | 40 +++++++++++++++
package/mono/mono-001-gc-fix-uclibc.patch | 16 ++++++
package/mono/mono-002-support-uclibc-musl.patch | 25 ++++++++++
package/mono/mono.mk | 65 +++++++++++++++++++++++++
package/monolite/monolite.mk | 17 +++++++
6 files changed, 164 insertions(+)
create mode 100644 package/mono/Config.in
create mode 100644 package/mono/mono-001-gc-fix-uclibc.patch
create mode 100644 package/mono/mono-002-support-uclibc-musl.patch
create mode 100644 package/mono/mono.mk
create mode 100644 package/monolite/monolite.mk
--
2.1.1
^ permalink raw reply [flat|nested] 8+ messages in thread* [Buildroot] [PATCH v6 1/2] package/monolite: new package 2014-10-22 20:22 [Buildroot] [PATCH v6 0/2] Mono new package Angelo Compagnucci @ 2014-10-22 20:22 ` Angelo Compagnucci 2014-10-22 20:22 ` [Buildroot] [PATCH v6 2/2] package/mono: " Angelo Compagnucci 2014-10-25 8:50 ` [Buildroot] [PATCH v6 0/2] Mono " Thomas Petazzoni 2 siblings, 0 replies; 8+ messages in thread From: Angelo Compagnucci @ 2014-10-22 20:22 UTC (permalink / raw) To: buildroot This patch adds Monolite package. This package is a dependency of Mono package. Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com> --- package/monolite/monolite.mk | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 package/monolite/monolite.mk diff --git a/package/monolite/monolite.mk b/package/monolite/monolite.mk new file mode 100644 index 0000000..82eaf57 --- /dev/null +++ b/package/monolite/monolite.mk @@ -0,0 +1,17 @@ +############################################################# +# +# monolite +# +############################################################# + +MONOLITE_VERSION = 111 +MONOLITE_SITE = http://storage.bos.xamarin.com/mono-dist-master/latest/ +MONOLITE_SOURCE = monolite-$(MONOLITE_VERSION)-latest.tar.gz +MONOLITE_LICENSE = Dual license LGPL, commercial + +define HOST_MONOLITE_INSTALL_CMDS + mkdir -p $(HOST_DIR)/usr/lib/monolite + cp $(@D)/* $(HOST_DIR)/usr/lib/monolite +endef + +$(eval $(host-generic-package)) -- 2.1.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH v6 2/2] package/mono: new package 2014-10-22 20:22 [Buildroot] [PATCH v6 0/2] Mono new package Angelo Compagnucci 2014-10-22 20:22 ` [Buildroot] [PATCH v6 1/2] package/monolite: " Angelo Compagnucci @ 2014-10-22 20:22 ` Angelo Compagnucci 2014-10-25 8:50 ` [Buildroot] [PATCH v6 0/2] Mono " Thomas Petazzoni 2 siblings, 0 replies; 8+ messages in thread From: Angelo Compagnucci @ 2014-10-22 20:22 UTC (permalink / raw) To: buildroot This patch adds the complete Mono implementation. This patch builds both the native and managed parts. Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com> --- package/Config.in | 1 + package/mono/Config.in | 40 +++++++++++++++ package/mono/mono-001-gc-fix-uclibc.patch | 16 ++++++ package/mono/mono-002-support-uclibc-musl.patch | 25 ++++++++++ package/mono/mono.mk | 65 +++++++++++++++++++++++++ 5 files changed, 147 insertions(+) create mode 100644 package/mono/Config.in create mode 100644 package/mono/mono-001-gc-fix-uclibc.patch create mode 100644 package/mono/mono-002-support-uclibc-musl.patch create mode 100644 package/mono/mono.mk diff --git a/package/Config.in b/package/Config.in index 89b46dc..8f738ea 100644 --- a/package/Config.in +++ b/package/Config.in @@ -437,6 +437,7 @@ menu "Lua libraries/modules" source "package/xavante/Config.in" endmenu endif + source "package/mono/Config.in" source "package/nodejs/Config.in" source "package/perl/Config.in" if BR2_PACKAGE_PERL diff --git a/package/mono/Config.in b/package/mono/Config.in new file mode 100644 index 0000000..f8f4895 --- /dev/null +++ b/package/mono/Config.in @@ -0,0 +1,40 @@ +config BR2_PACKAGE_MONO_ARCH_SUPPORTS + bool + default y if (BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || \ + BR2_mipsel || BR2_powerpc || BR2_sparc || BR2_x86_64) + +config BR2_PACKAGE_MONO + bool "mono" + depends on BR2_PACKAGE_MONO_ARCH_SUPPORTS + depends on BR2_INET_IPV6 + select BR2_PACKAGE_MONO_45 if !BR2_PACKAGE_MONO_20 && !BR2_PACKAGE_MONO_40 + help + An open source, cross-platform, implementation of C# + and the CLR that is binary compatible with Microsoft.NET. + + http://download.mono-project.com/sources/mono/ + +if BR2_PACKAGE_MONO + +config BR2_PACKAGE_MONO_20 + bool "2.0/3.5 .Net Runtime" + help + This option enables the installation of the 2.0/3.5 version + of the Mono .Net runtime to the target + +config BR2_PACKAGE_MONO_40 + bool "4.0 .Net Runtime" + help + This option enables the installation of the 4.0 version + of the Mono .Net runtime to the target + +config BR2_PACKAGE_MONO_45 + bool "4.5 .Net Runtime" + help + This option enables the installation of the 4.5 version + of the Mono .Net runtime to the target + +endif + +comment "mono needs a toolchain w/ IPv6" + depends on !BR2_INET_IPV6 diff --git a/package/mono/mono-001-gc-fix-uclibc.patch b/package/mono/mono-001-gc-fix-uclibc.patch new file mode 100644 index 0000000..62b52cd --- /dev/null +++ b/package/mono/mono-001-gc-fix-uclibc.patch @@ -0,0 +1,16 @@ +Disable backtrace on not supported uclibc. + +Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com> + +diff -purN mono-native-3.8.0.orig/libgc/include/gc.h mono-native-3.8.0/libgc/include/gc.h +--- mono-native-3.8.0.orig/libgc/include/gc.h 2014-10-07 15:00:21.259466731 +0200 ++++ mono-native-3.8.0/libgc/include/gc.h 2014-10-07 15:05:25.560975681 +0200 +@@ -500,7 +500,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_of + #ifdef __linux__ + # include <features.h> + # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \ +- && !defined(__ia64__) ++ && !defined(__ia64__) && !defined(__UCLIBC__) + # ifndef GC_HAVE_BUILTIN_BACKTRACE + # define GC_HAVE_BUILTIN_BACKTRACE + # endif diff --git a/package/mono/mono-002-support-uclibc-musl.patch b/package/mono/mono-002-support-uclibc-musl.patch new file mode 100644 index 0000000..48a3493 --- /dev/null +++ b/package/mono/mono-002-support-uclibc-musl.patch @@ -0,0 +1,25 @@ +Adjust libc.so path depending on C library being used + +By default, on Linux systems, Mono assumes that the C library is +libc.so.6. While this is true for glibc, it is not true for uClibc and +Musl based systems. This patch adds support for such systems. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + +Index: b/configure.ac +=================================================================== +--- a/configure.ac ++++ b/configure.ac +@@ -2973,6 +2973,12 @@ + SQLITE="libsqlite.so" + SQLITE3="libsqlite3.so" + ;; ++ *-*-*uclibc*) ++ LIBC="libc.so.0" ++ ;; ++ *-*-*musl*) ++ LIBC="libc.so" ++ ;; + *-*-*linux*) + AC_PATH_X + dlsearch_path=`(libtool --config ; echo eval echo \\$sys_lib_dlsearch_path_spec) | sh` diff --git a/package/mono/mono.mk b/package/mono/mono.mk new file mode 100644 index 0000000..3d11f87 --- /dev/null +++ b/package/mono/mono.mk @@ -0,0 +1,65 @@ +############################################################# +# +# mono +# +############################################################# + +MONO_VERSION = 3.10.0 +MONO_SITE = http://download.mono-project.com/sources/mono/ +MONO_SOURCE = mono-$(MONO_VERSION).tar.bz2 +MONO_LICENSE = LGPLv2 or commercial +MONO_LICENSE_FILES = LICENSE COPYING.LIB mcs/COPYING.LIB mcs/COPYING \ + eglib/COPYING external/Newtonsoft.Json/Tools/7-zip/copying.txt +MONO_INSTALL_STAGING = YES + +## Mono native + +# patching configure.ac +MONO_AUTORECONF = YES + +# Disable managed code (mcs folder) from building +MONO_CONF_OPTS = --disable-gtk-doc \ + --with-mcs-docs=no \ + --with-moonlight=no \ + --disable-libraries \ + --with-ikvm-native=no \ + --enable-minimal=aot,profiler,debug \ + --disable-mcs-build + +define MONO_INSTALL_LIBS + rsync -av --exclude=*.so --exclude=*.mdb \ + $(HOST_DIR)/usr/lib/mono $(TARGET_DIR)/usr/lib/ + rsync -av $(HOST_DIR)/etc/mono $(TARGET_DIR)/etc +endef + +MONO_DEPENDENCIES += host-mono + +MONO_POST_INSTALL_TARGET_HOOKS += MONO_INSTALL_LIBS + +## Mono managed + +HOST_MONO_CONF_OPTS = --disable-gtk-doc \ + --with-mcs-docs=no \ + --with-moonlight=no \ + --disable-libraries \ + --with-ikvm-native=no \ + --enable-minimal=aot,profiler,debug \ + --enable-static + +# These options refer to the target mono, not the host. We use the host +# only to compile libraries, then we copy them to the target. +HOST_MONO_CONF_OPTS += --with-profile2=$(if $(BR2_PACKAGE_MONO_20),yes,no) +HOST_MONO_CONF_OPTS += --with-profile4=$(if $(BR2_PACKAGE_MONO_40),yes,no) +HOST_MONO_CONF_OPTS += --with-profile4_5=$(if $(BR2_PACKAGE_MONO_45),yes,no) + +HOST_MONO_DEPENDENCIES = host-monolite + +define HOST_MONO_SETUP_MONOLITE + rm -rf $(@D)/mcs/class/lib/monolite + (cd $(@D)/mcs/class/lib; ln -s $(HOST_DIR)/usr/lib/monolite monolite) +endef + +HOST_MONO_POST_CONFIGURE_HOOKS += HOST_MONO_SETUP_MONOLITE + +$(eval $(autotools-package)) +$(eval $(host-autotools-package)) -- 2.1.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH v6 0/2] Mono new package 2014-10-22 20:22 [Buildroot] [PATCH v6 0/2] Mono new package Angelo Compagnucci 2014-10-22 20:22 ` [Buildroot] [PATCH v6 1/2] package/monolite: " Angelo Compagnucci 2014-10-22 20:22 ` [Buildroot] [PATCH v6 2/2] package/mono: " Angelo Compagnucci @ 2014-10-25 8:50 ` Thomas Petazzoni 2014-10-27 22:16 ` Luca Ceresoli 2 siblings, 1 reply; 8+ messages in thread From: Thomas Petazzoni @ 2014-10-25 8:50 UTC (permalink / raw) To: buildroot Dear Angelo Compagnucci, On Wed, 22 Oct 2014 22:22:08 +0200, Angelo Compagnucci wrote: > Angelo Compagnucci (2): > package/monolite: new package > package/mono: new package Thanks, both patches applied. On the second patch, there was a missing dependency of host-mono on host-gettext (which you didn't see probably because you have gettext installed on your machine). I also did some improvements to the licensing description, even though some independent review of this (Yann, Luca ?) would be good. Thanks for getting through the review process for those not-so-trivial packages! Best regards, Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH v6 0/2] Mono new package 2014-10-25 8:50 ` [Buildroot] [PATCH v6 0/2] Mono " Thomas Petazzoni @ 2014-10-27 22:16 ` Luca Ceresoli 2014-10-28 7:21 ` Angelo Compagnucci 0 siblings, 1 reply; 8+ messages in thread From: Luca Ceresoli @ 2014-10-27 22:16 UTC (permalink / raw) To: buildroot Dear Thomas, Angelo, Thomas Petazzoni wrote: > Dear Angelo Compagnucci, > > On Wed, 22 Oct 2014 22:22:08 +0200, Angelo Compagnucci wrote: > >> Angelo Compagnucci (2): >> package/monolite: new package >> package/mono: new package > > Thanks, both patches applied. On the second patch, there was a missing > dependency of host-mono on host-gettext (which you didn't see probably > because you have gettext installed on your machine). I also did some > improvements to the licensing description, even though some independent > review of this (Yann, Luca ?) would be good. I don't use Mono and it's a fairly large package. I just gave it a quick look, and it looks like it has a _very_ complex licensing scheme... The file LICENSE is there to clarify the licensing. The need to have such a file is itself quite enlightening on how arcane the thing is. And around the middle of the file I got a headache and gave up. According to their website [1], the tools are released under the GPL (no version specified). But in the tools/ subdirectory there is no mention of GPL, only a BSD license. Overall, if it were me, and if I were forced to use Mono at all, I'd state: MONO_LICENSE = A fuzzy mix of LGPL (any version), MIT/X11 and \ others, or commercial BTW, Angelo, Thomas, where did you get licensing info when writing/committing the package? [1] http://www.mono-project.com/docs/faq/licensing/ -- Luca ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH v6 0/2] Mono new package 2014-10-27 22:16 ` Luca Ceresoli @ 2014-10-28 7:21 ` Angelo Compagnucci 2014-10-28 13:41 ` Luca Ceresoli 0 siblings, 1 reply; 8+ messages in thread From: Angelo Compagnucci @ 2014-10-28 7:21 UTC (permalink / raw) To: buildroot Dear Luca, > BTW, Angelo, Thomas, where did you get licensing info when > writing/committing the package? Mono is a complex piece of software composed by several components, so the licensing scheme is complex. I'll try to summarize here. The file COPYING.LIB is quite explicative: "The Mono runtime is licensed under the terms of the GNU Library General Public License, version 2. The eglib directory is licensed under the terms of the MIT X11 license and is a drop-in replacement for Mono's use of glib 2.0 (which was LGPL). The Boehm licensing information is in the libgc directory The SGen Garbage Collector is under the terms of the MIT X11 license The class libraries under mono/mcs are unless otherwise stated under the MIT X11 license. Open source Microsoft code is licensed under the original terms which is either MS-PL for older components, or dual licensed MS-PL/Apache2 licensed." * The C# compiler is dual-licensed under the MIT/X11 license and the GNU General Public License (GPL). Every file inside mcs/mcs folder has this preamble "Dual licensed under the terms of the MIT X11 or GNU GPL" * The tools are released under the terms of the GNU General Public License (GPL). Not every file has a license in it's preamble, but the most part show a GPL preamble. * The class libraries are released under the terms of the MIT X11 license. Every file inside mcs/class show a MIT.X11 preamble It's complex but it shows some sense! For the practical point of view of using it, you should comply with the license of the software you ship so the mono runtime and mono class only (LGPL2, MIT) Hope this clarify! Sincerely, Angelo. -- Profile: http://it.linkedin.com/in/compagnucciangelo ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH v6 0/2] Mono new package 2014-10-28 7:21 ` Angelo Compagnucci @ 2014-10-28 13:41 ` Luca Ceresoli 2014-10-30 8:35 ` Angelo Compagnucci 0 siblings, 1 reply; 8+ messages in thread From: Luca Ceresoli @ 2014-10-28 13:41 UTC (permalink / raw) To: buildroot Dear Angelo, thank you for the follow-up. Angelo Compagnucci wrote: > Dear Luca, > >> BTW, Angelo, Thomas, where did you get licensing info when >> writing/committing the package? > > Mono is a complex piece of software composed by several components, so > the licensing scheme is complex. I'll try to summarize here. Yes, it's very complex. If I were the Mono developer I'd probably split each part in a different package. But this is not a Buildroot issue of course. Back in topic, I don't use Mono, hence I don't know the meaning of "mcs", "gmcs", "jay", "boehm" etc, which doesn't help. > > The file COPYING.LIB is quite explicative: Oops, I looked in LICENSE. The fact that there are at least 3 different explanations (website, LICENSE and COPYING.LIB) does not help me either. > > "The Mono runtime is licensed under the terms of the GNU > Library General Public License, version 2. This is coherent with the website, while LICENSE states LGPL, without specifying a version. So LGPLv2 should be correct. > > The eglib directory is licensed under the terms of the MIT > X11 license and is a drop-in replacement for Mono's use of > glib 2.0 (which was LGPL). > > The Boehm licensing information is in the libgc directory > > The SGen Garbage Collector is under the terms of the MIT X11 > license > > The class libraries under mono/mcs are unless otherwise stated > under the MIT X11 license. So eglib, boehm and the garbage collector are part of the runtime, correct? > > Open source Microsoft code is licensed under the original terms > which is either MS-PL for older components, or dual licensed > MS-PL/Apache2 licensed." But we have no mention of MS-PL nor Apache2 in MONO_LICENSE. Where is the Microsoft code used? In the runtime? > > * The C# compiler is dual-licensed under the MIT/X11 license and the > GNU General Public License (GPL). > > Every file inside mcs/mcs folder has this preamble "Dual licensed > under the terms of the MIT X11 or GNU GPL" > > * The tools are released under the terms of the GNU General Public > License (GPL). > > Not every file has a license in it's preamble, but the most part show > a GPL preamble. Uh, where are these "tools" located? In the tools/ subdir I can't find any evidence of a GPL license: $ git grep -i -C3 licens -- tools/ | grep -i general $ Maybe you refer to another subdir? > > * The class libraries are released under the terms of the MIT X11 license. > > Every file inside mcs/class show a MIT.X11 preamble > > It's complex but it shows some sense! > For the practical point of view of using it, you should comply with > the license of the software you ship so the mono runtime and mono > class only (LGPL2, MIT) That's correct if you ship a target, not if you ship an SDK (which is basically the stuff that is produced by Buildroot in output/host/). If you do, you have host-mono in the SDK and this pulls in GPL and other licenses. Is my understanding correct? > > Hope this clarify! Yes, it is less fuzzy now, thanks. But unfortunately, due to my poor knowledge of the Mono project, I can't build myself a strong opinion on what the correct MONO_LICENSE value should be. But maybe you can further improve the current value starting from my questions above (or clarify that the current value is ok). Regards, -- Luca ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH v6 0/2] Mono new package 2014-10-28 13:41 ` Luca Ceresoli @ 2014-10-30 8:35 ` Angelo Compagnucci 0 siblings, 0 replies; 8+ messages in thread From: Angelo Compagnucci @ 2014-10-30 8:35 UTC (permalink / raw) To: buildroot Hi Luca, > So eglib, boehm and the garbage collector are part of the runtime, > correct? I've not this understanding of Mono internals, probably they are used to compile mono runtime executable. > Where is the Microsoft code used? In the runtime? The most part is in the class: part of the libraries you can use in a mono application are based on microsoft code. However this note is probably outdated because it was that way at the beginning, now most (if not all) libraries are written by the mono team or contributed externally under an OSS license. > Uh, where are these "tools" located? > In the tools/ subdir I can't find any evidence of a GPL license: > > $ git grep -i -C3 licens -- tools/ | grep -i general > $ > > Maybe you refer to another subdir? Most (if not all) files in tool doesn't have a license at all, probably that note was added just to inform you that the tools are GPL also if they haven't a GPL note on their files. > That's correct if you ship a target, not if you ship an SDK (which is > basically the stuff that is produced by Buildroot in output/host/). > If you do, you have host-mono in the SDK and this pulls in GPL and other > licenses. > > Is my understanding correct? Unfortunately I'm not a lawyer, nor one of the mono core developer, nor a xamarin employee, and I really don't want to express my personal opinion, someone could read this email in future and misunderstanding my point of view. I think that redistributing something based on a certain number of packages, with or without mono, should be object of a severe license review if your company wants to be safe. > But unfortunately, due to my poor knowledge of the Mono project, I can't > build myself a strong opinion on what the correct MONO_LICENSE value > should be. But maybe you can further improve the current value starting > from my questions above (or clarify that the current value is ok). I think that clearly stating all the license files distributed with mono is the only correct way. Again, you should make a license review of your code and what you distribute to be safe. I don't think that buildroot is useful in any way more than saying you where to look for license files. Sicerely, Angelo. -- Profile: http://it.linkedin.com/in/compagnucciangelo ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-10-30 8:35 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-10-22 20:22 [Buildroot] [PATCH v6 0/2] Mono new package Angelo Compagnucci 2014-10-22 20:22 ` [Buildroot] [PATCH v6 1/2] package/monolite: " Angelo Compagnucci 2014-10-22 20:22 ` [Buildroot] [PATCH v6 2/2] package/mono: " Angelo Compagnucci 2014-10-25 8:50 ` [Buildroot] [PATCH v6 0/2] Mono " Thomas Petazzoni 2014-10-27 22:16 ` Luca Ceresoli 2014-10-28 7:21 ` Angelo Compagnucci 2014-10-28 13:41 ` Luca Ceresoli 2014-10-30 8:35 ` Angelo Compagnucci
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox