Re: How should we handle greenbone-security-assistant?

2020-12-19 Thread Adrian Bunk
On Fri, Dec 18, 2020 at 05:12:53PM +0100, Jonas Smedegaard wrote:
> Quoting Adrian Bunk (2020-12-18 15:36:23)
> > On Fri, Dec 18, 2020 at 01:33:33PM +0100, Jonas Smedegaard wrote:
> > > It is indeed not realistic to fit all fast-changing code projects 
> > > into Debian.  We have made a few fast-paced projects like Firefox 
> > > fit, but in my opinion we did that in a problematic way: By 
> > > endorsing embedded code copies, which is painful to maintain.
> > > 
> > > I think we should not relax our rules, but (improve our packages so 
> > > that we can) tighten our rules to apply more consistently - e.g. 
> > > avoid embedded code copies also in Firefox.
> > 
> > Embedded code copies are the smallest problem with Firefox, and on 
> > that I would actually trust Mozilla to release fixes quickly.
> 
> I do trust Mozilla to release fixes quickly - my point was a different 
> one: Mozilla and Google and GNOME and KDE each being quick to release 
> fixes for libusrsctp or some other embedded library is still different 
> from linking with a shared copy.

Firefox in unstable is mostly using shared libraries, in (old)stable it 
is using some static libraries because Firefox wants more recent 
versions than are in the distribution.

The big problem is that Firefox is not security supportable without 
upgrading to new upstream versions that are not on the same stable
branch, such software is not suitable for distributions with
security supported stable series like Debian or Ubuntu.

>  - Jonas

cu
Adrian



Re: How should we handle greenbone-security-assistant?

2020-12-19 Thread Jonas Smedegaard
Quoting Adrian Bunk (2020-12-19 10:17:04)
> On Fri, Dec 18, 2020 at 05:12:53PM +0100, Jonas Smedegaard wrote:
> > Quoting Adrian Bunk (2020-12-18 15:36:23)
> > > On Fri, Dec 18, 2020 at 01:33:33PM +0100, Jonas Smedegaard wrote:
> > > > It is indeed not realistic to fit all fast-changing code 
> > > > projects into Debian.  We have made a few fast-paced projects 
> > > > like Firefox fit, but in my opinion we did that in a problematic 
> > > > way: By endorsing embedded code copies, which is painful to 
> > > > maintain.
> > > > 
> > > > I think we should not relax our rules, but (improve our packages 
> > > > so that we can) tighten our rules to apply more consistently - 
> > > > e.g. avoid embedded code copies also in Firefox.
> > > 
> > > Embedded code copies are the smallest problem with Firefox, and on 
> > > that I would actually trust Mozilla to release fixes quickly.
> > 
> > I do trust Mozilla to release fixes quickly - my point was a 
> > different one: Mozilla and Google and GNOME and KDE each being quick 
> > to release fixes for libusrsctp or some other embedded library is 
> > still different from linking with a shared copy.
> 
> Firefox in unstable is mostly using shared libraries, in (old)stable 
> it is using some static libraries because Firefox wants more recent 
> versions than are in the distribution.
> 
> The big problem is that Firefox is not security supportable without 
> upgrading to new upstream versions that are not on the same stable 
> branch, such software is not suitable for distributions with security 
> supported stable series like Debian or Ubuntu.

Yes, Firefox initially use system-shared libraries and use locally 
embedded copies only when needed.  Similar for Chromium and other 
packages (to a varying degree of "when needed").

Yes, keeping the application security supportable in a stable 
environment is the big problem.

My point is that we currently address that big problem by effectively 
encourage locally embedding code copies, as our way of addressing that 
big problem: Firefox and Chromium are packaged as a single big 
self-contained thing including its web rendering engine, and can be 
security-maintained; Epiphany (a.k.a. GNOME Web) and other web browsers 
are packaged without embedding their web rendering engine, and those 
(webkitgtk and qtwebengine-opensource-src) loose security support.

Firefox is not badly packaged.  It works!

But it works in a way that does not scale well - and I find it worrisome 
if big popular projects get preferential treatment in Debian.  Possibly 
they don't.  Possibly if 10 or 50 other packages began including local 
copies of library code to not _need_ to depend on system-shared code at 
a later stage of their lifecycle in Debian, we would happily accept 
that.  But I highly doubt that, and it feels backwards to me to do it.

