* [Buildroot] [PATCH 1/3] fake-hwclock: new package
@ 2018-08-10 14:46 Christopher McCrory
2018-08-10 14:46 ` [Buildroot] [PATCH 3/3] perl-cgi: " Christopher McCrory
2018-08-14 14:00 ` [Buildroot] [PATCH 1/3] fake-hwclock: " Thomas Petazzoni
0 siblings, 2 replies; 7+ messages in thread
From: Christopher McCrory @ 2018-08-10 14:46 UTC (permalink / raw)
To: buildroot
Save/restore system clock on machines without working RTC hardware
Signed-off-by: Christopher McCrory <chrismcc@gmail.com>
---
DEVELOPERS | 3 +++
package/Config.in | 1 +
package/fake-hwclock/Config.in | 12 ++++++++++
package/fake-hwclock/fake-hwclock.hash | 2 ++
package/fake-hwclock/fake-hwclock.mk | 40 ++++++++++++++++++++++++++++++++++
5 files changed, 58 insertions(+)
create mode 100644 package/fake-hwclock/Config.in
create mode 100644 package/fake-hwclock/fake-hwclock.hash
create mode 100644 package/fake-hwclock/fake-hwclock.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 215506c71c..9ea934fa57 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -479,6 +479,9 @@ F: package/python-rtslib-fb/
F: package/python-urwid/
F: package/targetcli-fb/
+N: Christopher McCrory <chrismcc@gmail.com>
+F: package/fake-hwclock/
+
N: Clayton Shotwell <clayton.shotwell@rockwellcollins.com>
F: package/audit/
F: package/checkpolicy/
diff --git a/package/Config.in b/package/Config.in
index f5a17492c7..42c61c242e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1982,6 +1982,7 @@ comment "Utilities"
source "package/dialog/Config.in"
source "package/dtach/Config.in"
source "package/easy-rsa/Config.in"
+ source "package/fake-hwclock/Config.in"
source "package/file/Config.in"
source "package/gnupg/Config.in"
source "package/gnupg2/Config.in"
diff --git a/package/fake-hwclock/Config.in b/package/fake-hwclock/Config.in
new file mode 100644
index 0000000000..f7e01dfb46
--- /dev/null
+++ b/package/fake-hwclock/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_FAKE_HWCLOCK
+ bool "fake-hwclock"
+ help
+ Save/restore system clock on machines without working RTC hardware
+
+if BR2_PACKAGE_FAKE_HWCLOCK
+config BR2_PACKAGE_FAKE_HWCLOCK_CRONJOB
+ bool "install fake-hwclock cronjob"
+ help
+ Hourly cronjob to save current timestamp
+
+endif
diff --git a/package/fake-hwclock/fake-hwclock.hash b/package/fake-hwclock/fake-hwclock.hash
new file mode 100644
index 0000000000..7bf147d7a6
--- /dev/null
+++ b/package/fake-hwclock/fake-hwclock.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 b658d6d130f66eeaa79bae6943ebae45a85bc6a932260befff75c630a8cfe428 fake-hwclock-v0.11.tar.gz
diff --git a/package/fake-hwclock/fake-hwclock.mk b/package/fake-hwclock/fake-hwclock.mk
new file mode 100644
index 0000000000..caae8605b9
--- /dev/null
+++ b/package/fake-hwclock/fake-hwclock.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# fake-hwclock
+#
+################################################################################
+
+FAKE_HWCLOCK_VERSION = v0.11
+FAKE_HWCLOCK_SITE = https://git.einval.com/git/fake-hwclock.git
+FAKE_HWCLOCK_SITE_METHOD = git
+FAKE_HWCLOCK_LICENSE_FILES = COPYING
+FAKE_LICENSE = GPL-2.0
+
+define FAKE_HWCLOCK_NO_LSB
+ $(SED) 's at . /lib/lsb/init-functions@#. /lib/lsb/init-functions@' \
+ $(@D)/debian/fake-hwclock.init
+endef
+
+FAKE_HWCLOCK_POST_PATCH_HOOKS += FAKE_HWCLOCK_NO_LSB
+
+ifeq ($(BR2_PACKAGE_FAKE_HWCLOCK_CRONJOB),y)
+define FAKE_HWCLOCK_INSTALL_CRONJOB
+ $(INSTALL) -D -m 755 $(@D)/debian/fake-hwclock.cron.hourly $(TARGET_DIR)/etc/cron.hourly/fake-hwclock
+endef
+endif
+
+define FAKE_HWCLOCK_INSTALL_TARGET_CMDS
+ $(INSTALL) -D -m 755 $(@D)/fake-hwclock $(TARGET_DIR)/sbin/fake-hwclock
+ # Use buildroot buildtime as a seed.
+ # Not ideal, but better than 1970-01-01 UTC
+ date -u '+%Y-%m-%d %H:%M:%S' > $(TARGET_DIR)/etc/fake-hwclock.data
+ $(FAKE_HWCLOCK_INSTALL_CRONJOB)
+endef
+
+# This should run before everything else, so use S00
+define FAKE_HWCLOCK_INSTALL_INIT_SYSV
+ $(INSTALL) -D -m 755 $(@D)/debian/fake-hwclock.init $(TARGET_DIR)/etc/init.d/S00fake-hwclock
+ $(INSTALL) -D -m 755 $(@D)/etc/default/fake-hwclock $(TARGET_DIR)/etc/default/fake-hwclock
+endef
+
+$(eval $(generic-package))
--
2.14.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 3/3] perl-cgi: new package
2018-08-10 14:46 [Buildroot] [PATCH 1/3] fake-hwclock: new package Christopher McCrory
@ 2018-08-10 14:46 ` Christopher McCrory
2018-08-14 3:45 ` François Perrad
2018-08-14 14:00 ` [Buildroot] [PATCH 1/3] fake-hwclock: " Thomas Petazzoni
1 sibling, 1 reply; 7+ messages in thread
From: Christopher McCrory @ 2018-08-10 14:46 UTC (permalink / raw)
To: buildroot
Signed-off-by: Christopher McCrory <chrismcc@gmail.com>
---
package/Config.in | 1 +
package/perl-cgi/Config.in | 11 +++++++++++
package/perl-cgi/perl-cgi.hash | 6 ++++++
package/perl-cgi/perl-cgi.mk | 14 ++++++++++++++
4 files changed, 32 insertions(+)
create mode 100644 package/perl-cgi/Config.in
create mode 100644 package/perl-cgi/perl-cgi.hash
create mode 100644 package/perl-cgi/perl-cgi.mk
diff --git a/package/Config.in b/package/Config.in
index 42c61c242e..9704aba846 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -665,6 +665,7 @@ endif
source "package/perl/Config.in"
if BR2_PACKAGE_PERL
menu "Perl libraries/modules"
+ source "package/perl-cgi/Config.in"
source "package/perl-convert-asn1/Config.in"
source "package/perl-crypt-blowfish/Config.in"
source "package/perl-crypt-cbc/Config.in"
diff --git a/package/perl-cgi/Config.in b/package/perl-cgi/Config.in
new file mode 100644
index 0000000000..a054ed7929
--- /dev/null
+++ b/package/perl-cgi/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_PERL_CGI
+ bool "perl-cgi"
+ depends on !BR2_STATIC_LIBS
+ select BR2_PACKAGE_PERL_HTML_PARSER
+ help
+ Handle Common Gateway Interface requests and responses
+
+ https://metacpan.org/module/CGI
+
+comment "perl-cgi needs a toolchain w/ dynamic library"
+ depends on BR2_STATIC_LIBS
diff --git a/package/perl-cgi/perl-cgi.hash b/package/perl-cgi/perl-cgi.hash
new file mode 100644
index 0000000000..a65b8e5446
--- /dev/null
+++ b/package/perl-cgi/perl-cgi.hash
@@ -0,0 +1,6 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5 0aeb8563d533e7f83724ed068b5bfc37 CGI-4.38.tar.gz
+sha256 8c58f4a529bb92a914b22b7e64c5e31185c9854a4070a6dfad44fe5cc248e7d4 CGI-4.38.tar.gz
+
+# computed by scancpan
+sha256 c7cae89f03a970e90443b93cbf4b65d287ed20572e5d81543589c4b45c80fad8 LICENSE
diff --git a/package/perl-cgi/perl-cgi.mk b/package/perl-cgi/perl-cgi.mk
new file mode 100644
index 0000000000..b8115de6ad
--- /dev/null
+++ b/package/perl-cgi/perl-cgi.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# perl-cgi
+#
+################################################################################
+
+PERL_CGI_VERSION = 4.38
+PERL_CGI_SOURCE = CGI-$(PERL_CGI_VERSION).tar.gz
+PERL_CGI_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LE/LEEJO
+PERL_CGI_DEPENDENCIES = perl-html-parser
+PERL_CGI_LICENSE = Artistic or GPL-1.0+
+PERL_CGI_LICENSE_FILES = LICENSE
+
+$(eval $(perl-package))
--
2.14.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 3/3] perl-cgi: new package
2018-08-10 14:46 ` [Buildroot] [PATCH 3/3] perl-cgi: " Christopher McCrory
@ 2018-08-14 3:45 ` François Perrad
0 siblings, 0 replies; 7+ messages in thread
From: François Perrad @ 2018-08-14 3:45 UTC (permalink / raw)
To: buildroot
2018-08-10 16:46 GMT+02:00 Christopher McCrory <chrismcc@gmail.com>:
> Signed-off-by: Christopher McCrory <chrismcc@gmail.com>
>
Acked-by: Francois Perrad <francois.perrad@gadz.org>
---
> package/Config.in | 1 +
> package/perl-cgi/Config.in | 11 +++++++++++
> package/perl-cgi/perl-cgi.hash | 6 ++++++
> package/perl-cgi/perl-cgi.mk | 14 ++++++++++++++
> 4 files changed, 32 insertions(+)
> create mode 100644 package/perl-cgi/Config.in
> create mode 100644 package/perl-cgi/perl-cgi.hash
> create mode 100644 package/perl-cgi/perl-cgi.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 42c61c242e..9704aba846 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -665,6 +665,7 @@ endif
> source "package/perl/Config.in"
> if BR2_PACKAGE_PERL
> menu "Perl libraries/modules"
> + source "package/perl-cgi/Config.in"
> source "package/perl-convert-asn1/Config.in"
> source "package/perl-crypt-blowfish/Config.in"
> source "package/perl-crypt-cbc/Config.in"
> diff --git a/package/perl-cgi/Config.in b/package/perl-cgi/Config.in
> new file mode 100644
> index 0000000000..a054ed7929
> --- /dev/null
> +++ b/package/perl-cgi/Config.in
> @@ -0,0 +1,11 @@
> +config BR2_PACKAGE_PERL_CGI
> + bool "perl-cgi"
> + depends on !BR2_STATIC_LIBS
> + select BR2_PACKAGE_PERL_HTML_PARSER
> + help
> + Handle Common Gateway Interface requests and responses
> +
> + https://metacpan.org/module/CGI
> +
> +comment "perl-cgi needs a toolchain w/ dynamic library"
> + depends on BR2_STATIC_LIBS
> diff --git a/package/perl-cgi/perl-cgi.hash b/package/perl-cgi/perl-cgi.
> hash
> new file mode 100644
> index 0000000000..a65b8e5446
> --- /dev/null
> +++ b/package/perl-cgi/perl-cgi.hash
> @@ -0,0 +1,6 @@
> +# retrieved by scancpan from http://cpan.metacpan.org/
> +md5 0aeb8563d533e7f83724ed068b5bfc37 CGI-4.38.tar.gz
> +sha256 8c58f4a529bb92a914b22b7e64c5e31185c9854a4070a6dfad44fe5cc248e7d4
> CGI-4.38.tar.gz
> +
> +# computed by scancpan
> +sha256 c7cae89f03a970e90443b93cbf4b65d287ed20572e5d81543589c4b45c80fad8
> LICENSE
> diff --git a/package/perl-cgi/perl-cgi.mk b/package/perl-cgi/perl-cgi.mk
> new file mode 100644
> index 0000000000..b8115de6ad
> --- /dev/null
> +++ b/package/perl-cgi/perl-cgi.mk
> @@ -0,0 +1,14 @@
> +###########################################################
> #####################
> +#
> +# perl-cgi
> +#
> +###########################################################
> #####################
> +
> +PERL_CGI_VERSION = 4.38
> +PERL_CGI_SOURCE = CGI-$(PERL_CGI_VERSION).tar.gz
> +PERL_CGI_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LE/LEEJO
> +PERL_CGI_DEPENDENCIES = perl-html-parser
> +PERL_CGI_LICENSE = Artistic or GPL-1.0+
> +PERL_CGI_LICENSE_FILES = LICENSE
> +
> +$(eval $(perl-package))
> --
> 2.14.4
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180814/81e160ca/attachment.html>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/3] fake-hwclock: new package
2018-08-10 14:46 [Buildroot] [PATCH 1/3] fake-hwclock: new package Christopher McCrory
2018-08-10 14:46 ` [Buildroot] [PATCH 3/3] perl-cgi: " Christopher McCrory
@ 2018-08-14 14:00 ` Thomas Petazzoni
2018-08-14 14:39 ` Yann E. MORIN
` (2 more replies)
1 sibling, 3 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2018-08-14 14:00 UTC (permalink / raw)
To: buildroot
Hello,
Yann, Arnout, Peter, there is a question below.
Christopher, there are some review comments as well.
On Fri, 10 Aug 2018 07:46:34 -0700, Christopher McCrory wrote:
> +if BR2_PACKAGE_FAKE_HWCLOCK
> +config BR2_PACKAGE_FAKE_HWCLOCK_CRONJOB
> + bool "install fake-hwclock cronjob"
> + help
> + Hourly cronjob to save current timestamp
What should be our policy for cronjobs ? I'm not sure we currently have
packages that install cronjobs. What should we do? Install
unconditionally? Have a sub-option?
I would personally lean towards installing unconditionally, but I'd
like to have others opinions before applying.
> +FAKE_HWCLOCK_VERSION = v0.11
> +FAKE_HWCLOCK_SITE = https://git.einval.com/git/fake-hwclock.git
> +FAKE_HWCLOCK_SITE_METHOD = git
> +FAKE_HWCLOCK_LICENSE_FILES = COPYING
> +FAKE_LICENSE = GPL-2.0
This variable is wrong: it should be FAKE_HWCLOCK_LICENSE. Also, we
prefer to have it before the LICENSE_FILES variable.
> +define FAKE_HWCLOCK_NO_LSB
> + $(SED) 's at . /lib/lsb/init-functions@#. /lib/lsb/init-functions@' \
> + $(@D)/debian/fake-hwclock.init
> +endef
This should be done by a patch.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/3] fake-hwclock: new package
2018-08-14 14:00 ` [Buildroot] [PATCH 1/3] fake-hwclock: " Thomas Petazzoni
@ 2018-08-14 14:39 ` Yann E. MORIN
2018-08-14 17:44 ` Christopher McCrory
2018-08-14 23:04 ` Arnout Vandecappelle
2 siblings, 0 replies; 7+ messages in thread
From: Yann E. MORIN @ 2018-08-14 14:39 UTC (permalink / raw)
To: buildroot
Thomas, Christopher, All,
On 2018-08-14 16:00 +0200, Thomas Petazzoni spake thusly:
> On Fri, 10 Aug 2018 07:46:34 -0700, Christopher McCrory wrote:
> > +if BR2_PACKAGE_FAKE_HWCLOCK
> > +config BR2_PACKAGE_FAKE_HWCLOCK_CRONJOB
> > + bool "install fake-hwclock cronjob"
> > + help
> > + Hourly cronjob to save current timestamp
>
> What should be our policy for cronjobs ? I'm not sure we currently have
> packages that install cronjobs. What should we do? Install
> unconditionally? Have a sub-option?
>
> I would personally lean towards installing unconditionally, but I'd
> like to have others opinions before applying.
Don't add an option; always install it.
Unless there is a *very* good reason not to (e.g. security
considerations), in which case a rationale must be provided.
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/3] fake-hwclock: new package
2018-08-14 14:00 ` [Buildroot] [PATCH 1/3] fake-hwclock: " Thomas Petazzoni
2018-08-14 14:39 ` Yann E. MORIN
@ 2018-08-14 17:44 ` Christopher McCrory
2018-08-14 23:04 ` Arnout Vandecappelle
2 siblings, 0 replies; 7+ messages in thread
From: Christopher McCrory @ 2018-08-14 17:44 UTC (permalink / raw)
To: buildroot
On Tue, Aug 14, 2018, 7:00 AM Thomas Petazzoni <thomas.petazzoni@bootlin.com>
wrote:
> Hello,
>
> Yann, Arnout, Peter, there is a question below.
>
> Christopher, there are some review comments as well.
>
> On phone, sorry for formatting. I'll look into this and the others
tomorrow. My other job got in the way today.
>
> On Fri, 10 Aug 2018 07:46:34 -0700, Christopher McCrory wrote:
>
> > +if BR2_PACKAGE_FAKE_HWCLOCK
> > +config BR2_PACKAGE_FAKE_HWCLOCK_CRONJOB
> > + bool "install fake-hwclock cronjob"
> > + help
> > + Hourly cronjob to save current timestamp
>
> What should be our policy for cronjobs ? I'm not sure we currently have
> packages that install cronjobs. What should we do? Install
> unconditionally? Have a sub-option?
>
> I would personally lean towards installing unconditionally, but I'd
> like to have others opinions before applying.
>
> > +FAKE_HWCLOCK_VERSION = v0.11
> > +FAKE_HWCLOCK_SITE = https://git.einval.com/git/fake-hwclock.git
> > +FAKE_HWCLOCK_SITE_METHOD = git
> > +FAKE_HWCLOCK_LICENSE_FILES = COPYING
> > +FAKE_LICENSE = GPL-2.0
>
> This variable is wrong: it should be FAKE_HWCLOCK_LICENSE. Also, we
> prefer to have it before the LICENSE_FILES variable.
>
> > +define FAKE_HWCLOCK_NO_LSB
> > + $(SED) 's at . /lib/lsb/init-functions@#. /lib/lsb/init-functions@' \
> > + $(@D)/debian/fake-hwclock.init
> > +endef
>
> This should be done by a patch.
>
> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180814/0deb8d54/attachment.html>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/3] fake-hwclock: new package
2018-08-14 14:00 ` [Buildroot] [PATCH 1/3] fake-hwclock: " Thomas Petazzoni
2018-08-14 14:39 ` Yann E. MORIN
2018-08-14 17:44 ` Christopher McCrory
@ 2018-08-14 23:04 ` Arnout Vandecappelle
2 siblings, 0 replies; 7+ messages in thread
From: Arnout Vandecappelle @ 2018-08-14 23:04 UTC (permalink / raw)
To: buildroot
On 14-08-18 16:00, Thomas Petazzoni wrote:
> Hello,
>
> Yann, Arnout, Peter, there is a question below.
>
> Christopher, there are some review comments as well.
>
> On Fri, 10 Aug 2018 07:46:34 -0700, Christopher McCrory wrote:
>
>> +if BR2_PACKAGE_FAKE_HWCLOCK
>> +config BR2_PACKAGE_FAKE_HWCLOCK_CRONJOB
>> + bool "install fake-hwclock cronjob"
>> + help
>> + Hourly cronjob to save current timestamp
>
> What should be our policy for cronjobs ? I'm not sure we currently have
> packages that install cronjobs.
We don't, for a good reason: we don't start a cron daemon.
Actually the 'at' package does install crontab entries, but it's kind of
pointless without crond...
> What should we do? Install
> unconditionally? Have a sub-option?
I agree with unconditional. Ideally, though, as part of the _INSTALL_INIT,
because for systemd you really want to use systemd.timer units instead of crontabs.
>
> I would personally lean towards installing unconditionally, but I'd
> like to have others opinions before applying.
>
>> +FAKE_HWCLOCK_VERSION = v0.11
>> +FAKE_HWCLOCK_SITE = https://git.einval.com/git/fake-hwclock.git
>> +FAKE_HWCLOCK_SITE_METHOD = git
>> +FAKE_HWCLOCK_LICENSE_FILES = COPYING
>> +FAKE_LICENSE = GPL-2.0
>
> This variable is wrong: it should be FAKE_HWCLOCK_LICENSE. Also, we
> prefer to have it before the LICENSE_FILES variable.
>
>> +define FAKE_HWCLOCK_NO_LSB
>> + $(SED) 's at . /lib/lsb/init-functions@#. /lib/lsb/init-functions@' \
>> + $(@D)/debian/fake-hwclock.init
>> +endef
>
> This should be done by a patch.
Actually I think we'd prefer a Buildroot-specific init script instead of the
bloaty Debian one.
Regards,
Arnout
>
> Thanks!
>
> Thomas
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-08-14 23:04 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-10 14:46 [Buildroot] [PATCH 1/3] fake-hwclock: new package Christopher McCrory
2018-08-10 14:46 ` [Buildroot] [PATCH 3/3] perl-cgi: " Christopher McCrory
2018-08-14 3:45 ` François Perrad
2018-08-14 14:00 ` [Buildroot] [PATCH 1/3] fake-hwclock: " Thomas Petazzoni
2018-08-14 14:39 ` Yann E. MORIN
2018-08-14 17:44 ` Christopher McCrory
2018-08-14 23:04 ` Arnout Vandecappelle
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.