Bug#1049413: librsvg: Update to 2.56 or later

2024-01-30 Thread Matthias Geiger
On Sat, 7 Oct 2023 21:33:44 +0200 Matthias Geiger  
wrote:

[...]
> - yeslogic-fontconfig-sys
>

yeslogic-fontconfig-sys actually is in debian. I can package all those; 
this might be needed wrt to 1062016.


Partial vendoring might also be a solution here.

best,


--
Matthias Geiger 
Debian Maintainer
"Freiheit ist immer Freiheit des anders Denkenden" -- Rosa Luxemburg



OpenPGP_0x18BD106B3B6C5475.asc
Description: OpenPGP public key


OpenPGP_signature.asc
Description: OpenPGP digital signature


Bug#1049413: librsvg: Update to 2.56 or later

2023-10-07 Thread Matthias Geiger

On 15.08.23 14:25, Jeremy Bícha wrote:

Source: librsvg
Version: 2.54.7+dfsg-2
Severity: wishlist
X-Debbugs-CC: werdah...@riseup.net

It would be nice if we updated librsvg to 2.56 (GNOME 44 series) or
2.58 (GNOME 45 series).

But 2.56 drops the vendored Rust crate dependencies, forcing us to
either revendor librsvg or use the Debian packaged crates. That would
complicate the packaging since it would tie librsvg into the Rust GTK
transitions and other Rust library transitions. It's possible; just
not sure we want to do it.

Matthias (CC'd) did some work earlier on this; I believe there are a
few more Rust crates that would need to be packaged if we wanted to
test this more.

See also these related librsvg bugs:
https://bugs.debian.org/1017892
https://bugs.debian.org/1017906

One extra detail: my understanding is that current Ubuntu best
practice is to vendor all Rust crates used as dependencies for
libraries and apps in Ubuntu main (which includes librsvg). This is
mentioned at https://github.com/canonical/ubuntu-mir

Alternatively, we could ask the librsvg developers to revendor librsvg.

Thank you,
Jeremy Bícha


Revisiting: After the recent gtk-rs upload building only with debian 
tooling/ packages might not be that far off.


Crates in debian  that need updating:

- rctree

- data-url

crates that need packaging from scratch:

- rawpointer

- matrixmultiply

- nalgebra

- nalgebra-macros

- simba

- lopdf

- yeslogic-fontconfig-sys


I tend towards packaging all those. Since gtk3-rs is only getting 
security updates upstream future gtk-rs transitions won't be as much 
work. There's already a few GUI programs tied into the stack so tying 
librsvg2 in


doesn't seem too bad imo. re-vendoring the tarball with cargo vendor is 
also an option if you prefer that. The crate librsvg does not get built 
from source yet; I haven't looking into how to do that, but it'll be needed


eventually to enable svg rendering support in Loupe. Let me know if you 
want me to start packaging those missing crates.


best,

--
Matthias Geiger 
Debian Maintainer
"Freiheit ist immer Freiheit des anders Denkenden" -- Rosa Luxemburg



OpenPGP_0x18BD106B3B6C5475.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Bug#1049413: librsvg: Update to 2.56 or later

2023-08-15 Thread Matthias Geiger

On 15.08.23 19:19, Simon McVittie wrote:

On Tue, 15 Aug 2023 at 18:41:49 +0200, Matthias Geiger wrote:

the latest rsvg would need ~ 10 NEW rust packages if it were to be
devendored. iirc you can actually run "cargo vendor" and it would revendor
the tarball (even with out upstream vendoring it).

Given the policy that Jeremy linked to, I imagine Ubuntu will want to
produce a fully-vendored tarball, even if Debian does not.

looks like it, yeah.


Producing a fully-vendored tarball of 2.55 or higher would be the closest
thing to the status quo, so I think that would be a valid way to update
librsvg, even if the Debian Rust team would prefer us to do it differently.
We vendor rustc and cargo (partially / before build ) so I wouldn't say 
the team objects in this case.


Is it possible to vendor *some* dependencies, and take others from
Debian? That seems a lot more feasible to me than de-vendoring literally
everything, and in particular would avoid librsvg getting stuck behind
a new Rust library getting through NEW.

I think so, yeah. The debian cargo wrapper (script) ( 
|/usr/share/cargo/bin| )||allows linking from a) the system and b) any 
other directory (or both)


The wrapper mentioned has the documentation inside, you can also 
checkout my WIP packaging here [0]. All I'd add here for a second vendor dir


would be a |$(CARGO) prepare-debian debian/cargo_registry vendor-dir |( 
I think). cargo will sort it out then.



werdahias

[0] 
https://salsa.debian.org/werdahias/obfuscate-wip/-/blob/debian/master/debian/rules


||



OpenPGP_0x18BD106B3B6C5475.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Bug#1049413: librsvg: Update to 2.56 or later

2023-08-15 Thread Jeremy Bícha
On Tue, Aug 15, 2023 at 1:19 PM Simon McVittie  wrote:
> Given the policy that Jeremy linked to, I imagine Ubuntu will want to
> produce a fully-vendored tarball, even if Debian does not.

I briefly mentioned this issue to Ubuntu's Main Inclusion team today
and their Rust vendoring policy might be relaxed in the future, but it
will take time and work to figure out the many details.

Thank you,
Jeremy Bícha



Bug#1049413: librsvg: Update to 2.56 or later

2023-08-15 Thread Simon McVittie
On Tue, 15 Aug 2023 at 18:41:49 +0200, Matthias Geiger wrote:
> the latest rsvg would need ~ 10 NEW rust packages if it were to be
> devendored. iirc you can actually run "cargo vendor" and it would revendor
> the tarball (even with out upstream vendoring it).

