mbox series

[0/3] lighttpd-1.4.72

Message ID 20231020114845.100062-1-gs-yoctoproject.org@gluelogic.com (mailing list archive)
Headers show
Series lighttpd-1.4.72 | expand

Message

Glenn Strauss Oct. 20, 2023, 11:48 a.m. UTC
From: Glenn Strauss <gstrauss@gluelogic.com>


Glenn Strauss (3):
  lighttpd: upgrade 1.4.71 -> 1.4.72
  lighttpd: update init script
  lighttpd: modernize lighttpd.conf

 .../lighttpd/lighttpd/lighttpd                | 19 +++++++++-
 .../lighttpd/lighttpd/lighttpd.conf           | 38 ++++---------------
 ...{lighttpd_1.4.71.bb => lighttpd_1.4.72.bb} |  2 +-
 3 files changed, 26 insertions(+), 33 deletions(-)
 rename meta/recipes-extended/lighttpd/{lighttpd_1.4.71.bb => lighttpd_1.4.72.bb} (97%)

Comments

Richard Purdie Oct. 20, 2023, 12:08 p.m. UTC | #1
On Fri, 2023-10-20 at 07:48 -0400, Glenn Strauss wrote:
> From: Glenn Strauss <gstrauss@gluelogic.com>
> 
> 
> Glenn Strauss (3):
>   lighttpd: upgrade 1.4.71 -> 1.4.72
>   lighttpd: update init script
>   lighttpd: modernize lighttpd.conf
> 
>  .../lighttpd/lighttpd/lighttpd                | 19 +++++++++-
>  .../lighttpd/lighttpd/lighttpd.conf           | 38 ++++---------------
>  ...{lighttpd_1.4.71.bb => lighttpd_1.4.72.bb} |  2 +-
>  3 files changed, 26 insertions(+), 33 deletions(-)
>  rename meta/recipes-extended/lighttpd/{lighttpd_1.4.71.bb => lighttpd_1.4.72.bb} (97%)

At a quick glance the patches look reasonable, thanks. Would you be
able to resend this series to the openembededded-core mailing list
though please? Patches for that component should be sent there.

Cheers,

Richard
Ross Burton Oct. 20, 2023, 12:18 p.m. UTC | #2
On 20 Oct 2023, at 12:48, Glenn Strauss via lists.yoctoproject.org <gs-yoctoproject.org=gluelogic.com@lists.yoctoproject.org> wrote:
> Glenn Strauss (3):
>  lighttpd: upgrade 1.4.71 -> 1.4.72
>  lighttpd: update init script
>  lighttpd: modernize lighttpd.conf

Poky is a generated repository that doesn’t actually have any patches directly merged into it, so these should be sent to openembedded-core@lists.yoctoproject.org <mailto:openembedded-core@lists.yoctoproject.org>.

However, I was also just looking at the lighttpd recipe.  Specifically I was extracting the sample site from the main package so it’s easier to add in your own site files, basically putting /var/www/pages into lighttpd-site-sample and then recommending that from the main package.  The goal being that in the simple test case the sample site is pulled in, but it’s trivial to package up your own site that conflicts with site-sample.

This worked but then I realised that the config file is fairly tied to the site too.  As - presumably - a lighttpd user, do you have any opinion on where the lighttpd.conf file should be packaged?  I’m leaning towards bundling it with the sample-site but am undecided as to whether that’s actually a good idea.

Thanks,
Ross
Glenn Strauss Oct. 20, 2023, 12:54 p.m. UTC | #3
On Fri, Oct 20, 2023 at 12:18:22PM +0000, Ross Burton wrote:
> On 20 Oct 2023, at 12:48, Glenn Strauss via lists.yoctoproject.org <gs-yoctoproject.org=gluelogic.com@lists.yoctoproject.org> wrote:
> > Glenn Strauss (3):
> >  lighttpd: upgrade 1.4.71 -> 1.4.72
> >  lighttpd: update init script
> >  lighttpd: modernize lighttpd.conf
> 
> Poky is a generated repository that doesn’t actually have any patches directly merged into it, so these should be sent to openembedded-core@lists.yoctoproject.org <mailto:openembedded-core@lists.yoctoproject.org>.

I'll re-send to the openembedded-core list.
Thanks for the pointer, Richard and Ross.

==> Would someone please update the documentation?

https://docs.yoctoproject.org/contributor-guide/submit-changes.html#finding-a-suitable-mailing-list
4.4.3 Finding a Suitable Mailing List
“meta-*” trees: These trees contain Metadata. Use the poky mailing list.

