QupZilla / qupzilla

Cross-platform Qt web browser
http://www.qupzilla.com
GNU General Public License v3.0
1.12k stars 347 forks source link

SpeedDial: #2543

Closed ghost closed 6 years ago

ghost commented 6 years ago
ghost commented 6 years ago

btw @nowrep due to this conversation https://github.com/Diablopc/qupzilla/commit/6163b0b1b680d656239c8b66949dec25de064a94#r26777190 seems need to review licensing for svg files. What you think about this?

nowrep commented 6 years ago

https://community.kde.org/Policies/Licensing_Policy

It's your work, so it is up to you to decide which license to use. But I would prefer if you choose CC-BY-SA-4.0 as recommended by KDE for media files (images). It should be enough to just put the notice in comment in all SVG files. Also if you can, please save the files optimized as @Martii said.

ghost commented 6 years ago

so it is up to you to decide which license to use.

Haha, i had push it to public repo, this is mean that i have gifted it to all who needed this))

I would prefer if you choose CC-BY-SA-4.0

Ok. Let it be CC-BY-SA-4.0 The main thing in this is to specify it correctly inside files

btw, how to correctly add new strings for translation? because I changed a few of them here: https://github.com/QupZilla/qupzilla/pull/2543/commits/167982bb0ef2403ef6c03fd0a2f2500e955493d1#diff-fd87bcbf9f9270772361e42ac088636a but not sure that this is enough ...

nowrep commented 6 years ago

btw, how to correctly add new strings for translation? because I changed a few of them here: 167982b#diff-fd87bcbf9f9270772361e42ac088636a but not sure that this is enough ...

Yes, that's enough.

Martii commented 6 years ago

It should be enough to just put the notice in comment in all SVG files

May run into CORS issues down the line. I've seen some backend and frontend development towards this goal of DRM. :\ Best to follow the specs for licensing instead of a comment. Once one is created then it won't be that difficult to copy/paste and some minor editing. :)

@Diablopc Please ensure that the pretty-printing option is on with line breaks and indentations with indentation value of 1. I just redid my dev station and that's the default here... one never knows on older installs. This will be an easier read for commits/diffs down the line.

Martii commented 6 years ago

https://community.kde.org/Policies/Licensing_Policy

Current bullet point 9 shows double licensing (note the term change from dual) which is more accurate for SVGs.... in SPDX terms this is an AND (double... this and that required) instead of OR (dual... this or that).

Validating some xml tags I've run by so I can propose a possible template... give me a few.

Refs:

Martii commented 6 years ago

Haha, i had push it to public repo, this is mean that i have gifted it to all who needed this))

Not always... I'm not an attorney (standard disclaimer but I have worked with several and the information was passed to me during my cognitive lifetime)... You still maintain the Copyright but if you expect it to be merged in entirety you agree, at minimum, to the rights assigned in LICENSE. This is much like a TOS (Terms of Service) but a TOU (Terms of Use). @nowrep and KDE have policies regarding submitting that applies for licensing e.g. leveraging who can distribute what. e.g with the proper CC you are granting others to use it as long as there is attribution (probably the most important thing for FOSS). GPL requires source to be made available always and forever, including all derivatives, a.k.a Copyleft. CC usually covers Content (vague a.k.a. works in general but usually binary forms) instead of Code (very specific and usually in the clear).

So this is what was extrapolated (with a few re-edits) using some modified W3 examples and interlaced/intertwined standards of metadata (headers as Userscripts sometimes calls them):

 <metadata id="license" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#">
  <rdf:RDF>
   <cc:Work rdf:about="sd_bg.svg">
    <dc:description>Speed Dial background</dc:description>
    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
    <dc:format>image/svg+xml</dc:format>
    <dc:source>https://raw.githubusercontent.com/QupZilla/qupzilla/master/src/lib/data/html/sd_bg.svg</dc:source>
    <dc:rights>https://github.com/QupZilla/qupzilla/blob/master/LICENSE</dc:rights>
    <dc:date>2018-01-10</dc:date>
    <dc:creator>Konstantin Savun</dc:creator>
    <cc:license rdf:resource="https://creativecommons.org/licenses/by-sa/4.0/legalcode"/>
    <cc:attributionName rdf:resource="Konstantin Savun"/>
    <cc:attributionURL rdf:resource="https://github.com/Diablopc"/>
   </cc:Work>
  </rdf:RDF>
