Windows Exporter License

80 views
Skip to first unread message

Julien Pivotto

unread,
Dec 13, 2022, 5:19:08 AM12/13/22
to prometheus-developers
Hello Prometheans,

Now that we have agreed to move the Windows Exporter to be an official
exporter, we can work on the details.

One of them is the license. The windows exporter is released under MIT,
but the CNCF mandates us to release under Apache-2 or get an exeption
from the Governing Board:

See https://github.com/cncf/foundation/blob/main/charter.md
"If the license for a project included in CNCF is not Apache License,
Version 2.0, approval of the Governing Board shall be required."

In this case, there are 98 identified contributors, and because Apache-2
is less permissive than MIT, making the switch would require us to
contact all of them and ask their permission (because Apache-2 would
grant anyone perpetual patent over their code).

In this sense, I think we should ask for an exception to the GB with the
following arguments:

- The Windows exporter would be a great addition to the Prometheus
project
- MIT is a permissive - and Open Source license
- Being able to simply *contact* 100 people is unlikely to succeed, even
then they would all need to agree
- The Windows exporter is not required to run Prometheus or its main
components - it is just an optional addon and not part of the core
monitoring/alerting product.

Note: I am not a lawyer, so this email is written with my best
understanding of the matter.

Regards,

--
Julien Pivotto
@roidelapluie

Bjoern Rabenstein

unread,
Dec 20, 2022, 10:15:49 AM12/20/22
to prometheus-developers
On 13.12.22 11:19, Julien Pivotto wrote:
>
> In this sense, I think we should ask for an exception to the GB with the
> following arguments:

Silence means consent, right?

But just in case you are wondering if anyone has read your message, I
think it makes complete sense, and I fully agree with your points.

--
Björn Rabenstein
[PGP-ID] 0x851C3DA17D748D03
[email] bjo...@rabenste.in

Julius Volz

unread,
Dec 21, 2022, 9:05:46 AM12/21/22
to Bjoern Rabenstein, prometheus-developers
Same!

--
You received this message because you are subscribed to the Google Groups "Prometheus Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to prometheus-devel...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/Y6HRoXOgbX%2BxSOuo%40mail.rabenste.in.

Julien Pivotto

unread,
Dec 22, 2022, 3:22:51 AM12/22/22
to Julius Volz, Bjoern Rabenstein, prometheus-developers
Yes, I will reach out to GB
> To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/CA%2BT6YoxV3RCVBEXRKCAC9E4xfNsrCOKwBgiL9ouG31atbL4NUg%40mail.gmail.com.

--
Julien Pivotto
@roidelapluie

Ben Kochie

unread,
Dec 22, 2022, 4:10:13 AM12/22/22
to Julius Volz, Bjoern Rabenstein, prometheus-developers
It was my understanding that license changes, can be done by the copyright holder, without consent of all contributors. Because they do not hold any copyright to the code. IIRC this is how Grafana was able to relicense from Apache to AGPL. They did not need to get consent from all contributors.

Of course, old versions are subject to the old license, but moving from prometheus-community to prometheus would effectively be a fork.

In this case we could do it with permission from the original author as stated in the LICENSE file.

Stuart Clark

unread,
Dec 22, 2022, 4:33:19 AM12/22/22
to Ben Kochie, Julius Volz, Bjoern Rabenstein, prometheus-developers
On 2022-12-22 09:09, Ben Kochie wrote:
> It was my understanding that license changes, can be done by the
> copyright holder, without consent of all contributors. Because they do
> not hold any copyright to the code. IIRC this is how Grafana was able
> to relicense from Apache to AGPL. They did not need to get consent
> from all contributors.
>
> Of course, old versions are subject to the old license, but moving
> from prometheus-community to prometheus would effectively be a fork.
>
> In this case we could do it with permission from the original author
> as stated in the LICENSE file.
>

You are correct in saying that it is the copyright owner(s) who have to
agree to any license changes.

However by default if you contribute something to a project you are now
one of the copyright owners (only to your contributed code, not the
whole thing). The original owner is nothing special (other than possibly
being the largest owner, because there might be more of their code than
anyone else).

The only way around this (which I assume Grafana did, and other projects
require) is when contributing you sign a copyright transfer agreement -
that way legally the person/organisation the contributors transferred
ownership to is the only owner, and they have the right to do anything
they wanted (including using the code commercially or making everything
closed source).

So if this happened, and there is a record of signed copyright transfers
the license could be changed just by the agreement of the one owner.
Presumably however that isn't the case, and therefore it isn't possible.