> However, I was also just looking at the lighttpd recipe.  Specifically I was extracting the sample site from the main package so it’s easier to add in your own site files, basically putting /var/www/pages into lighttpd-site-sample and then recommending that from the main package.  The goal being that in the simple test case the sample site is pulled in, but it’s trivial to package up your own site that conflicts with site-sample.

That sounds reasonable to me.
I like the idea of being able to remove the sample site.
I also like the idea of having a sample site to get people started.

> This worked but then I realised that the config file is fairly tied to the site too.  As - presumably - a lighttpd user, do you have any opinion on where the lighttpd.conf file should be packaged?  I’m leaning towards bundling it with the sample-site but am undecided as to whether that’s actually a good idea.

I am a lighttpd developer.  While I have some strong opinions about
packages and how it is done in many different distros, I am less
familiar with yocto specifics and more interested in trying to help
people run the best available version of lighttpd, which is always
the latest stable release.

I'll share my thoughts and hope some people using lighttpd with ptxdist
can add their opinions, too.

Overall, one-size fits all packaging generally makes tradeoffs
for new users, versus scripters, versus dev-ops.  Personally, I
think packagers tend to overcomplicate things trying to please too
many different user types at once.

The smallest lighttpd config is one line:
  server.document-root = "/path/to/test/site"
and lighttpd will by default listen on port 80 and will run as the user
that started lighttpd.  Often, a test site also includes a second line
in the config:
  index-file.names = ("index.html")
and the test site has a single file /path/to/test/site/index.html

I think that is what distros should ship, along with one more line:
  include "/etc/lighttpd/conf.d/*.conf"

