Re: Linking coreutils against OpenSSL

2023-11-10 Thread Luca Boccassi
On Fri, 10 Nov 2023 at 02:26, Simon Richter  wrote:
>
> Hi,
>
> > What would you think about having coreutils Depend on libssl3? This
> > would make the libssl3 package essential, which is potentially
> > undesirable, but it also has the potential for serious user time savings
> > (on recent Intel CPUs, OpenSSL’s SHA-256 is over five times faster than
> > coreutils’ internal implementation).
>
> That is only on amd64 though.
>
> On ARM and riscv64, OpenSSL is slightly slower than coreutils'
> sha256sum, so this would introduce an additional dependency and degrade
> performance. The best choice there is the kernel crypto API, which knows
> about offload hardware and special CPU instructions, both of which are
> common.

Per-architecture dependencies are possible though, so maybe starting
to add the libssl dependency only on amd64 is a good starting point,
and then users of other architectures can request to be added too if
it is beneficial for them.



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Andrew M.A. Cater
On Fri, Nov 10, 2023 at 10:38:13AM +, Luca Boccassi wrote:
> On Fri, 10 Nov 2023 at 02:26, Simon Richter  wrote:
> >
> > Hi,
> >
> > > What would you think about having coreutils Depend on libssl3? This
> > > would make the libssl3 package essential, which is potentially
> > > undesirable, but it also has the potential for serious user time savings
> > > (on recent Intel CPUs, OpenSSL’s SHA-256 is over five times faster than
> > > coreutils’ internal implementation).
> >
> > That is only on amd64 though.
> >
> > On ARM and riscv64, OpenSSL is slightly slower than coreutils'
> > sha256sum, so this would introduce an additional dependency and degrade
> > performance. The best choice there is the kernel crypto API, which knows
> > about offload hardware and special CPU instructions, both of which are
> > common.
> 
> Per-architecture dependencies are possible though, so maybe starting
> to add the libssl dependency only on amd64 is a good starting point,
> and then users of other architectures can request to be added too if
> it is beneficial for them.
>

Per architecture does cause problems if we end up with a two tier system
where some architectures can never catch up or if we have users who assume
that Debian will work similarly on every architecture.

It may also introduce code complexity which is undesirable in the longer term.

Just my 0.02 - I have no particular viewpoint in the best course of action
overall.

Andy
[amaca...@debian.org]





Re: Linking coreutils against OpenSSL

2023-11-10 Thread Matthew Vernon
Luca Boccassi  writes:

> On Thu, 9 Nov 2023 at 22:54, Benjamin Barenblat  wrote:

>> What would you think about having coreutils Depend on libssl3? This
>> would make the libssl3 package essential, which is potentially
>> undesirable, but it also has the potential for serious user time savings
>> (on recent Intel CPUs, OpenSSL’s SHA-256 is over five times faster than
>> coreutils’ internal implementation).
>
> This sounds great. systemd also uses OpenSSL for various things, so
> libssl3 is pretty much a given on any bootable installation anyway
> already.

I have no particular opinion on the proposal to make coreutils Depend
on libssl3; but there are plenty of bootable Debian systems without
systemd, so I'd like to gently push back on the idea that the only
bootable Debian systems are those using systemd as init.

Thanks,

Matthew
[commenting here, but I see at least one repetition of the claim in the
thread] 
-- 
"At least you know where you are with Microsoft."
"True. I just wish I'd brought a paddle."
http://www.debian.org



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Stephan Verbücheln
In my opinion, this is yet another reason to use a proper cryptography
library (openssl, gnutls or gcrypt) instead of a custom implementation
for this kind of algorithm.

Over time, when these libraries add support for cryptography
acceleration instructions for more architectures, all programs will
benefit from it.

I would expect that many rich ARM SoCs for phones, laptops and servers
already have something and that openssl supports it already. What
device did you run your benchmark on? 

Regards
Stephan


signature.asc
Description: This is a digitally signed message part


Re: Linking coreutils against OpenSSL

