Bug 28499 - Convert debian/copyright to machine-readable DEP-5
Convert debian/copyright to machine-readable DEP-5
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: General
UCS 4.2
All Linux
: P5 normal (vote)
: UCS 4.4
Assigned To: Philipp Hahn
Arvid Requate
http://www.gnu.org/licenses/gpl-howto...
: interim-3
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-09-14 07:53 CEST by Philipp Hahn
Modified: 2019-05-04 10:46 CEST (History)
5 users (show)

See Also:
What kind of report is it?: Development Internal
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional): Cleanup, License
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philipp Hahn univentionstaff 2012-09-14 07:53:14 CEST
Der Lizenztext sollte mal wieder aktualisiert werden: Statt der sich ab und zu ändernden Postadresse sollte inzwischen nur noch eine URL angegeben werden:

The FSF now prefers to use URL's in copyright headers rather than
their postal address. This change updates the address to be
<http://www.gnu.org/licenses> per <http://www.gnu.org/licenses/gpl-howto.html>

uslint ist dann auch anzupassen.
Comment 1 Stefan Gohmann univentionstaff 2016-10-14 16:28:08 CEST
This issue has been filed against UCS 3.0.

UCS 3.0 is out of maintenance and many UCS components have vastly changed in later releases. Thus, this issue is now being closed.

