#1073005 transmission: consider switching back to vendored libb64

#1073005#5
Date:
2024-06-11 17:39:10 UTC
From:
To:
transmission-gtk is included in Ubuntu Desktop's default install
(specifically the expanded install option). This means that
transmission-gtk is in Ubuntu main and all its dependencies must be in
Ubuntu main instead of in Ubuntu universe.

libb64 is in Ubuntu universe. After an initial review, I determined
that libb64 does not seem like a good candidate for Ubuntu's Main
Inclusion process [1]. Therefore, I will need to re-vendor libb64
inside the transmission package. If Debian does the same, then it
would be possible for Debian and Ubuntu to share the same packaging,
allowing package improvements to more quickly reach Ubuntu during the
part of Ubuntu's development cycle when automatic sync is enabled.

Specifically:
- libb64 has been unmaintained since 2013
https://sourceforge.net/p/libb64/git/commit_browser
- libb64 has several open bugs, some of which have security implications
https://sourceforge.net/p/libb64/bugs/
- libb64 is missing a pkgconfig file which is a relatively simple
standard way for other software to use libb64
https://launchpad.net/bugs/1534293
- The Debian packaging is not using simple dh rules. The packaging
seems to otherwise be fairly modern but it's more complicated than
typical Debian packages.
https://salsa.debian.org/alteholz/libb64/-/blob/master/debian/rules

Reference
--------------
[1] https://github.com/canonical/ubuntu-mir

Thank you,
Jeremy Bícha

#1073005#10
Date:
2024-06-14 13:29:23 UTC
From:
To:
block 1073005 by 1073203
thanks

Hi,

Thanks for raising this to our attention.

[...]

Regarding those valid points, because there is not reason to have the same
source in multiple packages, there are only 2 paths compliant with the Debian
policy:

    1) Fix those points in src:libb64 for transmission and all rdepends
    2) Remove src:libb64 from Debian and then vendor in transmission source

I'll try to move towards 1) and see how it goes. So for now, this is a
wontfix because against DFSG.

Thanks,

Alex

#1073005#17
Date:
2024-06-14 22:16:00 UTC
From:
To:
I agree that it would be helpful if many of these issues were fixed
for all users of libb64.

On the other hand, this does not fix the fact that libb64 has been
unmaintained since 2013 and therefore it still wouldn't be a good
candidate to complete Ubuntu's Main Inclusion process even if the
other issues were fixed. Therefore, Ubuntu will need to keep vendoring
libb64 in transmission. I am unaware of any maintained version of
libb64.

I disagree that this violates the Debian Free Software Guidelines
although it does violate what is normally considered "best practice"
in Debian development. However, there are many exceptions to this best
practice in Debian and there is a lot of vendored code. (Even after
your recent work, transmission still has vendored code and that is not
a DFSG violation). Notably, Debian ftpmasters routinely accept new
packages that have vendored code as long as the code is correctly
documented in debian/copyright (which had been done for transmission).
See https://wiki.debian.org/EmbeddedCopies

Thank you,
Jeremy Bícha

#1073005#22
Date:
2024-07-03 10:33:55 UTC
From:
To:
Hi,

Debian policy 4.13:

    If the included code is already in the Debian archive in the form of
    a library, the Debian packaging should ensure that binary packages
    reference the libraries already in Debian and the convenience copy
    is not used.

I reckon *should* is not *must*.

I'll seek advice on this.

Thanks,

Alex

#1073005#27
Date:
2024-07-03 13:06:32 UTC
From:
To:
Transmission could also switch to openssl's ability to encode/decode base64:
https://github.com/transmission/transmission/discussions/6970

#1073005#32
Date:
2024-11-06 13:42:07 UTC
From:
To:
Hi,

I've done it and proposed a pull request.

https://salsa.debian.org/niol/libb64

Thanks,

Alex