Re: packages.debian.org hasn't been updated for non-free-firmware

2023-02-20 Thread Thomas Goirand

On 2/19/23 17:04, Cyril Brulebois wrote:

Cyril Brulebois  (2023-02-19):

I tried to hotpatch it, but failed to so far.


Second attempt seems better. Might take an extra dinstall (+ indexing in
the following hours) to have all the things in place though. If people
still see problems tomorrow, please follow up with details.


Cheers,


Hi Cyril,

Thanks a lot for this! :)

Thomas



Bug#1031689: ITP: obs-scene-tree-view -- plugin for OBS Studio that adds a scene tree folder dock

2023-02-20 Thread Joao Eriberto Mota Filho
Package: wnpp
Severity: wishlist
Owner: Joao Eriberto Mota Filho 
X-Debbugs-Cc: debian-devel@lists.debian.org, DigitOtter 


* Package name: obs-scene-tree-view
  Version : 0.1.5
  Upstream Contact: DigitOtter 
* URL : 
https://obsproject.com/forum/resources/scene-tree-folder-plugin-for-obs-studio.1500
* License : GPL-2
  Programming Lang: C++
  Description : plugin for OBS Studio that adds a scene tree folder dock

 This plugin allows OBS to group and organize scenes into a folder structure.
 It is possible to switch the standard scene dock provided by OBS to this
 special plugin.

 It is possible to create several folders to group scenes on them.



Re: rust-*/librust-* arch:any vs. arch:all and cross-compilation support

2023-02-20 Thread Helmut Grohne
Hi Fabian,

On Wed, Feb 15, 2023 at 08:14:17PM +0100, Fabian Grünbichler wrote:
> > // This is the best but not ideal option for us.
> > //
> > // Currently Debian M-A spec has a deficiency where a package X 
> > that
> > // build-depends on a (M-A:foreign+arch:all) package that itself
> > // depends on an arch:any package Z, will pick up the 
> > BUILD_ARCH of
> > // package Z instead of the HOST_ARCH. This is because we 
> > currently
> > // have no way of telling dpkg to use HOST_ARCH when checking 
> > that the
> > // dependencies of Y are satisfied, which is done at 
> > install-time
> > // without any knowledge that we're about to do a 
> > cross-compile. It
> > // is also problematic to tell dpkg to "accept any arch" 
> > because of
> > // the presence of non-M-A:same packages in the archive, that 
> > are not
> > // co-installable - different arches of Z might be 
> > depended-upon by
> > // two conflicting chains. (dpkg has so far chosen not to add an
> > // exception for the case where package Z is M-A:same 
> > co-installable).
> > //
> > // The recommended work-around for now from the dpkg developers 
> > is to
> > // make our packages arch:any M-A:same even though this results 
> > in
> > // duplicate packages in the Debian archive. For very large 
> > crates we
> > // will eventually want to make debcargo generate -data 
> > packages that
> > // are arch:all and have the arch:any -dev packages depend on 
> > it.
> > 
> > https://salsa.debian.org/rust-team/debcargo/-/blob/master/src/debian/control.rs#L342

I guess that I was the one giving the advice that was recorded here
although I agree with Guillem that it is not recorded in a very
consumable way.

> > The chain is
> > 
> > rust-lscolors (arch:any) --BD--> librust-tempfile-dev (arch:any)
> > librust-tempfile-dev (arch:any) --D--> 
> > librust-remove-dir-all-0.7+default-dev (arch:any) --D--> 
> > librust-log-0.4+default-dev (arch:any) --D--> 
> > librust-value-bag-1.0.0+serde-dev (arch:any) --D--> 
> > librust-serde-fmt-1+default-dev (arch:all) --D--> librust-serde-dev 
> > (arch:any, but wrongly resolved!)
> > 
> > with librust-serde-fmt-dev being switched to arch:all, it will resolve to 
> > :amd64 instead of :i386 and in turn pull in its own dependencies 
> > librust-serde-1+std-dev & librust-serde-1-dev (both provided by 
> > librust-serde-dev) from amd64 (in addition to librust-serde-dev:i386, which 
> > is also part of the arch:any (build-)dependency tree of rust-lscolors 
> > itself, without the "hop" over librust-serde-fmt-dev).