</metadata>

This is probably the minimal generic template (for that specific svg) that someone would need to utilize a svg in distribution.

It says who made it (part of Copyright), where it was made (useful for back referencing), when it was made (the beginning of Copyright), what rights were initially granted to do this (GPL-3.0)... Fair Use rights also can come into play here... , what other rights are granted for (optionally detached) distribution (CC-BY-SA-4.0), what kind of SVG it is (animation or still image... there are others... useful for picking an appropriate editor and of course web servers knowing certain things to do before responding), and some other technical tags that describe Dublin Core (dc:) metadata being used and CC (cc:) metadata being used.

Finally if you want to optionally describe in human readable language the description of what it is/does that's the <dc:description> tag preferably in the projects preferred, default, langauge.


Additional note:

Re:

Btw this is a bad Content License

I misread that... apologies... it's actually the namespace to utilize rdf:... but copyright/licensing for distribution (including detached) should be present... for example $ ls /usr/share/icons are detached.


Provided there aren't any more changes to the proposal this could be how it would be using a relative url when it moves repos for describing it in "about" (this is Inkscape optimized on my end with the metadata dropped in and indent size matched... 5490B ... there could be some additional external optimizations (4920B currently) but possibly less readability for commits/diffs and possibly confuse original authorings with too many changes that do the same thing e.g. code points could change drastically) :

