unofficial mirror of meta@public-inbox.org
 help / color / mirror / Atom feed
* Difficulty following the AGPL for example systemd units
@ 2022-04-24 22:01 Jason Yundt
  2022-04-25 23:22 ` Eric Wong
  0 siblings, 1 reply; 6+ messages in thread
From: Jason Yundt @ 2022-04-24 22:01 UTC (permalink / raw)
  To: meta

Hello¸

I’m trying to set up public-inbox-httpd on my Web site [1], and I would like 
to use the public-inbox-httpd systemd units from the examples folder [2] [3]. 
They don’t exactly fit my needs, so I would like to modify them before 
deploying them. Here’s where I run into a problem:

Section 0 of the GNU AGPL says “"The Program" refers to any copyrightable work 
licensed under this License.” [4] For public-inbox, I think that the Program 
is the entire public-inbox source tree [5]. In other words, I think that those 
two systemd units [2] [3] are part of the Program.

Section 1 says “The Corresponding Source for a work in source code form is 
that same work.” [6] I think that the work in this case is the entire public-
inbox source tree. This means that the Corresponding Source is the entire 
public-inbox source tree which in turn means that those two systemd units are 
part of the Corresponding Source.

Section 13 says “[…]if you modify the Program, your modified version must 
prominently offer all users interacting with it remotely through a computer 
network (if your version supports such interaction) an opportunity to receive 
the Corresponding Source of your version by providing access to the 
Corresponding Source from a network server at no charge, through some standard 
or customary means of facilitating copying of software.” [7]

Since those two systemd units are part of the Program, when I modify them I’m 
modifying the Program. In other words, when I modify those two systemd units, 
I’ll have to follow that section 13 requirement. In other words, “[my] modified 
version must prominently offer all users interacting with it remotely through a 
computer network […] an opportunity to receive the Corresponding Source of 
[my] version”.

The right way to do this would be to create a Git repo for my soft fork of 
public-inbox and change the mirror page [8]. The mirror page says

“AGPL code for this site:
  git clone https://public-inbox.org/public-inbox.git”

As far as I can tell, the only way for me to change that URL is to edit lib/
PublicInbox/WwwStream.pm. If I did that, then I would no longer be able to 
rely on my distro’s public-inbox packages. I would have to create my own 
system for updating public-inbox.

This makes using those example units annoyingly complicated. Here’s some ideas 
that I have for improving this situation:

1. Release those systemd units under something other than the GNU AGPL.
2. Add a public-inbox source tree option to config files. This option would 
allow you to override the “AGPL code for this site” URL.

Either option would work and both are definitely not necessary.

From,
Jason Yundt

[1]: <https://jasonyundt.website/>
[2]: <https://public-inbox.org/public-inbox.git/tree/examples/public-inbox-httpd@.service>
[3]: <https://public-inbox.org/public-inbox.git/tree/examples/public-inbox-httpd.socket>
[4]: <https://www.gnu.org/licenses/agpl-3.0.html#section0>
[5]: <https://public-inbox.org/public-inbox.git/tree/>
[6]: <https://www.gnu.org/licenses/agpl-3.0.html#section1>
[7]: <https://www.gnu.org/licenses/agpl-3.0.html#section13>
[8]: <https://public-inbox.org/meta/_/text/mirror/>





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Difficulty following the AGPL for example systemd units
  2022-04-24 22:01 Difficulty following the AGPL for example systemd units Jason Yundt
@ 2022-04-25 23:22 ` Eric Wong
       [not found]   ` <20220426222705.GA30933@dcvr>
  0 siblings, 1 reply; 6+ messages in thread
From: Eric Wong @ 2022-04-25 23:22 UTC (permalink / raw)
  To: Jason Yundt; +Cc: meta

Jason Yundt <jason@jasonyundt.email> wrote:
> Hello¸
> 
> I’m trying to set up public-inbox-httpd on my Web site [1], and I would like 
> to use the public-inbox-httpd systemd units from the examples folder [2] [3]. 
> They don’t exactly fit my needs, so I would like to modify them before 
> deploying them. Here’s where I run into a problem:
> 
> Section 0 of the GNU AGPL says “"The Program" refers to any copyrightable work 
> licensed under this License.” [4] For public-inbox, I think that the Program 
> is the entire public-inbox source tree [5]. In other words, I think that those 
> two systemd units [2] [3] are part of the Program.
> 
> Section 1 says “The Corresponding Source for a work in source code form is 
> that same work.” [6] I think that the work in this case is the entire public-
> inbox source tree. This means that the Corresponding Source is the entire 
> public-inbox source tree which in turn means that those two systemd units are 
> part of the Corresponding Source.

Paragraph 4 of section 1 states:

	The "Corresponding Source" for a work in object code form means
	all the source code needed to generate, install, and (for an
	executable work) run the object code and to modify the work,
	including scripts to control those activities.  However, it does
	not include the work's System Libraries, or general-purpose
	tools or generally available free programs which are used
	unmodified in performing those activities but which are not part
	of the work.  For example, Corresponding Source includes
	interface definition files associated with source files for the
	work, and the source code for shared libraries and dynamically
	linked subprograms that the work is specifically designed to
	require, such as by intimate data communication or control flow
	between those subprograms and other parts of the work.

I consider systemd, cron, logrotate, etc. to be "general-purpose tools"
and there's no "intimate data communication or control flow"
between them and public-inbox.

> Section 13 says “[…]if you modify the Program, your modified version must 
> prominently offer all users interacting with it remotely through a computer 
> network (if your version supports such interaction) an opportunity to receive 
> the Corresponding Source of your version by providing access to the 
> Corresponding Source from a network server at no charge, through some standard 
> or customary means of facilitating copying of software.” [7]
> 
> Since those two systemd units are part of the Program, when I modify them I’m 
> modifying the Program. In other words, when I modify those two systemd units, 
> I’ll have to follow that section 13 requirement. In other words, “[my] modified 
> version must prominently offer all users interacting with it remotely through a 
> computer network […] an opportunity to receive the Corresponding Source of 
> [my] version”.

I don't consider systemd units or config files part of the
program; especially since they're loaded by systemd without
"intimate data communication or control flow between those
subprograms and other parts of the work".

> The right way to do this would be to create a Git repo for my soft fork of 
> public-inbox and change the mirror page [8]. The mirror page says
> 
> “AGPL code for this site:
>   git clone https://public-inbox.org/public-inbox.git”
> 
> As far as I can tell, the only way for me to change that URL is to edit lib/
> PublicInbox/WwwStream.pm. If I did that, then I would no longer be able to 
> rely on my distro’s public-inbox packages. I would have to create my own 
> system for updating public-inbox.

I think having a globally-writable "our" variable is sufficient
for $CODE_URL.  The .psgi file is Perl, and setting a few
variables/pathnames/URLs doesn't meet the barrier for "intimate
data communication or control flow" to me.

> This makes using those example units annoyingly complicated. Here’s some ideas 
> that I have for improving this situation:
> 
> 1. Release those systemd units under something other than the GNU AGPL.

Maybe this one for examples/ and contrib/.  I definitely don't
want to clutter individual example files with copyright lines,
though...

> 2. Add a public-inbox source tree option to config files. This option would 
> allow you to override the “AGPL code for this site” URL.
> 
> Either option would work and both are definitely not necessary.

Fwiw, I personally have zero interest nor ability to do (A)GPL
enforcement.  I still prefer (A)GPL since it lets me use (steal
:P) code from other copyleft projects; and developers of those
projects can still maintain and enforce their copyrights.

Thanks.

> From,
> Jason Yundt
> 
> [1]: <https://jasonyundt.website/>
> [2]: <https://public-inbox.org/public-inbox.git/tree/examples/public-inbox-httpd@.service>
> [3]: <https://public-inbox.org/public-inbox.git/tree/examples/public-inbox-httpd.socket>
> [4]: <https://www.gnu.org/licenses/agpl-3.0.html#section0>
> [5]: <https://public-inbox.org/public-inbox.git/tree/>
> [6]: <https://www.gnu.org/licenses/agpl-3.0.html#section1>
> [7]: <https://www.gnu.org/licenses/agpl-3.0.html#section13>
> [8]: <https://public-inbox.org/meta/_/text/mirror/>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Difficulty following the AGPL for example systemd units
       [not found]   ` <20220426222705.GA30933@dcvr>