2023-11-10 Thread Luca Boccassi
On Fri, 10 Nov 2023 at 11:54, Matthew Vernon  wrote:
>
> Luca Boccassi  writes:
>
> > On Thu, 9 Nov 2023 at 22:54, Benjamin Barenblat  wrote:
>
> >> What would you think about having coreutils Depend on libssl3? This
> >> would make the libssl3 package essential, which is potentially
> >> undesirable, but it also has the potential for serious user time savings
> >> (on recent Intel CPUs, OpenSSL’s SHA-256 is over five times faster than
> >> coreutils’ internal implementation).
> >
> > This sounds great. systemd also uses OpenSSL for various things, so
> > libssl3 is pretty much a given on any bootable installation anyway
> > already.
>
> I have no particular opinion on the proposal to make coreutils Depend
> on libssl3; but there are plenty of bootable Debian systems without
> systemd, so I'd like to gently push back on the idea that the only
> bootable Debian systems are those using systemd as init.
>
> Thanks,
>
> Matthew
> [commenting here, but I see at least one repetition of the claim in the
> thread]

If we want to start nitpicking, then let's be exact: 0.61% of popcon.
Whether that qualifies as "plenty" we'll leave as an exercise for the
readers.



Bug#1055740: ITP: golang-github-humanlogio-humanlog -- Logs for humans to read.

2023-11-10 Thread Maytham Alsudany
Package: wnpp
Severity: wishlist
Owner: Maytham Alsudany 

* Package name: golang-github-humanlogio-humanlog
  Version : 0.7.6-1
  Upstream Author : Antoine Grondin 
* URL : https://github.com/humanlogio/humanlog
* License : Apache-2.0
  Programming Lang: Go
  Description : Logs for humans to read.

 Read structured logs from stdin and print them back to stdout, but in a
 prettier and more human-readable format.

This is a dependency of the upcoming lazygit package, and I intend to maintain
it within the Debian Go Packaging team.



Bug#1055741: ITP: golang-connectrpc-connect -- The Go implementation of Connect: Protobuf RPC that works.

2023-11-10 Thread Maytham Alsudany
Package: wnpp
Severity: wishlist
Owner: Maytham Alsudany 

* Package name: golang-connectrpc-connect
  Version : 1.12.0-1
  Upstream Author : Connect
* URL : https://github.com/connectrpc/connect-go
* License : Apache-2.0
  Programming Lang: Go
  Description : The Go implementation of Connect: Protobuf RPC that works.

 Connect is a slim library for building browser and gRPC-compatible HTTP
 APIs. You write a short Protocol Buffer schema and implement
 your application logic, and Connect generates code to handle marshaling,
 routing, compression, and content type negotiation. It also generates an
 idiomatic, type-safe client. Handlers and clients support three
 protocols: gRPC, gRPC-Web, and Connect's own protocol.
 .
 The Connect protocol is a simple
 protocol that works over HTTP/1.1 or HTTP/2. It takes the best portions
 of gRPC and gRPC-Web, including streaming, and packages them into a
 protocol that works equally well in browsers, monoliths, and
 microservices. Calling a Connect API is as easy as using curl.

This is an indirect dependency of the upcoming lazygit package.
I intend to maintain this package within the Debian Go Packaging team.



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Bjørn Mork
Luca Boccassi  writes:

> If we want to start nitpicking, then let's be exact: 0.61% of popcon.
> Whether that qualifies as "plenty" we'll leave as an exercise for the
> readers.

I wonder if this sort of arrogant "don't care about minorities" attitude
will ever stop?  Was sort of hoping that things would quiet down when
everyone just gave up on the systemd and usr-merge crazyness. But it
seems the bullies continue on and on and on and on.

I guess those 0.61% are run bt the most valuable Debian users out there.
I'm sorry to not be one of them, but that's the way things have become.
Not by choice.


Bjørn



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Michael Stone

On Fri, Nov 10, 2023 at 10:38:13AM +, Luca Boccassi wrote:

Per-architecture dependencies are possible though, so maybe starting
to add the libssl dependency only on amd64 is a good starting point,
and then users of other architectures can request to be added too if
it is beneficial for them.


I haven't seen any objections to the basic idea, so I'm starting here: 
coreutils 9.4-2 will link to libcrypto if there's a gpl-compatible 
version available at build time, but I've added the build-dependency as 
linux-amd64 only for now. That should make it fairly straightforward for 
people to control the linking on other architectures by controlling 
their build environment. Going forward, depending on feedback, I can 
roll this back, expand the build-dep, and/or make the configure option 
also depend on the arch.




Re: Linking coreutils against OpenSSL