<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <metadata id="license" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#">
  <rdf:RDF>
   <cc:Work rdf:about="sd_bg.svg">
    <dc:description>Speed Dial background</dc:description>
    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
    <dc:format>image/svg+xml</dc:format>
    <dc:source>https://raw.githubusercontent.com/QupZilla/qupzilla/master/src/lib/data/html/sd_bg.svg</dc:source>
    <dc:rights>https://github.com/QupZilla/qupzilla/blob/master/LICENSE</dc:rights>
    <dc:date>2018-01-10</dc:date>
    <dc:creator>Konstantin Savun</dc:creator>
    <cc:license rdf:resource="https://creativecommons.org/licenses/by-sa/4.0/legalcode"/>
    <cc:attributionName rdf:resource="Konstantin Savun"/>
    <cc:attributionURL rdf:resource="https://github.com/Diablopc"/>
   </cc:Work>
  </rdf:RDF>
 </metadata>  
 <defs>
  <linearGradient id="linearGradient3757">
   <stop stop-color="#fff" stop-opacity=".58367" offset="0"/>
   <stop stop-color="#fff" stop-opacity="0" offset="1"/>
  </linearGradient>
  <radialGradient id="radialGradient3769" cx="374.75" cy="257.36" r="371.63" gradientTransform="matrix(.25255 -1.0054 1.0587 -.30472 -211.87 1020.1)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3757"/>
  <radialGradient id="radialGradient3785" cx="485.05" cy="214.51" r="480" gradientTransform="matrix(1.0647 0 0 .77817 -5.3258 511.88)" gradientUnits="userSpaceOnUse">
   <stop stop-color="#50a3ed" offset="0"/>
   <stop stop-color="#118af5" offset="1"/>
  </radialGradient>
  <radialGradient id="radialGradient4103" cx="374.75" cy="257.36" r="371.63" gradientTransform="matrix(.86057 .66063 .22658 .92824 315.5 358.43)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3757"/>
  <radialGradient id="radialGradient4107" cx="374.75" cy="257.36" r="371.63" gradientTransform="matrix(.45008 -.56113 .54356 .13132 276.85 628.29)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3757"/>
  <radialGradient id="radialGradient4111" cx="374.75" cy="257.36" r="371.63" gradientTransform="matrix(-.73337 -.58125 -1.1166 -.019349 899.01 608.08)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3757"/>
  <radialGradient id="radialGradient4115" cx="374.75" cy="257.36" r="371.63" gradientTransform="matrix(1.5144 .73571 .35314 .72955 -334.06 -408.67)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3757"/>
  <radialGradient id="radialGradient4134" cx="483.99" cy="251.24" r="371.63" gradientTransform="matrix(-1.3891 .07219 -.64596 1.9423 1686.3 260.7)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3757"/>
  <radialGradient id="radialGradient4137" cx="483.99" cy="251.24" r="371.63" gradientTransform="matrix(.72618 -.61605 1.6074 .81469 -307.15 330.59)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3757"/>
  <filter id="filter4143" color-interpolation-filters="sRGB">
   <feGaussianBlur stdDeviation="5.0971322"/>
  </filter>
  <filter id="filter4167" color-interpolation-filters="sRGB">
   <feGaussianBlur stdDeviation="3.3257991"/>
  </filter>
  <radialGradient id="radialGradient5675" cx="374.75" cy="257.36" r="371.63" gradientTransform="matrix(-.068377 -.71607 .4813 -.2847 692.35 684.18)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3757"/>
 </defs>
 <g transform="translate(0,-572.36)">
  <g transform="matrix(.64013 0 0 .65921 -6.12 365.95)">
   <rect x=".051909" y="305.28" width="1024" height="768" fill="url(#radialGradient3785)"/>
   <path d="m432.45 974.97c-165.17-426.28-526.72-600.77-941.7-750.18 340 69.16 971.86-66.54 1018.8 323.06-196.76 176.68-54.3 310.52-77.1 427.12z" fill="url(#radialGradient3769)" opacity=".52653"/>
   <path transform="matrix(1.0137,0,0,1.2223,-133.24,432.82)" d="m382.12 540c-472.93-81.64-129.88-393.87-384.5-619.82 255.77 172.48 522.97 404.05 649.36 532.84-273.7-44.72-177.4 67.71-264.86 86.98z" fill="url(#radialGradient4137)" filter="url(#filter4143)" opacity=".32653"/>
   <path d="m1253.3 979.05c-189.1-175.46-313.6-425.37-319.33-812.33-519.35 26.39-127.15 696.41-33.8 951.38 214.83-253.84 247.03-85.4 353.13-139.05z" fill="url(#radialGradient4134)" opacity=".52653"/>
   <path d="m332.03 857.28c284.19-28.15 523.84-124.08 681.47-344.79-71.61 219.46-267.71 415.55-332.97 561.11-145.91-229.1-248.47-144.51-348.5-216.32z" fill="url(#radialGradient4103)" opacity=".52653"/>
   <path d="m559.45 797.37c-305.05-33.68-22.56-536.25-132.68-765.49 117.19 148.26 209.96 404.37 286.08 519.3-142.29 51.83-103.89 179.13-153.4 246.19z" fill="url(#radialGradient4107)" opacity=".52653"/>
   <path transform="matrix(1.0828,0,0,1.3517,-217.85,176.49)" d="m289.71 683.08c59.38-235.6 197.85-447.08 481.9-614.15-274.98 97.04-532.25 290.93-716.17 369.69 267.68 77.8 155.12 176.02 234.27 244.46z" fill="url(#radialGradient4111)" filter="url(#filter4167)" opacity=".30204"/>
   <path d="m-334.36-49.187c515.02 67.981 953.69 74.026 1251.8-33.954-142.67 133.72-116.25 319.53-635.4 295.5-249.7-207.91-440.06-179.57-616.4-261.55z" fill="url(#radialGradient4115)" opacity=".52653"/>
   <path d="m1012.8 608.45c-242.17 188.47-389.91-368.8-628.65-456.43 187.37 24.628 432.4 143.61 567.09 172.97-65.901 136.34 50.356 200.86 61.6 283.45z" fill="url(#radialGradient5675)" opacity=".52653"/>
  </g>
 </g>
</svg>

Hope everything seems doable and explained clearly enough. :) Btw very nice artwork.

nowrep commented 6 years ago