@ 2022-04-27 22:50     ` Jason Yundt
  2022-04-28 10:53       ` Eric Wong
  0 siblings, 1 reply; 6+ messages in thread
From: Jason Yundt @ 2022-04-27 22:50 UTC (permalink / raw)
  To: Eric Wong; +Cc: meta

On Tuesday, April 26, 2022 6:27:05 PM EDT Eric Wong wrote:
> (resending because the entire /64 my IPv6 address belongs to was
>  blacklisted, I guess my SMTP server will remain IPv4-only)

I actually picked up the original from <https://public-inbox.org/meta/> and 
imported it into my mail client. The ability to do that is something that I 
really like about public-inbox.

> Eric Wong <e@80x24.org> wrote:
> > Jason Yundt <jason@jasonyundt.email> wrote:
> > > Hello¸
> > > 
> > > I’m trying to set up public-inbox-httpd on my Web site [1], and I would
> > > like to use the public-inbox-httpd systemd units from the examples
> > > folder [2] [3]. They don’t exactly fit my needs, so I would like to
> > > modify them before deploying them. Here’s where I run into a problem:
> > > 
> > > Section 0 of the GNU AGPL says “"The Program" refers to any
> > > copyrightable work licensed under this License.” [4] For public-inbox,
> > > I think that the Program is the entire public-inbox source tree [5]. In
> > > other words, I think that those two systemd units [2] [3] are part of
> > > the Program.
> > > 
> > > Section 1 says “The Corresponding Source for a work in source code form
> > > is
> > > that same work.” [6] I think that the work in this case is the entire
> > > public- inbox source tree. This means that the Corresponding Source is
> > > the entire public-inbox source tree which in turn means that those two
> > > systemd units are part of the Corresponding Source.
> > 
> > Paragraph 4 of section 1 states:
> > 	The "Corresponding Source" for a work in object code form means
> > 	all the source code needed to generate, install, and (for an
> > 	executable work) run the object code and to modify the work,
> > 	including scripts to control those activities.  However, it does
> > 	not include the work's System Libraries, or general-purpose
> > 	tools or generally available free programs which are used
> > 	unmodified in performing those activities but which are not part
> > 	of the work.  For example, Corresponding Source includes
> > 	interface definition files associated with source files for the
> > 	work, and the source code for shared libraries and dynamically
> > 	linked subprograms that the work is specifically designed to
> > 	require, such as by intimate data communication or control flow
> > 	between those subprograms and other parts of the work.
> > 
> > I consider systemd, cron, logrotate, etc. to be "general-purpose tools"
> > and there's no "intimate data communication or control flow"
> > between them and public-inbox.
> > 
> > > Section 13 says “[…]if you modify the Program, your modified version
> > > must
> > > prominently offer all users interacting with it remotely through a
> > > computer
> > > network (if your version supports such interaction) an opportunity to
> > > receive the Corresponding Source of your version by providing access to
> > > the Corresponding Source from a network server at no charge, through
> > > some standard or customary means of facilitating copying of software.”
> > > [7]
> > > 
> > > Since those two systemd units are part of the Program, when I modify
> > > them I’m modifying the Program. In other words, when I modify those two
> > > systemd units, I’ll have to follow that section 13 requirement. In
> > > other words, “[my] modified version must prominently offer all users
> > > interacting with it remotely through a computer network […] an
> > > opportunity to receive the Corresponding Source of [my] version”.
> > 
> > I don't consider systemd units or config files part of the
> > program; especially since they're loaded by systemd without
> > "intimate data communication or control flow between those
> > subprograms and other parts of the work".

