Marti Admin

Seems to be working well for me and this isn't even a clean profile. Tried that?

OUJS Admin

Re: @meister90:

The automatic profileInstaFollow is not divulged on the main script page so that definitely merits removal of the Script.


If I get another report and don't see you divulging what your future scripts do, in detail human-readable terms, your account will have the default TOS applied.

OUJS Admin

Re: @Clemente3905:

This public report is a little vague. The .user.js itself is currently benign at 2.2+88f06e5 with the exception of sending a post request to Are you sure whatever your software is reporting this isn't just a possibly unwanted program (PUP)?

As with any "online transcoders" one should always be aware of what is being done on those external sites... so if it's somehow injecting a script on their end into the context of then I'd give the ISP that hosts that PHP script a notification instead. Have more than what you posted here otherwise they will dismiss it especially since you shouted it with all caps which isn't a wise thing to do.

OUJS Admin.

Try again... this is your only warning that should not have to be given.

OUJS Admin is obfuscated. You have until later today to fix this otherwise we'll take the default TOS action.

Thank you for your attention on this matter,
OUJS Admin

Assuming you do want script updates to happen in some .user.js engines you might want to consider using this instead in your UserScript metadata block:

--- /scripts/Joeviocoe/Autoblog_Comments_2/source@2.0.0+dff18b3
+++ /scripts/Joeviocoe/Autoblog_Comments_2/source
@@ -7,8 +7,8 @@
 // @exclude		 *_uac*
 // @copyright  2014+, Joeviocoe
 // @require
-// @updateURL
-// @downloadURL
+// @updateURL
+// @downloadURL
 // ==/UserScript==
 // Copyright (c) 2014, Joeviocoe

Thanks for the look,
OUJS Admin

--- /scripts/Joeviocoe/StartPage/source@1.4+bb2b432
+++ /scripts/Joeviocoe/StartPage/source
@@ -5,8 +5,8 @@
 // @description  Skip redirection URL on Google search results.
 // @include      **
 // @require
-// @updateURL
-// @downloadURL
+// @updateURL
+// @downloadURL
 // @icon
 // @copyright    2018+, Joeviocoe
 // @license      MIT

This should clear your script notice. Otherwise your users may not be getting updates.

Thanks for the look,
OUJS Admin

This is the fair use favicon in .png format with the largest (48x48) image:


OUJS Admin

So the target remote server is requiring a User-Agent (UA) because it sniffs the UA. We've added a generic string, and generic is all it will ever be due to tracking concerns for OUJS, for the dependency... however this may not prevent the site from dropping the connection again in the future and you will be back to square one with the ECONNRESET.

So you should be able to use the icon URL now however I still strongly recommend a data:URI to prevent any future complications. I know it's rather large but you could just use the largest image in the .ico as a base64 encoded .png image instead to make it smaller.

OUJS Admin

Re: @BostonAqua:

One other diddy about that server that I noticed a few moments ago.

The HTTP/2.0 200 OK response means they are using HTTP/2.0 instead of the current, long-lived, HTTP/1.1... this is proving to be a bit buggy when servers use it and node just had a fix for "slow connections" not working well with HTTP/2.0. Down the line the sites url might work but time will tell.

OUJS Admin

Btw Thanks for the report. Development is a bit quicker on the reply with a new issue created there.

Good luck! That's one weird error thrown. :)

OUJS Admin.

A few things:

  1. This is the dependency that is throwing the error.
  2. We catch it currently here. Which means it shouldn't be us.
  3. I don't see any restrictions off the bat for hotlinking but you might want to do a data:URI instead.
  4. I do see a server side redirect to done on their end from
  5. The nginx server is probably improperly configured by at least the MIME Content-Type for serving .ico (unofficial but claims of most browsers should handle it are around but not sure about node servers like ours... possibly not. Should be image/ from official sources):