With some adjustments I guess it can be used:

 <metadata id="license" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#">
  <rdf:RDF>
   <cc:Work rdf:about="sd_bg.svg">
    <dc:description>Speed Dial background</dc:description>
    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
    <dc:format>image/svg+xml</dc:format>
    <dc:date>2018-01-10</dc:date>
    <dc:creator>Konstantin Savun</dc:creator>
    <cc:license rdf:resource="https://creativecommons.org/licenses/by-sa/4.0/legalcode"/>
    <cc:attributionName rdf:resource="Konstantin Savun"/>
    <cc:attributionURL rdf:resource="https://github.com/Diablopc"/>
   </cc:Work>
  </rdf:RDF>
</metadata>

Removed: <dc:source> because it will be used also in Falkon and this url may change (either because github changes it or the file moves somewhere else) <dc:rights because it points to LICENSE which is GPLv3, but this file is licensed with CC

And instead of <cc:attributionURL I would like to use e-mail.

ghost commented 6 years ago

@nowrep I had edit all svg in accordance with the recommendations and pushed them to https://github.com/Diablopc/qupzilla-artwork. Pls review them so that I can push this to main repo.

@Martii thanks a lot for explanations. I didn't understand anything about licensing =)))

Martii commented 6 years ago

@nowrep

<dc:source> because it will be used also in Falkon and this url may change (either because github changes it or the file moves somewhere else)

That's fine... was thinking about that before sleep last night. It's just a backreference that is handled by the original, required, GPL licensing.

<dc:rights because it points to LICENSE which is GPLv3, but this file is licensed with CC

But the rights initially granted come from a Code license. GPL requires this. You'll be in breach of the license without it. You can potentially lose your protections granted by GNU for failure to do this. Read the GPL licensing for Code. As I mentioned already SVG is mostly Code with the option of Content with a data URI in binary form. Plus you would break the ability to remove <dc:source.

I would strongly suggest that the rights key is kept. EDIT I'm going to be very blunt here because the legal repercussions are too great... it's a stupid move to remove it for both QupZilla/Falkon and @Diablopc . You will be opening the door for a TDN among other things. Don't be stubborn here please. This is why it's called rights and not license.


<cc:attributionURL

Fine with me usually a name and email is preferred. e.g. first last (contact@email)... also required in Copyright is the First and Last name... otherwise it's implied from whatever is available and can be challenged in a court of law. Read https://www.copyright.gov/ and your local jurisdictions page regarding international rules.

Ref:

I need your full name, otherwise I can't push this to Falkon repo

... from https://github.com/QupZilla/qupzilla/pull/2539#issuecomment-357032973 as a reminder for the reason it's needed. Embedded attribution is for detached and redistribution. Think first.


@Diablopc

I didn't understand anything about licensing =)))

It's alright most people are ignorant about protecting their rights. Please add your name and email to the attribution. This is present in all major projects whether it's FOSS or closed source. I'm not sure if @nowrep will continue to be stubborn with <dc:rights> but I, again, would strongly suggest that you add it. @nowrep is absolutely incorrect there.

nowrep commented 6 years ago

But the rights initially granted come from a Code license. GPL requires this. You'll be in breach of the license without it. You can potentially lose your protections granted by GNU for failure to do this. Read the GPL licensing for Code. As I mentioned already SVG is mostly Code with the option of Content with a data URI in binary form. Plus you would break the ability to remove <dc:source.

No, even though SVG contains code, it should be treated as image file. These particular SVGs were all generated, not hand-written. And even if you treat it as code, how is it different? Just slap a license + your name and you are done? :D I don't really understand what problem you mean here. Main license for QupZilla is GPLv3, but that doesn't mean that it can't use files with different licensing as long as it is compatible with GPLv3, which CC-BY-SA-4.0 is.

There are no initially granted rights if that particular file specify its own license, be it with license header in comment or like in the case here with SVGs.

And yeah, I don't really care that much about the licensing, it was already wasted much more time on this than it should have been. As far as I am concerned, having clear definition of what license is used for which files is enough for me. And in this case, it is.

Martii commented 6 years ago

No, even though SVG contains code, it should be treated as image file.

Absolutely Incorrect. Contact your legal counsel.

it was already wasted much more time on this than it should have been