Now that I look at it, the top-level README only says that the program is 
under the GNU AGPL. Does that mean that those units don’t have a license?

> > > The right way to do this would be to create a Git repo for my soft fork
> > > of
> > > public-inbox and change the mirror page [8]. The mirror page says
> > > 
> > > “AGPL code for this site:
> > >   git clone https://public-inbox.org/public-inbox.git”
> > > 
> > > As far as I can tell, the only way for me to change that URL is to edit
> > > lib/ PublicInbox/WwwStream.pm. If I did that, then I would no longer be
> > > able to rely on my distro’s public-inbox packages. I would have to
> > > create my own system for updating public-inbox.
> > 
> > I think having a globally-writable "our" variable is sufficient
> > for $CODE_URL.  The .psgi file is Perl, and setting a few
> > variables/pathnames/URLs doesn't meet the barrier for "intimate
> > data communication or control flow" to me.
Wait, so could I change that variable without modifying lib/ PublicInbox/
WwwStream.pm? For context: I know very little about Perl and basically nothing 
about PSGI.

> > > This makes using those example units annoyingly complicated. Here’s some
> > > ideas that I have for improving this situation:
> > > 
> > > 1. Release those systemd units under something other than the GNU AGPL.
> > 
> > Maybe this one for examples/ and contrib/.  I definitely don't
> > want to clutter individual example files with copyright lines,
> > though...