HTTP/2.0 200 OK
server: nginx
date: Fri, 23 Aug 2019 00:00:00 GMT
content-type: image/x-icon
content-length: 15086
last-modified: Mon, 05 Jun 2017 00:59:49 GMT
etag: "5934ad05-3aee"
expires: Sun, 22 Sep 2019 02:11:58 GMT
cache-control: max-age=2592000
accept-ranges: bytes
strict-transport-security: max-age=15768000; includeSubDomains; preload
X-Firefox-Spdy: h2

Here's the data:URI for that icon retrieved by my browser in case you want to use it for @icon:


Hmmm decided to test just your UserScript metadata block on my account... get the socket error. Narrowed it down to the @icon... apparently the server is doing something unusual... will report back if I figure it out.

In the meantime... don't set an icon for your script, use a different icon, or use a data:URI instead. I'll see what I can do if it's an issue with one of our deps.

OUJS Admin.

Okay all available updates of our deps are up-to-date. If publishing doesn't work for you I'm not sure what to do for you beyond what I've already recommended for your end.

OUJS Admin

Re: @BostonAqua:

GH import and GH sync appear to be working for me.

One more log to check. I do see the sockethangup in the log but that's not real useful. Says you tried a total of two times at 21:02:44.017 +00:00 and 21:10:39.582 +00:00. I'll try a dep update in a bit to see if that perhaps would help you but I think it's more of a connection issue of you to the server. Clearly it's not full time because you were able to create the discussion here.

OUJS Admin

ECONNRESET is out of our hands and is the primary node error message on a TCP request failing.

At the time of your discussion creation there wasn't any abnormal activity logged either.

Some questions for you:

  • Did you try uploading via file?
  • Are you using WiFi or a cellular network? If routered try rebooting it (power cycling).
  • Have you temporarily tried a clean Chrome profile to see if one of your extensions is wonky?

I just created an entirely new script with the online editor and it's working for me. I'll do a GH sync test shortly but I suspect it will be okay for me.

There is always our provider having a hiccup (nothing announced on a check) or somewhere in between them and you too.

OUJS Admin

Minor change from implied to an explicit right OUJS reserves. This has been the case since day one already but clarified.

Re: @jscher2000:

You mischaracterized what I wrote

I'm trying to fact check your statements and having extreme difficulty qualifying it and quantifying it. This is not personal it's just what I do. I apologize if you are misinterpreting my required procedures and feel diminished in any way. Case by case means we'll table it until an issue is presented with a dispute. Last thing any real person should want to do is patrol licensing changes. That's better suited for automation. In order to automate there are rules to be followed. As I've clearly stated we're mostly on the honor system here i.e. use your best judgement and read/understand your license you pick. Imo I will almost always do my scripts GPL and stick with it forever thus following the GNU concept of keeping free software free. I have several contracts that I've mitigated, had approved, stamp, sealed, and delivered by legal counsel, for my licensing or transference and they all follow suit with my understanding of the information provided with Contract Law. Every time I have to query legal it has the potential to cost money and I don't do that privilege for just anyone. :)

we're not going to change one another's minds, so you do your thing and I'll do mine.

I had already decided a while back that we can agree to disagree. However I prefer to assume the best in everyone so your information is noted for future reference. (We may have to update some of the TOS, according to your information, as well for extreme clarity so it doesn't get the chance to be misinterpreted. Will ponder on that for a bit though to see if it's a necessity.)

Not to diminish @ts with his questions by any means but we also knew it was a "baited" topic that is potentially volatile. This was also discussed off-site. I've had to take extreme cautions on how to reply verifying, and citing as much as possible, every factor. This topic has been asked at least a half-dozen times in general searches with the most common answer of "you can't leave GPL for non-GPL". I'm trying to understand why the person on USO was so adamant about GPL being "sticky" and I think the fact checking shows unequivocally why. :)

There are no obligations or limitations imposed by the license on "I" or "Me" or "We" or "Us" or "licensor" or "copyright holder" related to use or distribution of the work.

It has been pointed out to me in private that there are at least eleven (11) occurrences (and confirmed with my browser search highlighting) directly related to "copyright holder" with use, distribution, and limitation obligations including, but not limited to, warranty (use), termination (use and distribution), etc. So if the initial Copyright holder isn't held to this license then what you are implying is that they are responsible for warranties, damages, etc. ... by your interpretation. I think not. Even MIT, BSD and probably all of them, has some limitations on relief for distribution specifically targeted at all Authors at the tail end. The quotation of yours is incorrect.