2023-11-10 Thread Luca Boccassi
On Fri, 10 Nov 2023 at 13:45, Bjørn Mork  wrote:
>
> Luca Boccassi  writes:
>
> > If we want to start nitpicking, then let's be exact: 0.61% of popcon.
> > Whether that qualifies as "plenty" we'll leave as an exercise for the
> > readers.
>
> I wonder if this sort of arrogant "don't care about minorities" attitude
> will ever stop?  Was sort of hoping that things would quiet down when
> everyone just gave up on the systemd and usr-merge crazyness. But it
> seems the bullies continue on and on and on and on.
>
> I guess those 0.61% are run bt the most valuable Debian users out there.
> I'm sorry to not be one of them, but that's the way things have become.
> Not by choice.

Having a 5x performance improvement in core utilities at zero cost for
99.39% of users and at the cost of an extra library that is already
widely used for 0.61% --> bullying. Noted.



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Ansgar
Hi,

On Fri, 2023-11-10 at 14:45 +0100, Bjørn Mork wrote:
> I guess those 0.61% are run bt the most valuable Debian users out
> there. I'm sorry to not be one of them, but that's the way things
> have become.

Do you have any data to back up this claim?  Or is it just a totally
made up guess and one could just as well claim that those are the least
valuable 0.61%?

Ansgar



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Ansgar
On Fri, 2023-11-10 at 08:48 -0500, Michael Stone wrote:
> On Fri, Nov 10, 2023 at 10:38:13AM +, Luca Boccassi wrote:
> > Per-architecture dependencies are possible though, so maybe starting
> > to add the libssl dependency only on amd64 is a good starting point,
> > and then users of other architectures can request to be added too if
> > it is beneficial for them.
> 
> I haven't seen any objections to the basic idea, so I'm starting here: 
> coreutils 9.4-2 will link to libcrypto if there's a gpl-compatible 
> version available at build time, but I've added the build-dependency as 
> linux-amd64 only for now. That should make it fairly straightforward for 
> people to control the linking on other architectures by controlling 
> their build environment. Going forward, depending on feedback, I can 
> roll this back, expand the build-dep, and/or make the configure option 
> also depend on the arch.

Please avoid producing different results depending on the build
environment. That just results in non-reproducible issues in unclean
environments (suddenly different dependencies, different features,
...).

Please consider to just use openssl everywhere or also explicitly
disable/enable build options per arch. (Personally I would in this case
probably just enable openssl everywhere and recommend people to improve
openssl in case it is slower than the built-in implementation; openssl
is probably use widely enough to warrant that.)

Ansgar



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Luca Boccassi
On Fri, 10 Nov 2023 at 13:48, Michael Stone  wrote:
>
> On Fri, Nov 10, 2023 at 10:38:13AM +, Luca Boccassi wrote:
> >Per-architecture dependencies are possible though, so maybe starting
> >to add the libssl dependency only on amd64 is a good starting point,
> >and then users of other architectures can request to be added too if
> >it is beneficial for them.
>
> I haven't seen any objections to the basic idea, so I'm starting here:
> coreutils 9.4-2 will link to libcrypto if there's a gpl-compatible
> version available at build time, but I've added the build-dependency as
> linux-amd64 only for now. That should make it fairly straightforward for
> people to control the linking on other architectures by controlling
> their build environment. Going forward, depending on feedback, I can
> roll this back, expand the build-dep, and/or make the configure option
> also depend on the arch.

Very nice, thank you for this work!



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Pierre-Elliott Bécue
Luca Boccassi  wrote on 10/11/2023 at 15:00:24+0100:

> On Fri, 10 Nov 2023 at 13:45, Bjørn Mork  wrote:
>>
>> Luca Boccassi  writes:
>>
>> > If we want to start nitpicking, then let's be exact: 0.61% of popcon.
>> > Whether that qualifies as "plenty" we'll leave as an exercise for the
>> > readers.
>>
>> I wonder if this sort of arrogant "don't care about minorities" attitude
>> will ever stop?  Was sort of hoping that things would quiet down when
>> everyone just gave up on the systemd and usr-merge crazyness. But it
>> seems the bullies continue on and on and on and on.
>>
>> I guess those 0.61% are run bt the most valuable Debian users out there.
>> I'm sorry to not be one of them, but that's the way things have become.
>> Not by choice.
>
> Having a 5x performance improvement in core utilities at zero cost for
> 99.39% of users and at the cost of an extra library that is already
> widely used for 0.61% --> bullying. Noted.