May be you could add a copyright section to examples/README (similar to how 
you have one for the top-level README).

> > > 2. Add a public-inbox source tree option to config files. This option
> > > would
> > > allow you to override the “AGPL code for this site” URL.
> > > 
> > > Either option would work and both are definitely not necessary.
> > 
> > Fwiw, I personally have zero interest nor ability to do (A)GPL
> > enforcement.  I still prefer (A)GPL since it lets me use (steal
> > 
> > :P) code from other copyleft projects; and developers of those
> > 
> > projects can still maintain and enforce their copyrights.
> > 
> > Thanks.
> > 
> > > From,
> > > Jason Yundt
> > > 
> > > [1]: <https://jasonyundt.website/>
> > > [2]:
> > > <https://public-inbox.org/public-inbox.git/tree/examples/public-inbox-h
> > > ttpd@.service> [3]:
> > > <https://public-inbox.org/public-inbox.git/tree/examples/public-inbox-h
> > > ttpd.socket> [4]: <https://www.gnu.org/licenses/agpl-3.0.html#section0>
> > > [5]: <https://public-inbox.org/public-inbox.git/tree/>
> > > [6]: <https://www.gnu.org/licenses/agpl-3.0.html#section1>
> > > [7]: <https://www.gnu.org/licenses/agpl-3.0.html#section13>
> > > [8]: <https://public-inbox.org/meta/_/text/mirror/>





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Difficulty following the AGPL for example systemd units
  2022-04-27 22:50     ` Jason Yundt
@ 2022-04-28 10:53       ` Eric Wong
  2022-05-06 20:32         ` Julien Moutinho
  0 siblings, 1 reply; 6+ messages in thread
From: Eric Wong @ 2022-04-28 10:53 UTC (permalink / raw)
  To: Jason Yundt; +Cc: meta

Jason Yundt <jason@jasonyundt.email> wrote:
> > Eric Wong <e@80x24.org> wrote:
> > > Jason Yundt <jason@jasonyundt.email> wrote:
> > > > Hello¸
> > > > 
> > > > I’m trying to set up public-inbox-httpd on my Web site [1], and I would
> > > > like to use the public-inbox-httpd systemd units from the examples
> > > > folder [2] [3]. They don’t exactly fit my needs, so I would like to
> > > > modify them before deploying them. Here’s where I run into a problem:
> > > > 
> > > > Section 0 of the GNU AGPL says “"The Program" refers to any
> > > > copyrightable work licensed under this License.” [4] For public-inbox,
> > > > I think that the Program is the entire public-inbox source tree [5]. In
> > > > other words, I think that those two systemd units [2] [3] are part of
> > > > the Program.
> > > > 
> > > > Section 1 says “The Corresponding Source for a work in source code form
> > > > is
> > > > that same work.” [6] I think that the work in this case is the entire
> > > > public- inbox source tree. This means that the Corresponding Source is
> > > > the entire public-inbox source tree which in turn means that those two
> > > > systemd units are part of the Corresponding Source.
> > > 
> > > Paragraph 4 of section 1 states:
> > > 	The "Corresponding Source" for a work in object code form means
> > > 	all the source code needed to generate, install, and (for an
> > > 	executable work) run the object code and to modify the work,
> > > 	including scripts to control those activities.  However, it does
> > > 	not include the work's System Libraries, or general-purpose
> > > 	tools or generally available free programs which are used
> > > 	unmodified in performing those activities but which are not part
> > > 	of the work.  For example, Corresponding Source includes
> > > 	interface definition files associated with source files for the
> > > 	work, and the source code for shared libraries and dynamically
> > > 	linked subprograms that the work is specifically designed to
> > > 	require, such as by intimate data communication or control flow
> > > 	between those subprograms and other parts of the work.
> > > 
> > > I consider systemd, cron, logrotate, etc. to be "general-purpose tools"
> > > and there's no "intimate data communication or control flow"
> > > between them and public-inbox.
> > > 
> > > > Section 13 says “[…]if you modify the Program, your modified version
> > > > must
> > > > prominently offer all users interacting with it remotely through a
> > > > computer
> > > > network (if your version supports such interaction) an opportunity to
> > > > receive the Corresponding Source of your version by providing access to
> > > > the Corresponding Source from a network server at no charge, through
> > > > some standard or customary means of facilitating copying of software.”
> > > > [7]
> > > > 
> > > > Since those two systemd units are part of the Program, when I modify
> > > > them I’m modifying the Program. In other words, when I modify those two
> > > > systemd units, I’ll have to follow that section 13 requirement. In
> > > > other words, “[my] modified version must prominently offer all users
> > > > interacting with it remotely through a computer network […] an
> > > > opportunity to receive the Corresponding Source of [my] version”.
> > > 
> > > I don't consider systemd units or config files part of the
> > > program; especially since they're loaded by systemd without
> > > "intimate data communication or control flow between those
> > > subprograms and other parts of the work".
> 
> Now that I look at it, the top-level README only says that the program is 
> under the GNU AGPL. Does that mean that those units don’t have a license?

I suppose there's no license, or just CC0/public-domain.
I mean, we sometimes post config snippets in emails w/o licenses, too;
and same happens on git@vger and various other development lists/forums/etc..

*shrug*

> > > > The right way to do this would be to create a Git repo for my soft fork
> > > > of
> > > > public-inbox and change the mirror page [8]. The mirror page says
> > > > 
> > > > “AGPL code for this site:
> > > >   git clone https://public-inbox.org/public-inbox.git”
> > > > 
> > > > As far as I can tell, the only way for me to change that URL is to edit
> > > > lib/ PublicInbox/WwwStream.pm. If I did that, then I would no longer be
> > > > able to rely on my distro’s public-inbox packages. I would have to
> > > > create my own system for updating public-inbox.
> > > 
> > > I think having a globally-writable "our" variable is sufficient
> > > for $CODE_URL.  The .psgi file is Perl, and setting a few
> > > variables/pathnames/URLs doesn't meet the barrier for "intimate
> > > data communication or control flow" to me.
> Wait, so could I change that variable without modifying lib/ PublicInbox/
> WwwStream.pm? For context: I know very little about Perl and basically nothing 
> about PSGI.

Yes, something like:

	{
		use PublicInbox::WwwStream;
		$PublicInbox::WwwStream::CODE_URL = "https://example.com/";
	}

should work from any Perl files.  It's not very common, and
maybe I'm misrembering due to old age...

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Difficulty following the AGPL for example systemd units
  2022-04-28 10:53       ` Eric Wong