janus is a fast-paced package.  It links with libusrsctp and libsrtp2, 
and some upgrades require upgrades to those other libraries as well.  
Should I embed copies of those libraries into src:janus to ease a later 
upgrade while in stable Debian?

Firefox and Chromium and webkitgtk and qtwebengine-opensource-src embed 
libusrsctp and libsrtp2.  It works, and addressed "the big problem", but 
I think we should not undermine but find ways to embrace Debian Policy 
[§4.13]:

> Some software packages include in their distribution convenience 
> copies of code from other software packages, generally so that users 
> compiling from source don’t have to download multiple packages. Debian 
> packages should not make use of these convenience copies unless the 
> included package is explicitly intended to be used in this way. 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. If the included code is not already in Debian, it should be 
> packaged separately as a prerequisite if possible.


 - Jonas

[§4.13]: 
https://www.debian.org/doc/debian-policy/ch-source.html#embedded-code-copies

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/

 [x] quote me freely  [ ] ask before reusing  [ ] keep private

signature.asc
Description: signature


Bug#977734: ITP: mediasoup -- general purpose WebRTC gateway

2020-12-19 Thread Jonas Smedegaard
Package: wnpp
Severity: wishlist
Owner: Jonas Smedegaard 
X-Debbugs-Cc: debian-devel@lists.debian.org, Debian VoIP Team 


-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

* Package name: mediasoup
  Version : 3.6.27
  Upstream Author : Iñaki Baz Castillo 
* URL : https://mediasoup.org/
* License : ISC
  Programming Lang: C, JavaScript, TypeScript
  Description : general purpose WebRTC gateway

 mediasoup is a general purpose WebRTC Gateway with a minimal footprint.
 .
 As such, it provides no functionality per se other than implementing
 the means to set up a WebRTC media communication with a browser,
 exchanging JSON messages with it, and relaying RTP/RTCP and messages
 between browsers and the server-side application logic they are
 attached to. Any specific feature/application are implemented in server
 side plugins, that browsers contact via the gateway to take advantage
 of the functionality they provide.
 .
 Example uses for mediasoup are applications involving echo tests,
 conference bridges, media recorders, and SIP gateways.

This package will be maintained in the VoIP team.

 - Jonas

-BEGIN PGP SIGNATURE-

iQIzBAEBCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAl/eWD0ACgkQLHwxRsGg
ASFSaw//aDnYz3yP9LwKg1eqaR6E6i43bE/U18hWJMPYtsnwbmf5SpSaf/QY7aPi
9Ga9n3d9a9K74PPUDqYcLfm0JS8vYtFzuQOImOjCZmSC4OYj9ZCWpI26dso8LTK6
szdCBOm0WwBAo+beRpNzaiTrdb9JuOvfTwMOpl8PUDoxz0Eku4eqSxRfCVCgNtgV
ddnlEwhfROrhzl1ZybJROI1RgmrG6TPXOkPCEwUExHeRlb0Q92Btqz0dQUAzX6dE
59xd49Y/rR0tzbw0BIi1HaOlCB37mpqFgti69wkdIdc9cJt8PZta47XpxeajDSxB
yzxfWzlhQNUKucJxB5x4J8e0O/Q5hPr49CWJCajendrgfC6gVijv1HUMWLCEQ3h0
TrOBhyrSA1QSz25Nr2HKUDpy9c4DTZImPM6BO2NKT2GtPybKajeDain0NT6So5Bf
CJ+KrTjJ3GyPkUZXx+z/CWe4E+PSaOgHsq8BT1RLIP1FMTYArJwJdT31gZ/xU9NC
6PANihdirNupZG4H8uafKq04+NkPzq3iYjQaQlq6xKQYLS6X4BB/FSPLimTtjOR5
Sx/rwqZdG63yniXj/ekE+LIs4swuNb9tXc6hx2OU+BAOd2iPo/cY1urczrYVdxzR
qOhF3/wCVLvJDuEQBodyz4TiDjEZr2xAvfXxw5O1G2QAkIfAwaM=
=mpRM
-END PGP SIGNATURE-


Re: Package dependency versions and consistency

2020-12-19 Thread Tomas Pospisek

On 19.12.20 01:25, Josh Triplett wrote:

Jonas Smedegaard wrote:

Quoting Raphael Hertzog (2020-12-17 13:16:14)

Even if you package everything, you will never ever have the right
combination of version of the various packages.


What is possible to auto-compute is a coarse view of the work needed.