The problem is not the argument but clearly the way you state it, which
is quite coherent with your way of answering most of the time.

I know it's not mandatory, but a bit of empathy, a bit of caring and a
bit of "just because I can act bluntly with a pinch of contempt doesn't
mean I should" would be really appreciable.

-- 
PEB


signature.asc
Description: PGP signature


Re: Linking coreutils against OpenSSL

2023-11-10 Thread Michael Stone

On Fri, Nov 10, 2023 at 03:10:42PM +0100, Ansgar wrote:

Please avoid producing different results depending on the build
environment. That just results in non-reproducible issues in unclean
environments (suddenly different dependencies, different features,
...).


I think that is an acceptable tradeoff at this time; the only difference 
will be the dependencies, but that is the intent. Automated buildd 
packages should be stable. Based on further experience and feedback, one 
of the other options could be chosen instead. (I'm particularly 
interested in hearing from people who compare the different builds on 
arm, as that is where there's been an assertion of a performance 
regression.)




Re: Linking coreutils against OpenSSL

2023-11-10 Thread Luca Boccassi
On Fri, 10 Nov 2023 at 14:22, Pierre-Elliott Bécue  wrote:
>
> Luca Boccassi  wrote on 10/11/2023 at 15:00:24+0100:
>
> > On Fri, 10 Nov 2023 at 13:45, Bjørn Mork  wrote:
> >>
> >> Luca Boccassi  writes:
> >>
> >> > If we want to start nitpicking, then let's be exact: 0.61% of popcon.
> >> > Whether that qualifies as "plenty" we'll leave as an exercise for the
> >> > readers.
> >>
> >> I wonder if this sort of arrogant "don't care about minorities" attitude
> >> will ever stop?  Was sort of hoping that things would quiet down when
> >> everyone just gave up on the systemd and usr-merge crazyness. But it
> >> seems the bullies continue on and on and on and on.
> >>
> >> I guess those 0.61% are run bt the most valuable Debian users out there.
> >> I'm sorry to not be one of them, but that's the way things have become.
> >> Not by choice.
> >
> > Having a 5x performance improvement in core utilities at zero cost for
> > 99.39% of users and at the cost of an extra library that is already
> > widely used for 0.61% --> bullying. Noted.
>
> The problem is not the argument but clearly the way you state it, which
> is quite coherent with your way of answering most of the time.
>
> I know it's not mandatory, but a bit of empathy, a bit of caring and a
> bit of "just because I can act bluntly with a pinch of contempt doesn't
> mean I should" would be really appreciable.

You know what else would be really appreciable? Not starting the
usual, tired, old flamewar, with heavily emotionally charged language
("bullying", "contempt", "lack of empathy", "lack of caring", etc),
when talking about something as trivial and harmless as installing a
widely used and common library to get a 5x performance boost out of
the core system. How about we do that instead? Because, just in case
perspective was already lost, this is what started the tirade:

> This sounds great. systemd also uses OpenSSL for various things, so
> libssl3 is pretty much a given on any bootable installation anyway
> already.

IE: a supportive and appreciative comment, followed by a relevant and
objective piece of information. Where's the bullying?



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Simon Richter

Hi,

On 11/10/23 21:07, Stephan Verbücheln wrote:


In my opinion, this is yet another reason to use a proper cryptography
library (openssl, gnutls or gcrypt) instead of a custom implementation
for this kind of algorithm.


Yes and no. The reason several of our core tools bring their own 
functions is to specifically reduce the Essential package set. Hence 
this thread: we need to weigh the benefits against the drawbacks here.


In coreutils' case, I think the benefits are kind of qualified by the 
number of direct users. Basically, few people have use cases that 
require them to routinely verify checksums with the tools from coreutils[1].


The main benefit of this move is that container images will shrink 
because libssl becomes part of the base layer, so fewer copies of it 
will be kept in stacked layers. I would disregard this as a benefit, 
otherwise we could make a case that more packages should be Essential.


The actual drawbacks for users are minimal too:
 - systemd pulls it in anyway
 - apt will pull it in on the remaining systems

