* [Buildroot] [PATCH v3] New package: linux-firmware
@ 2012-01-26 11:30 yegorslists at googlemail.com
2012-01-26 12:00 ` Gustavo Zacarias
0 siblings, 1 reply; 12+ messages in thread
From: yegorslists at googlemail.com @ 2012-01-26 11:30 UTC (permalink / raw)
To: buildroot
From: Yegor Yefremov <yegorslists@googlemail.com>
add infrastructure for closed binary blobs
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
---
Changes:
v3:
typo fix (Michael S. Zick)
v2:
change package name from firmware to linux-firmware (Gustavo Zacarias)
create more granular options (Gustavo Zacarias)
package/Config.in | 1 +
package/linux-firmware/Config.in | 46 +++++++++++++++++
package/linux-firmware/linux-firmware.mk | 79 ++++++++++++++++++++++++++++++
3 files changed, 126 insertions(+), 0 deletions(-)
create mode 100644 package/linux-firmware/Config.in
create mode 100644 package/linux-firmware/linux-firmware.mk
diff --git a/package/Config.in b/package/Config.in
index f219e37..10f9f79 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -185,6 +185,7 @@ source "package/input-tools/Config.in"
source "package/iostat/Config.in"
source "package/irda-utils/Config.in"
source "package/kbd/Config.in"
+source "package/linux-firmware/Config.in"
source "package/lm-sensors/Config.in"
source "package/lsuio/Config.in"
source "package/lvm2/Config.in"
diff --git a/package/linux-firmware/Config.in b/package/linux-firmware/Config.in
new file mode 100644
index 0000000..3ea002f
--- /dev/null
+++ b/package/linux-firmware/Config.in
@@ -0,0 +1,46 @@
+config BR2_PACKAGE_LINUX_FIRMWARE
+ bool "linux-firmware"
+ help
+ This package provides various binary firmware files
+ (closed binary blobs) for such devices like LAN, WLAN cards etc.
+
+if BR2_PACKAGE_LINUX_FIRMWARE
+
+menu "Devices"
+
+menu "Texas Instruments"
+
+config BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X
+ bool "wl127X"
+ help
+ Firmware files for WLAN and Bluetooth modules wl1271 and wl1273
+
+config BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X
+ bool "wl128X"
+ help
+ Firmware files for WLAN and Bluetooth modules wl128x
+
+endmenu
+
+menu "Ralink"
+
+config BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61
+ bool "Ralink rt2501/rt61"
+ help
+ Ralink rt2501/rt61
+
+config BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73
+ bool "Ralink rt73"
+ help
+ Ralink rt73
+
+config BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX
+ bool "Ralink rt27xx/rt28xx/rt30xx"
+ help
+ Ralink rt27xx/rt28xx/rt30xx
+
+endmenu
+
+endmenu
+
+endif
diff --git a/package/linux-firmware/linux-firmware.mk b/package/linux-firmware/linux-firmware.mk
new file mode 100644
index 0000000..dda3f2b
--- /dev/null
+++ b/package/linux-firmware/linux-firmware.mk
@@ -0,0 +1,79 @@
+#############################################################
+#
+# linux-firmware
+#
+#############################################################
+LINUX_FIRMWARE_VERSION = a2995d38c234e3d767df7223d84a0f33a1a24997
+LINUX_FIRMWARE_SITE = git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
+LINUX_FIRMWARE_SITE_METHOD = git
+
+# wl127x
+ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X),y)
+define FIRMWARE_TI_WL127X_INSTALL_TO_TARGET
+ cp -rf $(@D)/ti-connectivity/wl127* $(TARGET_DIR)/lib/firmware
+ $(INSTALL) -m 0644 -D $(@D)/ti-connectivity/TIInit_7.2.31.bts \
+ $(TARGET_DIR)/lib/firmware
+ $(INSTALL) -m 0644 -D $(@D)/LICENCE.ti-connectivity \
+ $(TARGET_DIR)/lib/firmware
+endef
+endif
+
+# wl128x
+ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X),y)
+define FIRMWARE_TI_WL128X_INSTALL_TO_TARGET
+ cp -rf $(@D)/ti-connectivity/wl128* $(TARGET_DIR)/lib/firmware
+ $(INSTALL) -m 0644 -D $(@D)/ti-connectivity/TIInit_7.2.31.bts \
+ $(TARGET_DIR)/lib/firmware
+ $(INSTALL) -m 0644 -D $(@D)/LICENCE.ti-connectivity \
+ $(TARGET_DIR)/lib/firmware
+endef
+endif
+
+# rt2501/rt61
+ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61),y)
+define FIRMWARE_RALINK_RT61_INSTALL_TO_TARGET
+ $(INSTALL) -m 0644 -D $(@D)/rt2561.bin \
+ $(TARGET_DIR)/lib/firmware
+ $(INSTALL) -m 0644 -D $(@D)/rt2561s.bin \
+ $(TARGET_DIR)/lib/firmware
+ $(INSTALL) -m 0644 -D $(@D)/rt2661.bin \
+ $(TARGET_DIR)/lib/firmware
+ $(INSTALL) -m 0644 -D $(@D)/LICENCE.ralink-firmware.txt \
+ $(TARGET_DIR)/lib/firmware
+endef
+endif
+
+# rt73
+ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73),y)
+define FIRMWARE_RALINK_RT73_INSTALL_TO_TARGET
+ $(INSTALL) -m 0644 -D $(@D)/rt73.bin \
+ $(TARGET_DIR)/lib/firmware
+ $(INSTALL) -m 0644 -D $(@D)/LICENCE.ralink-firmware.txt \
+ $(TARGET_DIR)/lib/firmware
+endef
+endif
+
+# rt73
+ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX),y)
+define FIRMWARE_RALINK_RT2XX_INSTALL_TO_TARGET
+ $(INSTALL) -m 0644 -D $(@D)/rt2860.bin \
+ $(TARGET_DIR)/lib/firmware
+ $(INSTALL) -m 0644 -D $(@D)/rt2870.bin \
+ $(TARGET_DIR)/lib/firmware
+ $(INSTALL) -m 0644 -D $(@D)/rt3071.bin \
+ $(TARGET_DIR)/lib/firmware
+ cp -rf $(@D)/rt30* $(TARGET_DIR)/lib/firmware
+ $(INSTALL) -m 0644 -D $(@D)/LICENCE.ralink-firmware.txt \
+ $(TARGET_DIR)/lib/firmware
+endef
+endif
+
+define LINUX_FIRMWARE_INSTALL_TARGET_CMDS
+ $(FIRMWARE_TI_WL127X_INSTALL_TO_TARGET)
+ $(FIRMWARE_TI_WL128X_INSTALL_TO_TARGET)
+ $(FIRMWARE_RALINK_RT61_INSTALL_TO_TARGET)
+ $(FIRMWARE_RALINK_RT73_INSTALL_TO_TARGET)
+ $(FIRMWARE_RALINK_RT2XX_INSTALL_TO_TARGET)
+endef
+
+$(eval $(call GENTARGETS))
--
1.7.1.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v3] New package: linux-firmware
2012-01-26 11:30 [Buildroot] [PATCH v3] New package: linux-firmware yegorslists at googlemail.com
@ 2012-01-26 12:00 ` Gustavo Zacarias
2012-01-26 12:16 ` Thomas Petazzoni
2012-01-26 12:43 ` Peter Korsgaard
0 siblings, 2 replies; 12+ messages in thread
From: Gustavo Zacarias @ 2012-01-26 12:00 UTC (permalink / raw)
To: buildroot
On 2012-01-26 08:30, yegorslists at googlemail.com wrote:
> Changes:
> v3:
> typo fix (Michael S. Zick)
v4: alpha sort menu options? (Ralink before TI even if we prefer TI
hehe)
> +# rt73
> +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX),y)
> +define FIRMWARE_RALINK_RT2XX_INSTALL_TO_TARGET
> + $(INSTALL) -m 0644 -D $(@D)/rt2860.bin \
> + $(TARGET_DIR)/lib/firmware
> + $(INSTALL) -m 0644 -D $(@D)/rt2870.bin \
> + $(TARGET_DIR)/lib/firmware
> + $(INSTALL) -m 0644 -D $(@D)/rt3071.bin \
> + $(TARGET_DIR)/lib/firmware
> + cp -rf $(@D)/rt30* $(TARGET_DIR)/lib/firmware
> + $(INSTALL) -m 0644 -D $(@D)/LICENCE.ralink-firmware.txt \
> + $(TARGET_DIR)/lib/firmware
> +endef
> +endif
> +
> +define LINUX_FIRMWARE_INSTALL_TARGET_CMDS
> + $(FIRMWARE_TI_WL127X_INSTALL_TO_TARGET)
> + $(FIRMWARE_TI_WL128X_INSTALL_TO_TARGET)
> + $(FIRMWARE_RALINK_RT61_INSTALL_TO_TARGET)
> + $(FIRMWARE_RALINK_RT73_INSTALL_TO_TARGET)
> + $(FIRMWARE_RALINK_RT2XX_INSTALL_TO_TARGET)
> +endef
These constructs can get too long too fast, why not something like...
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XXX),y)
LINUX_FIRMWARE_FILES += rt2860.bin rt2870.bin rt30*.bin
LICENCE.ralink-firmware.txt
endif
define LINUX_FIRMWARE_INSTALL_TARGET_CMDS
cp -af $(addprefix $(@D)/, $(LINUX_FIRMWARE_FILES))
$(TARGET_DIR)/lib/firmware
endef
Will be nicer when other people add their wanted firmware to the
package.
Regards.
^ permalink raw reply [flat|nested] 12+ messages in thread* [Buildroot] [PATCH v3] New package: linux-firmware
2012-01-26 12:00 ` Gustavo Zacarias
@ 2012-01-26 12:16 ` Thomas Petazzoni
2012-01-26 12:43 ` Peter Korsgaard
1 sibling, 0 replies; 12+ messages in thread
From: Thomas Petazzoni @ 2012-01-26 12:16 UTC (permalink / raw)
To: buildroot
Le Thu, 26 Jan 2012 09:00:47 -0300,
Gustavo Zacarias <gustavo@zacarias.com.ar> a ?crit :
> These constructs can get too long too fast, why not something like...
>
> ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XXX),y)
> LINUX_FIRMWARE_FILES += rt2860.bin rt2870.bin rt30*.bin
> LICENCE.ralink-firmware.txt
> endif
>
> define LINUX_FIRMWARE_INSTALL_TARGET_CMDS
> cp -af $(addprefix $(@D)/, $(LINUX_FIRMWARE_FILES))
> $(TARGET_DIR)/lib/firmware
> endef
>
> Will be nicer when other people add their wanted firmware to the
> package.
I was also going to propose something like this, so I fully agree with
Gustavo here.
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v3] New package: linux-firmware
2012-01-26 12:00 ` Gustavo Zacarias
2012-01-26 12:16 ` Thomas Petazzoni
@ 2012-01-26 12:43 ` Peter Korsgaard
2012-01-26 12:47 ` Gustavo Zacarias
1 sibling, 1 reply; 12+ messages in thread
From: Peter Korsgaard @ 2012-01-26 12:43 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
Hi,
Gustavo> These constructs can get too long too fast, why not something
Gustavo> like...
Gustavo> ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XXX),y)
Gustavo> LINUX_FIRMWARE_FILES += rt2860.bin rt2870.bin rt30*.bin
Gustavo> LICENCE.ralink-firmware.txt
Gustavo> endif
Gustavo> define LINUX_FIRMWARE_INSTALL_TARGET_CMDS
Gustavo> cp -af $(addprefix $(@D)/, $(LINUX_FIRMWARE_FILES))
Gustavo> $(TARGET_DIR)/lib/firmware
Gustavo> endef
Agreed, except you should use a loop and install -D, so subdirs are
supported.
E.G.
for i in $(LINUX_FIRMWARE_FILES); do \
$i(INSTALL) -m 0644 -D $(@D)/$$i $(TARGET_DIR)/lib/firmware/$$i; \
done
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 12+ messages in thread* [Buildroot] [PATCH v3] New package: linux-firmware
2012-01-26 12:43 ` Peter Korsgaard
@ 2012-01-26 12:47 ` Gustavo Zacarias
2012-01-26 12:57 ` Peter Korsgaard
2012-01-26 13:44 ` Yegor Yefremov
0 siblings, 2 replies; 12+ messages in thread
From: Gustavo Zacarias @ 2012-01-26 12:47 UTC (permalink / raw)
To: buildroot
On 2012-01-26 09:43, Peter Korsgaard wrote:
> Agreed, except you should use a loop and install -D, so subdirs are
> supported.
>
> E.G.
>
> for i in $(LINUX_FIRMWARE_FILES); do \
> $i(INSTALL) -m 0644 -D $(@D)/$$i
> $(TARGET_DIR)/lib/firmware/$$i; \
> done
Also LINUX_FIRMWARE_FILES_$(CONFIG_FIRMWARE_XXXX) += file1 file2 could
be used with $(LINUX_FIRMWARE_FILES_y) to make it even shorter.
While at it, should we go for a /lib/firmware skeleton?
Regards.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v3] New package: linux-firmware
2012-01-26 12:47 ` Gustavo Zacarias
@ 2012-01-26 12:57 ` Peter Korsgaard
2012-01-26 12:59 ` Gustavo Zacarias
2012-01-26 13:44 ` Yegor Yefremov
1 sibling, 1 reply; 12+ messages in thread
From: Peter Korsgaard @ 2012-01-26 12:57 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
Hi,
>> Agreed, except you should use a loop and install -D, so subdirs are
>> supported.
>>
>> E.G.
>>
>> for i in $(LINUX_FIRMWARE_FILES); do \
>> $i(INSTALL) -m 0644 -D $(@D)/$$i
>> $(TARGET_DIR)/lib/firmware/$$i; \
>> done
Gustavo> Also LINUX_FIRMWARE_FILES_$(CONFIG_FIRMWARE_XXXX) += file1 file2 could
Gustavo> be used with $(LINUX_FIRMWARE_FILES_y) to make it even shorter.
Agreed.
Gustavo> While at it, should we go for a /lib/firmware skeleton?
What is the advantage to adding an empty dir in the default skeleton? We
want this work with custom skeletons where it might not exist.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v3] New package: linux-firmware
2012-01-26 12:47 ` Gustavo Zacarias
2012-01-26 12:57 ` Peter Korsgaard
@ 2012-01-26 13:44 ` Yegor Yefremov
2012-01-26 13:53 ` Peter Korsgaard
2012-01-26 13:55 ` Gustavo Zacarias
1 sibling, 2 replies; 12+ messages in thread
From: Yegor Yefremov @ 2012-01-26 13:44 UTC (permalink / raw)
To: buildroot
Am 26.01.2012 13:47, schrieb Gustavo Zacarias:
> On 2012-01-26 09:43, Peter Korsgaard wrote:
>
>> Agreed, except you should use a loop and install -D, so subdirs are
>> supported.
>>
>> E.G.
>>
>> for i in $(LINUX_FIRMWARE_FILES); do \
>> $i(INSTALL) -m 0644 -D $(@D)/$$i $(TARGET_DIR)/lib/firmware/$$i; \
>> done
>
> Also LINUX_FIRMWARE_FILES_$(CONFIG_FIRMWARE_XXXX) += file1 file2 could be used with $(LINUX_FIRMWARE_FILES_y) to make it even shorter.
How can I use it exactly? Can provide an example?
Yegor
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v3] New package: linux-firmware
2012-01-26 13:44 ` Yegor Yefremov
@ 2012-01-26 13:53 ` Peter Korsgaard
2012-01-26 13:55 ` Gustavo Zacarias
1 sibling, 0 replies; 12+ messages in thread
From: Peter Korsgaard @ 2012-01-26 13:53 UTC (permalink / raw)
To: buildroot
>>>>> "Yegor" == Yegor Yefremov <yegor_sub1@visionsystems.de> writes:
>> Also LINUX_FIRMWARE_FILES_$(CONFIG_FIRMWARE_XXXX) += file1 file2 could be used with $(LINUX_FIRMWARE_FILES_y) to make it even shorter.
Yegor> How can I use it exactly? Can provide an example?
Just like that. BR2_ Kconfig option expands to 'y' if enabled, and to
the empty string otherwise. See package/mtd/mtd.mk for an example.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v3] New package: linux-firmware
2012-01-26 13:44 ` Yegor Yefremov
2012-01-26 13:53 ` Peter Korsgaard
@ 2012-01-26 13:55 ` Gustavo Zacarias
2012-01-26 14:19 ` Yegor Yefremov
1 sibling, 1 reply; 12+ messages in thread
From: Gustavo Zacarias @ 2012-01-26 13:55 UTC (permalink / raw)
To: buildroot
On 2012-01-26 10:44, Yegor Yefremov wrote:
> Am 26.01.2012 13:47, schrieb Gustavo Zacarias:
>> On 2012-01-26 09:43, Peter Korsgaard wrote:
>>
>>> Agreed, except you should use a loop and install -D, so subdirs are
>>> supported.
>>>
>>> E.G.
>>>
>>> for i in $(LINUX_FIRMWARE_FILES); do \
>>> $i(INSTALL) -m 0644 -D $(@D)/$$i
>>> $(TARGET_DIR)/lib/firmware/$$i; \
>>> done
>>
>> Also LINUX_FIRMWARE_FILES_$(CONFIG_FIRMWARE_XXXX) += file1 file2
>> could be used with $(LINUX_FIRMWARE_FILES_y) to make it even shorter.
> How can I use it exactly? Can provide an example?
>
> Yegor
Something like...
LINUX_FIRMWARE_FILES_$(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X) +=
ti-connectivity/TIInit_7.2.31.bts
LINUX_FIRMWARE_FILES_$(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X) +=
ti-connectivity/TIInit_7.2.31.bts
define LINUX_FIRMWARE_INSTALL_TARGET_CMDS
for i in $(LINUX_FIRMWARE_FILES_y); do \
$(INSTALL) -m 0644 -D $(@D)/$$i $(TARGET_DIR)/lib/firmware/$$i; \
done
endef
Since LINUX_FIRMWARE_FILES_$(CONFIG_OPTION) evals to
LINUX_FIRMWARE_FILES_y if it's set and just LINUX_FIRMWARE_FILES_ if not
so it get filled up pretty nicely. Look at the lm-sensors package for an
example.
Regards.
^ permalink raw reply [flat|nested] 12+ messages in thread* [Buildroot] [PATCH v3] New package: linux-firmware
2012-01-26 13:55 ` Gustavo Zacarias
@ 2012-01-26 14:19 ` Yegor Yefremov
2012-01-26 14:45 ` Gustavo Zacarias
0 siblings, 1 reply; 12+ messages in thread
From: Yegor Yefremov @ 2012-01-26 14:19 UTC (permalink / raw)
To: buildroot
Am 26.01.2012 14:55, schrieb Gustavo Zacarias:
> On 2012-01-26 10:44, Yegor Yefremov wrote:
>> Am 26.01.2012 13:47, schrieb Gustavo Zacarias:
>>> On 2012-01-26 09:43, Peter Korsgaard wrote:
>>>
>>>> Agreed, except you should use a loop and install -D, so subdirs are
>>>> supported.
>>>>
>>>> E.G.
>>>>
>>>> for i in $(LINUX_FIRMWARE_FILES); do \
>>>> $i(INSTALL) -m 0644 -D $(@D)/$$i $(TARGET_DIR)/lib/firmware/$$i; \
>>>> done
>>>
>>> Also LINUX_FIRMWARE_FILES_$(CONFIG_FIRMWARE_XXXX) += file1 file2 could be used with $(LINUX_FIRMWARE_FILES_y) to make it even shorter.
>> How can I use it exactly? Can provide an example?
>>
>> Yegor
>
> Something like...
>
> LINUX_FIRMWARE_FILES_$(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X) += ti-connectivity/TIInit_7.2.31.bts
> LINUX_FIRMWARE_FILES_$(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X) += ti-connectivity/TIInit_7.2.31.bts
>
> define LINUX_FIRMWARE_INSTALL_TARGET_CMDS
> for i in $(LINUX_FIRMWARE_FILES_y); do \
> $(INSTALL) -m 0644 -D $(@D)/$$i $(TARGET_DIR)/lib/firmware/$$i; \
> done
> endef
>
> Since LINUX_FIRMWARE_FILES_$(CONFIG_OPTION) evals to LINUX_FIRMWARE_FILES_y if it's set and just LINUX_FIRMWARE_FILES_ if not so it get filled up pretty nicely. Look at the lm-sensors package for an example.
Thanks. I understand now.
Another question: what to do with symlinks?
rt3070.bin -> rt2870.bin
rt3090.bin -> rt2860.bin
Yegor
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v3] New package: linux-firmware
2012-01-26 14:19 ` Yegor Yefremov
@ 2012-01-26 14:45 ` Gustavo Zacarias
0 siblings, 0 replies; 12+ messages in thread
From: Gustavo Zacarias @ 2012-01-26 14:45 UTC (permalink / raw)
To: buildroot
On 2012-01-26 11:19, Yegor Yefremov wrote:
> Thanks. I understand now.
>
> Another question: what to do with symlinks?
>
> rt3070.bin -> rt2870.bin
> rt3090.bin -> rt2860.bin
>
> Yegor
Keep them as symlinks, that's the reason i originally used cp rather
than install, to keep them so.
There's no guarantee that the target filesystems dedups.
Regards.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2012-01-26 14:45 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-26 11:30 [Buildroot] [PATCH v3] New package: linux-firmware yegorslists at googlemail.com
2012-01-26 12:00 ` Gustavo Zacarias
2012-01-26 12:16 ` Thomas Petazzoni
2012-01-26 12:43 ` Peter Korsgaard
2012-01-26 12:47 ` Gustavo Zacarias
2012-01-26 12:57 ` Peter Korsgaard
2012-01-26 12:59 ` Gustavo Zacarias
2012-01-26 13:44 ` Yegor Yefremov
2012-01-26 13:53 ` Peter Korsgaard
2012-01-26 13:55 ` Gustavo Zacarias
2012-01-26 14:19 ` Yegor Yefremov
2012-01-26 14:45 ` Gustavo Zacarias
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.