Re: Moving libdeflate from Debian-Med to a more appropriate team

2024-08-06 Thread nick black
Michael R. Crusoe left as an exercise for the reader:
> libdeflate-dev has 3304 reverse-dependencies in "unstable"[0].
> I would like to move it from Debian-Med to a more appropriate team.
> Are there any volunteers?

I maintain it for Fedora, and would be happy to handle it in
Debian; it's a dependency for one of my other packages (notcurses).
Happy to enter into a team maintainership as well.

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


signature.asc
Description: PGP signature


Re: Moving libdeflate from Debian-Med to a more appropriate team

2024-08-07 Thread nick black
Michael R. Crusoe left as an exercise for the reader:
> Please create a new group on salsa and then we can move the repo[0] from the 
> debian-med namespace.

done: https://salsa.debian.org/deflate-team

I've sent invites to you and Andrea. Feel free to ignore them.

> Then you can formalize the change by uploading the new version[1] of 
> libdeflate with the new "Maintainer".
> [1] https://github.com/ebiggers/libdeflate/releases/tag/v1.21

on it.

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


signature.asc
Description: PGP signature


Re: Removing more packages from unstable

2024-08-21 Thread nick black
Helmut Grohne left as an exercise for the reader:
> notcurses

i need decide whether i'm putting out a new upstream release
with ffmpeg 7 support, or whether i ought patch it in debian
(thanks to sebastian ramacher for originally bringing the issue
to my attention). i suppose i can do the latter now without any
real pain, and take the upstream when and if i bring it out.

especially if there's a reasonable heads-up, this seems an
effective way to gently remind developers of work they'd
forgotten about, or were putting off.

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


signature.asc
Description: PGP signature


Bug#671385: ITP: omphalos -- Network enumeration and domination

2012-05-03 Thread nick black
Package: wnpp
Severity: wishlist
Owner: nick black 

* Package name: omphalos
  Version : 0.99.0
  Upstream Author : Nick Black 
* URL : http://dank.qemfd.net/dankwiki/index.php/Omphalos
* License : GPL
  Programming Lang: C
  Description : Network enumeration and domination
Omphalos is a tool for visualizing and controlling a local network (though it
will also process pcap savefiles). Captured packets are analyzed to build a
database of hosts and services. Various scans can be performed to elicit
informative packets. Spoofing and redirection at several layers allows flows to
be redirected through the host machine, or silenced. Omphalos is fully IPv6
aware, and makes use of numerous service discovery protocols.



-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20120503175707.27008.64503.reportbug@localhost



Bug#700060: ITP: ITP: growlight -- Disk manipulation and system preparation tool -- Disk manipulation and system preparation tool

2013-02-07 Thread Nick Black
Package: wnpp
Severity: wishlist
Owner: Nick Black 

* Package name: growlight -- Disk manipulation and system preparation
tool
  Version : 1.0.4.5
  Upstream Author : Nick Black 
* URL : http://nick-black.com/dankwiki/index.php/Growlight
* License : GPL
  Programming Lang: C
  Description : Disk manipulation and system preparation tool
 Growlight can manipulate both real and virtual (mdadm, device-mapper, and ZFS)
 disks, find bottlenecks in a storage setup, create partitions and filesystems,
 and prepare fstab files for new installations.


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130208000853.4225.63766.reportbug@localhost



apt-show-versions rewrite