I also see it in the preamble where "You" is actually "I", using your nomenclature.

So in conclusion OUJS will deal with items on a case by case basis in combination with the TOS and applicable law with existing precedence with licensing.

Thanks for banter and making at least myself look a lot closer at how things can be potentially exploited and disrupt the integrity of Authors and the Site... valuable insight. :)

Re: @jscher2000:

There are no obligations or limitations imposed by the license on "I" or "Me" or "We" or "Us" or "licensor" or "copyright holder" related to use or distribution of the work.

"Using this same interpretation, Copyright should never be applied if Copyright is not stated."

This prior manually quoted sentence is incorrect of course and I didn't use a single personal pronoun. So by your quote does that mean nobody said it and it's not implied that I said it? (rhetorical question here) No, there is always Copyright even on this reply that I'm doing right now.

I disagree with this conclusion

You have that right as a human being, and probably as U.S. Citizen from what you've shared about yourself, to disagree with anything you choose. Opinion and speech is usually free in the U.S. within limitations as we know (Think TSA and no-no's you shouldn't say on a plane). However I was also reminded of the quote of "The letter of the law versus the spirit of the law" which was also in the response I received. Seems to me like you are going with "the letter" for lack of personal pronouns in the License.

If you read section 2 some of that actually applies directly to the Copyright holder:

“The Program” refers to any copyrightable work licensed under this License.


All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met.

... seems to be some of the standing that legal is pointing out to me and I agree with that assessment officially as the current OUJS Admin.

  1. The word "any" in all dictionaries is inclusive not exclusive. The license does not state only derivatives (or "Downstream Recipients" as they use it).
  2. The defined phrase "The Program" is inclusive to the Copyright holder not exclusive. Again you seem to be implying the the Program doesn't have a Copyright holder because they are not bound to any contract and only derivative Copyright is applied. This notion of course is incorrect in all IP precedence.

Which rebrings me back to Contract Law, it seems to me you are ignoring the fact that contracts exist between two parties. You seem to be implying that one party, the initial party, is not bound to anything in a contract. This notion of course as we all should know is egregiously incorrect. Side-stepping for a moment here to a parallel comparison... if maintenance on a rental doesn't give reasonable notice for entering upon a property they may be held liable for trespassing on your property. This does not have to be stated in a contract but Landlord (synonym for the land/management holder here) is absolutely bound to giving reasonable notice even if they claim they can enter at any time (certain implied exceptions depending on City, County, and State jurisdiction withstanding i.e. extreme emergencies). During the duration of a Lease contract that property is yours (and Landlord may not prevent ingress or egress either), not theirs until legally terminated by either party. Then there are implied rights on departure (vacation) of the premises. Evictions for the Landlord or relief for the Tenant can ensue if it goes to litigation. Substantial violations also apply to both Landlord and Tenant. Do harm to either party and the right of relief is always present. These are de-facto implied rights and the contract applies to both parties. Claiming that one party isn't bound to a contract is naive in my opinion.