The analysis is well done. Thank you. This is a real example of why we
do this annoying arch:any+m-a:same dance.

> > TL;DR: Is the switch to arch:all one that should be reverted in the face of 
> > it apparently breaking cross builds? Or is there another alternative 
> > (nowadays) that makes the "workaround" employed by debcargo no longer 
> > needed?

Yes, the switch to arch:all needs to be reverted at least partially.

No, there is no better way to achieve this. We extensively discussed
alternatives in Vaumarcus and reached the conclusion that no possible
interface was acceptable to dpkg. In essence, dpkg could automatically
track the architectures of packages (which would incur a recursive
dependency resolver onto dpkg) or architecture tracking could be a
manual thing, which would be far too annoying to end users. Therefore,
there is no sane alternative to the workaround.

> > Depending on feedback, the rust team would either ask Jonas to switch back 
> > his packages to arch:any, M-A:same (probably after bookworm, to prevent 
> > further fallout/need for RMs/.. during the freeze), or will evaluate 
> > whether switching to arch:all is an option for debcargo-managed packages as 
> > well, and which changes on the team tooling side are needed to avoid losing 
> > test coverage or increasing friction.

Technically, not all packages need to become arch:any+m-a:same. As you
correctly observed, the problem arises from non-rust dependencies in the
dependency tree. For instance, librust-typenum-dev has no dependencies.
As such, it could be changed to arch:all+m-a:foreign without incurring
problems to cross compilation. Likewise, librust-bitmaps-dev only
depends on librust-typenum-1+default-dev, which is provided by
librust-typenum-dev. Consequently, it could be converted to
arch:all+m-a:foreign as well. However, as soon as you reach C bindings,
such as librust-typenum-dev, the workaround to use arch:any+m-a:same is
needed. Then any library that transitively depends on any C binding also
needs the workaround. The problem here is that lower layers can
introduce bindings at a later time and thus break cross compilation
involving a higher level library. Whether a library can sa

Re: rust-*/librust-* arch:any vs. arch:all and cross-compilation support

2023-02-20 Thread Jonas Smedegaard
Quoting Helmut Grohne (2023-02-20 18:12:14)
> On Wed, Feb 15, 2023 at 08:14:17PM +0100, Fabian Grünbichler wrote:
> > > TL;DR: Is the switch to arch:all one that should be reverted in the face 
> > > of it apparently breaking cross builds? Or is there another alternative 
> > > (nowadays) that makes the "workaround" employed by debcargo no longer 
> > > needed?
> 
> Yes, the switch to arch:all needs to be reverted at least partially.

Thanks, Fabian, for bringing this up, and thanks Helmut for the
clarification.


> Could it be that Jonas picked up such hints and thus added m-a:foreign?
> Then later a C binding was added to the mix, which broke the hint, but
> the conversion wasn't reverted.

