From ceceaf4ece70d5873fd6952a8bd6971c4c0e93ac Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Sun, 23 Nov 2025 23:47:24 +0100 Subject: [PATCH] Release: compile authorship information Some recherche regarding the requirements and conditions of the GPL made it clear that we are obliged to have at least an summary statement of all authors and the years of their contributions embedded somewhere in the source itself. The Git history alone is not sufficient to fulfil this requirement, since a code base could be packaged as Tarball and passed-on outside of any Git repository. Thus I propose the following policy - add yourself to the copyright header whenever you made some ''significant'' contribution to a code file - maintain a list of relevant authors at top-level, indicating a time range of their contribution - use the same information also in the debian/copyright (DEB package) - clarify in the LICENSE that authorship can be extracted from Git __Remark__: Anton Yakovlev made a single code contribution in 2009 (87e528bd), which was never used anywhere and removed as part of a general clean-up in 2023. Thus I do not list him as a code author, but he is mentioned in credits.txt --- AUTHORS | 14 +- LICENSE | 36 ++- NEWS | 4 + doc/devel/rfc/RefactorLiblumieraOut.txt | 16 +- src/lib/lifecycle.cpp | 2 +- src/lib/lifecycleregistry.hpp | 2 +- src/stage/widget/button-bar.cpp | 1 + src/stage/widget/button-bar.hpp | 1 + src/stage/widget/menu-button.cpp | 1 + src/stage/widget/menu-button.hpp | 1 + src/stage/widget/panel-bar.cpp | 1 + src/stage/widget/panel-bar.hpp | 1 + src/steam/common.hpp | 2 +- wiki/thinkPad.ichthyo.mm | 372 ++++++++++++++++++++++-- 14 files changed, 408 insertions(+), 46 deletions(-) diff --git a/AUTHORS b/AUTHORS index 39bcf9045..47be52115 100644 --- a/AUTHORS +++ b/AUTHORS @@ -17,14 +17,14 @@ Workflow Concept:: Core Developers:: -- Hermann Voßeler -- Joel Holdsworth -- Christian Thäter +- 2007-2025 Hermann Voßeler +- 2008-2009 Joel Holdsworth +- 2007-2011 Christian Thäter Programming:: -- Michael Ploujnikov -- Stefan Kangas -- Michael Fisher -- Simeon Völkel +- 2007-2010 Michael Ploujnikov +- 2010-2011 Stefan Kangas +- 2010-2012 Michael Fisher +- 2007-2008 Simeon Völkel Documentation:: - Hermann Vosseler diff --git a/LICENSE b/LICENSE index 6c52ed1b9..29de74adb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,18 @@ -- the *Lumiera* source code is (C) by the original authors (see `AUTHORS`) +Lumiera is Free Software +======================== +:Date: 11/2025 + +This source tree or package is based on various contributions +and its use is permitted under the conditions of the *GNU General Public License* + + +- the *Lumiera* source code is copyrighted and licensed by the original authors ++ +-- + * (c) 2007-2025 Hermann Voßeler + * (c) 2007-2011 Christian Thäter + * (c) 2008-2009 Joel Holdsworth +-- + ----------------------------------------------------------------------------- Lumiera is free software; you can redistribute it and/or modify it @@ -16,8 +30,24 @@ For a copy of the GPL Version 2 see the file COPYING -- Website, design documents and accompanying materials are covered by - the same license as the source code (GPL2+), + +- The full source code can always be retrieved from + https://git.lumiera.org/?p=LUMIERA;a=summary[`git://git.lumiera.org/LUMIERA`] + + * there are a lot of additional authors, which all hold copyright + on their respective contributions made under this license; + see the copyright statements of individual files + + * furthermore, a full list of contributors can be retrieved + from the Git repository: + + git log --format="\"%an <%ae>\",%ad" --date=short HEAD + + * see also the file `AUTHORS` + + + +- Website, design documents and accompanying materials are covered + by the same license as the source code (GPL2+), + in addition they are also dual-licensed under *CC-By-SA 4* diff --git a/NEWS b/NEWS index c987e0570..d7b6a1e1c 100644 --- a/NEWS +++ b/NEWS @@ -9,9 +9,13 @@ Lumiera is a non-linear video editing and compositing tool. NOTE: as of 11/2025, Lumiera is in early development stage; it is not usable yet. This is a preview Release of a current development snapshot in pre-alpha stage. + +Source code and a list of all contributors can be retrieved +from `git://git.lumiera.org/LUMIERA` ************************************************************* + In the current stage of development, the focus is primarily on the overall integration of fundamental functionality at all levels of the code base. diff --git a/doc/devel/rfc/RefactorLiblumieraOut.txt b/doc/devel/rfc/RefactorLiblumieraOut.txt index 3b4eea822..6a5d07cea 100644 --- a/doc/devel/rfc/RefactorLiblumieraOut.txt +++ b/doc/devel/rfc/RefactorLiblumieraOut.txt @@ -19,9 +19,9 @@ which is already in use by other projects Description ----------- //description: add a detailed description: -Over the time we've put some efforts into the liblumiera. I have added +Over the time we've put some efforts into the 'liblumiera'. I have added some from my code which predates the Lumiera project and which I am using -on many other projects. This means that I would have to maintain thsese +on many other projects. This means that I would have to maintain these sources in different unrelated projects and have to cross merge and update several copies of the same code when I do updates and fixes somewhere. I think its time to factor the re-useable parts out into a independent @@ -48,13 +48,13 @@ For myself I need the C parts, while there is C\++ code which interfaces to the C implementations and also a lot code which does nice C\++ things on its own. This possibly means that we should in fact make 2 packages out of this, one C and one C\++ library (where the C++ part is more than just the wrappers, but -also the tools and tricks which are currently in 'src/lib/' and reuseable). +also the tools and tricks which are currently in 'src/lib/' and reusable). .Who maintains it Despite of being a spin-off I think we don't want to change anything from our current practice and maintain it by the Lumiera developers. In part I feel responsible for it, while it is really a part of the Lumiera codebase, -despite of being independently useable. +despite of being independently usable. .How to maintain it We need to decide about build system and documentation system. As build system @@ -79,7 +79,7 @@ What belongs to the library Containers ++++++++++ * cuckoo hashing (cuckoo.c|h) - * linked lists (llist.h slist.h) + * linked lists (llist.h) * cache lists (mrucache.c|h) * splay trees (psplay.c|h) * priority queues (not done yet) @@ -87,7 +87,7 @@ Containers Runtime tools +++++++++++++ * error handling (error.h error.c) used by the other facilities too - * clib convinience wrapers (safeclib.c|h) needs better name, maybe refactor + * clib convenience wrappers (safeclib.c|h) needs better name, maybe refactor into new facilities Multithreading @@ -101,7 +101,7 @@ Memory management Metaprogramming +++++++++++++++ - * preprecessor tools (ppmpl.h) move common preprocessor macros here + * preprocessor tools (ppmpl.h) move common preprocessor macros here * polymorphic call helper for C (vcall.h) Interface system and module loader @@ -183,7 +183,7 @@ Tasks // * first step ([green]#✔ done#) * decide on name, namespaces [,yellow]#WIP# - * create git repository, setup boilerplace (build system, legalese) + * create git repository, setup boilerplate (build system, legalise) [,yellow]#WIP# * move all code over into the git repos, refactor (namespace renames) () [,yellow]#WIP# diff --git a/src/lib/lifecycle.cpp b/src/lib/lifecycle.cpp index f7c92513f..5d38e7090 100644 --- a/src/lib/lifecycle.cpp +++ b/src/lib/lifecycle.cpp @@ -2,7 +2,7 @@ Lifecycle - registering and triggering lifecycle callbacks Copyright (C) - 2008, Hermann Vosseler + 2008,2017 Hermann Vosseler   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the diff --git a/src/lib/lifecycleregistry.hpp b/src/lib/lifecycleregistry.hpp index 2fedc89fc..912aec541 100644 --- a/src/lib/lifecycleregistry.hpp +++ b/src/lib/lifecycleregistry.hpp @@ -3,7 +3,7 @@ Copyright (C) 2008, Christian Thaeter - Hermann Vosseler + 2008, Hermann Vosseler   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the diff --git a/src/stage/widget/button-bar.cpp b/src/stage/widget/button-bar.cpp index 3ededa5f5..e223b61c6 100644 --- a/src/stage/widget/button-bar.cpp +++ b/src/stage/widget/button-bar.cpp @@ -3,6 +3,7 @@ Copyright (C) 2009, Joel Holdsworth + 2012, Michael R. Fisher   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the diff --git a/src/stage/widget/button-bar.hpp b/src/stage/widget/button-bar.hpp index 8ba260563..306333e98 100644 --- a/src/stage/widget/button-bar.hpp +++ b/src/stage/widget/button-bar.hpp @@ -3,6 +3,7 @@ Copyright (C) 2009, Joel Holdsworth + 2012, Michael R. Fisher   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the diff --git a/src/stage/widget/menu-button.cpp b/src/stage/widget/menu-button.cpp index 4a108431d..6d5c7a785 100644 --- a/src/stage/widget/menu-button.cpp +++ b/src/stage/widget/menu-button.cpp @@ -3,6 +3,7 @@ Copyright (C) 2008, Joel Holdsworth + 2012, Michael R. Fisher   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the diff --git a/src/stage/widget/menu-button.hpp b/src/stage/widget/menu-button.hpp index 39c19e9ef..6e668b279 100644 --- a/src/stage/widget/menu-button.hpp +++ b/src/stage/widget/menu-button.hpp @@ -3,6 +3,7 @@ Copyright (C) 2008, Joel Holdsworth + 2012, Michael R. Fisher   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the diff --git a/src/stage/widget/panel-bar.cpp b/src/stage/widget/panel-bar.cpp index f825dedf1..5d4576cd3 100644 --- a/src/stage/widget/panel-bar.cpp +++ b/src/stage/widget/panel-bar.cpp @@ -3,6 +3,7 @@ Copyright (C) 2009, Joel Holdsworth + 2012, Michael R. Fisher   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the diff --git a/src/stage/widget/panel-bar.hpp b/src/stage/widget/panel-bar.hpp index 57da211e6..b9b0a6330 100644 --- a/src/stage/widget/panel-bar.hpp +++ b/src/stage/widget/panel-bar.hpp @@ -3,6 +3,7 @@ Copyright (C) 2009, Joel Holdsworth + 2012, Michael R. Fisher   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the diff --git a/src/steam/common.hpp b/src/steam/common.hpp index 7ff496872..acb66319d 100644 --- a/src/steam/common.hpp +++ b/src/steam/common.hpp @@ -4,7 +4,7 @@ Copyright (C) 2008, Christian Thaeter - Hermann Vosseler + 2008, Hermann Vosseler   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index dc16e97f3..2cfafb541 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -160419,6 +160419,186 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo + + + + + + + + + + + + + + + + + +

