On 10/8/21 10:20 AM, Yadd wrote:
Take a look, most of them embed a minified version (jquery* for example)Yeah ... Everyone upstream thinks it's ok to have 15907152438 copies of jquery floating around... There's room for improvement for sure! :)
Thomas Goirand (zigo)
If you really consider minified files as binary, there's a room for
creating a lot of RC bugs
Hi
Le sam. 9 oct. 2021 à 17:40, Jeremy Stanley <fungi@yuggoth.org> a écrit :
On 2021-10-09 08:53:57 +0200 (+0200), Yadd wrote:
[...]
If you really consider minified files as binary, there's a room
for creating a lot of RC bugs
The more appropriate question is whether Debian considers minified
files to be source code, or a compiled form. To needlessly quote
DFSG §2: "The program must include source code, and must allow distribution in source code as well as compiled form."
Minified code isn't code in a form meant/supposed to be modified by
hand, so it's not source code.
On 2021-10-09 08:53:57 +0200 (+0200), Yadd wrote:
[...]
If you really consider minified files as binary, there's a room for creating a lot of RC bugs
The more appropriate question is whether Debian considers minified
files to be source code, or a compiled form. To needlessly quote
DFSG §2: "The program must include source code, and must allow
distribution in source code as well as compiled form."
It is not source code.
It is not binary code.
It is not...
The appropriate question is how it fits Debian Free Software
Guidelines.
Quoting Julien Puydt (2021-10-09 18:48:07)
Hi
Le sam. 9 oct. 2021 à 17:40, Jeremy Stanley <fungi@yuggoth.org> a écrit:
On 2021-10-09 08:53:57 +0200 (+0200), Yadd wrote:
[...]
If you really consider minified files as binary, there's a room
for creating a lot of RC bugs
The more appropriate question is whether Debian considers minified
files to be source code, or a compiled form. To needlessly quote
DFSG §2: "The program must include source code, and must allow distribution in source code as well as compiled form."
Minified code isn't code in a form meant/supposed to be modified by
hand, so it's not source code.
Right. But stating that is not helping much.
It is not source code.
It is not binary code.
<div dir="auto">Cheers, </div><div dir="auto"><br></div><div dir="auto">J. Puydt</div><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div></div>
On Sat, 2021-10-09 at 18:52 +0200, Jonas Smedegaard wrote:
It is not source code.
It is not binary code.
It is not...
The appropriate question is how it fits Debian Free Software
Guidelines.
Programs with a license on the one hand which demands the right to
study and modify the source code, and on the other hand components that cannot be easily studied and modified, kind of infringe their own
nominal license.
This is probably a minor problem for the author who owns the copyright anyway and therefore can choose whatever conditions he likes. But it
could be complicated for projects like Debian who want to redistribute
code but do not own the copyright themselves.
There was the case years ago of the smarteiffel compiler. It was supposed
to be open source, but upstream only released C code. And that was bad, because it wasn't what *they* worked with: they had eiffel sources, and the
C code was preprocessed and didn't allow/permit bootstrapping. It took some
Le sam. 9 oct. 2021 à 18:52, Jonas Smedegaard <jonas@jones.dk> a écrit :
Quoting Julien Puydt (2021-10-09 18:48:07)
Le sam. 9 oct. 2021 à 17:40, Jeremy Stanley <fungi@yuggoth.org> a écrit
On 2021-10-09 08:53:57 +0200 (+0200), Yadd wrote: [...]
If you really consider minified files as binary, there's a
room for creating a lot of RC bugs
The more appropriate question is whether Debian considers
minified files to be source code, or a compiled form. To
needlessly quote DFSG §2: "The program must include source code,
and must allow distribution in source code as well as compiled
form."
Minified code isn't code in a form meant/supposed to be modified
by hand, so it's not source code.
Right. But stating that is not helping much.
It is not source code.
It is not binary code.
It was helping: it's definitely binary code, since it's not source
code!
There was the case years ago of the smarteiffel compiler. It was
supposed to be open source, but upstream only released C code. And
that was bad, because it wasn't what *they* worked with: they had
eiffel sources, and the C code was preprocessed and didn't
allow/permit bootstrapping. It took some discussion to convince them
to release the true sources.
The situation is the same here: minified code isn't source. Trying to
claim it's not really binary because it's JavaScript and not some
bytecode (for a virtual or actual hardware) is disingenuous.
If that's not what developer work with, that's not source, end of the discussion.
Julien Puydt <julien.puydt@gmail.com> writes:
There was the case years ago of the smarteiffel compiler. It was supposed
to be open source, but upstream only released C code. And that was bad,
because it wasn't what *they* worked with: they had eiffel sources, and the >> C code was preprocessed and didn't allow/permit bootstrapping. It took some
This is a good example, because it shows how "source code" is defined by
what upstream development uses, not merely by users being able to compile
the released code.
But the situation here seems to be the opposite: The minified javascript
*is* what *they* (upstream developers) work with. They don't have a secret unpublished build system to generate the minification from unpublished sources. Presumably, if they need to update it, they would replace it with a new minified file obtained from a newer release of that project. Or as has been mentioned, the test might be testing a problem against that very specific version of the javascript minification, in which case it will never be changed at all - as that would instead be the addition of a separate testcase.
Thus, the minified file *is* the preferred (by the upstream developers) form of the work for making modifications to it. Which is how source code is defined in the GPL, for example. It seems wrong to me to define "source
code" as something that the upstream development does not use and which doesn't actually exist anywhere.
As an extreme example, some people prefer Rust to C, but that does not mean that a C program must be re-written in Rust to satisfy the "preferred form
of work" condition for source code.
This still leaves the Vendoring problem. Even if we consider the minified javascript "source" in the context of the upstream development, it obviously isn't source in the context of the original javascript library project. If the javascript library is GPL, for example, it will require the availability of the correct version of the source code along with the minification.
I think there is a subtle but important distinction here:
1. A program not being free because it is missing what upstream developers consider "source" (as in the smarteiffel example).
2. A program being unsuitable for debian because it is developed in a way that effectively requires Vendoring of sources of dependencies.
- Kristian.
For now:
$ cat tags/s/source-contains-prebuilt-javascript-object.tag
Tag: source-contains-prebuilt-javascript-object
Severity: pedantic
Check: cruft
Explanation: The source tarball contains a prebuilt (minified)
JavaScript object.
They are usually left by mistake when generating the tarball by not
cleaning the source directory first. You may want to report this as
an upstream bug, in case there is no sign that this was intended.
Following this discussion, it should be a "Severity: error",
shouldn't it?
For now:
$ cat tags/s/source-contains-prebuilt-javascript-object.tag
Tag: source-contains-prebuilt-javascript-object
Severity: pedantic
Check: cruft
Explanation: The source tarball contains a prebuilt (minified)
JavaScript object.
They are usually left by mistake when generating the tarball by not
cleaning the source directory first. You may want to report this as
an upstream bug, in case there is no sign that this was intended.
Following this discussion, it should be a "Severity: error", shouldn't it?
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 286 |
Nodes: | 16 (2 / 14) |
Uptime: | 90:59:51 |
Calls: | 6,496 |
Calls today: | 7 |
Files: | 12,100 |
Messages: | 5,277,688 |