As GNU always says the GPL license is designed to keep software free, i.e. Copyleft.

  • Do I agree that the wording could be improved in the License? Yes I do, provisionally. CA wording could be improved as well. The perceived loophole that you are exploiting seems dubious. However it doesn't negate the fact that leaving GPL for another license may be incompatible as I've already cited and impossible to do in many cases ("any" cases as the license clearly spells out). If I go by "the letter" the "any" bit means "one or more", and not "some with exclusions" or "everyone else except me. I'm exempt from all law.". Dancing around semantics is a favorite past time of legal entities but the core of GPL imho is to keep free software free and protect everyone, even from themselves, from making an inept decision.

  • Do I agree that the concept of an original Copyright holder attempting to change away from GPL opens up the original Copyright holder to contractual violations of a forked version that still uses GPL and fixes a critical security risk, and then the original Copyright holder incorporates that into their non-GPL Program? (Phew! Major complicated and perhaps a run on sentence... but hey don't forget to breathe. ;) Yes I do. The wiser solution is just to keep a change to GPL all around and then the possible issues are limited. One wouldn't have to compete with the fork either which is usually a good thing. GNU even alludes to this elsewhere. Standard disclaimer that I probably should have done earlier... I don't work for GNU and I am not sponsored by them (nor is OUJS).

Choose wisely the first time and then move onto better, more productive and constructive, things like actual Code is still my best advice.

Re: @jscher2000:

... but the author (copyright owner) can re-license on on other terms. Why? Because the author (copyright owner) did not receive their own code under the GPL license. Therefore they are not bound by the GPL for that code.

This is what I received from legal. I was instructed to hyperlink everything possible (hopefully that's done correctly) and also re-bold certain applicable section sentences. This applies to the licensor and the licensee from the terms that is established by GNU GPL.

§ 0. Definitions.

This License

“This License” refers to version 3 of the GNU General Public License.


“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.

The Program

“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.


To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work.

covered work

A “covered work” means either the unmodified Program or a work based on the Program.


To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.


To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

Appropriate Legal Notices

An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.

§ 2. Basic Permissions.

All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.

You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.

Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.

§ 10. Automatic Licensing of Downstream Recipients.

Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.

An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.

You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.

In summary of the legalese...

  1. There is no exclusion of licensor from the license. (If there was the "chain of title" would break)
  2. All contracts are between two persons. (at the very least)
  3. The GPL handles both initial and subsequent (upstream) in section 2 and propagation in section 10 (downstream) which is where you are getting the notion of ~"not receiving their code under this license".
  4. The lifetime of the license is 70 years plus however long the original author lives in years that it must be applied. So picking an average lifespan of 60 that makes it 130 years the license is in effect if released under GPL.
  5. Switching away from GPL is a violation of the license even if you are the original Copyright holder, i.e. license is irrevocable, because you are a licensor and the terms apply to an original Author as well under contract law.


Re: @ts:

So anyways back to the initial question again. Yes MIT can be relicensed to GPL as long as you are the Copyright holder because it doesn't have any sort of revocation terms in it.

TADA! :)

Re: @jscher2000:

... but the author (copyright owner) can re-license on on other terms. Why? Because the author (copyright owner) did not receive their own code under the GPL license. Therefore they are not bound by the GPL for that code.

Apologies to contradict here as I do value your input but this isn't accurate already. I still have more to reread, awaiting responses via the electronic frontier, and dusting off the bounded paper (books... the things that are on a bookshelf for those who don't recall ;) ... but...

CC to GPL and not GPL to CC ... although as we have maintained CC is Content not Code licensing and why CC can't be primary and it is ANDed and not ORed:

Likewise, CC-BY-SA 4.0 explicitly permits relicensing modified versions to GNU GPL version 3, but GPL version 3 does not permit relicensing to CC-BY-SA. This issue should never arise for software code; Creative Commons says its licenses are not meant for code, and says that the license to use for code is the GNU GPL. But there are other kinds of works, such as hardware designs or game art, where you might have occasion to merge material released under CC-BY-SA with material released under the GNU GPL. This can be done through CC-BY-SA's explicit relicensing permission.1

CeCILL to GPL and not GPL to CeCILL:

Explicit relicensing permission is not the same thing as compatibility (though relicensing code can make it compatible with other code) and it is not symmetrical. For instance, the CeCILL gives explicit permission to relicense code to GNU GPL, but the GNU GPL does not permit relicensing to the CeCILL.1

I did have a chance to speak with my mentor, in person, and he says he'll relook into it as well. His experience (as in mine) in the industry says the moment you declare a license you are accepting, and incorporating, the terms as the original author. Each link of the "chain of title" has authorship that depends on the previous licensing. So if original copyright holder changes from MIT to GPL that original author has to abide by GPL as well in all future revisions of the work. Near the very last line of GPL header states ~ "If you haven't received a copy..." yadda yadda go there to get it. As we mention in the TOS the @license key is a brief reference to the license and why it's linked to the actual license (SPDX and otherwise mentioned with the URL). One can still use the headered text, or if they want to waste even more space use the full text.