Users can then reconfigure the server as they like by dropping files in
/etc/lighttpd/conf.d/*.conf, including overwriting the default document
root with
  server.document-root := "/path/to/default/site"
and disabling index files with
  index-file.names = ()
or reconfiguring with something like
  index-file.names := ("index.html", "index.htm")

The sample site, if a separate package, could add files into
/etc/lighttpd/conf.d/*.conf (or whatever location ptxdist uses)
with the sample site config.

Cheers, Glenn
Ross Burton Oct. 20, 2023, 1:55 p.m. UTC | #4
On 20 Oct 2023, at 13:54, gs-yoctoproject.org@gluelogic.com wrote:
> 
> On Fri, Oct 20, 2023 at 12:18:22PM +0000, Ross Burton wrote:
>> On 20 Oct 2023, at 12:48, Glenn Strauss via lists.yoctoproject.org <gs-yoctoproject.org=gluelogic.com@lists.yoctoproject.org> wrote:
>>> Glenn Strauss (3):
>>> lighttpd: upgrade 1.4.71 -> 1.4.72
>>> lighttpd: update init script
>>> lighttpd: modernize lighttpd.conf
>> 
>> Poky is a generated repository that doesn’t actually have any patches directly merged into it, so these should be sent to openembedded-core@lists.yoctoproject.org <mailto:openembedded-core@lists.yoctoproject.org>.
> 
> I'll re-send to the openembedded-core list.
> Thanks for the pointer, Richard and Ross.
> 
> ==> Would someone please update the documentation?
> 
> https://docs.yoctoproject.org/contributor-guide/submit-changes.html#finding-a-suitable-mailing-list
> 4.4.3 Finding a Suitable Mailing List
> “meta-*” trees: These trees contain Metadata. Use the poky mailing list.

So we obviously need to make that list a bit clearer.  The relevant line was two above:

    • Core Metadata: Send your patches to the openembedded-core mailing list. For example, a change to anything under the meta or scripts directories should be sent to this mailing list.

A better way to do that would be to just list the top level folders, I’ll send a change.

>> However, I was also just looking at the lighttpd recipe.  Specifically I was extracting the sample site from the main package so it’s easier to add in your own site files, basically putting /var/www/pages into lighttpd-site-sample and then recommending that from the main package.  The goal being that in the simple test case the sample site is pulled in, but it’s trivial to package up your own site that conflicts with site-sample.
> 
> That sounds reasonable to me.
> I like the idea of being able to remove the sample site.
> I also like the idea of having a sample site to get people started.
> 
>> This worked but then I realised that the config file is fairly tied to the site too.  As - presumably - a lighttpd user, do you have any opinion on where the lighttpd.conf file should be packaged?  I’m leaning towards bundling it with the sample-site but am undecided as to whether that’s actually a good idea.
> 
> I am a lighttpd developer.  While I have some strong opinions about
> packages and how it is done in many different distros, I am less
> familiar with yocto specifics and more interested in trying to help
> people run the best available version of lighttpd, which is always
> the latest stable release.
> 
> I'll share my thoughts and hope some people using lighttpd with ptxdist
> can add their opinions, too.
> 
> Overall, one-size fits all packaging generally makes tradeoffs
> for new users, versus scripters, versus dev-ops.  Personally, I
> think packagers tend to overcomplicate things trying to please too
> many different user types at once.
> 
> The smallest lighttpd config is one line:
>  server.document-root = "/path/to/test/site"
> and lighttpd will by default listen on port 80 and will run as the user
> that started lighttpd.  Often, a test site also includes a second line
> in the config:
>  index-file.names = ("index.html")
> and the test site has a single file /path/to/test/site/index.html
> 
> I think that is what distros should ship, along with one more line:
>  include "/etc/lighttpd/conf.d/*.conf"
> 
> Users can then reconfigure the server as they like by dropping files in
> /etc/lighttpd/conf.d/*.conf, including overwriting the default document
> root with
>  server.document-root := "/path/to/default/site"
> and disabling index files with
>  index-file.names = ()
> or reconfiguring with something like
>  index-file.names := ("index.html", "index.htm")
> 
> The sample site, if a separate package, could add files into
> /etc/lighttpd/conf.d/*.conf (or whatever location ptxdist uses)
> with the sample site config.

That’s interesting, thanks.  Our use-case is slightly different in that we encourage people to customise the recipes as needed, whereas on Debian you wouldn’t expect to rebuild lighttpd at all.

A minimal lighttpd.conf which supports fragments sounds ideal.  Would it be sensible to have a truly minimal /etc/lightttd/lighttp.conf in the lighttpd package which sets just document.root/index-file-names, and then move the modernised config file you sent to /etc/lighttpd/conf.d/sample-site.conf as an example?

As a distro maintainer it’s hard to know enough about every package, so it’s good to have an upstream developer to ask questions!

Cheers,
Ross
Glenn Strauss Oct. 20, 2023, 3:40 p.m. UTC | #5
On Fri, Oct 20, 2023 at 01:55:50PM +0000, Ross Burton wrote:
> On 20 Oct 2023, at 13:54, gs-yoctoproject.org@gluelogic.com wrote:
> > 
> > On Fri, Oct 20, 2023 at 12:18:22PM +0000, Ross Burton wrote:
> >> On 20 Oct 2023, at 12:48, Glenn Strauss via lists.yoctoproject.org <gs-yoctoproject.org=gluelogic.com@lists.yoctoproject.org> wrote:
> >>> Glenn Strauss (3):
> >>> lighttpd: upgrade 1.4.71 -> 1.4.72
> >>> lighttpd: update init script
> >>> lighttpd: modernize lighttpd.conf
> >> 
> >> Poky is a generated repository that doesn’t actually have any patches directly merged into it, so these should be sent to openembedded-core@lists.yoctoproject.org <mailto:openembedded-core@lists.yoctoproject.org>.
> > 
> > I'll re-send to the openembedded-core list.
> > Thanks for the pointer, Richard and Ross.
> > 
> > ==> Would someone please update the documentation?
> > 
> > https://docs.yoctoproject.org/contributor-guide/submit-changes.html#finding-a-suitable-mailing-list
> > 4.4.3 Finding a Suitable Mailing List
> > “meta-*” trees: These trees contain Metadata. Use the poky mailing list.
> 
> So we obviously need to make that list a bit clearer.  The relevant line was two above:
> 
>     • Core Metadata: Send your patches to the openembedded-core mailing list. For example, a change to anything under the meta or scripts directories should be sent to this mailing list.
> 
> A better way to do that would be to just list the top level folders, I’ll send a change.

Sorry.  I guess I skimmed that too quickly.  I read the left half of the
page, and not the right half.  Since this is in the section about where
to send patches, maybe list only the openembedded-core mailing list and
add a link to a separate page describing the rest of the lists?



> >> However, I was also just looking at the lighttpd recipe.  Specifically I was extracting the sample site from the main package so it’s easier to add in your own site files, basically putting /var/www/pages into lighttpd-site-sample and then recommending that from the main package.  The goal being that in the simple test case the sample site is pulled in, but it’s trivial to package up your own site that conflicts with site-sample.
> > 
> > That sounds reasonable to me.
> > I like the idea of being able to remove the sample site.
> > I also like the idea of having a sample site to get people started.
> > 
> >> This worked but then I realised that the config file is fairly tied to the site too.  As - presumably - a lighttpd user, do you have any opinion on where the lighttpd.conf file should be packaged?  I’m leaning towards bundling it with the sample-site but am undecided as to whether that’s actually a good idea.
> > 
> > I am a lighttpd developer.  While I have some strong opinions about
> > packages and how it is done in many different distros, I am less
> > familiar with yocto specifics and more interested in trying to help
> > people run the best available version of lighttpd, which is always
> > the latest stable release.
> > 
> > I'll share my thoughts and hope some people using lighttpd with ptxdist
> > can add their opinions, too.
> > 
> > Overall, one-size fits all packaging generally makes tradeoffs
> > for new users, versus scripters, versus dev-ops.  Personally, I
> > think packagers tend to overcomplicate things trying to please too
> > many different user types at once.
> > 
> > The smallest lighttpd config is one line:
> >  server.document-root = "/path/to/test/site"
> > and lighttpd will by default listen on port 80 and will run as the user
> > that started lighttpd.  Often, a test site also includes a second line
> > in the config:
> >  index-file.names = ("index.html")
> > and the test site has a single file /path/to/test/site/index.html
> > 
> > I think that is what distros should ship, along with one more line:
> >  include "/etc/lighttpd/conf.d/*.conf"
> > 
> > Users can then reconfigure the server as they like by dropping files in
> > /etc/lighttpd/conf.d/*.conf, including overwriting the default document
> > root with
> >  server.document-root := "/path/to/default/site"
> > and disabling index files with
> >  index-file.names = ()
> > or reconfiguring with something like
> >  index-file.names := ("index.html", "index.htm")
> > 
> > The sample site, if a separate package, could add files into
> > /etc/lighttpd/conf.d/*.conf (or whatever location ptxdist uses)
> > with the sample site config.
> 
> That’s interesting, thanks.  Our use-case is slightly different in that we encourage people to customise the recipes as needed, whereas on Debian you wouldn’t expect to rebuild lighttpd at all.
> 
> A minimal lighttpd.conf which supports fragments sounds ideal.  Would it be sensible to have a truly minimal /etc/lightttd/lighttp.conf in the lighttpd package which sets just document.root/index-file-names, and then move the modernised config file you sent to /etc/lighttpd/conf.d/sample-site.conf as an example?

I might suggest even less than that.

If openembedded encourages people to customize the recipies, then should
the lighttpd.conf provided with the package not be fully-functional
out-of-the-box?  A simple config of
  include "/etc/lighttpd/conf.d/*.conf"
might be the base, and a separate "sample" package would provide a
single-file site with /usr/share/lighttpd/sample/index.html
and a single-file config in /etc/lighttpd/conf.d/sample.conf which sets
  server.document-root = "/usr/share/lighttpd/sample/"

Once you configure your own site, you can then remove the sample site.

While lighttpd provides configuration directives to override other
settings, I prefer shorter configs rather than a huge mess in
/etc/lighttpd/conf.d/*.conf with competition to overwrite configs.

The lighttpd upstream source code provides some sample configs and
scripts, too, and some distros install these files under
/usr/share/lighttpd for reference.  On embedded systems where disk space
matters, this could be a separate 'doc' package which is optional to
install.

> As a distro maintainer it’s hard to know enough about every package, so it’s good to have an upstream developer to ask questions!

Ask away!  I have questions, too.  Many distros have policies about
changes for backwards compatibility with existing installations.

As we discuss changing the lighttpd recipe, what level of backwards
compatibility is required in changes made to the lighttpd recipe?

lighttpd is a small executable and has a small memory footprint.
However, in embedded systems, sometimes tiny is a requirement.

How much emphasis should be placed on making lighttpd as tiny as
possible?

Doing so may save a few pages of memory, but at the cost of
functionality that people might expect by default.  For example,
lighttpd can save about (12) 4k pages of .text and .data in memory if
support for HTTP/2 is disabled in lighttpd.conf (and mod_h2.so is not
loaded).  However, a typical admin using lighttpd probably desires to
have HTTP/2 support available, and HTTP/2 support is enabled by default
in lighttpd.  Another thing -- and the list does not end here -- is that
lighttpd supports multiple TLS libraries.  On embedded systems, mbedtls
or wolfssl are generally lower-resource choices than openssl or gnutls,
though openssl and gnutls tend to be higher performance (and higher
resource usage).

Cheers, Glenn
Martin Jansa March 14, 2024, 6:32 p.m. UTC | #6
On Fri, Oct 20, 2023 at 3:56 PM Ross Burton <ross.burton@arm.com> wrote:
>
> On 20 Oct 2023, at 13:54, gs-yoctoproject.org@gluelogic.com wrote:
> >
> > On Fri, Oct 20, 2023 at 12:18:22PM +0000, Ross Burton wrote:
> >> On 20 Oct 2023, at 12:48, Glenn Strauss via lists.yoctoproject.org <gs-yoctoproject.org=gluelogic.com@lists.yoctoproject.org> wrote:
> >>> Glenn Strauss (3):
> >>> lighttpd: upgrade 1.4.71 -> 1.4.72
> >>> lighttpd: update init script
> >>> lighttpd: modernize lighttpd.conf
> >>
> >> Poky is a generated repository that doesn’t actually have any patches directly merged into it, so these should be sent to openembedded-core@lists.yoctoproject.org <mailto:openembedded-core@lists.yoctoproject.org>.
> >
> > I'll re-send to the openembedded-core list.
> > Thanks for the pointer, Richard and Ross.
> >
> > ==> Would someone please update the documentation?
> >
> > https://docs.yoctoproject.org/contributor-guide/submit-changes.html#finding-a-suitable-mailing-list
> > 4.4.3 Finding a Suitable Mailing List
> > “meta-*” trees: These trees contain Metadata. Use the poky mailing list.
>
> So we obviously need to make that list a bit clearer.  The relevant line was two above:
>
>     • Core Metadata: Send your patches to the openembedded-core mailing list. For example, a change to anything under the meta or scripts directories should be sent to this mailing list.
>
> A better way to do that would be to just list the top level folders, I’ll send a change.

I just talked with another person confused by '“meta-*” trees', can we
change this to '“meta-*” trees inside poky repository', to make it
more clear that it doesn't apply e.g. to meta-oe?

I guess then poky users still might get confused as add-layer meta-oe
will add meta-oe into poky checkout (which isn't really inside poky
repository) but still confusing.

Or were you thinking about sending a change from '“meta-*” trees' to
'meta-yocto-bsp, meta-poky' and forgot to send that change?

Regards,
Martin Jansa March 15, 2024, 9:59 a.m. UTC | #7
yocto-docs update sent:
https://patchwork.yoctoproject.org/project/docs/patch/20240315094805.2990394-1-martin.jansa@gmail.com/

On Thu, Mar 14, 2024 at 7:32 PM Martin Jansa via
lists.yoctoproject.org <martin.jansa=gmail.com@lists.yoctoproject.org>
wrote:
>
> On Fri, Oct 20, 2023 at 3:56 PM Ross Burton <ross.burton@arm.com> wrote:
> >
> > On 20 Oct 2023, at 13:54, gs-yoctoproject.org@gluelogic.com wrote:
> > >
> > > On Fri, Oct 20, 2023 at 12:18:22PM +0000, Ross Burton wrote:
> > >> On 20 Oct 2023, at 12:48, Glenn Strauss via lists.yoctoproject.org <gs-yoctoproject.org=gluelogic.com@lists.yoctoproject.org> wrote:
> > >>> Glenn Strauss (3):
> > >>> lighttpd: upgrade 1.4.71 -> 1.4.72
> > >>> lighttpd: update init script
> > >>> lighttpd: modernize lighttpd.conf
> > >>
> > >> Poky is a generated repository that doesn’t actually have any patches directly merged into it, so these should be sent to openembedded-core@lists.yoctoproject.org <mailto:openembedded-core@lists.yoctoproject.org>.
> > >
> > > I'll re-send to the openembedded-core list.
> > > Thanks for the pointer, Richard and Ross.
> > >
> > > ==> Would someone please update the documentation?
> > >
> > > https://docs.yoctoproject.org/contributor-guide/submit-changes.html#finding-a-suitable-mailing-list
> > > 4.4.3 Finding a Suitable Mailing List
> > > “meta-*” trees: These trees contain Metadata. Use the poky mailing list.
> >
> > So we obviously need to make that list a bit clearer.  The relevant line was two above:
> >
> >     • Core Metadata: Send your patches to the openembedded-core mailing list. For example, a change to anything under the meta or scripts directories should be sent to this mailing list.
> >
> > A better way to do that would be to just list the top level folders, I’ll send a change.
>
> I just talked with another person confused by '“meta-*” trees', can we
> change this to '“meta-*” trees inside poky repository', to make it
> more clear that it doesn't apply e.g. to meta-oe?
>
> I guess then poky users still might get confused as add-layer meta-oe
> will add meta-oe into poky checkout (which isn't really inside poky
> repository) but still confusing.
>
> Or were you thinking about sending a change from '“meta-*” trees' to
> 'meta-yocto-bsp, meta-poky' and forgot to send that change?
>
> Regards,
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#13310): https://lists.yoctoproject.org/g/poky/message/13310
> Mute This Topic: https://lists.yoctoproject.org/mt/102079185/3617156
> Group Owner: poky+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/poky/unsub [martin.jansa@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>