If this issue still occurs in newer UCS versions, please reopen.
Comment 2 Philipp Hahn univentionstaff 2016-10-15 19:26:23 CEST
$ git grep -l 'Temple Place\|Franklin St'  | cat
mail/univention-mail-cyrus-murder/usr/lib/univention-directory-listener/system/cyrusMurderServers.py
management/python-notifier/debian/copyright
management/python-notifier/python-notifier/COPYING
management/python-notifier/python-notifier/examples/callbacks.py
management/python-notifier/python-notifier/examples/log.py
management/python-notifier/python-notifier/examples/logger.py
management/python-notifier/python-notifier/examples/process.py
management/python-notifier/python-notifier/examples/process2.py
management/python-notifier/python-notifier/examples/process3.py
management/python-notifier/python-notifier/examples/process4.py
management/python-notifier/python-notifier/examples/signal.py
management/python-notifier/python-notifier/examples/signal2.py
management/python-notifier/python-notifier/examples/test-generic.py
management/python-notifier/python-notifier/examples/test-gtk.py
management/python-notifier/python-notifier/examples/test-qt-cli.py
management/python-notifier/python-notifier/examples/test-qt.py
management/python-notifier/python-notifier/examples/test-twisted.py
management/python-notifier/python-notifier/examples/test-wx.py
management/python-notifier/python-notifier/examples/threads.py
management/python-notifier/python-notifier/examples/threads2.py
management/python-notifier/python-notifier/examples/threads3.py
management/python-notifier/python-notifier/notifier/__init__.py
management/python-notifier/python-notifier/notifier/dispatch.py
management/python-notifier/python-notifier/notifier/log.py
management/python-notifier/python-notifier/notifier/nf_generic.py
management/python-notifier/python-notifier/notifier/nf_gtk.py
management/python-notifier/python-notifier/notifier/nf_qt.py
management/python-notifier/python-notifier/notifier/nf_twisted.py
management/python-notifier/python-notifier/notifier/popen.py
management/python-notifier/python-notifier/notifier/signals.py
management/python-notifier/python-notifier/notifier/threads.py
management/python-notifier/python-notifier/notifier/version.py
management/python-notifier/python-notifier/setup.py
management/univention-system-info/umc/python/sysinfo/upload.py
packaging/ucslint/testframework/0004-1/conffiles/lilo.py
packaging/ucslint/testframework/0004-1/debian/copyright
packaging/ucslint/testframework/0004-1/debian/rules
packaging/ucslint/testframework/0004-10/conffiles/lilo.py
packaging/ucslint/testframework/0004-10/debian/copyright
packaging/ucslint/testframework/0004-10/debian/rules
packaging/ucslint/testframework/0004-11/conffiles/lilo.py
packaging/ucslint/testframework/0004-11/debian/copyright
packaging/ucslint/testframework/0004-11/debian/rules
packaging/ucslint/testframework/0004-12/conffiles/lilo.py
packaging/ucslint/testframework/0004-12/debian/copyright
packaging/ucslint/testframework/0004-13/conffiles/lilo.py
packaging/ucslint/testframework/0004-13/debian/copyright
packaging/ucslint/testframework/0004-13/debian/rules
packaging/ucslint/testframework/0004-14-15/conffiles/lilo.py
packaging/ucslint/testframework/0004-14-15/debian/copyright
packaging/ucslint/testframework/0004-14-15/debian/rules
packaging/ucslint/testframework/0004-16-17/conffiles/lilo.py
packaging/ucslint/testframework/0004-16-17/debian/copyright
packaging/ucslint/testframework/0004-16-17/debian/rules
packaging/ucslint/testframework/0004-18/conffiles/lilo.py
packaging/ucslint/testframework/0004-18/debian/copyright
packaging/ucslint/testframework/0004-18/debian/rules
packaging/ucslint/testframework/0004-19-20/conffiles/lilo.py
packaging/ucslint/testframework/0004-19-20/debian/copyright
packaging/ucslint/testframework/0004-19-20/debian/rules
packaging/ucslint/testframework/0004-21-22/conffiles/lilo.py
packaging/ucslint/testframework/0004-21-22/debian/copyright
packaging/ucslint/testframework/0004-21-22/debian/rules
packaging/ucslint/testframework/0004-23/conffiles/lilo.py
packaging/ucslint/testframework/0004-23/debian/copyright
packaging/ucslint/testframework/0004-23/debian/rules
packaging/ucslint/testframework/0004-24/conffiles/lilo.py
packaging/ucslint/testframework/0004-24/debian/copyright
packaging/ucslint/testframework/0004-24/debian/rules
packaging/ucslint/testframework/0004-25-26/conffiles/lilo.py
packaging/ucslint/testframework/0004-25-26/debian/copyright
packaging/ucslint/testframework/0004-25-26/debian/rules
packaging/ucslint/testframework/0004-28/conffiles/lilo.py
packaging/ucslint/testframework/0004-28/debian/copyright
packaging/ucslint/testframework/0004-28/debian/rules
packaging/ucslint/testframework/0004-29/conffiles/lilo.py
packaging/ucslint/testframework/0004-29/debian/copyright
packaging/ucslint/testframework/0004-29/debian/rules
packaging/ucslint/testframework/0004-3/conffiles/lilo.py
packaging/ucslint/testframework/0004-3/debian/copyright
packaging/ucslint/testframework/0004-3/debian/rules
packaging/ucslint/testframework/0004-30/conffiles/lilo.py
packaging/ucslint/testframework/0004-30/debian/copyright
packaging/ucslint/testframework/0004-30/debian/rules
packaging/ucslint/testframework/0004-4-5/conffiles/lilo.py
packaging/ucslint/testframework/0004-4-5/debian/copyright
packaging/ucslint/testframework/0004-4-5/debian/rules
packaging/ucslint/testframework/0004-6/conffiles/lilo.py
packaging/ucslint/testframework/0004-6/debian/copyright
packaging/ucslint/testframework/0004-6/debian/rules
packaging/ucslint/testframework/0004-7-8/conffiles/lilo.py
packaging/ucslint/testframework/0004-7-8/debian/copyright
packaging/ucslint/testframework/0004-7-8/debian/rules
packaging/ucslint/testframework/0004-9/conffiles/lilo.py
packaging/ucslint/testframework/0004-9/debian/copyright
packaging/ucslint/testframework/0004-9/debian/rules
packaging/ucslint/testframework/0010-2-3-4-5/gencertificate.py
packaging/ucslint/testframework/0011-2-3-4-5-6-7-8/debian/postinst
packaging/ucslint/testframework/0011-2-3-4-5-6-7-8/debian/postrm
packaging/ucslint/testframework/0011-2-3-4-5-6-7-8/debian/rules
packaging/ucslint/testframework/0011-2-3-4-5-6-7-8/gencertificate.py
packaging/ucslint/testframework/0011-2-3-4-5-6-7-8/make-certificates.sh
packaging/ucslint/testframework/0011-2-3-4-5-6-7-8/univention-certificate
packaging/ucslint/testframework/0011-2-3-4-5-6-7-8/univention-certificate-check-validity
packaging/ucslint/testframework/0013-2/debian/postinst
packaging/ucslint/testframework/0013-2/debian/postrm
packaging/ucslint/testframework/0013-2/debian/rules
packaging/ucslint/testframework/0013-2/gencertificate.py
packaging/ucslint/testframework/0013-2/make-certificates.sh
packaging/ucslint/testframework/0013-2/univention-certificate
packaging/ucslint/testframework/0013-2/univention-certificate-check-validity
packaging/ucslint/testframework/0015-2/debian/postinst
packaging/ucslint/testframework/0015-2/debian/postrm
packaging/ucslint/testframework/0015-2/debian/rules
packaging/ucslint/testframework/0015-2/gencertificate.py
packaging/ucslint/testframework/0015-2/make-certificates.sh
packaging/ucslint/testframework/0015-2/univention-certificate
packaging/ucslint/testframework/0015-2/univention-certificate-check-validity
services/univention-ad-connector/debian/copyright
services/univention-printquota/conffiles/etc/pykota/pykota.conf
services/univention-printquota/conffiles/etc/pykota/pykotadmin.conf
virtualization/univention-kvm-virtio/LICENSE
Comment 3 Philipp Hahn univentionstaff 2018-02-06 08:59:49 CET
While at it switch to <https://spdx.org/licenses/>:
# SPDX-License-Identifier: AGPL-1.0
Comment 4 Philipp Hahn univentionstaff 2018-12-18 10:03:09 CET
(In reply to Philipp Hahn from comment #3)
> While at it switch to <https://spdx.org/licenses/>:
> # SPDX-License-Identifier: AGPL-1.0

UCS is 'SPDX-License-Identifier: AGPL-3.0-only'

I converted all debian/copyright to DEP-5 <https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/>.
While working on that I found many out-dated copyright annotations and several cases of licences incompatibilities; see Bugs under "See Also". We should get legal advise for them!
While at that it would also be nice to get a clarification on the use of the "SPDX License Identifiers", which would allow use to reduce the boiler-plate text at the beginning of all our files to a minimum.

(In reply to Philipp Hahn from comment #0)
> uslint ist dann auch anzupassen.

not required yet; only when we switch to SPDX.
Comment 5 Philipp Hahn univentionstaff 2018-12-18 10:04:53 CET
[4.4-0] 09bb3c504e Bug #28499: Update debian/copyright DEB-5
Comment 6 Philipp Hahn univentionstaff 2018-12-18 11:30:03 CET
(In reply to Philipp Hahn from comment #4)
> (In reply to Philipp Hahn from comment #0)
> > uslint ist dann auch anzupassen.
> 
> not required yet; only when we switch to SPDX.

That was too fast:
[4.4-0] c739d02e06 Bug #28499 lint: Accept DEP-5 debian/copyright format
 packaging/ucslint/debian/changelog                     | 1 +
 packaging/ucslint/ucslint-univention/0010-Copyright.py | 5 +++--
 2 files changed, 4 insertions(+), 2 deletions(-)

Package: ucslint
Version: 8.0.0-1A~4.4.0.201812181129
Branch: ucs_4.4-0
Comment 7 Daniel Tröder univentionstaff 2019-02-26 10:00:33 CET
Does this mean, we can replace all those long copyright headers in all templates and all Univention Python modules with those two lines?

# SPDX-License-Identifier: AGPL-3.0
# Copyright (C) ....-2019   Univention GmbH

BTW: by chance noticed, that lilo.py was changed in b0e2e7ed903 from GPLv2 to AGPL-3.0, not sure if it was intentional.

If we could replace them, a followup bug (dev-days?) could do that automatically for most of the code base.

I'd like it, if those texts on top of the comments (documenting what the file is about) would be moved below the license text. In case of Python modules they should be converted from comments to module docstrings.
Comment 8 Philipp Hahn univentionstaff 2019-02-26 11:46:00 CET
(In reply to Daniel Tröder from comment #7)
> Does this mean, we can replace all those long copyright headers in all
> templates and all Univention Python modules with those two lines?
> 
> # SPDX-License-Identifier: AGPL-3.0
> # Copyright (C) ....-2019   Univention GmbH

This is the idea, but I'm still waiting for legal advice, if SPDX is enough.

> BTW: by chance noticed, that lilo.py was changed in b0e2e7ed903 from GPLv2
> to AGPL-3.0, not sure if it was intentional.

Historically UCS was GPLv2 and only later changed to AGPL-3.0: Bug #17543
For ucslint lilo.py was copied as a test case, but there the licence was never updated.

> If we could replace them, a followup bug (dev-days?) could do that
> automatically for most of the code base.
> 
> I'd like it, if those texts on top of the comments (documenting what the
> file is about) would be moved below the license text. In case of Python
> modules they should be converted from comments to module docstrings.

We first should get legal advice from a lawyer if SPDX is enough to replace those long copyright texts: AFAIK it is from reading <http://esr.ibiblio.org/?p=6867>
Comment 9 Arvid Requate univentionstaff 2019-02-26 20:34:02 CET
Ok, looks good.


I guess the files below could need an update too:

management/univention-management-console/umc-module-templates/debian/copyright
services/univention-admin-diary/debian/copyright
test/ucs-ec2-tools/debian/copyright
Comment 10 Arvid Requate univentionstaff 2019-02-26 21:02:38 CET
I just updated univention-admin-diary/debian/copyright.
Comment 11 Stefan Gohmann univentionstaff 2019-02-27 07:22:27 CET
Please also add a changelog entry.
Comment 12 Philipp Hahn univentionstaff 2019-02-27 08:51:15 CET
(In reply to Arvid Requate from comment #9)
> I guess the files below could need an update too:
> 
> management/univention-management-console/umc-module-templates/debian/
> copyright

Updated

> services/univention-admin-diary/debian/copyright

This you did yourself in comment #10

> test/ucs-ec2-tools/debian/copyright

Is is a git sub-module:
[master] dbaa15f Bug #28499: Update debian/copyright DEB-5

I found 3 more:
[4.4-0] 950ba0a505 Bug #28499: Update debian/copyright DEB-5
 doc/changelog/changelog-4.4-0.xml                  |  5 +-
 .../umc-module-templates/debian/copyright          | 54 ++++++++++---------
 .../testframework/0001-6-7/debian/copyright        | 54 ++++++++++---------
 .../translationhelper/translationhelper.py         | 62 ++++++++++++----------
 test/ucs-ec2-tools                                 |  2 +-
 5 files changed, 94 insertions(+), 83 deletions(-)


Also updated ucslint:
[4.4-0] cb8aac54de Bug #28499 ucslint: Add DEP5 test
 packaging/ucslint/debian/changelog                 |  6 ++++
 packaging/ucslint/testframework/0010-6.correct     |  1 +
 .../ucslint/testframework/0010-6/debian/changelog  |  5 ++++
 .../ucslint/testframework/0010-6/debian/compat     |  1 +
 .../ucslint/testframework/0010-6/debian/control    | 10 +++++++
 .../ucslint/testframework/0010-6/debian/copyright  | 27 ++++++++++++++++++
 .../ucslint/testframework/0010-6/debian/rules      | 33 ++++++++++++++++++++++
 .../ucslint/ucslint-univention/0010-Copyright.py   | 10 +++++--
 8 files changed, 91 insertions(+), 2 deletions(-)

[4.4-0] 481cbc1c40 Bug #28499 ucslint: Fix fuzzy test
 packaging/ucslint/.gitignore                 | 1 +
 packaging/ucslint/ucslint/0015-FuzzyNames.py | 7 ++++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

Package: ucslint
Version: 8.0.0-4A~4.4.0.201902270841
Branch: ucs_4.4-0


(In reply to Stefan Gohmann from comment #11)
> Please also add a changelog entry.

[4.4-0] cb8aac54de Bug #28499 ucslint: Add DEP5 test
 packaging/ucslint/debian/changelog                 |  6 ++++
Comment 13 Arvid Requate univentionstaff 2019-02-27 11:31:10 CET
Ok, thanks, nice.
Comment 14 Florian Best univentionstaff 2019-03-12 13:40:39 CET
UCS 4.4 has been released:
 https://docs.software-univention.de/release-notes-4.4-0-en.html
 https://docs.software-univention.de/release-notes-4.4-0-de.html

If this error occurs again, please use "Clone This Bug".
Comment 15 Florian Best univentionstaff 2019-05-04 10:46:09 CEST
Why is ucslint still complaining for every package?:

W:0010-6: debian/copyright: not machine-readable DEP-5

I tried to add a "Comment: " before the text, which didn't help.
https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/