In reality, most Nodejs modules declare too tight versioning for their
dependencies, and in many cases it is adequate that a module is packaged
even if not at the version declared as required.  A concrete example is
"ansi-styles" which is most likely working just fine in version 4.x.


This is not at all as simple as it sounds, even on a small scale, let
alone when multiplied by a few hundred dependencies.

(Let's please not go on the standard tangent into complaints about
the number of dependencies, because at the end of that tangent, people
will still use fine-grained packages and dependencies per the standard
best-practices of those communities, no matter the number or content of
mails in this thread suggesting otherwise. The extremes of "package for
a one-line function" are not the primary issue here; not every
fine-grained dependency is that small, and the issues raised in this
mail still apply whether you have 200 dependencies or 600. So let's take
it as a given that packages *will* have hundreds of library
dependencies, and try to make that more feasible.)

Figuring out whether those dependencies are actually too specific or if
they're required is a substantial amount of work by itself; the
packaging metadata and dependency versions recorded upstream exist to
declare the required version of dependencies, and there isn't typically
a *second* way that upstream records "no, really, there's a reason for
this dependency version requirement". This is hard enough in a
statically typed language, where you can at least have the verification
of seeing if it compiles with the older version (though the package
might be relying on new semantics); with a dynamically typed language,
you might not know that the older version of the dependency has caused a
problem until runtime. As an upstream developer, the safest assumption
when preparing your own dependencies is "well, it works with the version
of the dependency I tested with, and assuming that component correctly
follows semver, it should work with newer semver-compatible versions".

To clarify something: I *don't* believe Debian should compromise on
network access at build time. Debian package dependencies should be
completely self-contained within the Debian archive. The aspect I'm
concerned about here is that Debian pushes hard to force every single
package to use *the same version* of a given dependency, even if the
dependency has multiple incompatible versions (properly declared with
different semver major numbers, equivalent to libraries with different
SONAMEs). I'm not suggesting there should be 50 versions of a given
library in the archive, but allowing 2-4 versions would greatly simplify
packaging, and would allow such unification efforts to take place
incrementally, via transitions *in the archive* and *in collaboration
with upstream*, rather than *all at once before a new package can be
uploaded*.

(I also *completely* understand pushing back on having 2-4 versions of
something like OpenSSL; that'd be a huge maintenance and security
burden. That doesn't mean we couldn't have 2-4 semver-major versions of
a library to emit ANSI color codes, and handle reducing that number via
incremental porting in the archive rather than via prohibition in
advance.)

I think much of our resistance to allowing 2-4 distinct semver-major
versions of a given library comes down to ELF shared libraries making it
painful to have two versions of a library with distinct SONAMEs loaded
at once, and while that can be worked around with symbol versioning,
we've collectively experienced enough pain in such cases that we're
hesitant to encourage it. Our policies have done a fair bit to mitigate
that pain. But much of that pain is specific to ELF shared libraries and
similar. And some of our packaging limitations are built around this
(e.g. "one version of a given package at a time"), which in turn forces
some of those same limitations onto ecosystems that don't share the
problems that motivated those limitations in the first place. The
dependency and library mechanisms of some other ecosystems, are designed
to support having multiple distinct versions of libraries in the same
address space, with fully automatic equivalents of symbol versioning.

In Debian packaging, this issue typically results in one of three
scenarios for every dependency (recursively):