No, I was not guided by m-a hinter rules (assuming you mean the kind
of hints that appear in the "action needed" section of e.g.
https://tracker.debian.org/pkg/rust-test-case ) when I did the switch,
so I am not aware that that hinting are broken.

> This suggests that the hinter should gain another condition to never
> issue arch:all+m-a:foreign conversion hints for librust-*-dev packages.
> Do you agree?

I don't see a need for such general rule for all librust-*-dev packages.

E.g. librust-futures-timer-dev and librust-event-listener-dev has no
dependencies so should be safe to distribute as arch-all and marked as
m-a:foreign, right?

Sure, there is a theoretical risk that some day in the future those
packages grow dependencies that require changing that, but isn't that
the case generally for m-a hinting?

I guess it makes sense instead to have a lintian warning for packages
marked m-a:foreign that all its dependencies are equally marked (or if
that's unreasonably expensive then check only one level deep).  That
should help flag misuses of m-a:foreign including this one of mine (for
most but not all the librust-*-dev packages that I maintain).

 - Jonas

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/
 * Sponsorship: https://ko-fi.com/drjones

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

signature.asc
Description: signature


Bug#1031694: ITP: libxisf -- Library to load and save XISF images

2023-02-20 Thread Dušan Poizl

Package: wnpp
Owner: Ole Streicher 
Severity: wishlist
X-Debbugs-Cc: debian-devel@lists.debian.org,debian-as...@lists.debian.org
* Package name: libxisf
  Version : 0.1.3
  Upstream Author : Dušan Poizl https://gitea.nouspiro.space/nou/libXISF
* License : GPL3
  Programming Lang: C++
  Description : Library to load and save XISF images

Extensible Image Serialization Format (XISF, pronounced [ɛksˈɪsf]) is 
the native file format of PixInsight. It is a free, open format for 
storage, management and interchange of digital images and associated data.


I wrote this library to load and save images in XISF format as it is 
preferred format for PixInsight. Just recently it got integrated into 
INDI and KStars.




Re: rust-*/librust-* arch:any vs. arch:all and cross-compilation support

2023-02-20 Thread Helmut Grohne
Hi Jonas,

On Mon, Feb 20, 2023 at 06:44:23PM +0100, Jonas Smedegaard wrote:
> I don't see a need for such general rule for all librust-*-dev packages.

This definitely is a trade-off. Hence I asked about what we should do
about it.

> E.g. librust-futures-timer-dev and librust-event-listener-dev has no
> dependencies so should be safe to distribute as arch-all and marked as
> m-a:foreign, right?

Yeah, I mentioned librust-typenum-dev earlier and you found more. I
expect that there are probably hundreds of pure rust libraries without
dependencies. Really, the only reason to not have them arch:all is
mitigating the risk of changing dependency trees.

> Sure, there is a theoretical risk that some day in the future those
> packages grow dependencies that require changing that, but isn't that
> the case generally for m-a hinting?

You are entirely correct about this. It definitely is a heuristic.

> I guess it makes sense instead to have a lintian warning for packages
> marked m-a:foreign that all its dependencies are equally marked (or if
> that's unreasonably expensive then check only one level deep).  That
> should help flag misuses of m-a:foreign including this one of mine (for
> most but not all the librust-*-dev packages that I maintain).

lintian does not have the full picture. It looks at one source package
plus all of its binary packages in isolation. It cannot see the
multi-arch annotations of dependencies. Hence the multi-arch hinter was
added as an extra component outside lintian. On the flip side, the
hinter could do the flagging that you suggest here. In essence, it could
flag all packages satisfying all of the following conditions:
 * Architecture: all
 * Multi-Arch: foreign
 * Package: librust*-dev
 * Depends: some package that is not m-a:foreign

We can actually express this in SQL:

SELECT name
FROM indeppackage AS i
WHERE name LIKE 'librust%-dev'
AND multiarch = 'foreign'
AND EXISTS (SELECT 1 FROM archdepcandidate AS c WHERE c.dependerid = 
i.id);

I guess you're also interested in the output of the query.

librust-crdts-dev
librust-ahash-dev
librust-assert-json-diff-dev
librust-async-attributes-dev
librust-async-channel-dev
librust-async-executor-dev
librust-async-fs-dev
librust-async-net-dev
librust-async-process-dev
librust-async-std-dev
librust-blocking-dev
librust-femme-dev
librust-flume-dev
librust-hyper-rustls-dev
librust-kv-log-macro-dev
librust-lazy-regex-dev
librust-leptonica-plumbing-dev
librust-leptonica-sys-dev
librust-nom-locate-dev
librust-oxilangtag-dev
librust-resource-proof-dev
librust-rustls-native-certs-dev
librust-rusty-pool-dev
librust-serde-fmt-dev
librust-smol-dev
librust-socks-dev
librust-tesseract-plumbing-dev
librust-tesseract-sys-dev
librust-test-case-dev
librust-version-sync-dev
librust-criterion-dev
librust-oxhttp-dev
librust-oxiri-dev
librust-retry-dev
librust-rustls-dev
librust-xor-name-dev
librust-nanorand-dev
librust-threadfin-dev
librust-ahash-0.7-dev
librust-criterion-0.3-dev
librust-isahc-dev
librust-ureq-dev

As a confirmation of Fabian's observation, this list includes
librust-serde-fmt-dev. Note that this is not transitive yet. After
fixing these, some reverse dependencies will be added to the list. Also
note that running this query on delfin.d.o cannot be easily done by DDs
yet, because the underlying sqlite database uses wal mode. Sorry about
that.

Should the hinter generate reverse hints for these and thus issue action
items on tracker.d.o?

Helmut