New 4DPop main component reloaded :)

4DPop main component reloaded (UI and some corrections).
Source and compiled: https://www.protee.org/index.php/en/download-en/4d-free-bonus

Bonjour,

Un petit détail : Vous distribuez un produit qui est sous copyright (cf. le contenu de fichier InfoPlist.strings)

Vous avez parfaitement le droit de réutiliser le code qui est publié depuis le début (4D version 6.0), mais pas celui de le distribuer sous ce nom ni avec le copyright que vous avez d’ailleurs inclus et non modifié.

Cordialement

Bonjour Vincent,
désolé, je croyais que l’on pouvait modifier ces composants à sa guise, justement en laissant la licence initiale.
Je ne distribue pas, je remets à disposition un composant que j’ai amélioré.
Un peu comme j’ai fait pour Files Buddy qui est devenu Resources Buddy et cela n’a pas posé de problème.

Donc, c’est quoi la procédure normale et valide ?

En gros, je fais un fork, c’est tout.
Source et code dispo.

Le mieux est que je change son nom, et son copyright, en laissant la trace de l’origine du (de ton) travail ?

: Olivier GRIMBERT

Donc, c’est quoi la procédure normale et valide ?

Tout est dans cette licence :

// -----------------------------------------------------------------------------
// Method : 4D_License
// Created 20/06/16
// DO NOT REMOVE THIS METHOD
// -----------------------------------------------------------------------------
//
// SOFTWARE LICENSE AGREEMENT
//
// -----------------------------------------------------------------------------
//Preamble
//
//The purpose of this Software license agreement is to grant users the right to
//modify and re-use the software governed by this license.
//
//The exercising of this right is conditional upon the obligation to make
//available to the community the modifications made to the source code of the
//software so as to contribute to its evolution.
//
//In consideration of access to the source code and the rights to copy, modify and
//redistribute granted by the license, users are provided only with a limited
//warranty and the software’s author, the holder of the economic rights, and the
//successive licensors only have limited liability.
//
// -----------------------------------------------------------------------------
//Article 1 – DEFINITIONS
//
//Agreement: means this license agreement, and its possible subsequent versions
//and annexes.
//
//Software: means the software in its Object Code and/or Source Code form and,
//where applicable, its documentation, “as is” when the Licensee accepts the
//Agreement.
//
//Initial Software: means the Software in its Source Code and possibly its Object
//Code form and, where applicable, its documentation, “as is” when it is first
//distributed under the terms and conditions of the Agreement.
//
//Modified Software: means the Software modified by at least one Integrated
//Contribution.
//
//Source Code: means all the Software’s instructions and program lines to which
//access is required so as to modify the Software.
//
//Object Code: means the binary files originating from the compilation of the
//Source Code.
//
//Holder: means the holder(s) of the economic rights over the Initial Software, in
//this case it is 4D SAS.
//
//Licensee: means the Software user(s) having accepted the Agreement.
//
//Contributor: means a Licensee having made at least one Integrated Contribution.
//
//Licensor: means the Holder, or any other individual or legal entity, who
//distributes the Software under the Agreement.
//
//Integrated Contribution: means new functions integrated into the Source Code by
//any or all Contributors.
//
//Parties: mean both the Licensee and the Licensor.
//
//These expressions may be used both in singular and plural form.
//
// -----------------------------------------------------------------------------
//Article 2 - PURPOSE
//
//The purpose of the Agreement is the grant by the Licensor to the Licensee of a
//non-exclusive, transferable and worldwide license for the Software as set forth
//in Article 5 hereinafter for the whole term of the protection granted by the
//rights over said Software.
//
// -----------------------------------------------------------------------------
//Article 3 - ACCEPTANCE
//
//The Licensee shall be deemed as having accepted the terms and conditions of this
//Agreement upon the occurrence of the first of the following events:
//
//loading the Software by any or all means, notably, by downloading from a remote
//server;
//the first time the Licensee exercises any of the rights granted hereunder.
//
// -----------------------------------------------------------------------------
//Article 4 - EFFECTIVE DATE AND TERM
//
// 4.1 EFFECTIVE DATE
//
//The Agreement shall become effective on the date when it is accepted by the
//Licensee as set forth in Article 3.
//
// -----------------------------------------------------------------------------
//4.2 TERM
//
//The Agreement shall remain in force for the entire legal term of protection of
//the economic rights over the Software.
//
// -----------------------------------------------------------------------------
//Article 5 - SCOPE OF RIGHTS GRANTED
//
//The Licensor hereby grants to the Licensee, who accepts, the following rights
//over the Software for the term of the Agreement, on the basis of the terms and
//conditions set forth hereinafter.
//
//5.1 RIGHT OF USE
//
//The Licensee is authorized to use the Software, without any limitation as to its
//fields of application, with it being hereinafter specified that this comprises:
//
//permanent or temporary reproduction of all or part of the Software by any or all
//means and in any or all form.
//loading, displaying, running, or storing the Software on any or all medium.
//entitlement to observe, study or test its operation.
//
//5.2 RIGHT OF MODIFICATION
//
//The right of modification means the right to adapt, arrange, or make any or all
//modifications to the Software; being understood that such modifications of the
//Software shall results in a change of its functionalities and/or in an addition
//of functionalities to the Initial Software.
//
//Consequently to distribute a Modified Software according to the provision of
//section 5.3.2, the Licensee shall make exclusively significant modification as
//described above to the Software provided that it includes an explicit notice
//that it is the author of said modification and indicates the date of the
//creation thereof.
//
//5.3 RIGHT OF DISTRIBUTION
//
//In particular, the right of distribution includes the right to publish, transmit
//and communicate the Modified Software to the general public on any or all
//medium, and by any or all means, and the right to market, either in
//consideration of a fee, or free of charge, one or more copies of the
//Modified Software by any means.
//
//5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
//
//The Licensee is forbidden to distribute true copies of the Software in Source
//Code or Object Code form.
//
//5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
//
//When the Licensee creates Modified Software, this Modified Software may be
//distributed provided that said distribution complies with all the provisions of
//the Agreement and subject to compliance with the requirement to include a notice
//concerning the rights over the Software as defined in Article 6.3.
//
//In the event the creation of the Modified Software, the Licensee undertakes
//that:
//the resulting Modified Software will be governed by this Agreement, being
//understood that such Agreement shall be integrated in the Modified Software
//the Integrated Contributions in the resulting Modified Software will be clearly
//identified and documented,
//the Licensee will allow effective access to the source code of the Modified
//Software, at a minimum during the entire period of distribution of the
//Derivative Software, such that such modifications may be carried over in a
//subsequent version of the Software.
//the Modified Software must be renamed to exclude any reference to 4D. For
//example, it is expressly prohibited to distribute a Modified Software named “4D
//SVG”; Licensee shall rename the Modified Software such as “Name of the Licensee
//SVG”. Consequently, Licensee is expressly forbidden to use 4D’s product name in
//general to promote his modified work.
//
// -----------------------------------------------------------------------------
//Article 6 - INTELLECTUAL PROPERTY
//
//6.1 OVER THE INITIAL SOFTWARE
//
//The Holder owns the intellectual property rights over the Initial Software. Any
//or all use of the Initial Software is subject to compliance with the terms and
//conditions under which the Holder has elected to distribute its work and no one
//shall be entitled to modify the terms and conditions for the distribution of
//said Initial Software.
//
//6.2 OVER THE INTEGRATED CONTRIBUTIONS
//
//The Licensee who develops an Integrated Contribution is the owner of the
//intellectual property rights over this Contribution as defined by applicable
//law.
//
//6.3 NOTICE OF RIGHTS
//
//The Licensee expressly undertakes:
//
//not to remove, or modify, in any manner, the intellectual property notices
//attached to the Software;
//to reproduce said notices, in an identical manner, in the copies of the Software
//modified;
//to ensure that use of the Software, its intellectual property notices and the
//fact that it is governed by the Agreement is indicated in a text that is easily
//accessible, specifically from the interface of any Modified Software.
//
//The Licensee undertakes not to directly or indirectly infringe the intellectual
//property rights of the Holder on the Software and to take, where applicable, vis-
//à-vis its staff, any and all measures required to ensure respect of said
//intellectual property rights of the Holder.
//
// -----------------------------------------------------------------------------
//Article 7 - RELATED SERVICES
//Under no circumstances shall the Agreement oblige the Licensor to provide
//technical assistance or maintenance services for the Software.
//However, the Licensor is entitled to offer this type of services. The terms and
//conditions of such technical assistance, and/or such maintenance, shall be set
//forth in a separate instrument.
//
// -----------------------------------------------------------------------------
//Article 8 - DISCLAIMER OF WARRANTY.
//THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE
//LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE HOLDER PROVIDES THE SOFTWARE
//“AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
//BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
//PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
//SOFTWARE IS WITH LICENSEE. SHOULD THE SOFTWARE PROVE DEFECTIVE, LICENSEE ASSUMES
//THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
//
// -----------------------------------------------------------------------------
//Article 9 - LIMITATION OF LIABILITY
//TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO LICENSEE ON
//ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR OTHERWISE FOR
//ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY,
//OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS AGREEMENT OR
//USE OF THE SOFTWARE, EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF
//SUCH LOSSES, COSTS, EXPENSES, OR DAMAGES.
//
// -----------------------------------------------------------------------------
//Article 10 – TERMINATION
//10.1 In the event of a breach by the Licensee of its obligations hereunder, the
//Licensor may automatically terminate this Agreement thirty (30) days after
//notice has been sent to the Licensee and has remained ineffective.
//
//10.2 A Licensee whose Agreement is terminated shall no longer be authorized to
//use, modify or distribute the Software. However, any licenses that it may have
//granted prior to termination of the Agreement shall remain valid subject to
//their having been granted in compliance with the terms and conditions hereof.
//
// -----------------------------------------------------------------------------
//Article 11 – MISCELLANEOUS
//11.1 Neither Party shall be liable for any or all delay, or failure to perform
//the Agreement, that may be attributable to an event of force majeure, an act of
//God or an outside cause, such as defective functioning or interruptions of the
//electricity or telecommunications networks, network paralysis following a virus
//attack, intervention by government authorities, natural disasters, water damage,
//earthquakes, fire, explosions, strikes and labor unrest, war, etc.
//
//11.2 Any failure by either Party, on one or more occasions, to invoke one or
//more of the provisions hereof, shall under no circumstances be interpreted as
//being a waiver by the interested Party of its right to invoke said provision(s)
//subsequently.
//
//11.3 In the event that one or more of the provisions hereof were to conflict
//with a current or future applicable act or legislative text, said act or
//legislative text shall prevail, and the Parties shall make the necessary
//amendments so as to comply with said act or legislative text. All other
//provisions shall remain effective. Similarly, invalidity of a provision of the
//Agreement, for any reason whatsoever, shall not cause the Agreement as a whole
//to be invalid.
//
// -----------------------------------------------------------------------------
//Article 12 - GOVERNING LAW AND JURISDICTION
//
//12.1 The Agreement is governed by French law. The Parties agree to endeavor to
//seek an amicable solution to any disagreements or disputes that may arise during
//the performance of the Agreement.
//
//12.2 Failing an amicable solution within two (2) months as from their
//occurrence, and unless emergency proceedings are necessary, the disagreements or
//disputes shall be referred to the Versailles Courts having jurisdiction, by the
//more diligent Party.
// -----------------------------------------------------------------------------