@ 2022-05-06 20:32         ` Julien Moutinho
  2022-05-07  0:57           ` Eric Wong
  0 siblings, 1 reply; 6+ messages in thread
From: Julien Moutinho @ 2022-05-06 20:32 UTC (permalink / raw)
  To: meta

Le jeu. 28 avril 2022 10h53 +0000, Eric Wong a écrit :
> Jason Yundt <jason@jasonyundt.email> wrote:
> > Now that I look at it, the top-level README only says that the program is 
> > under the GNU AGPL. Does that mean that those units don’t have a license?
> 
> I suppose there's no license, or just CC0/public-domain.
> I mean, we sometimes post config snippets in emails w/o licenses, too;
> and same happens on git@vger and various other development lists/forums/etc..
> 
> *shrug*
You may want to use https://reuse.software to clarify this :

$ reuse init
> Initializing project for REUSE.
> 
> What license is your project under? Provide the SPDX License Identifier.
> To stop adding licenses, hit RETURN.
> AGPL-3.0-or-later
> 
> What other license is your project under? Provide the SPDX License Identifier.
> To stop adding licenses, hit RETURN.
> CC0-1.0
> 
> What other license is your project under? Provide the SPDX License Identifier.
> To stop adding licenses, hit RETURN.
> 
> 
> What is the name of the project?
> public-inbox
> 
> What is the internet address of the project?
> https://public-inbox.org/public-inbox.git
> 
> What is the name of the maintainer?
> Eric Wong
> 
> What is the e-mail address of the maintainer?
> e@80x24.org
> 
> All done! Initializing now.
> 
> Downloading AGPL-3.0-or-later
> Downloading CC0-1.0
> 
> Creating .reuse/dep5
> 
> Initialization complete.