+ Das ist der virale Mechanismus. +

+

+ Er gilt nicht für die Hinzufügungen allein, denn diese können auch sonstwie unter beliebigen Bedingungen lizenziert werden (das heißt, man verliert nicht sein Copyright an seinem eigenen Werk, aber man erwirbt auch keine Rechte an den Werken andere Leute, jenseits dieser LIzenz) +

+ +
+ +
+ + + + + + +

+ ...schließt den Fall ein daß man lediglich ein Compilat bereitstellt (auch das gilt als abgeleitetes Werk) +

+ +
+ + + + +

+ im Besonderen: klarstellen daß das Werk unter diese Lizenz fällt +

+ +
+
+ + + + +

+ Hier gibt es diverse Varianten in der Lizenz, denn die Software kann auch Teil eines Produktes sein, sogar Teil einer Hardware. In diesem Fall muß ein Service für mindestens 3 Jahre geboten werden (oder so lange wie man Wartung und Reparatur bietet), über den man erfahren kann, wie man an den Quellcode kommt. Der Quellcode kann auch duch jemand Anderes bereitgestellt werden, aber man selber hat sicherzustellen, daß dies der Fall ist, solange man das Produkt anbietet oder wartet +

+ +
+
+
+
+
+ + + + + + +

+ Aber die Einzel-Statements sind wichtig für den Fall, daß jemand einzelne Files aus der Distribution herausnimmt und separat weiterverbreitet. Solange die Files in der Gesamtdistribution bleiben, genügt ein einziges zentrales Lizenz-Statement, das jedoch mit allen Einzel-Lizenzen kompatibel sein muß. +

