All of lore.kernel.org
 help / color / mirror / Atom feed
From: gs-yoctoproject.org@gluelogic.com
To: Ross Burton <Ross.Burton@arm.com>
Cc: "poky@lists.yoctoproject.org" <poky@lists.yoctoproject.org>
Subject: Re: [poky] [PATCH 0/3] lighttpd-1.4.72
Date: Fri, 20 Oct 2023 11:40:08 -0400	[thread overview]
Message-ID: <ZTKfWB1ASqGvFsca@xps13> (raw)
In-Reply-To: <10278B77-7E5C-43FB-94CC-A1E7E0C50B95@arm.com>

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


  reply	other threads:[~2023-10-20 15:40 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-20 11:48 [PATCH 0/3] lighttpd-1.4.72 Glenn Strauss
2023-10-20 11:48 ` [PATCH 1/3] lighttpd: upgrade 1.4.71 -> 1.4.72 Glenn Strauss
2023-10-20 16:28   ` [poky] " Khem Raj
2023-10-20 11:48 ` [PATCH 2/3] lighttpd: update init script Glenn Strauss
2023-10-20 11:48 ` [PATCH 3/3] lighttpd: modernize lighttpd.conf Glenn Strauss
2023-10-20 12:08 ` [poky] [PATCH 0/3] lighttpd-1.4.72 Richard Purdie
2023-10-20 12:18 ` Ross Burton
2023-10-20 12:54   ` gs-yoctoproject.org
2023-10-20 13:55     ` Ross Burton
2023-10-20 15:40       ` gs-yoctoproject.org [this message]
2024-03-14 18:32       ` Martin Jansa
     [not found]       ` <17BCB52E812AFFB8.6435@lists.yoctoproject.org>
2024-03-15  9:59         ` Martin Jansa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZTKfWB1ASqGvFsca@xps13 \
    --to=gs-yoctoproject.org@gluelogic.com \
    --cc=Ross.Burton@arm.com \
    --cc=poky@lists.yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.