2013-03-10 Thread nick black
(CC'd kinda widely, eh; feel free to trim responses)

Hello there, Christoph!

I've used apt-show-versions for years, and found it quite useful. It's a bit
slow, though, and its need to update a root-owned disk cache is kind of
unfortunate.

As part of my RAPTORIAL project (https://github.com/dankamongmen/raptorial),
I've implemented "rapt-show-versions", an apt-show-versions clone making use
of my libraptorial library. This multithreaded C engine ends up being quite
a bit faster than apt-show-versions; a single core run comes in around .21s
whereas apt-show-versions takes about 1.01s, while allowing it to use all 4
hyperthreaded cores drops this to .04s. We will soon begin shipping
RAPTORIAL tools in SprezzOS.

I'm aiming for feature-equivalence with apt-show-versions (the -i option
becomes a no-op, since I don't use a cache), though I'm not yet there. Core
functionality is present, and debugged. The code is, so far as I know,
portable across POSIX systems.

I'd like to show deference to you, as the author of apt-show-versions. How
would you like to proceed on this? I figure there's three options:

 - The apt-show-versions package begins building my code, which I will
   version relative to current apt-show-versions, on which there would be no
   further development.

 - A new package, rapt-show-versions, is introduced, probably with
   alternatives and Provides support.

 - The code is not introduced into Debian anytime soon.

Know that I am not (yet) a DD, though I'm happy to ITP this up if someone
will help it through.

Please take a look, and let me know how you'd like to move forward.

Note that I don't by any means propose replacing other APT components
with RAPTORIAL, yet.

Thanks for your time.

Hack on! --nick

-- 
nick black http://www.sprezzatech.com -- unix and hpc consulting
to make an apple pie from scratch, you need first invent a universe.


signature.asc
Description: Digital signature


Re: apt-show-versions rewrite

2013-03-15 Thread nick black
David Kalnischkies left as an exercise for the reader:
> You forgot to provide the source for your rewrite; the "library" is rather
> small to have a serious look at it even through a multithreaded cache would
> be interesting, but it not even builds as I miss a "blossom.h" which apt-file
> couldn't tell me where to find …

My apologies for trying to get this started in parallel. It clearly got
things off on the wrong foot. You'll find things quite a bit more developed
now, I think; as I said on Monday, I was aiming for feature equivalence by
Friday, and expect to hit it with completion of bug 681 tomorrow:

https://github.com/dankamongmen/raptorial
https://www.sprezzatech.com/bugs/show_bug.cgi?id=681

In any case, it appears that this is an idea which is only going to stir up
resentment from the APT team -- understandably, I suppose -- and thus I
cheerfully withdraw my suggestion that Debian and the APT Team look at it.

I look forward to a non-glacial apt-show-versions in Debian, however it
happens and whomever writes it. Feel free to package rapt-show-versions
should that C++ apt-show-versions never get itself written. Be well!

-- 
nick black http://www.sprezzatech.com -- unix and hpc consulting
to make an apple pie from scratch, you need first invent a universe.


signature.asc
Description: Digital signature


Re: apt-show-versions rewrite

2013-03-15 Thread nick black
David, especially after reading

http://raphaelhertzog.com/2010/12/10/people-behind-debian-david-kalnischkies-an-apt-developer/,

I can see how my original post would totally get under your skin. I
definitely didn't intend to do that; apologies!

This project was motivated by one major thing: certain operations involving
libapt are way slower than they need to be. You mention that "time spent
rewriting parsing code is time that could add new features." That's surely
true, but the functionality of APT as stands is sufficient for my needs. The
performance of that functionality is not.

I do *not* intend to rewrite the entirety of APT -- I hoped to rewrite the
underbelly, the part furthest away from the user. As soon as I can, I'll
then take the current APT code, and drape it over what I have. I suspected
it would be easier to graft the toplayer onto a new bottom layer designed
for multicore/fastdisk than it would be to retrofit the existing code. 

Reading your quoted words:

"APT2 isn’t much more than the name—which I completely dislike—currently
 from a user point of view, so I can’t really comment on that. All of them
 make me sad as each line invested in boilerplate code like configuration
 file parsing would be in my eyes better be spent in a bugfix..."

raptorial currently has 150 lines of lexing, a third of which is comments.
Not that much boilerplate code. The emphasis here is on parallelism and
algorithmic improvements. As you and others pointed out, mine is a "fairly
limited" lexer. That is by design, as lexing files is a solved problem.
I had hoped that by presenting advanced technology for the sinews holding
things together, it would be assumed that I could handle copying over crap
lexing state machines. Apparently not.

"be spent in a bugfix or new feature instead, but I am not here to tell
 anyone what they should do in their free time…"

If you accept my point of view that lackluster performance is a bug, I've
been working on a bugfix, though admittedly a highly invasive one.

One can't point at DBTS, perhaps, because if someone say went and filed a
bug claiming "your shit is slow", I think we can all agree they'd be invited
to provide patches and measurements, if the bug wasn't closed outright. Well,
your shit is slow (though feature-awesome!), and my shit is fast (though
feature-starved!), and I'll provide timings if you're interested, or I can
happily just keep it in SprezzOS.

But every time someone's wrenched from a solid work flow by waiting around on
some APT ecosystem operation for that sick second that separates smooth
interactivity from "slow piece of garbage computer!!", it's a bug to them.

I'm on #debian-apt and will hang out there today. Perhaps threading out the
existing APT core won't be as painful as I expected, especially since a
viable design effecting proven speedup already exists? Let's talk.

Hack on! --nick

-- 
nick black http://www.sprezzatech.com -- unix and hpc consulting
to make an apple pie from scratch, you need first invent a universe.


--
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130315113042.ga22...@qemfd.net



sprezzos apt-show-rewrite complete (report + numbers)

2013-03-20 Thread nick black
This is a followup to my post to debian-devel, debian-derivatives, deity,
and sprezzos-dev last Monday entitled "apt-show-versions rewrite". This
post is strictly informative, and does not advocate any policy.

Documentation has been substantially embeefened, including design notes:

 https://www.sprezzatech.com/wiki/index.php/Raptorial 
 https://github.com/dankamongmen/raptorial

rapt-show-versions(1), part of the RAPTORIAL suite, has become
feature-equivalent to the native apt-show-versions(1) tool, as predicted.
Despite fleshing out the features, I've managed to retain its speed.

 [recombinator](0) $ ./rapt-show-versions  -h
 rapt-show-versions v0.1.5 by nick black 
  invoked as /home/dank/raptorial/.libs/lt-rapt-show-versions

 usage: rapt-show-versions [ options ] packageregex
 options:
  -s|--status-file= Status file (def: /var/lib/dpkg/status)
  -l|--list-dir= List directory (def: /var/lib/apt/lists)
  -a|--allversionsPrint all available versions
  -h|--help   Display this usage summary
 [recombinator](0) $ 

Anyone who was offended by discussion "without the code written" last
week ought hopefully be able to join in without bias now. The entirety of
the codebase, including the common libraptorial(3) library, is 1650 lines
of heavily-commented POSIX C:

 [recombinator](0) $ wc -l  src/bin/rapt-show-versions.c src/lib/*[ch]
   217 src/bin/rapt-show-versions.c
   233 src/lib/aac.c
31 src/lib/aac.h
96 src/lib/config.h
   898 src/lib/packages.c
12 src/lib/paths.c
   163 src/lib/raptorial.h
  1650 total
 [recombinator](0) $ 

All modes of apt-show-versions have been implemented:

 - print packages from command line arguments, and status/upgrade info
 - print all installed package, and status/upgrade info
 - print all package versions using either of these two modes

And now, the timings [drumroll]

I am testing on two machines, a Core i7 2600K quadcore with HyperThreading,
overclocked to 5.0GHz ("skynet"), and a Core 2 Duo 6600 at stock 2.4GHz
("recombinator"). I ran each mode 10 times with each binary on each machine,
without interleaving. As the working set of each binary can be kept easily
within page cache on either machine, these tests probably do not reflect true
disk i/o. Disk I/O would be expected to only help RAPTORIAL relative to 
apt-show-versions, given that RAPTORIAL will issue its disk reads in parallel,
rather than sequentially, and that they can all fit in page cache. These tests
use RAPTORIAL 0.1.5, Libblossom 1.2.2, and the native SprezzOS APT databases of
the machines.

Case 1: Print selected packages and status/upgrade info

 Quadcore:

 [skynet](0) $ for i in `seq 1 10` ; do /usr/bin/time -f "%ems real %Ums user 
%P util" ./rapt-show-versions apt raptorial > /dev/null ; done
 0.09ms real 0.21ms user 234% util
 0.10ms real 0.22ms user 245% util
 0.11ms real 0.22ms user 227% util
 0.10ms real 0.23ms user 242% util
 0.10ms real 0.22ms user 249% util
 0.11ms real 0.24ms user 225% util
 0.14ms real 0.30ms user 230% util
 0.11ms real 0.24ms user 233% util
 0.10ms real 0.25ms user 250% util
 0.13ms real 0.29ms user 238% util
 [skynet](0) $ for i in `seq 1 10` ; do /usr/bin/time -f "%ems real %Ums user 
%P util" apt-show-versions apt raptorial > /dev/null ; done
 0.36ms real 0.32ms user 97% util
 0.35ms real 0.32ms user 98% util
 0.35ms real 0.34ms user 98% util
 0.36ms real 0.34ms user 97% util
 0.36ms real 0.33ms user 97% util
 0.35ms real 0.33ms user 97% util
 0.37ms real 0.34ms user 97% util
 0.35ms real 0.31ms user 97% util
 0.36ms real 0.34ms user 97% util
 0.35ms real 0.33ms user 98% util
 [skynet](0) $ 

 Dualcore:

 [recombinator](0) $ for i in `seq 1 10` ; do /usr/bin/time -f "%es real %Us 
user %P util" apt-show-versions apt raptorial > /dev/null ; done
 0.52s real 0.48s user 98% util
 0.52s real 0.42s user 97% util
 0.52s real 0.46s user 97% util
 0.52s real 0.44s user 97% util
 0.52s real 0.46s user 97% util
 0.52s real 0.46s user 97% util
 0.52s real 0.48s user 97% util
 0.51s real 0.45s user 98% util
 0.52s real 0.50s user 97% util
 0.52s real 0.44s user 97% util
 [recombinator](0) $ for i in `seq 1 10` ; do /usr/bin/time -f "%es real %Us 
user %P util" ./rapt-show-versions apt raptorial > /dev/null ; done
 0.16s real 0.26s user 164% util
 0.15s real 0.26s user 165% util
 0.15s real 0.24s user 164% util
 0.15s real 0.24s user 165% util
 0.15s real 0.24s user 165% util
 0.14s real 0.24s user 174% util
 0.14s real 0.25s user 175% util
 0.16s real 0.26s user 159% util
 0.15s real 0.25s user 169% util
 0.15s real 0.24s user 163% util
 [recombinator](0) $ 

 Call it 13ms vs 36ms on the quadcore and 15ms vs 51ms on the dualcore.
 Quadcore winner: RAPTORIAL at 36% running time
 Dualcore winner: RAPTORIAL at 29% running time
 Champion: RAPTORIAL

Case 2: Print all installed packages and status/upgrade info

 Quadcore:

 [skyne

Re: apt-file performance characterization

2013-03-24 Thread nick black
nick black left as an exercise for the reader:
> I've written up a performance characterization of apt-file(1) as stands. The
> preliminary version is available here:
> 
>   http://nick-black.com/raptorial-file

OK, finished this writeup. I've updated the file at the link above, and
included it below. I'm going to go ahead and knock out bugs 705[0] and
698[1], which will together implement everything described herein.
Hopefully that'll be done by tomorrow morningish, EDT.

Hack on!

--rigorously, nick

[0] https://www.sprezzatech.com/bugs/show_bug.cgi?id=705
[1] https://www.sprezzatech.com/bugs/show_bug.cgi?id=698

Optimizing apt-file
===

All timings were taken on a quadcore Core i7 2600K overclocked to 5.0GHz,
reading files from an Intel 320 SSD. All data sets fit within main memory.

apt-file has a more complex performance space than did apt-show-versions.
Understanding this space is critical to optimizing apt-file, and evaluating
any optimizations made. apt-file doesn't perform string searches itself; it
uses grep, zgrep and zfgrep. Furthermore, while apt-file is not multithreaded,
it does run multiple processes (apt-file -> gzip | grep), and thus natively
takes advantage of multiple cpus within a given Contents file. In this top(1)
output, the last column is the CPU number:

 8529 dank   7952  848  688 R  21.9  0:00.66 grep3 
 8522 dank  66508  17m 3436 S  11.6  0:00.35 apt-file0 
 8528 dank   8840  668  508 R  10.6  0:00.32 gzip2 

Of course, on a unicore machine, this use of three different processes will
provide no computational benefit (it might provide I/O benefit).

It is worth noting that the -x (regex) functionality of apt-file appears to be
broken or at least incomplete. Neither of the following searches, for instance,
yield any matches for "compiz" (or indeed all of the matches for "frog"):

[skynet](0) $ apt-file search -x frog\|compiz
frog: /usr/bin/frog
wmfrog: /usr/bin/wmfrog
[skynet](0) $ apt-file search -x \(frog\)\|\(compiz\)
frog: /usr/bin/frog
wmfrog: /usr/bin/wmfrog
[skynet](0) $ 

Running "apt-file frog compiz" finds all of the frog matches, but none of the
compiz matches. It appears that apt-file cannot use multiple patterns off the
command line, but it doesn't bother to warn the user about that. We can create
a pattern file, however, and that works:

[skynet](0) $ echo -e "frog\ncompiz" > searches 
[skynet](0) $ apt-file -f search searches  | wc -l
3874
[skynet](0) $ apt-file search compiz  | wc -l
1112
[skynet](0) $ apt-file search frog | wc -l
2762
[skynet](0) $ echo $((3874 - 1112))
2762
[skynet](0) $ 

Characterizing apt-file performance
===

Background material:

"Flexible Pattern Matching in Strings" by Navarro et al
"Introduction to Algorithms" by Cormen et al

String search algorithms tend to be optimized for one use or another. Searching
within DNA, for instance, is a very different game than searching within
UTF-32, which is very different from searching within UTF-8. We will consider
only exact string matching, and not "fuzzy" string matching (i.e., matching
within some string distance). Parameterizing the problem space under this
condition yields:

 - alphabet size
 - needle length
 - haystack length
 - number of needles
 - needle heterogeneity
 - frequency of occurrence

Note that in the presence of Kleene closure, there might be an infinite number
of needles. In the case of an online algorithm, the haystack is of infinite
size. All other parameters are finite. The alphabet size and haystack length
are independent of apt-file(1). Let's explore performance when we vary the
other parameters:

Varying needle length
=

It would be nice to have short needles of various length which held the
frequency of occurrence constant, but that'll have to come another day. It'll
be easy, as we'll see, to vary frequency without varying length.

[skynet](0) $ for i in compizabd compizab compiza compiz compi comp com co c ; 
do time apt-file search $i | wc -l ; done
0

real0m1.655s
0

real0m1.673s
0

real0m1.654s
1112

real0m1.854s
17293

real0m2.850s
86277

real0m4.971s
225415

real0m7.667s
998349

real0m22.491s
4019431

real1m30.639s
[skynet](0) $ 

apt-file(1) clearly performs better for longer strings, although this could be
due to their lesser frequency of occurrence. Times are approximately equal for
the three longest strings, but they also have equal frequency (0 occurrences).
This points to a backwards-skipping algorithm such as Boyer-Moore (with longer
strings, we get longer skips, and the ratio of skipped text for different
string lengths (

apt-file rewrite done

2013-03-24 Thread nick black
file(1) beats raptorial-file,
or even ties it. That said, the gain on typical searches is only a 1.1x--1.2x
speedup.

That might not be worth replacing the well-tested apt-file(1) codebase with
raptorial-file(1) by itself. However:

 (1) raptorial-file(1) uses the same codebase as rapt-show-versions(1), so
  why not have one if you have the other?

 (2) raptorial-file(1) is 84 lines of C to apt-file's 779 lines of perl

 (3) raptorial-file(1) will beat apt-file(1) more and more as cores are added

 (4) raptorial-file(1) is pretty standard C; there's no tricky code. maybe
  apt-file(1) is pretty standard perl. i wouldn't know. IMHO 779 lines of
  perl is unmaintainable perl, no offense to the apt-file(1) authors.

 (5) the apt-file(1) maintainer has recently requested to hand off the
  package, while the likely raptorial-file(1) maintainer is agitating
  for his package's inclusion :).

I hope this builds excitement regarding RAPTORIAL and convinces folks that
I'm on to something here. Hack on!

--rigorously, nick
  Hacker-in-Charge, SprezzOS Project

-- 
nick black http://www.sprezzatech.com -- unix and hpc consulting
to make an apple pie from scratch, you need first invent a universe.


signature.asc
Description: Digital signature


Re: apt-file rewrite done

2013-03-25 Thread nick black
nick black left as an exercise for the reader:
> I've got raptorial-file in a state for people to play with. The wins weren't
> as impressive as apt-show-versions(1) for the common cases (more like 25%),
> though some uncommon cases saw reductions in total time of >90%.

Spoke too soon! After fixing a stupid bug [0], improvement is much more
stark, closer to a 2x speedup. the case for raptorial-file(1) just became
much more convincing:

[skynet](130) $ for i in `seq 1 10` ; do /usr/bin/time ./raptorial-file compiz 
> /dev/null ; done
4.07user 1.29system 0:00.95elapsed 565%CPU (0avgtext+0avgdata 
194304maxresident)k 0inputs+0outputs (0major+37572minor)pagefaults 0swaps
3.74user 1.89system 0:01.07elapsed 526%CPU (0avgtext+0avgdata 
183116maxresident)k 0inputs+0outputs (0major+39856minor)pagefaults 0swaps
3.91user 1.21system 0:00.99elapsed 515%CPU (0avgtext+0avgdata 
193564maxresident)k 0inputs+0outputs (0major+38071minor)pagefaults 0swaps
3.93user 1.31system 0:01.06elapsed 495%CPU (0avgtext+0avgdata 
186644maxresident)k 0inputs+0outputs (0major+38400minor)pagefaults 0swaps
4.03user 1.54system 0:01.01elapsed 551%CPU (0avgtext+0avgdata 
192504maxresident)k 0inputs+0outputs (0major+39826minor)pagefaults 0swaps
3.64user 1.03system 0:01.05elapsed 442%CPU (0avgtext+0avgdata 
186892maxresident)k 0inputs+0outputs (0major+37151minor)pagefaults 0swaps
3.87user 1.84system 0:01.10elapsed 516%CPU (0avgtext+0avgdata 
193324maxresident)k 0inputs+0outputs (0major+34636minor)pagefaults 0swaps
4.03user 1.84system 0:01.01elapsed 582%CPU (0avgtext+0avgdata 
192576maxresident)k 0inputs+0outputs (0major+39498minor)pagefaults 0swaps
3.97user 1.65system 0:01.04elapsed 538%CPU (0avgtext+0avgdata 
194552maxresident)k 0inputs+0outputs (0major+38737minor)pagefaults 0swaps
3.85user 1.18system 0:01.03elapsed 485%CPU (0avgtext+0avgdata 
190348maxresident)k 0inputs+0outputs (0major+36283minor)pagefaults 0swaps
[skynet](0) $ 

[skynet](1) $ for i in `seq 1 10` ; do /usr/bin/time apt-file search compiz
> /dev/null ; done
2.06user 0.12system 0:01.77elapsed 123%CPU (0avgtext+0avgdata 
12076maxresident)k 0inputs+0outputs (0major+19894minor)pagefaults 0swaps
2.07user 0.13system 0:01.80elapsed 122%CPU (0avgtext+0avgdata 
12076maxresident)k 0inputs+0outputs (0major+19909minor)pagefaults 0swaps
2.10user 0.12system 0:01.82elapsed 122%CPU (0avgtext+0avgdata 
12076maxresident)k 0inputs+0outputs (0major+19901minor)pagefaults 0swaps
2.03user 0.15system 0:01.78elapsed 122%CPU (0avgtext+0avgdata 
12080maxresident)k 0inputs+0outputs (0major+19904minor)pagefaults 0swaps
2.17user 0.11system 0:01.85elapsed 123%CPU (0avgtext+0avgdata 
12080maxresident)k 0inputs+0outputs (0major+19895minor)pagefaults 0swaps
2.15user 0.12system 0:01.84elapsed 123%CPU (0avgtext+0avgdata 
12080maxresident)k 0inputs+0outputs (0major+19894minor)pagefaults 0swaps
2.04user 0.16system 0:01.79elapsed 122%CPU (0avgtext+0avgdata 
12080maxresident)k 0inputs+0outputs (0major+19890minor)pagefaults 0swaps
2.03user 0.13system 0:01.77elapsed 122%CPU (0avgtext+0avgdata 
12080maxresident)k 0inputs+0outputs (0major+19897minor)pagefaults 0swaps
2.05user 0.12system 0:01.77elapsed 122%CPU (0avgtext+0avgdata 
12080maxresident)k 0inputs+0outputs (0major+19895minor)pagefaults 0swaps
2.08user 0.13system 0:01.80elapsed 122%CPU (0avgtext+0avgdata 
12076maxresident)k 0inputs+0outputs (0major+19899minor)pagefaults 0swaps
[skynet](0) $ 

RAPTORIAL: 1.01s
apt-file: 1.77s
CHAMPION: RAPTORIAL (57%)

now *THAT'S* what i'm talkin' about! w00t w00t! man look at those cpus
getting pegged! rawwhide!

--hack on, nick
  Hacker-in-Charge, SprezzOS Project

[0] 
https://github.com/dankamongmen/raptorial/commit/6818a945733f246511a408165d99620352b19963

-- 
nick black http://www.sprezzatech.com -- unix and hpc consulting
to make an apple pie from scratch, you need first invent a universe.


signature.asc
Description: Digital signature


Re: i386 in the future (was Re: 64-bit time_t transition for 32-bit archs: a proposal)

2023-06-02 Thread nick black
Adam Borowski left as an exercise for the reader:
> Instead of RasPis as suggested by many in this thread, I'd instead suggest
> whatever is the current model of Odroid-H2+:

I was intrigued, but https://ameridroid.com/products/odroid-h2
suggests it's been out of stock since 2021?

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


signature.asc
Description: PGP signature


Re: 64-bit time_t transition for 32-bit archs: a proposal

2023-06-08 Thread nick black
Simon McVittie left as an exercise for the reader:
>   Debian-style multiarch or Fedora/Arch-style multilib is a much, much

this is at least the second time you've drawn this distinction
in this thread. for anyone else who, like me, was uneasy with
their understanding of the concept:

https://wiki.debian.org/ToolChain/Cross#Multiarch_vs_Multilib

seems to be a solid resource (and sadly low on my google
returns).

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


signature.asc
Description: PGP signature


Re: multiarch vs. multilib

2023-06-11 Thread nick black
Simon McVittie left as an exercise for the reader:
> Sorry, I spend a lot of my work time immersed in this sort of thing and
> how it differs between distributions, so I tend to forget that most
> developers are able to stick to one distro and don't need to know this!

no offense at all, and thanks tremendously for the detailed
explanation! i've learned a lot in this thread.

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


signature.asc
Description: PGP signature


Re: proposal: dhcpcd-base as standard DHCP client starting with Trixie

2023-06-20 Thread nick black
Simon McVittie left as an exercise for the reader:
> At the moment I believe the status quo for d-i is that networking is
> managed by NetworkManager if a desktop task happens to have pulled it in,
> or ifupdown otherwise? And that seems reasonable (although I personally
> prefer to set up systemd-networkd on servers).

i don't wish to start an argument, but just to ask: everyone has
recommended NetworkManager for workstations. i've been running
systemd-networkd on everything (servers, laptops, and
workstations) for several years now, usually in conjunction with
dnsmasq and wpa_supplicant, and it's been pretty great. what
does NetworkManager offer that makes it superior to
systemd-networkd on the desktop (which i'm interpreting to mean
"for interactive use")?

i'm not doubting its advantages, just ignorant of them. =] it
seems to me that unifying the network stack has some value all
its own.

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


signature.asc
Description: PGP signature


Re: proposal: dhcpcd-base as standard DHCP client starting with Trixie

2023-06-20 Thread nick black
Simon McVittie left as an exercise for the reader:
> I was using "desktop" in the sense of task-gnome-desktop and friends, more
> than as a class of hardware. Laptops and other portable computers are the
> main thing that really needs easily user-configurable networking.
> I think it makes sense for desktop/workstation hardware to be treated like
> an oddly-shaped laptop by default, which means it gets the benefit of the
> wider testing that goes into NM and its various user interfaces, rather
> than having laptops and desktops behave differently for reasons that are
> unlikely to be obvious to a new user.

since sending that mail, i've looked into gnome, and it seems to
have pretty deep integration with NM. given gnome's positioning
in debian, that seems to satisfy my question in and of itself.
it's clearly at a level well above wpa_gui etc. (which i don't
use, but might have proffered for consideration).

thanks as always for your detailed and thoughtful mails.

> A secondary benefit of NM is that it works on non-systemd-booted systems,
> whereas systemd-networkd isn't designed for that use. I'm personally
> happy with systemd as pid 1, but some people consider requiring systemd
> as pid 1 to be a deal-breaker, and if NM is a good candidate for being
> our default *anyway* then we might as well get that secondary benefit too.

i hadn't even considered this, thanks.

one nice thing about systemd-networkd is that it's pretty
extensive in terms of structured configurability; i've currently
got two machines with "CombinedChannels 1" to run XDP programs
which bind to queue 0, for instance. of course, these are
advanced options and thus can assume non-default effort.

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


signature.asc
Description: PGP signature


Re: Policy consensus on transition when removing initscripts.

2023-06-26 Thread nick black
Simon McVittie left as an exercise for the reader:
> started as root and dropped privileges to some other uid, that permanently
> restricts its ability to read information out of its own /proc, which is
> not always desirable. If the daemon starts up unprivileged, then it can

i assume by "its own /proc" you mean /proc/getpid()? i don't see
how this is different from any other resource one might need
consider acquiring prior to dropping privileges. if i want to
open a privileged port, i'd better do that before i change my
user (or otherwise yield CAP_NET_BIND_SERVICE).

furthermore, this is only true when procfs is mounted with a
nonzero hidepid, right? all my /proc/PID directories are 0755,
with contents likewise generally world-readable. hidepid=off is
the default according to
https://www.kernel.org/doc/html/latest/filesystems/proc.html.

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


signature.asc
Description: PGP signature


Re: proposal: dhcpcd-base as standard DHCP client starting with Trixie

2023-07-10 Thread nick black
Helmut Grohne left as an exercise for the reader:
> And yeah, please work on changing that ifupdown by default.  I'm faced
> with having to uninstall it from more and more systems. In case, you
> do a straw poll, I vote for systemd-networkd, which happens to be
> installed by default. Would there be any volunteers doing the d-i
> integration?

I'd be interested in taking this on, though I wouldn't want to
step on anyone's toes, so if someone with a feeling of ownership
would rather take it, please let yourself be known. I'd want
clarity as to whose approval I need to merge code (and their
buy-in to the effort overall) before starting.

I've messed with d-i and systemd-networkd both a good bit, and
like you (I assume) believe systemd-networkd to be the best
option at this time, and also moving forward.

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


signature.asc
Description: PGP signature


Re: proposal: dhcpcd-base as standard DHCP client starting with Trixie

2023-07-12 Thread nick black
Sam Hartman left as an exercise for the reader:
> In the wifi case though, I agree that netplan is a good idea.
> It doesn't look like systemd-networkd supports setting up the
> authentication for a wireless network.  So, you'd need to be using
> wpa_supplicant directly and systemd-networkd.  I think using

I might be misunderstanding your use of "directly" here, but
systemd-networkd certainly supports driving wifi authentication
through wpa_supplicant (though yes, the configuration is
outsourced to wpa_supplicant, which seems desirable since it can
then be picked up and used easily by other tools). It's not
tightly integrated, though, so you usually need some
"IgnoreCarrierLoss" chicanery if you don't want to reinitialize
the interface when switching between BSSIDs.

This is probably what you meant, but just wanted to be clear.

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


signature.asc
Description: PGP signature


Re: proposal: dhcpcd-base as standard DHCP client starting with Trixie

2023-07-15 Thread nick black
Sam Hartman left as an exercise for the reader:
> >>>>> "nick" == nick black  writes:
> I consider anything that requires me to write wpa_supplicant config to
> be a bad idea (unless I'm running an AP) and NetworkManager driving
> wpa_supplicant is a better idea.

i think everyone's agreed on this part.

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



Re: Efforts to Improve Virtual Console

2023-08-18 Thread nick black
Aryeh Hillman left as an exercise for the reader:
> I am looking to either find or help create a better virtual console
> experience on linux, especially in Debian. I am talking about tty1, tty2,
> tty3, ... typically mapped via CTRL-ALT-F1.

how would you like to improve it? if you'd like to e.g. run a
more advanced KMS-based console, you might want to try kmscon in
place of [a]getty.

>- where does the virtual console code live for debian?

the virtual console is implemented in the kernel.

console-setup handles...console setup, with keyboard-setup as an
input.

>- is virtual console code distro-specific or does it ship with the
>kernel?

kernel

>- are there any known efforts in this domain?

what domain?

i requested that some of the default unicode mappings change
back in 2020: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=965029

i'm sitting on a few kernel patches that i need break up to
improve color handling in the VC.

Notcurses (https://notcurses.com/) pushes the current
framebuffer console pretty much as far as it will go in terms of UI
components if you're looking to build applications that will run
both there and in X/Wayland terminal emulators.

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


signature.asc
Description: PGP signature


Re: Default font: Transition from DejaVu to Noto

2023-09-12 Thread nick black
The Wanderer left as an exercise for the reader:
> I have been considering how best to test this in something like a live
> environment, and have not yet settled on something that seems both
> sufficiently doable in my setup and also sufficiently likely to produce
> accurate results about my observations.

I've been doing a lot of font comparison on arbitrary text using
font-manager recently, if that's all you need.

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


signature.asc
Description: PGP signature


lintian groff-message warning "can't set the locale"

2020-10-25 Thread Nick Black
Hello there!

My Salsa CI pipeline is blowing up in the lintian step, with
lots of warnings of the form:

"W: notcurses-bin: groff-message usr/share/man/man1/notcurses-demo.1.gz can't 
set the locale; make sure $LC_* and $LANG are correct"

This is printed for each man page I package. An example run is
here:

https://salsa.debian.org/debian/notcurses/-/jobs/1107065

The only reference I could find was
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=606933, which
didn't seem relevant.

Is this due to having supra-ascii UTF8 characters in my man
pages? Is there anything I can do to work around this? I tried
exporting LANG to a UTF-8 locale in my salsa variables section,
but that didn't help.

I'm using pandoc to generate my man pages, and it happily
accepts UTF-8, but I can see a case for restricting them to
ASCII.

Thanks!

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


signature.asc
Description: PGP signature


Re: lintian groff-message warning "can't set the locale"

2020-10-25 Thread Nick Black
Felix Lechner left as an exercise for the reader:
> It's not a problem with your package. Lintian's own pipeline is
> likewise affected, even though our test suite completes fine in an
> unstable chroot. The issue is being tracked here:
> https://salsa.debian.org/salsa-ci-team/pipeline/-/issues/182

Thanks for the quick response, Felix. You say that "[you] will
probably start setting $LANG in that part of Lintian." what LANG
will you be using? Attempting to set LANG=en_US.UTF-8 in my
salsa ci variables resulted in setlocale(3) failing all over the
place, presumably due to the locale not having been generated.

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


signature.asc
Description: PGP signature


Re: lintian groff-message warning "can't set the locale"

2020-10-26 Thread Nick Black
Simon McVittie left as an exercise for the reader:
> If you care about portability to non-Debian systems, note that C.UTF-8 is
> a somewhat popular extension (I think it originated in the Fedora/Red Hat
> family before it was adopted by Debian and other distros) but is far from
> universally available. In particular, I'm aware of Arch Linux specifically
> *not* having it. The glibc maintainers consider the implementation used
> in e.g. Fedora and Debian to be a hack rather than something they want to
> maintain forever, but my understanding is that they would be willing to
> accept a better implementation.

As I "need" this only within the Debian Salsa CI (and only to
deal with this groff lintian warning, which it sounds like will
be handled another way), a Debian-specific solution would be
fine =]. Thanks for the details -- C.UTF-8 sounds like the right
way to go.

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


signature.asc
Description: PGP signature


glibc 2.32 before bullseye?

2020-12-17 Thread Nick Black
I was wondering whether glibc 2.32 is expected to land in
Bullseye. I'm guessing not, as I don't see a 2.32+ upload in
experimental.

In that case, I'd really like to have the Unicode 13 support
introduced by 2.32 (if not the complete support, at least the
wcwidth() elements). These seem pretty self-contained changes,
especially the wcwidth() tables; would a patch backporting the
glibc 2.32 Unicode 13 work be welcomed?

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


signature.asc
Description: 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.



investigating autopkgtest failures

2021-02-14 Thread Nick Black
I managed to push an update [0] that unexpectedly died in
autopkgtests [1]. I'm thankful that the tests brought this
problem to light, and grateful for the bug report--chalk it up
as a nice win for autopkgtests! I'm now pondering how best to
track this down, however, and at something of a loss. So far as
I'm aware, the only artifacts left over from the run are the
logs [2], unless one uses the AUTOPKGTEST_ARTIFACTS mechanism
[3] (which I intend to start using ASAP).

Even with artifacts tweaked to grab a coredump or whatnot,
is there any way to test a modified package in the autopkgtest
environment without a full archive upload? This particular
program is pretty hardware-sensitive, and attempts to reproduce
the bug locally have not yet been fruitful (though given that
the autopkgtest failed on all architectures, it's likely less
hardware-dependent than I'm making out).

Ideally, I'd be able to run the autopkgtests as part of Salsa
CI, which [4] suggests to be doable. Going even further, I'd be
able to ssh into a failed autopkgtest environment (for some
(short) time), and run some one-off experiments therein. Am I
missing an existing process through which this is possible?

Thanks! --nick

[0] https://tracker.debian.org/pkg/growlight
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=982786
[2] 
https://ci.debian.net/data/autopkgtest/testing/amd64/g/growlight/10443325/log.gz
[3] https://people.debian.org/~mpitt/autopkgtest/README.package-tests.html
[4] https://debconf20.debconf.org/talks/39-running-autopkgtest-for-your-package/

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


signature.asc
Description: PGP signature


Re: investigating autopkgtest failures

2021-02-14 Thread Nick Black
Antonio Terceiro left as an exercise for the reader:
> I can trivially reproduce your autopkgtest failure locally with:
> 
> $ autopkgtest -apt-upgrade --no-built-binaries growlight -- \
>   lxc --sudo autopkgtest-unstable-amd64

Beautiful, thank you so much Antonio!

> Now, your tests are full of
> Couldn't get blkid probe for /dev/dm-1 (No such file or directory), 
> retrying...
> which tells me they should probably not be being executed in a
> container.

Well, there's value in testing the failure case, too =]. So you
would recommend the isolation-machine restriction?

--nick

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


signature.asc
Description: PGP signature


partman, growlight, discoverable partitions, and fun

2021-09-23 Thread nick black
Hello there, debian-boot!

I am just finishing up the implementation of Discoverable GPT
Partitions [0] in my growlight tool, and it seems a good time to
see if I can push this discussion [1] forward.

I'd like to sound out especially the d-i shareholders on
replacement of partman with growlight. I can already hear
hackles raising; I invite you to watch [2]/read [3] my Debconf
21 presentation, "Parting Ways with Partman", where I hope
I've made a fairly complete and not-too-incorrect assessment
of the situation.

Essentially, my argument is that a tool which can both (a) play
the system preparation role of partman in d-i and (b) function
as a mainstream post-install disk management/analysis tool is
likely to minimize time to support of new features, and doesn't
consume developer time that can't be used outside of d-i.

If any longtime developers are truly wedded to partman, I don't
want to step on any toes; I'm the new guy; I certainly don't see
any immediately compelling technical reason to make a switch.
If you enjoy volunteer hackery on partman, great. I suspect,
however, that partman is no one's great love. Growlight is a
tool I've maintained and expanded over a decade, and intend to
continue improving, outside of any system installation role.

Christian PERRIER wrote on debian-boot 2013-02-07 [4]:

  "It's quite likely that the first step is then to have
   growlight in main Debian, isn't it?"

Just so, and that was accomplished last year [5]. So let's move on
to the second step, and consider this major move. I very very
much hope you'll read through [3] with an open mind.

Thanks!

--nick

[0] https://systemd.io/DISCOVERABLE_PARTITIONS/
[1] https://lists.debian.org/debian-boot/2013/02/msg00122.html
[2] https://nick-black.com/tabpower/debconf21-growlight.mkv
[3] 
https://nick-black.com/dankwiki/index.php?title=File:Parting_ways_with_partman.pdf
[4] https://lists.debian.org/debian-boot/2013/02/msg00164.html
[5] https://tracker.debian.org/pkg/growlight

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


signature.asc
Description: PGP signature


Re: partman, growlight, discoverable partitions, and fun

2021-09-25 Thread Nick Black
It supports MBR, GPT, and APM:

https://github.com/dankamongmen/growlight/blob/master/src/ptable.c#L51-L123

(sorry for the gmail-style top posting; i can't find your mail in my mbox
for whatever reason)

Any other partition schemes ought be trivial to add; they've not been added
yet
simply because I don't have means with which to test them.

Looking at the "partition types" section of the Linux configuration, I see:
 Acorn, AIX, Alpha, Amiga, Atari, Macintosh, MSDOS, BSD, Minix, Solaris
x86, Unixware,
 Windows LDM, SGI, Ultrix, Sun, Karma, EFI/GPT, and SYSV68.

Looking at the disk-label code from partman, I see:
 gpt, msdos, amiga, atari, mac, sun

So the only ones covered by partman and not covered by growlight would be:
amiga, atari, sun,
and mac (if mac is not the same as APM). I don't see any difficulty in
adding these four, so long
as there's someone with an Amiga or ATARI who'd be willing to test them
out. If there are no such
people, is it that important?

On Thu, Sep 23, 2021 at 5:29 PM John Paul Adrian Glaubitz <
glaub...@physik.fu-berlin.de> wrote:

> Hello!
>
> On 9/23/21 22:57, nick black wrote:
> > I am just finishing up the implementation of Discoverable GPT
> > Partitions [0] in my growlight tool, and it seems a good time to
> > see if I can push this discussion [1] forward.
>
> Does it support partition tables other than GPT, in particular all
> of the partition tables that parted supports?
>
> If not, I don't think it would be a viable replacement for partman.
>
> Adrian
>
> --
>  .''`.  John Paul Adrian Glaubitz
> : :' :  Debian Developer - glaub...@debian.org
> `. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
>   `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
>
>

-- 
nick black 
to make an apple pie from scratch, one need first invent a universe.


Re: partman, growlight, discoverable partitions, and fun

2021-09-25 Thread nick black
Marco d'Itri left as an exercise for the reader:
> On Sep 24, Marc Haber  wrote:
> 
> > But maybe an alternative? I find the partitioning step one of the most
> > error-prone and hard-to-use parts of non-trivial Debian installations.
> And the preseeding syntax is as powerful as it is inconvenient.
> I had not heard of growlight before yesterday, but from what I have read 
> I think that it is very promising.
> 
> Implementing support for more partition formats, if missing, should be 
> rather easy.
> But which ones do we need for architectures which are not actually dead?

So, as I responded to Adrian [0], the only missing partition
types appear to be amiga, atari, and sun. Adding them ought be
simple enough, though I'd need testers with the hardware, or
access to the hardware.

My biggest worry personally (aside from the realpolitik of
getting this change through) regards the automated partitioning
language available through the preseed system. Trying to emulate
this bug-for-bug is a non-starter, I think, both from a
technical and quality-of-life standpoint. If the emulation can't
be perfectly accurate, I don't think it ought be attempted for
such a critical, delicate procedure.

If faithfully honoring the preseed language is seen as a hard
requirement (not that I've heard this from anyone), it's
probably not happening. How important is that?

I could do a limited implementation, perhaps, where I clearly
error out on a spec I can't handle, falling back to partman.

If, on the other hand, it seems time to revamp the automatic
partitioning specification DSL, I could probably get behind
that. Maybe even the old one; I'd need see how complex it is (I
recall some pain trying to write complicated partman specs in
the past, but it was many years ago).

So...how do I go about making this happen? fwiw, I'm but a lowly
DM, not a DD.

--nick

[0] https://lists.debian.org/debian-devel/2021/09/msg00365.html

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


signature.asc
Description: PGP signature


Re: partman, growlight, discoverable partitions, and fun

2021-09-26 Thread nick black
Adam Borowski left as an exercise for the reader:
> I do have a different wish, though.  Could you please purge any references
> to drivemakers' units (stuff like MiB = million bytes, which current
> partitioner maliciously[1] swaps around with proper MB of 1048576B)? 

this really probably belongs over in the growlight bugtracker, but:

* i actually use the "memory units" for almost all interfaces,
  because that gives you the numbers you expect. for instance,
  my Seagate Exos 12TBs are 5859442688 4GB AF physical sectors,
  addressable as 23437770752 512B logical sectors. using
  tebibytes, this is 10.914TiB, as opposed to 12.000TB.

  as you can see at [0], we see 12T.

  there's only one place off the top of my head where they're
  *not* used, which is...

> Having them in the user interface is deeply harmful: people will get
> unoptimal alignment unless they 1. know about it, and 2. are careful enough. 

* alignment =] there we absolutely want to be using MiB etc.,
  and we do.

> >From your comments before I see that you try to do proper alignment, but in
> too many cases no matter how you try, the installer won't align well enough
> because the hardware might be newer than the version of growlight, hide its
> inner workings for marketing reason (like stealth SMR drives), etc.
> On the other hand, a completely oblivious user will get good alignment if
> you show numbers measured in gigabytes rather than gillionbytes.

so i'm not sure i necessarily buy that claim. if i'm overriding
the default alignment, i typically want to specify a value
that's independent of the disk size, and i always want it to be
in a *iB unit. oh, do you mean secondary and later partitions?
iirc, i accept (in addition to absolute sector numbers) a "+"
syntax where "+1M" would mean "the first possible 1MiB alignment
within this empty space", equal to the beginning of the empty
space when it happens to start on 1MiB multiple.

i don't know, mang; if i'm explicitly supplying sectors for
alignment purposes, i'm checking units pretty carefully.
preferably, i'm never doing that -- the only reason i can see
would be if i want to leave some large (larger than the
desirable alignment) chunk of empty space between two partitions.

and again, in any kind of alignment context, that's when you
*want* to be using MiB. and in such a context, "M" by itself is
interpreted that way.

> I know of only one case of multi-GB alignment (some early versions of ipmctl
> wanted a multiple of 32GB because certain vendor BIOSes had problems with
> smaller blocks), but the required alignment there is 1GB for years.

where here i assume you mean 1GiB aka 2³⁰ bytes, not 1GB aka 10⁹
bytes, correct? you could enter that as 1G, or 1GiB, or 1024MiB,
or 1048576KiB, or 1073741824. Using 1GB or 1000MB or 100KB
or 10 would force undesirable behavior.

changes to the text/UI to gently nudge users to the correct
behavior will be cheerfully considered!

> And most importantly: thanks for this effort, it's greatly appreciated!

thank you for your kind words! i'd love to see this happen.

--nick

[0] https://nick-black.com/images/growlight-2021-09-26.png

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


signature.asc
Description: PGP signature


Re: partman, growlight, discoverable partitions, and fun

2021-09-26 Thread Nick Black
John Paul Adrian Glaubitz left as an exercise for the reader:
> So, you are not using libparted then?

i am not.

> Yes, it is important as we're supporting these architectures in Debian Ports
> and I invested quite some time to get Atari partition support added [1],
> for example.

I'd be delighted to support them -- as in, I am honestly eager
to add ATARI support; that sounds awesome -- I just need some
way to test the implementations, either via someone running it
on the environment, or getting access to such a machine.

> I think it makes little sense to not use libparted as it already supports
> all common and less common partition types and reimplementing everything
> that libparted makes little sense to me.

parted did not have ZFS support when I embarked on this project
(it appears to have it now). i would not be opposed to
leveraging libparted if it presents a definite advantage;
supporting more partition types, so long as it exposes an API i
can easily work with, would be such an advantage.

i do note that libparted2 is 621K in the archive, whereas
growlight itself is only 555K. it is of course possible that
all that weight is desirable functionality.

with that said, i would *still want to test on the target
environment*, to make sure i'm using libparted correctly there.
so that necessity remains.

would this allay your concerns?

--nick

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


signature.asc
Description: PGP signature


Re: partman, growlight, discoverable partitions, and fun

2021-09-27 Thread nick black
Marc Haber left as an exercise for the reader:
> But maybe an alternative? I find the partitioning step one of the most
> error-prone and hard-to-use parts of non-trivial Debian installations.

so overall, i've got to say the feedback i heard here was a lot
more positive than i was expecting, though there was a bit less
than i had hoped for. but perhaps something that can be touched
would see more interest?

given that no one seemed to reject the idea out of hand, i'm
going to go ahead and rebase my work from 2012 (or more likely
look at it once and redo it) in a Salsa fork of d-i, and make
some installation media available. forgive me for likely only
having x86 available at first. i'll try to have this done within
a week or so, and put it up on my server. people can then give
it a whirl.

it's hard to see how exactly i proceed from that point, save in
a reactive fashion (not complaining, just saying). but we'll see
what happens when an ISO is available!

note that there would still be some questions where i'd need
input from Project members (as noted in my Debconf [0]
presentation), particularly regarding translation (even if i can
lift significant portions from partman, i'd need it looked
over) and facilitating accessibility technology.

--nick

[0] https://nick-black.com/dankwiki/images/b/b9/Parting_ways_with_partman.pdf

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


signature.asc
Description: PGP signature


Re: partman, growlight, discoverable partitions, and fun

2021-09-28 Thread nick black
Wouter Verhelst left as an exercise for the reader:
> One thing that partman does is "support plug-ins", to allow for
> configuring block devices before being able to partition them, where
> needed. This can be useful for iSCSI, multipath, or (the one I care most
> about) NBD. I wrote a "partman-nbd" a few years back to do just that:
> https://salsa.debian.org/installer-team/partman-nbd

Thanks a lot for pointing this out, Wouter -- this is *exactly*
the kind of feedback I was hoping for! I allow loopback devices
to be set up, but not in any reboot-crossing manner, and I have
no NBD nor iSCSI functionality.

 https://github.com/dankamongmen/growlight/issues/150

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


signature.asc
Description: PGP signature


Re: partman, growlight, discoverable partitions, and fun

2021-09-28 Thread nick black
Wouter Verhelst left as an exercise for the reader:
> iSCSI works very differently and is way more complex, but I remember
> from when I last played with it (which is a while ago, so the details
> are hazy) that it's not possible to set up in a non-persistent manner
> (i.e., all iSCSI connections survive reboot unless explicitly deleted,
> although obviously partman-iscsi has to do some dark magic to ensure the
> configuration is migrated from the d-i environment to the live system).

i've actually worked pretty extensively with iSCSI--i presented
on it at LPC2015 [0] =]. as far as i understand, iSCSI
connections are initiated and managed by the iscsid userspace
daemon (aside from root-on-iSCSI, which uses iscsistart, or at
least did. UEFI/BIOS iSCSI can also server here).

> There's also ATA-over-Ethernet, Fibrechannel-over-ethernet, multipath,
> and a whole slew of other things, if you want to configure this from
> growlight.

as you note, most of this is not stuff i want to slap a UI on,
but i'd certainly want to hit full partman feature parity...in
time. if it's best early on, i feel no shame punting more
esoteric setups to partman; as i've said, i would expect partman
to remain present on the installation media for at least some
significant time.

> I could be wrong though, haven't looked at growlight in much detail, and
> in the end it's your call, not mine :-D

nope, pretty much totally correct.

--nick

[0]
https://nick-black.com/dankwiki/images/e/ea/Public_LPC2015_-_Dynamic_iSCSI_at_Scale-_Remote_paging_at_Google.pdf

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


signature.asc
Description: PGP signature


Re: partman, growlight, discoverable partitions, and fun

2021-09-28 Thread nick black
Steve McIntyre left as an exercise for the reader:
> 100% true - expect people are busy, rather than hostile! :-)

i must have come across as far more disappointed than i felt --
i meant "hoped" in the literal sense, of "did not expect, but
thought plausible and welcome" =]. no, this has been an A-, A
interaction in my book--i half-expected flat rejection.

so thanks, debian! i will return to my codehole and bring
back something more tangible. but i found this quite promising.

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


signature.asc
Description: PGP signature


Re: Automated copyright reviews using REUSE/SPDX as alternative to DEP-5

2022-01-26 Thread nick black
Russ Allbery left as an exercise for the reader:
> My intuition (I admit that I haven't done a survey) is that Files-Excluded
> is less frequently used for cases where upstream has not done license
> verification and is more frequently used for cases where upstream
> disagrees with Debian over what is and is not free software.  (IETF RFCs
> are a sadly common example.)

just as a personal example, i've got a fairly elaborate
Files-Excluded [0] for freely-distributed but DFSG-incompatible
media included with my upstream tarballs. doing so was easier
than trying to recreate e.g. jpegs as GIMP xcfs.

[0] https://salsa.debian.org/debian/notcurses/-/blob/master/debian/copyright#L9

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


signature.asc
Description: PGP signature


non-word "noone" in constitution

2022-03-04 Thread nick black
i was reading our Constitution, and §5.1.4 states:

  "Make any decision for whom noone else has responsibility."

"noone" is a non-word [0], and while i doubt it'll ever be the basis
of a court ruling or anything, "no one" was correctly used in
the language added to 6.3.6 by Constitution v1.8, and another
instance of "noone" was removed from §A.1.6. so unless it
requires a vote or something, it should probably be fixed?

i submitted an MR to doc-debian [1], but given that we're
currently shipping the old Constitution v1.7 to
/usr/share/doc/debian/constitution.txt.gz [2], that doesn't seem
quite authoritative.

who would i report this bug to? "project" pseudo-package, as
suggested in [3]?

--nick

[0] https://writingexplained.org/noone-or-no-one-difference
https://grammarist.com/spelling/no-one-noone/ etc
[1] https://salsa.debian.org/ddp-team/doc-debian/-/merge_requests/1
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%23839709
[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=210879

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


signature.asc
Description: PGP signature


Re: feedback for NEW packages: switch to using the BTS?

2022-04-30 Thread nick black
Paul Wise left as an exercise for the reader:
> Packages with incomplete or incorrect debian/copyright information
> currently would recieve a REJECT rather than acceptance. The proposal
> would not change that, just turn that REJECT into a bug report, which
> you could fix in a second upload to NEW and then the package would be
> reprocessed and get an ACCEPT or another bug.

currently, as far as i understand things, a REJECT can be issued
for the first REJECT-worthy problem. if resolving the resulting
bug report is the bar needing clearing to enter the archive,
that does seem to require FTPmasters to create a complete
statement of REJECT-worthy problems in each uploaded package,
which seems like more work than they must currently do.

if the resulting bug is *not* a complete statement of problems,
and that is understood, this isn't an issue. just a thought.

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


signature.asc
Description: PGP signature


Re: feedback for NEW packages: switch to using the BTS?

2022-04-30 Thread nick black
Paul Wise left as an exercise for the reader:
> > if resolving the resulting bug report is the bar needing clearing to
> > enter the archive, that does seem to require FTPmasters to create a
> > complete statement of REJECT-worthy problems in each uploaded
> > package, which seems like more work than they must currently do.
> 
> The bar for acceptance would be the same as it is now, the proposal
> just changes how the issues blocking acceptance are communicated.
> Now you get a REJECT mail, under the proposal you get a serious bug.

i understand. i suppose that what i'm saying is it will probably
be worthwhile to convey in Mentors etc. documentation that
"resolving the bugs filed thus far [regarding the package in
NEW] does not imply that no further bugs will be filed."

i'm just worried that people will get a bug filed that is not a
complete, exhaustive analysis, and think that it's the only
thing standing between them and archive glory. perhaps whatever
files the bug ought indicate this in the text of the bug itself.

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


signature.asc
Description: PGP signature


Re: feedback for NEW packages: switch to using the BTS?

2022-04-30 Thread nick black
Paul Wise left as an exercise for the reader:
> I think the same problem and suggestions also apply with the current
> system of prods and rejects, so please do add or propose adding it in
> the appropriate documentation and templates. I will of course seek to
> preserve these statements if I end up working on the BTS proposal.

absolutely, there's just enough opacity in a current REJECT (in
my fairly minimal experience) that i think it less susceptible
to such invalid inferences. but yes, this is something that
could go in the Mentors notes now.

(to be sure, at no time did i intend to impugn your suggestions
 in this thread, which seem a definite improvement from the
 user's perspective.)

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


signature.asc
Description: PGP signature


adduser 3.12x notes

2022-07-21 Thread nick black
Marc, your recent adduser notes have been really interesting
reads; i've learned more about adduser from the past two
releases than i think i ever knew.

it seems good work, too. =]

way to be.

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


signature.asc
Description: PGP signature


Re: Transition proposal: pkg-config to pkgconf

2022-08-31 Thread nick black
Andrej Shadura left as an exercise for the reader:
> It seems like the proposal went mostly unnoticed. Any comments, ideas, 
> anything?

fwiw, every time i've looked at a difference between the two,
pkgconf was superior in every way. i've worked with the primary
author, ariadne conill, on some Alpine stuff and some Notcurses
stuff, and she's as competent and sedulous as they come. i'd
love to see this transition, and appreciate you working on it.

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



Re: Intel CET Support?

2022-09-06 Thread nick black
Paul Wise left as an exercise for the reader:
> On Mon, 2022-09-05 at 22:44 +0200, Felix Potthast wrote:
> 
> > i just stumbled upon the fact that debian doesn't yet make use of the
> > Intel CET security feature, while many other distributions
> > (Ubuntu, Fedora, Suse, Arch Linux) do.
> 
> Allegedly Intel CET provides weak protection, although perhaps it
> improved since the 2016 analysis by grsecurity folks:
> https://grsecurity.net/effectiveness_of_intel_cet_against_code_reuse_attacks

ehh, CET seems like the kind of "make easy things hard" defense-in-depth
that's the cornerstone of protecting against the highest level
of attackers. ASLR and a dozen other things are in the same
boat; they make attacks more difficult to generalize and make
reliable.

also, the grsecurity folk in my experience tend to speak very
harshly regarding any other efforts in their space (and they
prefix this article with disclosure that CET can be considered
competing technology). see their comments on other software CFI
implementations [0] and kspp [1]. they explicitly sum up that
"CET is not advancing the state of the art", which indeed it
might not be, but that doesn't mean it's a useless piece of
engineering. it has a value that needs be weighed against its
cost like most technologies.

[0] https://grsecurity.net/rap_faq
[1] https://lwn.net/Articles/698891/


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


signature.asc
Description: PGP signature


Re: Intel CET Support?

2022-09-06 Thread nick black
nick black left as an exercise for the reader:
> that's the cornerstone of protecting against the highest level

s/the high/anyone but the high/

 =\

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


signature.asc
Description: PGP signature


Bug#1021750: general: the nodelalloc mount option should be used by default for ext4 in /etc/fstab

2022-10-13 Thread nick black
i'm pretty sure that the corruption issues leading to the
nodelalloc option were considered largely remedied by the
"auto_da_alloc" capability introduced (and enabled by default)
in 2.6.30? how would nodelalloc equal the performance of
delalloc? nodelalloc was all about reliability for programs that
weren't conforming to certain POSIX semantics, as i recall.



Re: RFH: Packaging Intel's userspace tools for Data Streaming Accelerator

2022-10-21 Thread nick black
Gunnar Wolf left as an exercise for the reader:
> So... Is anybody among debian-devel readers interested in helping
> Debian support this hardware feature? Extra points for people that
> _have_ the suitable hardware! (I don't)

my current professional plans include evaluating DSA and
integrating it into my product if it proves itself, and this
kind of thing is directly up my alley besides. i'm one of the
newest DDs, but i'd be very happy to work with Jair and Miguel.

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


signature.asc
Description: PGP signature


need we support unshadowed passwords from the installer

2023-01-13 Thread nick black
it's 2023 and imho time to stop supporting unshadowed passwords
from the installer.

 https://salsa.debian.org/installer-team/user-setup/-/merge_requests/5

1) nis (and possibly conserver?) seem the primary drivers of an
unshadowed passwd.=20

let me freely admit that, despite the advanced age of forty-two
(seventy-eight in UNIX years), that i know nothing about nis/yp
except that there was a big o'reilly book about it back when one
read the security book with the big safe on the front and the
scripting book with the big drill. i suspect it's basically a
halfway point between syncing /etc/passwd and /etc/hosts with
cron+rsh, and hiring someone on whom you can inflict ldap? so
please correct me wherever i'm woefully ignorant.

...but it appears that NIS can be made to work with shadowed
passwords (though without their benefits). this is from a
cursory reading of a FAQ last updated in 2003, so take it with a
grain of salt. the "linux network administrators [sic] guide"
seems to confirm this, and can also help you set up IPX or UUCP.

2) it seems that the unshadowing of passwords is only a
   "/sbin/shadowconfig off" away. somewhere down the long road, we
   appear to have lost shadowconfig.8, but this is what i gather
   from web searches.

   i'd almost suggest this might want to go into the "nis"
   package, avoiding "why do we even have that lever"
   situations, but i resolutely oppose feature creep for this MR.

3) if someone accidentally selects this during install, i can't
think of any means by which they'd find out during the course of
typical systems administration.

4) i don't have to answer this question in any other installer
i've used in the past decade, i'm pretty certain.

5) arch appears to support NIS without any mention of shadowing?
though admittedly that wiki page is "somewhat unfinished"[0]

6) fedora has recently discussed eliminating NIS support
entirely. it's a done deal in RHEL.

i'm absolutely not suggesting we stop supporting NIS or other
programs which rely on unshadowed passwords. it's a big ol'
tent, and we have more than enough room for you to carry forth
the torch of Solaris 2. i just don't think this belongs in the
installer anymore.

--rigorously, nick

[0] https://wiki.archlinux.org/title/NIS

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


signature.asc
Description: PGP signature


Re: need we support unshadowed passwords from the installer

2023-01-14 Thread nick black
Marc Haber left as an exercise for the reader:
> On Fri, 13 Jan 2023 21:11:40 -0500, nick black
>  wrote:
> >i'm absolutely not suggesting we stop supporting NIS or other
> >programs which rely on unshadowed passwords. it's a big ol'
> >tent, and we have more than enough room for you to carry forth
> >the torch of Solaris 2. i just don't think this belongs in the
> >installer anymore.
> 
> Amen. NIS-based systems usually have professional administrators who
> are well able to change the configuration.

hahah, yes i thought you might support the idea based off
adduser changelogs circa 2005 =].

thanks to you and peter for voicing your support. i will head
off to #debian-boot and try to drum up a merge.

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


signature.asc
Description: PGP signature


Re: need we support unshadowed passwords from the installer

2023-01-15 Thread nick black
Sam Hartman left as an exercise for the reader:
> Yes, absolutely.
> I am familiar with nis/PAM/shadow/LDAP, have deployed NIS (although not
> nisplus), and have been around long enough to understand the issues.
> 
> It is absolutely reasonable to expect people who need to do so to
> unshadow their own passwords.

thanks Steve McIntyre for the merge!

as an aside, as a fairly new DD, i've seen a lot of worry in
recent years about the difficulty of getting changes through
given the distributed ownership of packages, etc. i was frankly
worried about this being difficult to see through, despite it
being a small and agreed-upon change (there was certainly no way
i was going to NMU the installer).

it was merged this morning after authoring the MR through salsa
two evenings ago, quite painlessly. this is anecdotal and
perhaps not representative of Project dynamics as a whole, but i
for one feel more comfortable about proposing and executing
small changes like this now.

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


signature.asc
Description: PGP signature


Bug#950492: ITP: notcurses -- Character-mode graphics and TUI library

2020-02-02 Thread Nick Black
Package: wnpp
Severity: wishlist
Owner: Nick Black 

* Package name: notcurses
  Version : 1.1.4
  Upstream Author : Nick Black 
* URL : https://nick-black.com/dankwiki/index.php/notcurses
* License : Apache-2.0
  Programming Lang: C, C++, Python
  Description : Character-mode graphics and TUI library

 notcurses facilitates the creation of modern TUI programs,
 making full use of Unicode and 24-bit direct color. It presents
 an API similar to that of Curses, and rides atop libtinfo.

Work on notcurses began in November of 2019, and it has had Debian-compatible
infrastructure (debhelper compat level 12) from the beginning. As of February
2020, it is rapidly stabilizing, and being used in several tools. I've
rewritten my "growlight" disk management tool using notcurses instead of
ncurses, cutting out several thousand lines of UI code along the way. Nestopia
is about to merge notcurses support (coming out of maintenance mode to do so).
I'm working on a console SDR visualization tool that will make working with
remote SDRs much more pleasant, and expect to release it soon.

Sid/unstable debs are available (and have been available for weeks) in my repo
at https://www.dsscaw.com/apt (this repo is available in Wouter Verhelst's
extrepo tool). The Debian packaging that I currently have can be seen here:
https://github.com/dankamongmen/notcurses/tree/master/debian

Notcurses can be regarded as a successor to ncurses. It provides much of the
functionality of that package, with major improvements IMHO regarding Unicode,
multithreading, and color support. 24-bit RGB with two bits of transparency is
the fundamental color space, and input/output are entirely based off UTF8 and
Unicode's Extended Grapheme Clusters. I've written many thousand lines of
ncurses code in my life, and expect to write no more--notcurses will entirely
supplant it in my projects. ncurses is a venerable, robust library, with a
fantastic maintainer in Thomas E. Dickey, but it's fundamentally bound to
X/OSI. It's time to move past 90s-era TUI APIs.

As for maintaining the package, I've written 90%+ of the code in notcurses, and
intend to maintain it for the long haul. I'm actively committed to maintaining
the Debian/Ubuntu packaging, and indeed hope to use it as a springboard towards
Debian Developer status.

notcurses has been included in Arch's AUR since its 0.4.0 release in November
2019.



Re: RFC: "Recommended bloat", and how to possibly fix it

2024-11-07 Thread nick black
Colin Watson left as an exercise for the reader:
> (https://peps.python.org/pep-0508/#extras): effectively groups of
> additional dependencies to enable some kind of feature that you can opt
> into if you need that feature, rather than having to pick from an
> undifferentiated pile of Recommends, or do things like devscripts does

the "undifferentiated" feels like it's doing some lifting here.
arch's yay (and presumably other tools in the pacman family)
shows a short justification for each optdepends[0] entry (when
such information is provided). it would require not just control
file changes but also UI work, of course.

--nick

[0] https://man.archlinux.org/man/PKGBUILD.5

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


signature.asc
Description: PGP signature


Re: Musings about Usernames in adduser and Debian

2024-11-24 Thread nick black
Gioele Barabucci left as an exercise for the reader:
> On 23/11/24 09:32, Johannes Schauer Marin Rodrigues wrote:
> > But my 2 cents on the topic are: Lets please allow more than ascii in
> > usernames.
> 
> potentially insecure (homographs) and at
> high-risk of breaking existing applications (lack of standardized
> normalization form).

i'm not sure why this is being repeated.

https://unicode.org/reports/tr15/

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



Re: Bits from DPL

2024-12-02 Thread nick black
Jeremy Stanley left as an exercise for the reader:
> Would I bother to go through NM now if the process were more
> simplified/streamlined? Maybe, but probably not. As you noted,
> priorities matter and it's entirely possible to be involved in
> Debian without that (depending on what exactly you want to do of
> course). There's quite a lot that doesn't require upload permissions

i became a DD in 2022, and thought it overall a low-effort
process (it wasn't fast by any means, and getting
sponsors/endorsers was a kinda unpleasant bit of mendicancy, but
humility is endless). the actual application was entirely
asynchronous, and just a matter of reading some document and man
pages and distilling answers. i urge anyone reading this not to
let the ~8 hours required keep them from applying.

> in the archive, and also quite a lot of amazing people with upload
> permissions who are happy to help on the occasions it's needed.

the personal appeal of uploading privileges is the ability to
work without a dependency on others, but it sounds like that's
not a motivator for you.

i do think current statistics wouldn't seem to capture
contributors like you, despite your (perhaps indirect) impact
being DD-comparable. still, this can't scale freely without a
bottleneck at DDs.

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


signature.asc
Description: PGP signature


Re: Musings about Usernames in adduser and Debian

2024-12-01 Thread nick black
G. Branden Robinson left as an exercise for the reader:
> It sounds like you want something isomorphic, if not identical, to,
> Punycode.
> 
> https://en.wikipedia.org/wiki/Punycode

it's my understanding that Punycode's objective is to be "clean"
with regards to things that match against the hostname character
set, hence its pickup for IDN (where it's expected that DNS
will be traversing all kinds of network middleware). a similar
(obsolete) proposal was 7 bit-clean UTF-7.

i don't see this as a necessity for this effort, as we have
access to the entirety of the stack that'll be touching this
material. it's just a matter of having that stack match, store,
and display things properly.

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


signature.asc
Description: PGP signature


Re: Musings about Usernames in adduser and Debian

2024-12-01 Thread nick black
nick black left as an exercise for the reader:
> it's my understanding that Punycode's objective is to be "clean"
> with regards to things that match against the hostname character
> set, hence its pickup for IDN (where it's expected that DNS
> will be traversing all kinds of network middleware). a similar
> (obsolete) proposal was 7 bit-clean UTF-7.

it occurs to me that the properties of UTF-8 might not be in the
forefront of everyone's minds. there are several good references
to its properties and advantages [0] [1] [2]; i'll quote myself
[3]:

Unicode Technical Report #17 defines seven official Unicode
character encoding schemes: UTF-8, UTF-16, UTF-16BE, UTF-16LE,
UTF-32, UTF-32BE, and UTF-32LE. What a wealth of encodings! How
is one to choose? The -16BE and -16LE forms are simply UTF-16
with a known byte order; a UTF-16 stream can (optionally!) be
prefixed with a Byte-Order Mark, at which point the stream
reduces to -16LE or -16BE (in the absence of a BOM, the best
advice is to follow your heart). UTF-32 breaks down the same
way. This question of endianness arises from the fact that
UTF-16 and UTF-32 are coded in terms of 16- and 32-bit units.
UTF-8, being coded in terms of individual bytes, has no need to
define byte order.

“Well, that BOM sounds kinda annoying,” I hear you asking. “What
other advantages are offered by UTF-8?” Remember how ANSI
X3.4-1986 maps precisely to the first 128 characters of UCS?
UTF-8 (and only UTF-8, of the official encodings) encodes these
128 characters the same as US-ASCII! Boom! Every ASCII document
you have—including most source code, configuration files, system
files, etc.—is a perfectly valid UTF-8 document. Furthermore,
UTF-8 never encodes non-ASCII characters to the ASCII bytes. So
an arbitrary UTF-8 document may have plenty of high-bit bytes
that your ASCII-aware, POSIX-locale program doesn’t understand,
but it never sees a valid ASCII character where one wasn’t
intended. UTF-8 encodes ASCII’s 0–0x7f to 0–0x7f, and otherwise
never produces a byte in that range. This includes the
all-important null character 0—Boom! Every nul-terminated C
string is a valid UTF-8 string. Every UTF-8 string can be passed
through standard C APIs cleanly, and they’ll more or less work.
It’s furthermore self-synchronizing. If you pick up a UTF-8
stream in the middle, you know after reading a single byte
whether you’re in the middle of a multibyte character.

“Sweet! What’s the catch? Does it waste space?” RFC 3629
limits UTF-8’s range to the 17 ∗ 2^16-ary code space of UCS, in
which case the maximum length of a single UTF-8-encoded UCS code
point is four bytes [4]. It’s thus always as or more efficient
than UCS-32. When the ASCII characters are used, UTF-8 is more
efficient than either UTF-16 or UTF-32. Only for streams utterly
dominated by BMP codepoints requiring three or more bytes from
UTF-8 can UTF-16 encode more efficiently.

“Sweet! What’s the catch? Is it super slow?” UTF-32, it is true,
allows you to index into a string by character in O(1) (UTF-16
does not, unless you’re only dealing with BMP strings). UTF-32
also allows you to compute the bytes necessary for encoding in
O(1), given the number of Unicode codepoints, but that’s only
because it’s wasteful; if you’re willing to be similarly
wasteful, you can do the same calculation with UTF-8 (and then
trim any wastage at the end, if you wish). Any advantage UTF-32
might hold in lexing simplicity is likely a wash when UTF-8’s
usual space efficiency is taken into account, owing to more
effective use of cache and memory bandwidth. Nope, it’s not
slow. *Always interoperate in UTF-8 by default.*

UTF-16 is some truly stupid shit, fit only for jabronies. It
only ever passed muster because people thought UCS was going to
be a sixteen-bit character set. The moment a second Plane was
added, UTF-16 ought have been shown the door. There’s an
argument to be made for ripping it from the pages of books in
your local library. If you must work on a UTF-16 system, use
UTF-16 at the boundary, and then keep it around as UTF-32 or
UTF-8. Always interoperate—including writing files—in UTF-8 by
default.

There are a dozen-odd similarly-named encodings which are useful
for nothing but trivia. UCS-2 was UTF16, but for only the BMP.
UCS-4 is just UTF-32. UTF-7 is a seven-bit-clean UTF-8 [5]. UTF-1
is UTF-8’s older, misshapen sister, locked away from sight in
the attic. UTF-5 and UTF-6 were proposed encodings for IDN, but
Punycode was selected instead. WTF-8 extends UTF-8 to handle
invalid UTF-16 input. BOCU-1 and SCSU are compressing encodings
that don’t compress as well as gzipped UTF-8. UTF-9 and UTF-18
were jokes. Is UTF-EBCDIC a thing? Of course UTF-EBCDIC is a
thing.

The one place where you won’t interoperate with UTF-8 is for
domain name lookup, when converting IDNA into the LDH subset of
ASCII. If you’re interested, consult RFC 3492, and Godspeed.

--rigorously, nick

[0] https://research

Re: Musings about Usernames in adduser and Debian

2024-12-01 Thread nick black
Marc Haber left as an exercise for the reader:
> >  * any upstream tool could say "bad idea" and refuse patches,
> >requiring their long term management,
> 
> Depending of how important this tool is, we could get away without
> patching and probably not even documenting this failure.

This kind of attitude seems self-defeating. Despite being
*strongly* in favor of this effort, I would oppose it if were
strictly a Debian thing. We can inspire the move, but going it
alone seems a recipe for present and future pain (think SSHing
from/to Debian and a non-Debian machine).

> >  * the Linux framebuffer console is pretty limited in what
> >glyphs it has available, and the number of glyphs it can
> >support,
> 
> Probably, yes. But people working on the Linux framebuffer console are
> unlikely to actually use UTF-8 user names, so the only really bad

With all due respect, this seems totally unsupported by anything
other than vibes =].

> >  * broken localization (or failure to call setlocale()) could be
> >a bigger problem, especially for root/system accounts.
> 
> I don't think we should allow UTF-8 charactes in the string "root" or in
> system account names. And if a local admin decides to do so, Debian
> packages should still restrict themselves to using US-ASCII in their
> system accounts.

Why? This would require multiple code paths for what seems to me a
very questionable objective. You point out later in your
response that there already exist diverging codepaths, but isn't
unifying such things always a goal?

> Do you have a suggestion for a perl regexp that allows this? My current
> development directory has "qr/[\p{Graph}*\.\${}><%'@]+/".

I do not. This is not a regex problem in my mind and experience;
you need full access to complicated libraries. Any such effort
should go through Annex 15 canonicalization before being
inspected at all. At that point, you're well past regular
languages so far as I can tell. I do not see this goal as
possible with small surgeries on the adduser code base, but
rather something that requires work across the chain.

> > Names containing invalid UTF-8 sequences ought be rejected.
> Agreed. How do I check for this in perl?

I have no idea. It's not very simple. Here's code from my
Notcurses library that extracts a single EGC from a UTF8 string:

https://github.com/dankamongmen/notcurses/blob/a5c7d2262a53bd5c3428c9397de4864c79ff/src/lib/egcpool.h#L87

> > My printer is administered by 
> > i̸̒n̴͛e̵̎l̴͝u̷̾c̴̉t̵́å̵b̷͋l̷͐e̴̋m̸̆o̷̚d̴̐ä̸́l̶͝i̷̋t̷͗ẏ̷ȏ̵f̸̃t̶͘h̷͗e̴̿v̶͘i̷̛s̸̈́ì̵b̷̃l̶̎e̷͊.
> That really renders strangely here.

That was intended, to demonstrate the complexity of potential
strings we might have to deal with.

> > It cannot. "C" is not UTF-8. Assumption of UTF-8 requires a
> > properly set LANG and programs calling setlocale(). This, as
> > alluded to above, has the potential for a big mess.
> Our default is C.UTF-8 and has been like that for a while.

Yes, but that can be changed.

With all due respect, I admire your gung ho candoit spirit, but
adduser alone is not IMHO the place. This is a major change
requiring support from libraries, applications, and UI to do
right, and thus wide buyin. I love the idea, but it's not going
to happen with a few Perl regexes. Please don't read this as
commentary on you or your code.

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


signature.asc
Description: PGP signature


Re: Musings about Usernames in adduser and Debian

2024-12-01 Thread nick black
Gioele Barabucci left as an exercise for the reader:
> You may have misunderstood that phrase. I was not referring to the fact that
> there are no standardized normalization forms for Unicode (I explicitly
> mention Annex 15 in [1]), but to the fact that there is no standard that
> specifies which of the possible normalization forms should be used for
> account names (and other fields in passwd).
> POSIX explicitly limits itself of a subset of ASCII, so it is not going to
> mandate any normalization form. Are there other standards (or initiatives)
> in this area that you know of?

I'm glad we're both on page for Annex 15, and indeed, POSIX does
seem to explicitly exclude any work in this area. Assuming we're
willing to go beyond POSIX (and again, this seems something
where we'd want to loop in other distributions, and probably
kernel developers), I'm honestly not sure which of the Annex 15
canonicalizations we'd want to use -- I'd like to hear from
experts (or at least people with extensive experience outside of
US-ASCII) as to which method is best. I have no dog in that
hunt, save that everyone agrees on a method.

It's for this reason that I think any work in this area needs be
encapsulated in a common library.

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



getting ziggy with it

2025-01-07 Thread nick black
previous efforts have been made to package the zig programming language [0].
the most recent release of the zig programming language was 0.13.0 [1]
on 2024-06-07. bug #1012286 declares an ITP for zig 0.9.1 [2], but the work
there seems to have trailed off in the 0.10 era. jonathan carter started
working on it independently a few weeks back, but the work i've
done this weekend goes beyond his afaik [5]. i am interested in getting
zig in debian both on its own account, and as part of packaging ghostty [4].

i am not an expert regarding zig, but i believe the following to be true:

later that year, zig changed the way it bootstraps [3]. there was already a
"zig-bootstrap" repository and "zig" repository, both of which are released
together. the relevant elements: "zig-bootstrap" now ships with a binary WASM
file (zig1.wasm), which is converted to a c file (zig1.c) using a tool built
using the local c compiler (wasm2c). this c file is compiled using the system
compiler to produce zig.

this wasm file is, again, distributed with the zig-bootstrap and zig sources.
it is a binary and knocks us out of main. this file can be recreated, using
sources from within the zig repository, with a working zig. but even the
"zig-bootstrap" source cannot move forward without either this file or
a working zig with which to create it ("zig-bootstrap" is more about
vendoring LLVM).

the last release without this wasm component is 0.10.1, which i've been
targeting as "zig-10-bootstrap". it requires neither the wasm binary nor
a working zig. unfortunately, it does require llvm 15--not 14, not 17,
but 15. supporting a different llvm would require changing quite a bit
of tightly-coupled C++ that is no longer being maintained upstream.
llvm-15 is not in sid, btw, though llvm-14 is. so we would need bring
llvm-15 back into sid. attempting to build llvm-15 1:15.0.7-15 from source
on sid blew up; i didn't look deeply into it yet (i can confirm that
"zig-10-bootstrap" using its vendored LLVM 15 builds on sid, fwiw).

note the upstream's statement:

"Now, there is this WebAssembly binary, which is not source code, but is in
fact a build artifact. Some people, rightly, take these things very seriously -
see for example the Debian Free Software Guidelines. I openly acknowledge that
this cost is being paid, however, I strongly believe that it is worth it in the
end. I suspect that combined with an official language specification and a
growing popularity of Zig, we will see a third-party project start an alternate
Zig implementation in C, similar to how mrustc exists for Rust (despite not yet
having a spec). This would fill the necessary role to solve O(1) source
bootstrapping again."

perhaps.

so the choices as i see them:

- wait on this zig ex machina foretold by legend, perhaps until the sun
  expands, consuming earth
- put zig in non-free. anything building with it is stuck in contrib.
  pretty unappealing.
- maintain the ~20K lines of zigcpp myself. this will need to be
  kept up with the historically rapidly evolving LLVM API.
  similarly unappealing. maybe more.
- reintroduce llvm-15 to sid, get it working, introduce zig-10-bootstrap
  to sid, make it a build-dep of zig, devendor zig, build with system llvm.
  the devendoring has already been done. not terrible, but i'd like to
  hear llvm team's thoughts and anyone else's thoughts. so far as i can
  tell, this would require llvm-15 and zig-10-bootstrap to be carried
  indefinitely into the future.

but perhaps someone else can think of something better?

[0] https://ziglang.org/
[1] https://ziglang.org/download/
[2] https://lists.debian.org/debian-mentors/2022/06/msg00023.html
[3] https://ziglang.org/news/goodbye-cpp/
[4] https://ghostty.org/
[5] https://salsa.debian.org/nickblack/zig-bootstrap,
https://salsa.debian.org/nickblack/zig-10-bootstrap,
https://salsa.debian.org/nickblack/zig

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


signature.asc
Description: PGP signature


Re: getting ziggy with it

2025-01-07 Thread nick black
nick black left as an exercise for the reader:
> this wasm file is, again, distributed with the zig-bootstrap and zig sources.
> it is a binary and knocks us out of main. this file can be recreated, using
> sources from within the zig repository, with a working zig. but even the
> "zig-bootstrap" source cannot move forward without either this file or
> a working zig with which to create it ("zig-bootstrap" is more about
> vendoring LLVM).

i looked at a few other distros:

- arch just builds it and is done with it
- guix, from what i can tell, is picking up a previous zig build of
their own and using that to bootstrap. i am 0% certain of this
interpretation [0].
- fedora looks promising; they certainly remove zig1.wasm before
  building; i will examine this further.

[0] https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/zig.scm
[1] https://src.fedoraproject.org/rpms/zig.git

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


signature.asc
Description: PGP signature


Re: A 2025 NewYear present: make dpkg --force-unsafe-io the default?

2024-12-26 Thread nick black
Julien Plissonneau Duquène left as an exercise for the reader:
> - io_uring that allows asynchronous file operations; implementation would
> require important changes in dpkg; potential performance gains in dpkg's use
> case are not yet evaluated AFAIK but it looks like the right solution for
> that use case.

i've got a lot of experience with io_uring [0] [1], and have been
closely tracking it, and would be interested in helping out here if it's
thought that such an experiment would be useful and welcomed. be
aware that taking full advantage of io_uring, especially in a
program with concurrent computation, can require some pretty
substantial restructuring. if the issue could be solved with
e.g. parallel fsync operations, that might be a much quicker way
to pick up much of the potential performance advantages.

it seems outside dpkg's province to manipulate queue depth, but
that would be an important parameter for using this most
effectively.

chained operations will likely be useful here.

--nick

[0] https://nick-black.com/dankwiki/index.php/Io_uring
[1] https://nick-black.com/dankwiki/index.php/Io_uring_and_xdp_enter_2024

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



Re: Musings about Usernames in adduser and Debian

2024-11-23 Thread nick black
Johannes Schauer Marin Rodrigues left as an exercise for the reader:
> Quoting nick black (2024-11-23 08:48:10)
> > You now have glyphs which occupy more than one column. Are your
> > columnar/tabular programs prepared for that? ﷽𒁭𒐫i
> 
> xfce-terminal renders this like this: https://mister-muffin.de/p/4o2v.png

more correctly, it renders it like that when using your font,
with its current font rendering engine. very little can be
assumed here. thankfully, presentation shouldn't be that big of
a deal outside of tabular UIs.

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


signature.asc
Description: PGP signature


Re: Musings about Usernames in adduser and Debian

2024-11-22 Thread nick black
Marc Haber left as an exercise for the reader:
> (1)
> Should Debian allow UTF-8 user names in the first place or should we
> restrict names for regular users to some us-ascii near set as well? (I
> think yes, we should)

I feel strongly yes, despite POSIX admonitions (quoted elsewhere
in this thread) and sure breakage any number of places. I think
a test plan would be very desirable (off the top of my head,
we'd want to check login, the DMs, PAM, OpenSSH, passwd, w,
framebuffer console input, etc. It would probably also be a good
idea to loop in other distributions.

I recommend Chapter 7 of my free book, "Hacking the Planet with
Notcurses: A Guide to TUIs and Character Semigraphics" for the
full story (as I understand it) regarding Unicode presentation:
https://nick-black.com/htp-notcurses.pdf (starts on page 41).

Some serious concerns:

 * any upstream tool could say "bad idea" and refuse patches,
   requiring their long term management,
 * the Linux framebuffer console is pretty limited in what
   glyphs it has available, and the number of glyphs it can
   support,
 * you want installer support if you intend to do this right,
 * ubiquitous input for UTF-8 is a pretty complicated story, and
 * broken localization (or failure to call setlocale()) could be
   a bigger problem, especially for root/system accounts.

Other concerns:

You'll likely now be linking libunistring into some
binaries where it wasn't previously used.

Regarding the subset of Unicode characters you'd want to allow,
this would be best decided using the General Category trait.
Each codepoint is assigned one of a finite set of General
Categories. We would probably want to allow Letters, Marks, and
Numbers, and perhaps a whitelist from Punctuation and Symbols
(Punctuation, connector and Punctuation, dash are probably all
we'd want) extended from currently supported ispunct(3)
characters. This data is available from libunistring (and
probably other places). This eliminates a great swatch of known
security issues.

Names containing invalid UTF-8 sequences ought be rejected.

Characters 0-127 would presumably be allowed iff they are now;
UTF-8 preserves US-ASCII.

We ought support combining characters up through the Extended
Grapheme Cluster (a single user-perceived character, roughly a
glyph, made up of one or more encoded characters). Generally a
single backspace ought map to an entire EGC.

Regarding canonicalization/normalization, this is a complex
question without a necessarily correct technical answer. I think
you'd want to follow the Principle of Least Astonishment; as to what
would astonish the least, I'd like to hear wider input. But
Unicode definitely defines multiple normal forms and equivalency
classes.

You now have glyphs which occupy more than one column. Are your
columnar/tabular programs prepared for that? ﷽𒁭𒐫

> (2)
> If the answer to (1) is "allow UTF-8", should we also do that for system
> users? (I think no, we should not)

I think you should, simply because otherwise you have two paths
in more places.

> (2a)
> Which UTF-8 subset / code point classes should we allow and which should
> we reject? (I don't have an opinion about that)

Answered above.

> (3)
> I think that 32 characters/bytes (it's the same if we don't allow UTF-8)
> is a good limitation for a system user name. But, should we increase
> that for regular user names? (I think yes)

I hesitate to comment here because who really cares, but does 32
save us something over 128? 128 seems the default "enough for
everybody" these days, looking at IPv6 and ZFS.

My printer is administered by 
i̸̒n̴͛e̵̎l̴͝u̷̾c̴̉t̵́å̵b̷͋l̷͐e̴̋m̸̆o̷̚d̴̐ä̸́l̶͝i̷̋t̷͗ẏ̷ȏ̵f̸̃t̶͘h̷͗e̴̿v̶͘i̷̛s̸̈́ì̵b̷̃l̶̎e̷͊.

> (5)
> Is it right to say "the user name in /etc/passwd is UTF-8 encoded" or
> should I better say "the user name in /etc/passwd can be UTF-8 encoded"?

"It is UTF-8 encoded."

> (6)
> Does it still make sense to give non-UTF-8-locales special handling
> (which one?), or can adduser safely assume that any non-ascii locale is
> UTF-8? Or must I check for locale and reject UTF-8 user names on
> non-UTF-8 locales? (I hope that we can safely assume UTF-8)

It cannot. "C" is not UTF-8. Assumption of UTF-8 requires a
properly set LANG and programs calling setlocale(). This, as
alluded to above, has the potential for a big mess.

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


signature.asc
Description: PGP signature


Re: getting ziggy with it

2025-01-09 Thread nick black
nick black left as an exercise for the reader:
> > The bootstrap is circular and has to be kicked off with a binary blob that
> > can't be recreated until one has finished the bootstrap, which is
> > certainly not ideal, but is also not that atypical for compiler
> > bootstrapping problems. I don't see how this is a violation of the DFSG or
> > of the requirement that main be self-contained. It's obnoxious from a
> > process standpoint (like a lot of compiler bootstrapping), and we may not
> > want things to work this way, but I don't think that makes it non-free?
> 
> what you say here makes perfect sense; i'll look at what gcc and
> friends are doing, thanks!

i had thought that there was a Policy directive prohibiting
generated files in source packages, but rereading 4.7.0.2, i
don't see such a thing. we do see in debmake-doc [0]:

"Extraneous auto-generated contents in the upstream source.
 Debian package should rebuild them under the latest system."

so yeah, this seems pretty reasonable, and i'm surprised i
didn't think of it. i do think that it would be best to rebuild
the binary wasm file after having bootstrapped up zig, though
that wouldn't be strictly necessary to bootstrap. that way we're
shipping something we built, and verify the toolchain can build
it.

thanks as always, russ!

[0] https://www.debian.org/doc/manuals/debmake-doc/ch07.en.html

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


signature.asc
Description: PGP signature


Re: getting ziggy with it

2025-01-09 Thread nick black
Russ Allbery left as an exercise for the reader:
> I think I'm missing something. Why does the use of this file knock the
> package out of main? We are distributing the source code for this file,
> and it is presumably under a free software license.

but we are not distributing it in a way such that it can be
built, as the compiler is available.

> The bootstrap is circular and has to be kicked off with a binary blob that
> can't be recreated until one has finished the bootstrap, which is
> certainly not ideal, but is also not that atypical for compiler
> bootstrapping problems. I don't see how this is a violation of the DFSG or
> of the requirement that main be self-contained. It's obnoxious from a
> process standpoint (like a lot of compiler bootstrapping), and we may not
> want things to work this way, but I don't think that makes it non-free?

what you say here makes perfect sense; i'll look at what gcc and
friends are doing, thanks!

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



minisign support in uscan

2025-01-11 Thread nick black
i'm beginning to see use of minisign[0] as an alternative to GPG
for signing releases[2]. i'm completely ambivalent with regards to
the merits of minisign, but would like to be able to verify them
with uscan.

looking at the uscan man page and code[1], i don't see any way
to specify an alternative to gpg, though uscan apparently looks
for gpgv, sopv, rsop and friends, and there's already a
tool-specific case in verify() (sopv and gpgv appear to be
cli-incompatible). so adding code to invoke minisign looks
pretty trivial. the problem would be: how do i tell uscan to use
minisign, in the likely presence of gpgv? minisign probably
cannot verify everything gpg can, so we want to continue using
gpg by default.

i could probably convert the minisig signature to a gpg one (not
certain of that), but we'd need some way to tell uscan to do
that, at which point we probably ought just use minisig.

selecting a different verification backend seems orthogonal to
the pgpmode= options of uscan, so it doesn't belong in that set.

adding support would likely mean adding minisign as at least a
Recommends for devscripts, and possibly a Depends. minisign is
pretty small at 16.7 kB downloaded and 49.2 kB installed, but
it does depend on libsodium23, which is depended on by a fair
number of things (including vim for some reason). libsodium23 adds
165/438 kB for a total of 181.7 kB down and 487.2 installed. it
is furthermore crypto-related and thus sensitive; i thought it
prudent to ask the list.

so, unless i'm missing something (totally possible), i'd like to:

 1) add a `sigtype` option to uscan, defaulting to 'pgp', with
alternative 'minisign'. other values are errors with exit.
 2) explicit provision of `sigtype` in conjunction with either
explicit or implicit `pgpmode=none` (i.e. due to mode=svn)
will be considered an error and result in exit. change
`pgpsigurimangle` to work this way as well (it is currently
allowed in conjunction with pgpmode=none, which i dislike).
 3) augment the binary-finding code in uscan to look exclusively
for `minisign` when `sigtype=minisign` (and not look for it
otherwise). failure to find it is error + exit.
 4) augment the verification code in uscan to use `minisign`
iff `pgpmode=minisign` and it was discovered in step 3.
 5) add `minisign` as a Depends for `devscripts`.

i don't think this justifies any kind of generalized
verification system in uscan (and am not particularly interested
in writing one), nor do i think it's worthwhile to alias or
rename e.g. `pgpsigurlmangle` or `pgpmode`.

i've checked, and a properly ASCII-armored minisign public key
will satisfy uscan up through the verification attempt.

are there objections? am i missing something? thanks! i think i
could have this done todayish.

--rigorously, nick

[0] https://jedisct1.github.io/minisign/
[1] lib/Devscripts/Uscan/Keyring.pm (devscripts-2.24.10)
[2] https://ziglang.org/download/

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


signature.asc
Description: PGP signature


Re: minisign support in uscan

2025-01-11 Thread nick black
nick black left as an exercise for the reader:
> i'm beginning to see use of minisign[0] as an alternative to GPG
> for signing releases[2]. i'm completely ambivalent with regards to
> the merits of minisign, but would like to be able to verify them
> with uscan.

so this is how watch might look for minisign packages[0]:


version=4
# example URIs:
# https://ziglang.org/download/0.13.0/zig-0.13.0.tar.xz
# https://ziglang.org/download/0.13.0/zig-0.13.0.tar.xz.minisig
opts="sigtype=minisign, \
  pgpsigurlmangle=s/$/.minisig/, \
  dversionmangle=s/\+dfsg(\.?\d+)?$//, \
  repacksuffix=+dfsg" \
  https://ziglang.org/download/ .*/zig-([0-9\.]*)\.tar\.xz \
  debian uupdate


no one needs change their packages except people who have
pgpmode=none despite the presence of pgpsigurlmangle (which will
become an error if i execute my plan as proposed).

[0] https://salsa.debian.org/nickblack/zig/-/blob/main/debian/watch

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


signature.asc
Description: PGP signature


Re: minisign support in uscan

2025-01-13 Thread nick black
Simon Josefsson left as an exercise for the reader:
> Sorry I confused it with signify:

minisign is derived from (openbsd's) signify, so easily done!

> See https://lists.debian.org/debian-devel/2024/10/msg00031.html

thanks!

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


signature.asc
Description: PGP signature


Re: wiki.d.o on a git-backed engine

2025-01-13 Thread nick black
Ahmad Khalifa left as an exercise for the reader:
> Wikis have their own version control and they're meant for a much wider
> audience. I think general documentation definitely belongs on a wiki, not
> git. Edit, fix typo, done in 30 seconds :)

there are of course wiki-git bridges, at least for MediaWiki:

 https://www.mediawiki.org/wiki/Git-remote-mediawiki
 https://github.com/Eccenux/wiki-to-git
 https://github.com/Git-Mediawiki/Git-Mediawiki

there's also the (unmaintained) FUSE implementation (not
particularly relevant here, but illustrative of the ecosystem's
breadth):

 https://wikipediafs.sourceforge.net/

fwiw, i've maintained several public-facing MediaWiki
installations, my largest (dankwiki[0]) having run on the same
install base since 2008. it's been largely a pleasure; i doubt i
spend more than five hours annually on its administration,
almost entirely for updates or adding new plugins. upstream has
been friendly and helpful the two times i've engaged with them
on IRC. there's a plugin for just about anything one might want
to do, from transcluding Bugzilla queries to inline Youtube
video to integrating with donation services.

in addition, anyone with Wikipedia editing experience can
immediately apply it to a MediaWiki.

the only unpleasant aspects have been PHP (very rare, but
sometimes i need go change properties of my PHP installation)
and esoteric plugins falling out of sync with the main distribution.
it also requires a mysql backend, and default search
capabilities are of the garbage variety (though this has
improved in recent years, to the point where i no longer
consider SphinxSearch a mandatory coinstall, and indeed no
longer use it myself).

development is healthy and ongoing, and comfortably backed by
the Wikimedia Foundation.

but i have no familiarity with Debian requirements, especially
surrounding authentication.

--nick

[0] https://nick-black.com

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


signature.asc
Description: PGP signature


Re: minisign support in uscan

2025-01-13 Thread nick black
Simon Josefsson left as an exercise for the reader:
> nick black  writes:
> That would be great -- upstreams are using other mechanisms to sign
> their releases today, like Sigsum, Sigstore, gitsign S/MIME etc, and I
> don't think there is any reason why 'uscan' shouldn't support all of
> them.

i've created #1092818 for this, and am working on it in
https://salsa.debian.org/nickblack/devscripts/-/tree/nickblack/uscan-minisign

> This reminds me about the 'apt-get install minisign' package naming
> concern that we tried to flesh out a migration policy for earlier.  I
> think I ultimately got lost trying to work out the migration flow for
> how to achieve that...

i'm not familiar with this. do you have a reference?

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


signature.asc
Description: PGP signature


Bug#973916: ITP: rust-libc-print -- Support for println and eprintln in a no_std context

2020-11-07 Thread Nick Black (Public gmail account)
Package: wnpp
Severity: wishlist
Owner: "Nick Black" 
X-Debbugs-Cc: debian-devel@lists.debian.org, dankamong...@gmail.com

* Package name: rust-libc-print
  Version : 0.1.14
  Upstream Author : Matt Mastracci 
* URL : https://github.com/mmastrac/rust-libc-print
* License : Apache-2.0 or MIT
  Programming Lang: Rust
  Description : Support for println and eprintln in a no_std context

An implementation of println! and eprintln! on the libc
crate without requiring the use of an allocator, and thus
suitable for a no_std context.

This small package is a dependency for rust-notcurses (see #972542).

This will be maintained by myself under the auspices of the Rust Packaging
Team.



Bug#1002724: ITP: openfec -- Forward Error Correction codes

2021-12-28 Thread Nick Black (Public gmail account)
Package: wnpp
Severity: wishlist
Owner: "Nick Black (Public gmail account)" 
X-Debbugs-Cc: debian-devel@lists.debian.org, dankamong...@gmail.com

  Package name: openfec
  Version : 1.4.2.4
  Upstream Author : Victor Gaydov  et al
  URL : http://www.example.org/
  License : CeCILL-C
  Programming Lang: C
  Description : Forward Error Correction codes

Application-Level Forward Error Correction codes add
redundancy in order to be able to recover from erasures.

this library is required by the Roc Project, whose PipeWire
modules are currently disabled. With the addition of this
dependency, we will be able to build roc-toolkit, and thus
enable the PipeWire Roc sink and source. indeed, this active
fork of the original OpenFEC is maintained by Roc.

It uses a CeCILL-C license; see [0] for discussion on debian-legal.
In addition, small parts come under Radford Neal's LDPC simulator
license and Luigi Rizzo's Reed-Solomon license ([1]); I have
reviewed both, and they seem trivially compatible with the DFSG.

As a lowly DM, I'll be uploading this through a Sponsor, Dylan Aïssi
from the Utopia team.

[0] https://lists.debian.org/debian-legal/2017/03/msg00019.html
[1] http://openfec.org/patents.html


Bug#1027976: ITP: libcpucycles -- Microlibrary for counting CPU cycles

2023-01-05 Thread Nick Black (Public gmail account)
Package: wnpp
Severity: wishlist
Owner: nick black  
X-Debbugs-Cc: debian-devel@lists.debian.org, dankamong...@gmail.com

* Package name: libcpucycles
  Version : 20230105
  Upstream Contact: Daniel J. Bernstein 
* URL : https://cpucycles.cr.yp.to/download.html
* License : Public domain
  Programming Lang: C
  Description : Microlibrary for counting CPU cycles

libcpucycles understands machine-level cycle counters for amd64 (both PMC and
TSC), arm32, arm64 (both PMC and VCT), mips64, ppc32, ppc64, riscv32, riscv64,
sparc64, and x86. libcpucycles also understands four OS-level mechanisms, which
give varying levels of accuracy: mach_absolute_time, perf_event,
CLOCK_MONOTONIC, and, as a fallback, microsecond-resolution gettimeofday.

When the program first calls cpucycles(), libcpucycles automatically benchmarks
the available mechanisms and selects the mechanism that does the best job.
Subsequent cpucycles() calls are thread-safe and very fast. An accompanying
cpucycles-info program prints a summary of cycle-counter accuracy.



Bug#1092895: ITP: zig -- Imperative programming language easily mixed with C

2025-01-12 Thread Nick Black (Public gmail account)
Package: wnpp
Severity: wishlist
Owner: nick black 
X-Debbugs-Cc: debian-devel@lists.debian.org, dankamong...@gmail.com

* Package name: zig
  Version : 0.13.0
  Upstream Contact: Andrew Kelley 
* URL : https://ziglang.org/
* License : MIT
  Programming Lang: C++
  Description : Imperative programming language easily mixed with C

 Zig is a general-purpose programming language and toolchain
 for maintaining robust, optimal and reusable software. It aims
 to be a better C, and interoperates very fluidly with C code.

Zig is a language rapidly growing in popularity, battling it out with Rust (in
a
sense) for developer mindshare. It can easily subsume C repositories and
supports incremental conversion.

I'm using ghostty, written in Zig, and would like to package that for Debian as
well.

I would think a team the way to go. zigteam.

Previous work attempted to package zig (#1012286, archived), but died out in
the 0.10.x era. I'll be starting with 0.13.0.



Bug#1099105: ITP: icann-rdap -- ICANN terminal RDAP client and server

2025-02-28 Thread Nick Black (Public gmail account)
Package: wnpp
Severity: wishlist
Owner: Nick Black 
X-Debbugs-Cc: debian-devel@lists.debian.org, dankamong...@gmail.com

* Package name: icann-rdap
  Version : 0.0.21
  Upstream Contact: Andrew Newton 
* URL : https://github.com/icann/icann-rdap/wiki
* License : MIT
  Programming Lang: Rust
  Description : ICANN RDAP server and terminal client

ICANN's implementation of the Registry Data Access Protocol (RDAP).
Provides a minimal server and a command line client capable of
generating fullscreen or JSON output, or emulating WHOIS style.