+ +
+
+ + + + +

+ Der Copyright-Claim weist auf das Urheberrecht hin, das man gemäß Konvention von Bern automatisch erlangt, für typischerweise 70Jahre nach dem Tod. Dieses Recht bildet das Fundament, warum der Code überhaupt unter eine Lizenz fallen kann. Deshalb muß mindestens ein tragfähriger Copyritght-Claim gegeben sein +

+ +
+
+ + + + + + + + + +

+ Diese Regelung zielt erkenntlich auf die »industriselle Praxis«: dort ist den Leuten alles egal,  wofür sie nicht bezahlt und wozu sie nicht geprügelt wurden. Da bekommt man dann (ist mir selbst oft genug passiert) irdend ein Zip-File hingerotzt, und weiß nicht einmal, ob das Executable, das auf dem Server installiert wurde, wirklich aus diesem Quellcode stammt. Die GPL bietet in diesem Fall einen zusätzlichen Hebel, nicht zuletzt auch um die Reputation einer Quelle aus FreeSoftware zu schützen. +

+ +
+
+
+ + + + + + + + + + + + + +

+ Man muß jederzeit erkennen können... +

+
    +
  • + auf welchem Ursprungsrecht (Copyright-Claim) die Lizenz fußt +
  • +
  • + welche Lizenz nun effektiv gültig ist +
  • +
  • + wer sonst noch Änderungen vorgenommen hat und damit Copyright haben könnte +
  • +
  • + Datum der Änderungen summarisch (⟹ verlängert Gültigkeit der LIzenz 70Jahre nach dem Tod) +
  • +