- Trying to port the package to work with older versions of
   dependencies. This incurs all of the burden mentioned above for
   determining if the older dependency actually suffices. On top of that,
   this may involve actual porting of code to not rely on the
   functionality of newer versions, which is very much wasted effort
   (

Re: Package dependency versions and consistency

2020-12-19 Thread Paul Gevers
Hi,

On 19-12-2020 01:25, Josh Triplett wrote:
> Given all of the above improvements, it'd be much more feasible for
> tooling to help systematically unbundle and package dependencies, and to
> help manage and transition those dependencies in the archive.

Especially in the JavaScript arena, I think there is to gain without
much overhead already in the current way of working. What if packages
where multiple versions are in use would ship multiple versions *in the
same binary package*? In my experience, the maintainer needs to link to
the right directory anyways, if those are semver versioned directories,
it would be clear (with a tiny bit of tooling maybe) which package needs
which version. And if the maintainer of the shipping package wants to
drop some, they could communicate about that. Maybe they could even ship
 a latest or recommended version for those packages where it's not
absolutely important which version they get.

No idea if this idea works for other areas.

Paul



OpenPGP_signature
Description: OpenPGP digital signature


Bug#977739: ITP: golang-github-texttheater-golang-levenshtein -- An implementation of the Levenshtein algorithm in Go. Provides edit distances and edit scripts.

2020-12-19 Thread Richard Lough
Package: wnpp
Severity: wishlist
Owner: Richard Lough 

* Package name: golang-github-texttheater-golang-levenshtein
  Version : 1.0.1-1
  Upstream Author : Kilian Evang
* URL : https://github.com/texttheater/golang-levenshtein
* License : Expat
  Programming Lang: Go
  Description : An implementation of the Levenshtein algorithm in Go. 
Provides edit distances and edit scripts.

 golang-levenshtein An implementation of the Levenshtein
 algorithm in Go. Provides edit distances, edit scripts and
 ratios for strings (slices of runes).  Installation$ go
 get github.com/texttheater/golang-levenshtein/levenshtein
 Documentation The documentation can be viewed online here:
 https://godoc.org/github.com/texttheater/golang-levenshtein/levenshtein
 See also For a package that is similar but more generic and
 provides more control, check out Daniël de Kok’s editdistance
 (https://github.com/danieldk/editdistance).

TODO: perhaps reasoning



Bug#977740: ITP: paho.mqtt.cpp -- Eclipse Paho MQTT C++ client library

2020-12-19 Thread Matthias Klein
Package: wnpp
Severity: wishlist
Owner: Matthias Klein 

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

* Package name: paho.mqtt.cpp
  Version : 1.2
  Upstream Author : Eclipse Paho Development Team 
* URL : https://github.com/eclipse/paho.mqtt.cpp
* License : EPL-1.0 Programming
  Programming Lang: C++
  Description : Eclipse Paho MQTT C++ client library

  This library enables C++11 applications to connect to an MQTT
  broker, publish messages to the broker, and to subscribe to topics
  and receive published messages.

  This library requires the Paho C library which is already packaged
  in debian: https://packages.debian.org/sid/libpaho-mqtt1.3

-BEGIN PGP SIGNATURE-

iQJNBAEBCgA3FiEEjC6qGcnd04OdZq2u/7AEG+75lvAFAl/eb70ZHG1hdHRoaWFz
LmtsZWluQGxpbnV4LmNvbQAKCRD/sAQb7vmW8Mz9D/wLhKKwevWHv8J927+xjqiE
9KbcoxoChjSTF6A3kjaypm/ZsnU9VlLJsamc44o4ZVupsJALocHoGu6vyY0YbNox
bqH5nK20zBCxQNQ0FMhjG8EJjg2Dbrdwfn2QHAaMx6UmykBo+Ue2E4qNFY5RDMoy
BSB3sA3EmzDA6JnAt0g0W9A29Lv075manybVEc87Lt7DTNQYPFuxAdyr4ocnATrX
o5eVyDtjx+8kgnBOd4bB+XrnaYHAGwMkj2HJsdmt1+VLSPfcOujL0nWIpQitPsNw
NO72OyT3ptUyx5AbPuhONmcMjSaSN2UuFptHdOyjI8KprqN1mdbK8AsfGeog2PGb
Xtjrdaj4WLIcD8/tdqfGdAuw8i9lsLo+UUGOizjHeb3mxg4hM1rFcP7d2GIJTv1u
lGR6VMwyHOcTevwc3iuHYmPz51DDZMM52HBS2g7D2zAdkkU4+lrpVizFtNRV5g6G
SzX0bzLCtxts6vqmrPtfaia9b12Iq4ly6SPZG/ICZJj8nQwzaXV2KPJU8Ua/rUWQ
yvb0pBu5kHySv8a3+gpxdlrccSpPlP1CQvEf9pmPFe2MbZkyB546ELgA9NvUDD81
+BYDy4nNiUbP8Kdsg5XHGjpJvNew3+QtINP6eKLT8M+xj2aUJAIDGUG320VP4BEP
vc5wkGJWHQL4CqjLuBCbaw==
=Y7lK
-END PGP SIGNATURE-



Re: glibc 2.32 before bullseye?

2020-12-19 Thread Nick Black
Paul Wise left as an exercise for the reader:
> On Fri, Dec 18, 2020 at 4:46 AM Nick Black wrote:
> > I was wondering whether glibc ...
> These seem like questions for the glibc maintainers, probably via a bug 
> report.

indeed =]
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977691

-- 
nick black -=- https://www.nick-black.com
to make an apple pie from scratch,
you need first invent a universe.