: Olivier GRIMBERT

Un peu comme j’ai fait pour 4DPop Files Buddy qui est devenu 4DPop
Resources Buddy et cela n’a pas posé de problème.

La même licence est incluse dans ce composant…

D’accord, merci Vincent.

Donc, je dois renommer cela, car le 5.3.2 indique de ne pas mettre de 4D dans le nom.
Donc je vais rebuilder tout cela avec un nom sans 4D dedans.

Je n’ai pas le droit de mettre un “4DPop…” au début du nom ?

: Olivier GRIMBERT

Je n’ai pas le droit de mettre un “4DPop…” au début du nom ?

Et dois-je aussi changer toutes les méthodes qui commencent par 4D comme “4DPop_Palette”, vu que je suis censé être un remplacement, j’aimerais pouvoir garder cela ?

non, il n’y a aucune restriction sur ce point.

: Olivier GRIMBERT

Je n’ai pas le droit de mettre un “4DPop…” au début du nom ?

Non, ce nom est déposé.

Alors j’ai essayé d’appeler cela “ogPop” et j’ai une erreur de
dépendance !
Cela arrive même avant l’appel à 4DPop (maintenant ogPop) de démarrage.

: Vincent DE LACHAUX

La base de données ou le composant “4DPop Constants Editor” a besoin
du composant “4DPop”.