Another option which has been used in other projects (such as the Linux
kernel for code that was found to not be correctly licensed [contributed
by someone who didn't have the rights to do so]) is to remove that code
& rewrite it (although you have to be careful that is is done 'cleanly'
to stop claims that you just copied that bad code). At that point the
contributor's code is no more, so no permission is then needed. If 95%
of existing contributors agreed to relicense and/or assign copyright but
there was 5% who didn't agree or couldn't be contacted that would
potentially be an option - of course it could be very
difficult/impossible if the remaining code was something really core.

--
Stuart Clark

Julien Pivotto

unread,
Dec 22, 2022, 4:39:08 AM12/22/22
to Ben Kochie, Julius Volz, Bjoern Rabenstein, prometheus-developers
On 22 Dec 10:09, Ben Kochie wrote:
> It was my understanding that license changes, can be done by the copyright
> holder, without consent of all contributors. Because they do not hold any
> copyright to the code. IIRC this is how Grafana was able to relicense from
> Apache to AGPL. They did not need to get consent from all contributors.
>
> Of course, old versions are subject to the old license, but moving from
> prometheus-community to prometheus would effectively be a fork.
>
> In this case we could do it with permission from the original author as
> stated in the LICENSE file.

I did ask the question to CNCF via the service desk, if copyright owners
would be enough. They replied that we have to ask all contributors to
change the license.

Note that grafana was able to relicense because for many years they made
people sign a CLA.
> To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/CABbyFmqPZnq0ANfuNp2JYZwUJ4pJ%3DQiRq017nC%3Dm0wkBzSPm0w%40mail.gmail.com.

--
Julien Pivotto
@roidelapluie

Stuart Clark

unread,
Dec 22, 2022, 4:50:59 AM12/22/22
to Ben Kochie, Julius Volz, Bjoern Rabenstein, prometheus-developers
On 22/12/2022 09:39, Julien Pivotto wrote:
> On 22 Dec 10:09, Ben Kochie wrote:
>> It was my understanding that license changes, can be done by the copyright
>> holder, without consent of all contributors. Because they do not hold any
>> copyright to the code. IIRC this is how Grafana was able to relicense from
>> Apache to AGPL. They did not need to get consent from all contributors.
>>
>> Of course, old versions are subject to the old license, but moving from
>> prometheus-community to prometheus would effectively be a fork.
>>
>> In this case we could do it with permission from the original author as
>> stated in the LICENSE file.
> I did ask the question to CNCF via the service desk, if copyright owners
> would be enough. They replied that we have to ask all contributors to
> change the license.
>
> Note that grafana was able to relicense because for many years they made
> people sign a CLA.

Indeed. If you look at the CLA that everyone is required to sign (and
Grafana have to keep proof that everyone has done so) at
https://grafana.com/docs/grafana/latest/developers/cla/ it says:

"Grant of Copyright License. Subject to the terms and conditions of this
Agreement, You hereby grant to Grafana Labs and to recipients of
software distributed by Grafana Labs a perpetual, worldwide,
non-exclusive, no-charge, royalty-free, irrevocable copyright license to
reproduce, prepare derivative works of, publicly display, publicly
perform, sublicense, and distribute Your Contributions and such
derivative works."

Which allows Grafana (the company) to do anything it likes with your
code - it can be licensed in any way (commercial or open source), given
to others, etc. without needing any further permission.

--
Stuart Clark

Julien Pivotto

unread,
Mar 6, 2023, 6:05:57 AM3/6/23
to prometheus-developers
I wanted to give you an update on my previous email regarding the
licensing requirements for the Windows Exporter project. I have opened a
license exception request with the CNCF, which can be found at the
following link:

https://github.com/cncf/foundation/issues/514

I will keep you all updated on any developments with this request.
> --
> You received this message because you are subscribed to the Google Groups "Prometheus Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to prometheus-devel...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/ecc14b37981ae722f6b7ca74203c67b9%40Jahingo.com.

--
Julien Pivotto
@roidelapluie

Julien Pivotto

unread,
Jun 29, 2023, 4:01:32 AM6/29/23
to prometheus-developers
The move has been approved by the CNCF governing board, I will move on
with making Windows Exporter an official exporter.
--
Julien Pivotto
@roidelapluie

Goutham Veeramachaneni

unread,
Jun 29, 2023, 4:08:00 AM6/29/23
to Julien Pivotto, prometheus-developers
That’s great news! Thanks a lot for keeping on top of it Julien!

Goutham

Reply all
Reply to author
Forward
0 new messages