I don't quite see the appeal of OpenSSL as a dependency for apt either. 
I have 2 Gbps Internet at home, and a laptop I bought in 2012, and apt 
is never CPU bound. I could see the benefit of gzip offloading into the 
kernel crypto engine, that would be noticeable to me and at least two 
other people.


We already have two other such libraries in the quasi-essential set: 
libcrypt, and the Linux kernel.


libcrypt:
 + already in the quasi-essential set (no extra space)
 - still slow

kernel:
 + No extra space needed
 + Support for offload engines that use privileged access
 - Invisible dependency

OpenSSL:
 + Handwritten optimized assembler functions for a set of architectures
 - Horrible code

The optimized assembler function brings a massive speedup on amd64, 
which is what triggered this thread. The ARM NEON assembler code gives a 
moderate speedup for hashing compared to autovectorized generic code, 
but in general vector units are the wrong tool for cryptographic hashes, 
so I'm not surprised it isn't an order of magnitude.



Over time, when these libraries add support for cryptography
acceleration instructions for more architectures, all programs will
benefit from it.


Yes, but crypto acceleration in instruction form is difficult to 
implement in RISC architectures -- which is why these usually have 
separate DMA capable devices, and work queues managed in the kernel.



I would expect that many rich ARM SoCs for phones, laptops and servers
already have something and that openssl supports it already. What
device did you run your benchmark on?


I used a Zynq SoC, and just tested a random file I had that fit into 
memory, running sha256sum and kcapi-dgst -c sha256 five times each. 
OpenSSL is a bit faster (going from 1 minute to 45 seconds), but in a 
real world application I'd give this an offload engine on the FPGA side 
if it was a hot path, and ignore it if it was not.


In summary, I don't believe this change has any measurable effect beyond 
growing the Essential set and improving artificial benchmarks, so I'm 
pretty lukewarm about this.


   Simon

[1] "debootstrap george" is an outlier and should not have been counted



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Julian Andres Klode
On Sat, Nov 11, 2023 at 12:55:16AM +0900, Simon Richter wrote:
> Hi,
> 
> On 11/10/23 21:07, Stephan Verbücheln wrote:
> 
> > In my opinion, this is yet another reason to use a proper cryptography
> > library (openssl, gnutls or gcrypt) instead of a custom implementation
> > for this kind of algorithm.
> 
> Yes and no. The reason several of our core tools bring their own functions
> is to specifically reduce the Essential package set. Hence this thread: we
> need to weigh the benefits against the drawbacks here.
> 
> In coreutils' case, I think the benefits are kind of qualified by the number
> of direct users. Basically, few people have use cases that require them to
> routinely verify checksums with the tools from coreutils[1].
> 
> The main benefit of this move is that container images will shrink because
> libssl becomes part of the base layer, so fewer copies of it will be kept in
> stacked layers. I would disregard this as a benefit, otherwise we could make
> a case that more packages should be Essential.
> 
> The actual drawbacks for users are minimal too:
>  - systemd pulls it in anyway
>  - apt will pull it in on the remaining systems
> 
> I don't quite see the appeal of OpenSSL as a dependency for apt either. I
> have 2 Gbps Internet at home, and a laptop I bought in 2012, and apt is
> never CPU bound. I could see the benefit of gzip offloading into the kernel
> crypto engine, that would be noticeable to me and at least two other people.

It's not a performance issue for APT, but:

1) we use libgcrypt in libapt-pkg, which needs global initialization.
   Libraries should not be doing the initialization, we're basically
   misusing it.

   The reason we use a library is to not have to vendorize the hashing
   algorithms.

   But more importantly, OpenSSL is the right choice because:

2) We use GnuTLS for the https support and that has various little
   incompatibilities that break it with some servers, certificates,
   or oppressive government firewalls, causing people not to be able
   to download their updates via https.

   Hence want to replace that with OpenSSL


-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer  i speak de, en



Debian Med video meeting tomorrow Saturday 2023-11-11 19:00 UTC

2023-11-10 Thread Andreas Tille
Hi,

this is the call for the next video meeting of the Debian Med team
that are an established means to organise the tasks inside our team.

Meetings usually take us only 15-20min depending what we are talking
about and how many people are joining.  The next meeting is tomorrow
   
 https://www.timeanddate.com/worldclock/fixedtime.html?iso=2023T19

Despite technical issues of the last meeting I think we stick to the
known Debian Social channel

 https://jitsi.debian.social/DebianMedCovid19