Que ouis-je faire ? Une idée de ce qu’il y a ?

il faut recopier 4DPop Constants Editor

Que veux-tu dire par recopier ?
De plus, si j’enlève 4DPop Constants Editor, cela le fait aussi pour les autres, en fait je pense tous.

Donc c’est facile de faire des composants, mais c’est difficile de changer la “tête” principale 4DPop :slight_smile:

Merci d’avance.

: Olivier GRIMBERT

Que veux-tu dire par recopier ?

“recompiler”

: Olivier GRIMBERT

Donc c’est facile de faire des composants, mais c’est difficile de
changer la “tête” principale 4DPop

Oui, le composant principal partage des méthodes qui sont utilisées par les autres.

: Vincent DE LACHAUX

Oui, le composant principal partage des méthodes qui sont utilisées
par les autres.

Ah ben ça alors ! Oui en effet, par exemple dans “4DPop Constants Editor.4dbase” il y a bien une méthode “IMPORT_FROM_PLUGIN” qui fait ligne 71 :
<code 4D>
$Txt_targetPath:=4DPop_hostDatabaseFolder (kRoot)+“Plugins (inactivated)”+Folder separator
</code 4D>

Alors cela amène une question très intéressante pour tous !

Comment on fait cela ? Par exemple ici si j’ouvre cette méthode, “4DPop_hostDatabaseFolder” reste en couleur de variable process, et cela n’est donc pas “tockenisé”. Comment je fais pour lui indiquer d’où vient cette méthode, 4DPop en l’occurence ?
Je pensais pour cela qu’il fallait mettre un dossier composant avec 4DPop dedans. Mais dans les sources fournis, ce n’est pas le cas: pourquoi ? Comment faire ?