It seems like there's a little of BSD pull vs GPL pull from what you have experienced but I can't say for sure.2 I do vaguely recall a conversation similar to this from the initial OS X days but my macOS was really rusty back then. I'm still in contact with that peer so I'll give him a buzz too.



Re: @jscher2000:

If the author created a work based on (or incorporated) MIT-licensed code, there aren't many limitations in what license the author chooses for their userscript.

That was my understanding and why I use the phrase weak terms for this license. So changing as the original author is perfectly acceptable.

Because the author (copyright owner) did not receive their own code under the GPL license

Well I'm thinking that GNU should rephrase:

Using the GNU GPL will require that all the released improved versions be free software.

... because if an original author releases a new version with GPL in it then the phrase of "Using the GNU GPL" is applicable and they are establishing a "new chain of title" going forward. GNU is granting permissive and protective clauses to ensure free software (Copyleft). If someone forks it before it "gets switched back" (taking a step backwards in the chain sometimes) to proprietary or alternate (with real changes of course) they may not be the original Copyright holder however they do have Copyright on their changes leading back to the newly established GPL chain of title. So if the original author reincorporates a "fix" then the original authors source should be required to have GPL. The original author (Initial Copyright holder) is using it. Thus the the original author should be bound to keep it. This is inline with everything that I've read on GNU so far.

It seems like it's common sense and what I've been advised (and have written explicitly in a few U.S. based contracts of my own from legal). I'll pass this back to them again. Oy! :)

Appreciate you piping in. :) This is why I just start out with GPL in the first place. Less head-aches. ;)

Re: @ts:

Is this mean one cannot dual license some software with both GPL and MIT?

This is a completely different question than what you asked initially.

This is okay:

// ==UserScript==
// @name          My Script
// …
// @license       MIT
// @license       GPL-3.0-or-later
// ==/UserScript==

... in fully supported SPDX short identifiers this is (GPL-3.0-or-later AND MIT).

This is not okay:

// ==UserScript==
// @name          My Script
// …
// @license       GPL-3.0-or-later
// @license       MIT
// ==/UserScript==

... in fully supported SPDX short identifiers this is (MIT AND GPL-3.0-or-later).

... notice the order here. MIT primary can not include GPL secondary but GPL primary can include MIT secondary. A good way to keep this clear in your head is to make the .user.js of GPL and use a Library of MIT instead. Then you won't make any mistakes because it is visually clearer. OUJS doesn't support SPDX conjunctions directly because it's physically impossible with @license format... so you get to use two @license keys and we currently pick AND as the rule of thumb.

Once you add GPL licensing to Code it can't be removed ever period. e.g. it's "sticky" and must remain free software forever with all the conditions that GPL requires.

... posted as MIT license by myself ... And I want to upload changing it to GPL.

Again yes you may do this. But do not reverse the decision. Already explained this above.

OUJS starts off by supporting dual licensing with @license, usually one for Code (OSI approved) and the other for Content (CC). In SPDX terminology/syntax it is conjunctive i.e. AND... not disjunctive i.e. OR. OUJS does not support this sort of double licensing, i.e. picking one or the other.

I realize that you are trying to understand this but your focus is quite skewed and I literally don't have the necessary time to assist you with this. You must understand a license (or licenses) before you use it (them). If you don't hire a very expensive contract attorney who knows a lot about intellectual property rights then you should probably stick with MIT since it's a super simple license.

Why could not just dual license all previous versions under MIT and use it in close source project?

On another of your question tangents... Closed source licenses can be considered "Vanity Licenses" because it involves drawing up a written contract that is physically signed by all parties. Is this really something you want to do? If so hire an attorney.

There are a bunch of resources on the web that you may search for in a search engine (e.g. bing, duckduckgo, google, yahoo). One of the more common ones that I see referenced is

I find the simplest solution is to use GNU everywhere and then it makes it a lot less complicated for me as an Author myself... but this is a preference to maintain my serenity. :)