$ cat .reuse/dep5
> Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
> Upstream-Name: public-inbox
> Upstream-Contact: Eric Wong <e@80x24.org>
> Source: https://public-inbox.org/public-inbox.git
> 
> # Sample paragraph, commented out:
> #
> # Files: src/*
> # Copyright: $YEAR $NAME <$CONTACT>
> # License: ...
> 

And after editing .reuse/dep5:

$ git rm COPYING
$ git add LICENSES .reuse/dep5
$ reuse lint

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Difficulty following the AGPL for example systemd units
  2022-05-06 20:32         ` Julien Moutinho
@ 2022-05-07  0:57           ` Eric Wong
  0 siblings, 0 replies; 6+ messages in thread
From: Eric Wong @ 2022-05-07  0:57 UTC (permalink / raw)
  To: Julien Moutinho; +Cc: meta

Julien Moutinho <julm+public-inbox@sourcephile.fr> wrote:
> Le jeu. 28 avril 2022 10h53 +0000, Eric Wong a ??crit??:
> > Jason Yundt <jason@jasonyundt.email> wrote:
> > > Now that I look at it, the top-level README only says that the program is 
> > > under the GNU AGPL. Does that mean that those units don???t have a license?
> > 
> > I suppose there's no license, or just CC0/public-domain.
> > I mean, we sometimes post config snippets in emails w/o licenses, too;
> > and same happens on git@vger and various other development lists/forums/etc..
> > 
> > *shrug*
> You may want to use https://reuse.software to clarify this :
> 
> $ reuse init

Interesting, though I'm trying to have less software installed
on my system(s)...

<snip>

> $ cat .reuse/dep5
> > Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
> > Upstream-Name: public-inbox
> > Upstream-Contact: Eric Wong <e@80x24.org>
> > Source: https://public-inbox.org/public-inbox.git

Would prefer upstream contact to be something along the lines of:
  all contributors <meta@public-inbox.org>
...To emphasize that it's a community project.

As an aside, I've always been a shy introvert, so I always get
uncomfortable when seeing my name in "official-looking" places.
I'm even less comfortable as I age, and believe the acronym
expansion I added to the AUTHORS file is rather appropriate ;>

> > # Sample paragraph, commented out:
> > #
> > # Files: src/*
> > # Copyright: $YEAR $NAME <$CONTACT>
> > # License: ...
> > 
> 
> And after editing .reuse/dep5:
> 
> $ git rm COPYING
> $ git add LICENSES .reuse/dep5
> $ reuse lint

Anyways, I'll think about it; though I'm not sure if I want to
be an early adopter of this and put more .dotfiles into the
source tree.

Thanks.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-05-07  0:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-24 22:01 Difficulty following the AGPL for example systemd units Jason Yundt
2022-04-25 23:22 ` Eric Wong
     [not found]   ` <20220426222705.GA30933@dcvr>
2022-04-27 22:50     ` Jason Yundt
2022-04-28 10:53       ` Eric Wong
2022-05-06 20:32         ` Julien Moutinho
2022-05-07  0:57           ` Eric Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).