The topic is what contributors have done in the past period and to
coordinate the work until the next meeting.

For those who are interested in hot topics we want to tackle, here
are some items:

  - BioConductor transition
  - Python 3.12 transition
  - Outreachy candidates

Newcomers are always welcome.

See you tomorrow
 
   Andreas.

-- 
http://fam-tille.de



reference Debian package of multiple binaries sharing one man page

2023-11-10 Thread Norwid Behrnd
Hello,

I seek a maintained Debian package which provides multiple binaries sharing one
man page in common -- do you know an example?

Recently, I started to upgrade the Debian package about `markdownlint`,[1] a
syntax checker.  The initially packaged version 0.12.0 provided a binary of
name `ruby-mdl` which now becomes a transition dummy package in favour of the
functionally updated `markdownlint`.

I wonder how to properly prepare an adjusted man page for both binaries, because
lintian warns about the absence for `usr/bin/mdl`.[2]  After passing section
12.1 of the Debian Policy Manual, Jens Schweikhart's manual[3] appeared suitable
here because of the following section 4:

---8>< ---
Here is how to do it: If you want to have your man page available under the
names `foo' and `bar' in section 1, then put the man page in foo.1 and have
bar.1 look like this:

.so man1/foo.1

It is important to specify the man1/ directory part as well as the file name
`foo.1' because when groff is run by the browser it will have the manual base
directory as its current working directory (cwd) and groff interprets .so
arguments relative to the cwd.
---8>< ---

However, there still is some detail I did not understand well enough; the
additional line

```
.so man1/mdl.1
```

in my file `/debian/markdownlint.1`[4] and followed by the call of

```shell
sbuild -A -d unstable --source
```

yields for example the following warning

```shell
...
Processing triggers for libc-bin (2.37-12) ...
Running lintian...
W: markdownlint: groff-message -:7: warning: failed .so request 
[usr/share/man/man1/markdownlint.1.gz:2]
W: markdownlint: groff-message can't open man1/mdl.1: No such file or directory 
[usr/share/man/man1/markdownlint.1.gz:1]
W: markdownlint: groff-message troff::7: error: can't open 
'man1/mdl.1': No such file or directory [usr/share/man/man1/markdownlint.1.gz:3]
W: markdownlint: no-manual-page [usr/bin/mdl]

I: Lintian run was successful.

+--+
| Post Build   |
+--+