Un contournement:

Car pour ne pas avoir à recompiler tout ce qui serait galère - je ne souhaite pas faire des forks de tout cela ! - j’ai:

  • laissé 4DPop
  • dans ma version ogPop, les méthodes partagées ne le sont plus, sauf
  • 4DPop_Palette qui devient ogPop_Palette.

Et dans les bases host, au démarrage, il faut changer l’appel.

La vraie question qui reste :

Quelle est la solution proposée par 4D afin de partager des méthodes d’un composant à l’autre, comme ici 4DPop vers tous les autres 4DPop_xxxx ?

En pratique, quand on développe le composant, comment on fait pour que 4D “connaisse” ces méthodes partagées de 4DPop ?

Je devine la réponse : on met un dossier “Components” avec 4DPop dedans, et on développe.
Et quand vous avez diffusé les sources, vous avez enlevé ces dossiers “Components” ?
C’est cela ?

Ok then now, the component name is ogPop.

11-04-2020: 4DPop is a reserved name, so now the component’s name is ogPop.
Because of dependencies for all other 4DPops components, you must let the initial 4DPop inside the folder.

Just call another method as below:

//Run ogPop
//This code is available even if the component is not present like in the final application.
If (Not(Is compiled mode))
ARRAY TEXT($tTxt_Components;0)
COMPONENT LIST($tTxt_Components)
If (Find in array($tTxt_Components;“ogPop”)>0)
EXECUTE METHOD(“ogPop_palette”)
End if
If (Find in array($tTxt_Components;“QS_Toolbox”)>0) // For QS_Toolbox :slight_smile:
EXECUTE METHOD(“QS_init”)
End if
End if