På tirsdag 23. juni 2026 kl. 19:20, skrev Rafael Sadowski
<[email protected]>:
> On Tue Jun 23, 2026 at 04:28:04PM +0200, Rafael Sadowski wrote:
> > XXX: If you tried the approach before, please remove devel/cxxbridge-cmd
> >
> > Please find a new approach to make rust and cmake work together with
> > devel/corrosion. The new approach leaves devel/corrosion as it is and
> > does all the work in the consumer port. For graphics/cxx-rust-cssparser
> > it looks like this (I also tested it with another port):
> >
> > 1. We ship our own Cargo.lock for cxxbridge-cmd so the build resolves
> > against the modcargo vendored crates instead of reaching out to
> > crates.io.
> > 1.1. We provide a crates.inc that lists all crates, both for
> > MODCARGO_CARGOTOML and for the cxxbridge-cmd version.
> >
> > 2. We replace Cargo.lock, so we drop its entry from
> > .cargo-checksum.json, because otherwise cargo's integrity check fails
> > the --locked build.
> >
> > corrosion builds cxxbridge-cmd during the build step, but everything it
> > needs is already present in MODCARGO_VENDOR_DIR.
> >
> > If this is OK for everyone, I would like to ask for OKs to import it.
> >
> > I tested this with the KDE Plasma 6.7 update at runtime.
> >
> > Here is the base idea:
> >
>
// Uninstall the packages
# pkg_delete -Dsnap -cc cxxbridge-cmd cxx-rust-cssparser corrosion
// Remove the old revisions
$ cd /usr/ports/devel/ && rm -Rv corrosion cxx-rust-cssparser/ cxxbridge-cmd
// Copy ark extracted folder/files to my local cvs in /usr/ports
$ cd /usr/ && cp -Rv /tmp/corrosion_and_cxx-rust-cssparser/* ports/
// Clean old tgz and pobj/* for corrosion and rebuild and do test/checks
$ cd /usr/ports/devel/corrosion/ && make clean=all clean && make clean build
package port-lib-depends-check test check-shlib-syms
91% tests passed, 9 tests failed out of 102
Total Test time (real) = 1098.70 sec
The following tests did not run:
59 - rustup_proxy_build (Disabled)
60 - rustup_proxy_cleanup (Disabled)
The following tests FAILED:
1 - config_discovery_build (Failed)
2 - config_discovery_run_config_discovery (Not Run)
4 - config_discovery_run_cargo_clean (Not Run)
30 - custom_target_build (Failed)
31 - custom_target_run_test-exe (Not Run)
32 - custom_target_run_rust-bin (Not Run)
49 - install_lib_run_main-shared (Subprocess killed)
63 - hostbuild_build (Failed)
64 - hostbuild_run_rust-host-program (Not Run)
--
// No complaints from either checks. Ran make test twice, same results
// other than time.
// Install built corrosion
# TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all/ pkg_add -Dsnap corrosion
corrosion-0.6.1: ok
--
// Clean old tgz and pobj/* for cxx-rust-cssparser and rebuild and do
// test/checks
$ cd /usr/ports/graphics/cxx-rust-cssparser/ && make clean=all clean && make
clean build package test port-lib-depends-check check-shlib-syms
100% tests passed, 0 tests failed out of 2
Total Test time (real) = 419.69 sec
/usr/local/lib/libcxx-rust-cssparser.so.0.0 -->
/usr/ports/pobj/cxx-rust-cssparser-1.0.0/fake-amd64/usr/local/lib/libcxx-rust-cssparser.so.0.0
No dynamic export changes
--
// Rebuilt twice to have to make test twice. Both results same other
// than time.
// Install built cxx-rust-cssparser
# TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all/ pkg_add -Dsnap
cxx-rust-cssparser
cxx-rust-cssparser-1.0.0: ok
> If we can trust the "archlinux required by"[1] list (We can't but it's a
> good indicator), here are two of four consumers (The other one is
> "kdepim-addons" which comes in the 6.7 update):
>
> 1: https://archlinux.org/packages/extra/any/corrosion/
>
// Apply attached patch
cd /usr/ports/ && patch -l -p1 -E < /tmp/corrosion_consumers.patch
// Clean old tgz and pobj/* for akonadi-search and rebuild and do
// test/checks
$ cd /usr/ports/x11/kde-applications/akonadi-search/ && make clean=all clean &&
make clean build package test
$ cd /usr/ports/x11/kde-applications/akonadi-search/ && make
port-lib-depends-check check-shlib-syms
/usr/local/lib/libKPim6AkonadiSearchCore.so.0.0 -->
/usr/ports/pobj/akonadi-search-26.04.2/fake-amd64/usr/local/lib/libKPim6AkonadiSearchCore.so.0.0
No dynamic export changes
/usr/local/lib/libKPim6AkonadiSearchDebug.so.0.0 -->
/usr/ports/pobj/akonadi-search-26.04.2/fake-amd64/usr/local/lib/libKPim6AkonadiSearchDebug.so.0.0
No dynamic export changes
/usr/local/lib/libKPim6AkonadiSearchPIM.so.0.0 -->
/usr/ports/pobj/akonadi-search-26.04.2/fake-amd64/usr/local/lib/libKPim6AkonadiSearchPIM.so.0.0
No dynamic export changes
/usr/local/lib/libKPim6AkonadiSearchXapian.so.0.0 -->
/usr/ports/pobj/akonadi-search-26.04.2/fake-amd64/usr/local/lib/libKPim6AkonadiSearchXapian.so.0.0
No dynamic export changes
--
// Update with built akonadi-search
# TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all/ pkg_add -Dsnap -u
akonadi-search
akonadi-search-26.04.2->26.04.2p0: ok
// Clean old tgz and pobj/* for kdepim-addons and rebuild and do
// test/checks
$ cd /usr/ports/x11/kde-applications/kdepim-addons/ && make clean=all clean &&
make clean build package test
$ cd /usr/ports/x11/kde-applications/kdepim-addons/ && make
port-lib-depends-check check-shlib-syms
/usr/local/lib/libKPim6AutoGenerateText.so.0.0 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libKPim6AutoGenerateText.so.0.0
No dynamic export changes
/usr/local/lib/libadblockplugin.so.0.0 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libadblockplugin.so.0.0
No dynamic export changes
/usr/local/lib/libakonadidatasetools.so.2.2 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libakonadidatasetools.so.2.2
No dynamic export changes
/usr/local/lib/libdkimverifyconfigure.so.5.1 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libdkimverifyconfigure.so.5.1
No dynamic export changes
/usr/local/lib/libexpireaccounttrashfolderconfig.so.2.1 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libexpireaccounttrashfolderconfig.so.2.1
No dynamic export changes
/usr/local/lib/libfolderconfiguresettings.so.2.1 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libfolderconfiguresettings.so.2.1
No dynamic export changes
/usr/local/lib/libkaddressbookmergelibprivate.so.2.0 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libkaddressbookmergelibprivate.so.2.0
No dynamic export changes
/usr/local/lib/libkmailconfirmbeforedeleting.so.3.2 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libkmailconfirmbeforedeleting.so.3.2
No dynamic export changes
/usr/local/lib/libkmailmarkdown.so.3.1 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libkmailmarkdown.so.3.1
No dynamic export changes
/usr/local/lib/libkmailquicktextpluginprivate.so.2.0 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libkmailquicktextpluginprivate.so.2.0
No dynamic export changes
/usr/local/lib/libopenurlwithconfigure.so.2.1 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libopenurlwithconfigure.so.2.1
No dynamic export changes
/usr/local/lib/libshorturlpluginprivate.so.2.0 -->
/usr/ports/pobj/kdepim-addons-26.04.2/fake-amd64/usr/local/lib/libshorturlpluginprivate.so.2.0
No dynamic export changes
--
// Update with built kdepim-addons
# TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all/ pkg_add -Dsnap -u
kdepim-addons
kdepim-addons-26.04.2->26.04.2p0: ok
This was on current/amd64 with privsep.
I am not seeing any nits or grammar/spelling errors. They look fine
aside from missing licences in crates.inc. I want to say the command is
'make modcargo-gen-crates-licenses' but not sure.(Saw it the top
comment in the crates.inc and it looks like what I had in my missing
rust notes.)
Could you ask someone more knowledgeable if there are any
missing steps for rust associated submissions?
TLDR: They built and look fine. Please ask a rust maintainer if any
steps missing.
Let me know if I missed anything needed for review or have other parts
needing testing for the kde-plasma 6.7.x or other updates.
Hope this helped as well. Also hope you and devs are having a blast at
the g2k26 hackathon in Kloosterburen, Netherlands. Hack the planet. :D
Good night,
yaydn
𝅘𝅥𝅮I will protect you, your sand, and your shells, coming back every year
to update my spells.𝅘𝅥𝅮