...
```

Regards,

Norwid

[1] https://tracker.debian.org/pkg/ruby-mdl
[2] https://udd.debian.org/lintian/?packages=ruby-mdl
[3] http://www.schweikhardt.net/man_page_howto.html#q4
[4] 
https://salsa.debian.org/nbehrnd/markdownlint_test/-/blob/master/debian/markdownlint.1



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Simon Richter

Hi,

On 11/11/23 03:34, Julian Andres Klode wrote:


1) we use libgcrypt in libapt-pkg, which needs global initialization.
Libraries should not be doing the initialization, we're basically
misusing it.


I remember that KiCad had problems with OpenSSL for this exact reason -- 
we were using libcurl from multiple threads from different plugins, and 
OpenSSL required us to initialize some locking mechanism from the KiCad 
main program so plugins could operate safely, breaking the abstraction.


For this reason, KiCad had a direct dependency on OpenSSL for years, 
even if libcurl was provided by libcurl-gnutls -- can't know whether 
libcurl pulls in openssl, so we need to initialize it.


We removed that code a while ago after the offending plugins were 
removed, and it seems the OpenSSL API has removed the 
CRYPTO_set_locking_functions call since then so there is a good chance 
that they've cleaned up a bit.


There are still some globals, but mostly for malloc replacements, so I 
guess these can be ignored.


   Simon



main-dev

2023-11-10 Thread Geert Stappers


Hello,


This is about evolving Debian further, for getting beyond a growing pain.


In upstream sources are many libraries, crates, modules and such[0].
Those files are needed during development[1] and packaged for Debian
for that reason. They are not needed for running the compiled program.

What I want, is to explore if we put those libraries in a special corner
of the Debian Package Archive, something like 'main-dev'.

Having a different kind of packages means we can threat them differently.
Which benefits will it bring?

One such thing could be that multiple versions of same library exist.
( foo version 0.2  needing baz v0.3.4 and bar v2.0 needing baz v0.3.3 )
 
Actual goal I want to achieve (goal we Debian should want to achieve) is
having various ways to improve the process of getting upstream development
files into Debian. Yeah, currently I think it is too tedious to keep
with the pace of upstream. 

What would be needed to catch-up?


Regards
Geert Stappers


[0] to complete the list, additions welcome.
[1] Also for building and reproducible rebuilding
-- 
Silence is hard to parse



Re: main-dev

2023-11-10 Thread Jérémy Lal
Le ven. 10 nov. 2023 à 22:22, Geert Stappers  a
écrit :

>
> Hello,
>
>
> This is about evolving Debian further, for getting beyond a growing pain.
>
>
> In upstream sources are many libraries, crates, modules and such[0].
> Those files are needed during development[1] and packaged for Debian
> for that reason. They are not needed for running the compiled program.
>
> What I want, is to explore if we put those libraries in a special corner
> of the Debian Package Archive, something like 'main-dev'.
>
> Having a different kind of packages means we can threat them differently.
> Which benefits will it bring?
>
> One such thing could be that multiple versions of same library exist.
> ( foo version 0.2  needing baz v0.3.4 and bar v2.0 needing baz v0.3.3 )
>
> Actual goal I want to achieve (goal we Debian should want to achieve) is
> having various ways to improve the process of getting upstream development
> files into Debian. Yeah, currently I think it is too tedious to keep
> with the pace of upstream.
>
> What would be needed to catch-up?
>

Automated updates, and automated crash bug reports (with statistics
notifications).


Re: reference Debian package of multiple binaries sharing one man page

2023-11-10 Thread IOhannes m zmölnig
Am 10. November 2023 20:20:35 MEZ schrieb Norwid Behrnd :
>Hello,
>
>I seek a maintained Debian package which provides multiple binaries sharing one
>man page in common -- do you know an example?
>

faust


mfh.her.fsr
IOhannes



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Diederik de Haas
https://lists.debian.org/debian-arm/2021/06/msg1.html is the start of a 
thread about support for encryption in HW, which AFAIK uses the Crypto API.
That's available on a number of arm64 devices.

It may be useful to specify/detail a test so that people can (uniformly) test 
the performance on their devices (on various architectures).
I did an OpenSSH/OpenSSL test, but I actually don't know if those were good 
tests.

Still far from being an expert, but I was recently involved with testing a 
Crypto implementation for rk3566 (based) devices and noticed the results were 
rather mixed. It was much slower with 16 bytes, but significantly faster with 
16384 bytes and the 'turnover' point was around 1024 bytes.
In the discussion that followed, the point was made that HW-based Crypto would 
be much energy efficient and it would free up the CPU to do other things.
So that could also be a factor that could be considered.

Personally I don't have a problem with linking to OpenSSL, but I'm not a 
subject matter expert.

HTH

PS: The 'argument' wrt a certain package of Priority: important (not 
Essential) makes my blood boil, so this will likely be my only contribution to 
this thread.

signature.asc
Description: This is a digitally signed message part.


Re: Linking coreutils against OpenSSL

2023-11-10 Thread Theodore Ts'o
On Thu, Nov 09, 2023 at 11:13:51PM +, Luca Boccassi wrote:
> > Alternatively, what would you think about making sha256sum etc.
> > divertible and providing implementations both with and without the
> > OpenSSL dependency?
> 
> Please, no, no more diversion/alternatives/shenanigans, it's just huge
> and convoluted complications for no real gain.

Agreed, let's not.

If you can get upstream a patch so that coreutils could try to dlopen
OpenSSL and use it if it is available, but skip it if it is not, that
might be one way to avoid OpenSSL going into essential.  The challenge
is that OpenSSL is not known for its ability to maintain a stable ABI,
but if we only care about supporting a specific version of OpenSSL
(the one which is shipped with coreutils) and given that the fallback
is a slower sha256sum, which IMHO is *not* a disaster, perhaps it's
doable?

- Ted



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Emanuele Rocca
Hi,

On 2023-11-09 07:31, Theodore Ts'o wrote:
> If you can get upstream a patch so that coreutils could try to dlopen
> OpenSSL and use it if it is available, but skip it if it is not, that
> might be one way to avoid OpenSSL going into essential.  The challenge
> is that OpenSSL is not known for its ability to maintain a stable ABI,
> but if we only care about supporting a specific version of OpenSSL
> (the one which is shipped with coreutils) and given that the fallback
> is a slower sha256sum, which IMHO is *not* a disaster, perhaps it's
> doable?

This idea seems appealing to me.

In terms of costs vs benefits, adding OpenSSL to essential has a fairly
high cost for unclear benefits.

Costs, from Policy 3.8 [1]:

"Maintainers should take great care in adding any programs, interfaces,
 or functionality to essential packages. Packages may assume that
 functionality provided by essential packages is always available without
 declaring explicit dependencies, which means that removing functionality
 from the Essential set is very difficult and is almost never done. Any
 capability added to an essential package therefore creates an obligation
 to support that capability as part of the Essential set in perpetuity."

Can we quantify the benefits? Not in terms of artificial benchmarks, but
real use cases if possible.

[1] https://www.debian.org/doc/debian-policy/ch-binary.html#essential-packages



Re: main-dev

2023-11-10 Thread Wolfgang Silbermayr

Am 10.11.23 um 22:21 schrieb Geert Stappers:


What I want, is to explore if we put those libraries in a special corner
of the Debian Package Archive, something like 'main-dev'.

Having a different kind of packages means we can threat them differently.
Which benefits will it bring?



Hi Geert,


There has been some discussion into that direction on a Debian bugreport [0], 
might be helpful to connect this discussion thread to that discussion.


The bug report has not seen any activity for quite some time though.


Regards,
Wolfgang.


[0] https://bugs.debian.org/949163



Re: reference Debian package of multiple binaries sharing one man page

2023-11-10 Thread Tobias Frost
On Fri, Nov 10, 2023 at 08:20:35PM +0100, Norwid Behrnd wrote:
> Hello,
> 
> I seek a maintained Debian package which provides multiple binaries sharing 
> one
> man page in common -- do you know an example?

devscripts - it links debchange.1 to dch.1 via debian/links  (dh_link)

$grep -r dch debian/links
/usr/bin/debchange  /usr/bin/dch

-- 
tobi



Re: Linking coreutils against OpenSSL

2023-11-10 Thread Julian Andres Klode
On Sat, Nov 11, 2023 at 06:52:50AM +0100, Emanuele Rocca wrote:
> Hi,
> 
> On 2023-11-09 07:31, Theodore Ts'o wrote:
> > If you can get upstream a patch so that coreutils could try to dlopen
> > OpenSSL and use it if it is available, but skip it if it is not, that
> > might be one way to avoid OpenSSL going into essential.  The challenge
> > is that OpenSSL is not known for its ability to maintain a stable ABI,
> > but if we only care about supporting a specific version of OpenSSL
> > (the one which is shipped with coreutils) and given that the fallback
> > is a slower sha256sum, which IMHO is *not* a disaster, perhaps it's
> > doable?
> 
> This idea seems appealing to me.
> 

WRT dlopen(), this is never an appealing solution because you do not
get any type-checking, you have to make sourceful changes for an soname
bump. It is an interface you can use for loading plugins (that is, you
should be in control of what the interface is that you are loading from
the library object), but it's not really usable for stuff that is outside
of your control.


> In terms of costs vs benefits, adding OpenSSL to essential has a fairly
> high cost for unclear benefits.
> 
> Costs, from Policy 3.8 [1]:
> 
> "Maintainers should take great care in adding any programs, interfaces,
>  or functionality to essential packages. Packages may assume that
>  functionality provided by essential packages is always available without
>  declaring explicit dependencies, which means that removing functionality
>  from the Essential set is very difficult and is almost never done. Any
>  capability added to an essential package therefore creates an obligation
>  to support that capability as part of the Essential set in perpetuity."
> 
> Can we quantify the benefits? Not in terms of artificial benchmarks, but
> real use cases if possible.
> 
> [1] https://www.debian.org/doc/debian-policy/ch-binary.html#essential-packages

I do not think this is a reasonable argument to make. While libraries
are dependencies of Essential packages, they themselves are
distinctively not Essential, they are pseudo-essential.

The rules here don't apply to pseudo-essential library packages because
quite frankly, they would have to apply to the specific soname because
that is the provided interface.

But since libraries frequently change their soname, they can't be 
considered subject to essential clauses because every soname bump,
you'd be removing a package from the essential set and adding a new
one to it.

-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer  i speak de, en