+ +
+
+
+
+ + + + + + +

+ Jede Verletzung einer Pflicht terminiert die Lizenz, zunächst vorläufig. Allerdings handelt es sich um Vertragsrecht, und desshalb müßte die Aktion von einem Upstream-Rechteinhaber ausgehen... +

+ +
+ + + + + +

+ Vorrausseztung ist, daß man schnellstmöglich die Versäumnisse nachholt (in weniger als 30 Tagen nach Bekanntwerden des Mißstandes). Dennoch können binnen 60 Tagen nach dem Start des Heilversuchs beliebige Upstream-Copyright-Holder ihre Lizenz terminieren und haben dann allerdings nur ihren eigenen Anteil am Werk als Hebel zur Verfügung. Sofern sie dies nicht (binnen 60 Tagen) von sich aus tun, wird die Lizenz durch den Heilungsversuch automatisch wiederhergestellt +

+ +
+
+ + + + +

+ selbst wenn ich Fehler mache, und dadurch meine Lizenz verliere, können die Copyright-Holder sich nur bei mir bedienen, aber nicht weitere User in die Pflicht nehmen, die ihre Lizenz durch mich erlangt haben, solange sie im Glauben waren, diese Lizenz sei gültig. +

+ +
+
+
+ + + + + +

+ Das gilt nur für die GPL-3 und auch nur für Patent-Claims, die ein Nutzer oder Contributor geltend machen könnte; die Lizenz schützt im Besonderen nicht vor Patent-Claims Dritter +

+ +
+
+
+
@@ -169932,7 +170112,7 @@ that situation will improve in forseeable future. - + @@ -170036,9 +170216,7 @@ that situation will improve in forseeable future. - - - +