Given the policy that Jeremy linked to, I imagine Ubuntu will want to
produce a fully-vendored tarball, even if Debian does not.

Producing a fully-vendored tarball of 2.55 or higher would be the closest
thing to the status quo, so I think that would be a valid way to update
librsvg, even if the Debian Rust team would prefer us to do it differently.

Is it possible to vendor *some* dependencies, and take others from
Debian? That seems a lot more feasible to me than de-vendoring literally
everything, and in particular would avoid librsvg getting stuck behind
a new Rust library getting through NEW.

smcv



Bug#1049413: librsvg: Update to 2.56 or later

2023-08-15 Thread Matthias Geiger

On 15.08.23 15:34, Jeremy Bícha wrote:

On Tue, Aug 15, 2023 at 9:05 AM Simon McVittie  wrote:

Are you sure you mean 2.58? https://gitlab.gnome.org/GNOME/librsvg seems
to be version 2.56.92 right now, which suggests that GNOME 45 will have
librsvg 2.57.x.
…
so maybe we can at least go to 2.55.x, even if moving beyond there is
not feasible right now?

Thank you for noticing. The devendoring also happened for the stable
2.55.0 release.

Yes, 2.57 will be the release for GNOME 45.


I don't know Rust or cargo, so I am not going to be able to help with
this.

smcv: no worries :)

I have been learning some of the debcargo workflow. Matthias is our
local expert. But if Debian and Ubuntu's packaging diverge, I just
have less available free time to work on big Debian-specific projects
these days.


Thanks :) the latest rsvg would need ~ 10 NEW rust packages if it were 
to be devendored. iirc you can actually run "cargo vendor" and it would 
revendor the tarball (even with out upstream vendoring it).


If you'd choose to fully devendor it and build it only with debian 
crates this creates two issues imo. First, librsvg would become 
inherently dependent on the GTK-rs stack. (It's already a lot of work to 
update each release, fortunately we're on par (almost)). Secondly the 
other rust dependencies would be also pulled in which would require more 
maintenance work and coordination with the rust team.


If you choose to devendor it I can package the missing dependencies.

best,

werdahias



OpenPGP_0x18BD106B3B6C5475.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Bug#1049413: librsvg: Update to 2.56 or later

2023-08-15 Thread Jeremy Bícha
On Tue, Aug 15, 2023 at 9:05 AM Simon McVittie  wrote:
> Are you sure you mean 2.58? https://gitlab.gnome.org/GNOME/librsvg seems
> to be version 2.56.92 right now, which suggests that GNOME 45 will have
> librsvg 2.57.x.
> …
> so maybe we can at least go to 2.55.x, even if moving beyond there is
> not feasible right now?

Thank you for noticing. The devendoring also happened for the stable
2.55.0 release.

Yes, 2.57 will be the release for GNOME 45.

> I don't know Rust or cargo, so I am not going to be able to help with
> this.

I have been learning some of the debcargo workflow. Matthias is our
local expert. But if Debian and Ubuntu's packaging diverge, I just
have less available free time to work on big Debian-specific projects
these days.

Thank you,
Jeremy Bícha



Bug#1049413: librsvg: Update to 2.56 or later

2023-08-15 Thread Simon McVittie
On Tue, 15 Aug 2023 at 08:25:55 -0400, Jeremy Bícha wrote:
> It would be nice if we updated librsvg to 2.56 (GNOME 44 series) or
> 2.58 (GNOME 45 series).

Are you sure you mean 2.58? https://gitlab.gnome.org/GNOME/librsvg seems
to be version 2.56.92 right now, which suggests that GNOME 45 will have
librsvg 2.57.x.

Upstream documentation says:

Before version 2.55.x, librsvg's versioning scheme was such that a
release with an even minor number was considered a stable release
suitable for production use (e.g. 2.54.x), and an odd minor number
was a development release only.

Starting with 2.55.x, all minor numbers are considered
stable. Development and beta versions have a micro version
starting at 90 (e.g. 2.55.90)

— https://gitlab.gnome.org/GNOME/librsvg/-/blob/main/devel-docs/security.rst

so maybe we can at least go to 2.55.x, even if moving beyond there is
not feasible right now?

> But 2.56 drops the vendored Rust crate dependencies, forcing us to
> either revendor librsvg or use the Debian packaged crates.

I don't know Rust or cargo, so I am not going to be able to help with
this.

smcv



Bug#1049413: librsvg: Update to 2.56 or later

2023-08-15 Thread Jeremy Bícha
Source: librsvg
Version: 2.54.7+dfsg-2
Severity: wishlist
X-Debbugs-CC: werdah...@riseup.net

It would be nice if we updated librsvg to 2.56 (GNOME 44 series) or
2.58 (GNOME 45 series).

But 2.56 drops the vendored Rust crate dependencies, forcing us to
either revendor librsvg or use the Debian packaged crates. That would
complicate the packaging since it would tie librsvg into the Rust GTK
transitions and other Rust library transitions. It's possible; just
not sure we want to do it.

Matthias (CC'd) did some work earlier on this; I believe there are a
few more Rust crates that would need to be packaged if we wanted to
test this more.

See also these related librsvg bugs:
https://bugs.debian.org/1017892
https://bugs.debian.org/1017906

One extra detail: my understanding is that current Ubuntu best
practice is to vendor all Rust crates used as dependencies for
libraries and apps in Ubuntu main (which includes librsvg). This is
mentioned at https://github.com/canonical/ubuntu-mir

Alternatively, we could ask the librsvg developers to revendor librsvg.

Thank you,
Jeremy Bícha