That is your issue not the contributors. If you don't want to honor the simple licensing here then you'll lose contributors. I've seen this a lot of times throughout the many decades in the industry. I'm doing my best to educate you from the information passed onto me with contract law with one of my fortes. If you don't honor GPL you may lose 100% of my contributions. I'm here because of GPL in this project. Please read and don't be stubborn by complaining that you've wasted too much time. It's your responsibility to ensure your project maintains availability on the KDE site now and not rejected.


I'm sorry that you feel you've wasted time... thanks for claiming that my hard work over the decades is unappreciated. I did the work. You had the ease of a presumably clear explanation to better yourself and your skills with a very compact read... but seems like you don't care about that. I understand the need to be "lazy" with migration from repos but Copyright/Licensing requires some effort otherwise one should not publish anything and be a hermit.

nowrep commented 6 years ago

If you don't want to honor the simple licensing here then you'll lose contributors.

But I do honor it. I just don't see the reason to overcomplicate it if not necessary.

I just don't understand why are those metadata tags so important. Does it mean that if you forget one of those 10 tags then your license is invalid? That's nonsense. And as you are mentioning KDE again, if you took a look how they handle SVG files then you would know that in most cases there is no mention of any license at all in the SVG source.

So for the last time, I don't care how the license is specified as long as it is there. Be it comment in SVG file, metadata tags or extra text file that mentions it.

ghost commented 6 years ago

About KDE repo: there really fully bullshit in svg metadata! Part of files, as mentioned by David, have no MD at all, other files contains MD automatically generated by inkscape (with proprietary license), and i was not able find at least one with normal metadata. Idk what do they think, but it looks like they don't care about this anyway.

That's nonsense

all jurisprudence - a solid nonsense

I don't care how the license is specified as long as it is there

Ok. at this time i'll leave it in current state (as in qupzilla-artwork repo)

Martii commented 6 years ago

@Diablopc

We'll just leave as a reactive issue then instead of a proactive one. e.g. will be handled on the redistribution side, and look the other way here as usual, and when the issue comes up down the line deal with it then. SVGs have been around a long time but their usage is only starting to come to mass usage with browser implementations (take CORS for example which was already mentioned). Advice, information, and a proposal is just that... take it or leave.

I can't convey everything that I have learned with contract law because of time constraints and encountering the deficiencies for some who claim they waste time (very poor wording from anyone). I appreciate your patience with the discussion and your eagerness to actually learn something new. That's a plus for you in observation. Maintainability is a balance between what's what right and what one does and/or doesn't want to do. I usually observe here to see what perceptions are viewed... back to that instead of pointing out referenced material as best I can within the time allotted.

files contains MD automatically generated by inkscape

Everyone likes attribution for their work even the programs that assist. Important part of FOSS. I'm still 50/50 on removing the "created in" applications but if "Save as optimized" does it who am I to argue. ;) SVG is designed to describe artwork instead of just presenting it as a finished product. e.g. "show your work". Parsing the metadata is key for some distribution methods e.g. automation via programmatic means (AI for the most advanced) instead of human interaction with (some) guess work.

(as in qupzilla-artwork repo)

Nice "side step" to avoid the issue... very diplomatic, clever, and probably the best to keep the hairs in place. 😸

Anyhow... it's nice to see new feature artwork come to fruition. Look forward to it in a release :)

andr222 commented 6 years ago

Everyone likes attribution for their work even the programs that assist. Important part of FOSS. I'm still 50/50 on removing the "created in" applications but if "Save as optimized" does it who am I to argue. ;) SVG is designed to describe artwork instead of just presenting it as a finished product. e.g. "show your work". Parsing the metadata is key for some distribution methods e.g. automation via programmatic means (AI for the most advanced) instead of human interaction with (some) guess work.

The essence of image files is the appearance, not the algorithm of the code inside. Image files can be under whatever license the creator wishes. There is no requirement (under foss) that the license is referenced in every file, although putting reference to the license in every file is one way of avoiding ambiguity.

If an image or whatever other item with another license is distibuted as part of a collective work with a GPL license, the included item assumes the gpl license. The included license must be GPL compatible. In this case, CC is GPL compatible. So the image file when distributed separately will be licensed CC, in the collective work will be GPL Except for the initial licensing, nothing special need be done.