Das hab ich neulich schon im Rahmen der Website überlegt und so beschlossen; ich kann das Aggregat re-lizensieren unter einer kompatiblen Lizenz (eigentlich könnte man das auch für GPL2+ ⟶ GPL3+ so machen). Auch Stackoverfow hat seine Lizenz für »Subscriber Content« auf CC-By-SA 4.0 gehoben @@ -171700,7 +171878,8 @@ Since then others have made contributions, see the log for the history. - + + @@ -178239,6 +178418,10 @@ Since then others have made contributions, see the log for the history. + + + + @@ -179902,12 +180085,36 @@ Since then others have made contributions, see the log for the history. - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -181276,20 +181483,20 @@ Since then others have made contributions, see the log for the history. - + - + - + - + - - + + @@ -181655,7 +181862,8 @@ Since then others have made contributions, see the log for the history. - + + @@ -181665,7 +181873,7 @@ Since then others have made contributions, see the log for the history. - + @@ -181673,7 +181881,8 @@ Since then others have made contributions, see the log for the history. - + + @@ -181691,15 +181900,116 @@ Since then others have made contributions, see the log for the history. + + + + +

+ Das ist expizit erlaubt und stellt ein Statement für die Codebasis als Sammel-Veröffentlichung dar; diese Angabe ersetzt nicht die Angaben für die Files, aber stellt eine (damit zwingend kompatible) Veröffentlichung eines Sammelwerks dar, welches damit ein vereinfachtes Handle bietet für die Weiterverbreitung (und insofern dann zumindest die Einzel-Lizenzen überlagert). Bezüglich der Attributierung ist die GPL ja nicht so streng wie die CC oder Apache +

+ +
- + + - - - - - - + + + + + + + + + + + + + + + + + + + + + +

+ ...ist mir aber schon neulich aufgefallen, beim Aufbereiten der Daten für die Historien-Seite. Joel war also noch gut 1 1/2 Jahre formal im Projekt mit dabei, und hat an Meetings teilgenommen, bis er sich offiziell verabschiedet hat +

+ +
+
+
+ + + + + + + + + + + + + + + + +

+ das Alsa-Experiment, was unfertig ist und nur funktioniert wenn die Soundkarte zwei Kanäle hat und 16 Bit erwartet (also bei mir funktioniert es schon mal nicht deshalb). Allerdings ist das Experiment bis heute im Code, als lumiera-output-probe. +

+ +
+
+ + + + + + + + + + + +

+ In der aktuellen Codebasis ist kein Code von ihm (mehr) enthalten, und sein Code wurde nie verwendet. Sein Beitrag ist auf der »Credits« page gewürdigt, allerdings auch da nur unter "IRC crew" +

+ +
+ + +
+
+ + + + + + + +

+ Die Authorschaft am Code hat rechtliche Relevanz, denn sie begründet eine Lizenz und auch ein Veto-Recht im Falle einer intendierten Lizenz-Änderung (z.B. Kommerzialisierung). Auf diesem Hintergrund halte ich es nicht sinnvoll, jemanden als "Code-Author" zu führen, der keinen signifikante  Beitrag zum Code geleistet hat, denn Copyright setzt eine gewisse »Schöpfungshöhe« vorraus. +

+ +
+ + +
+
+
+ + + + +

+ Die Zeiträume des Copyright mit aufgeführt, und explizit auf das Git-Repo verwiesen, den allgemeinen Einsichten gemäß, die ich heute über die Wirkungsweise des GPL-Copyright gewonnen habe: Zeitpunkt und Autoren-Namen müssen für die GPL verbindlich mitgeführt werden, es ist aber nicht eigens eine »Attribution« notwendig (jedoch die Git-Historie allein genügt nicht, sondern die summarische Info muß auch irgendwo im Content zu finden sein) +

+ +
+
@@ -181708,7 +182018,19 @@ Since then others have made contributions, see the log for the history. - + + + + + + + + + + + + +