Download raw body.
dpb always rebuild rust-bootstrap
On 2024/04/21 13:53, Solene Rapenne wrote:
> On Sun, Apr 21, 2024 at 11:56:30AM GMT, Stuart Henderson wrote:
> > On 2024/04/21 11:35, Solene Rapenne wrote:
> > > On Sat, Apr 20, 2024 at 10:02:38AM GMT, Solene Rapenne wrote:
> > > > On Sat, Apr 20, 2024 at 09:00:30AM GMT, Sebastien Marie wrote:
> > > > > Solene Rapenne <solene@perso.pw> writes:
> > > > >
> > > > > > hi, on a fresh current amd64 I had to set up dpb because it seems
> > > > > > there was a libc bump at the wrong time for me :)
> > > > > >
> > > > > > however, now I have my working dpb (easy to setup once you understand
> > > > > > it), I don't understand why dpb -R something_depending_on_rust
> > > > > > always have to recompile lang/rust, in the packages directory, only
> > > > > > the rust bootstrap package is changed everytime I run dpb.
> > > > > >
> > > > > > I'm not sure which logs I could provide though. This is quite
> > > > > > annoying because lang/rust is heavy to compile and I like to trigger
> > > > > > dpb every time I try a diff.
> > > > > >
> > > > > > Am I the only one with this issue?
> > > > >
> > > > > I'm interested to know if there are any problems with the way I did
> > > > > rust-bootstrap.
> > > > >
> > > > > Currently, it is marked with 'always-update', because the package
> > > > > content depend on the build host (system libraries are embedded in the
> > > > > package for the bootstrap purpose). I expected that if the package isn't
> > > > > installed (and it shouldn't in standard usage) it will not be a problem.
> > > > >
> > > > > Do you have it installed ? If it isn't the case, and dpb is rebuilding
> > > > > it without purpose (I assume no port depending on it), it might be a
> > > > > problem in dpb, or some side effect for a subpackage having
> > > > > 'always-update'.
> > > > >
> > > > > I could look to remove the 'always-update' option from rust-bootstrap
> > > > > without too much trouble.
> > > > >
> > > > > Thanks.
> > > > > --
> > > > > Sebastien Marie
> > > >
> > > > rust-bootstrap is not installed in the chroot after using dpb -R shells/nushell
> > > > that rebuilt rust-bootstrap , I don't think junking happened
> > > >
> > > > I'll try without always-update
> > > >
> > >
> > > dpb stopped rebuilding rust everytime since I removed always-update
> > >
> > > I don't know if REVISION could be set only for bootstrap, but
> > > following diff works for me
> >
> > The plain REVISION bump like you've done is correct.
> >
> > I would set WANTLIB-bootstrap to the list of libraries used in the
> > bootstrap. That way it will be automically updated when necessary.
> > (Ignore the "not needed" from check-lib-depends).
> >
> > > diff --git a/lang/rust/Makefile b/lang/rust/Makefile
> > > index 035767f1126..ba65386765a 100644
> > > --- a/lang/rust/Makefile
> > > +++ b/lang/rust/Makefile
> > > @@ -17,6 +17,7 @@ COMMENT-src = Rust source component
> > >
> > > V = 1.77.2
> > > DISTNAME = rustc-${V}-src
> > > +REVISION = 0
> > >
> > > # rustc bootstrap version
> > > BV-aarch64 = 1.77.0-20240320
> > > diff --git a/lang/rust/pkg/PLIST-bootstrap b/lang/rust/pkg/PLIST-bootstrap
> > > index 17001b7230c..1b28ca27ca2 100644
> > > --- a/lang/rust/pkg/PLIST-bootstrap
> > > +++ b/lang/rust/pkg/PLIST-bootstrap
> > > @@ -1,2 +1 @@
> > > -@option always-update
> > > lib/rustc-bootstrap-${MACHINE_ARCH}.tar
> > >
>
> I'm not entirely sure how to make a WANTLIB-boostrap,
>
> I got an issue with a lib trying to generate it for bootstrap, so I
> first checked -main using port-lib-depends-check on -main subpackage
> but it reported an issue about ssh2 library, is this expected? There
> is security/libssh2 and LIB_DEPENDS-main so it should be fine?
>
> I have to admit I became a bit rusty with the ports tree :-)
>
> ryzen$ env SUBPACKAGE=-main make port-lib-depends-check
> ===> Checking files for rust-1.77.2
> `/usr/ports/distfiles/rust/rustc-1.77.2-src.tar.xz' is up to date.
> `/usr/ports/distfiles/rust/rustc-bootstrap-amd64-1.77.0-20240318.tar.lz' is up to date.
> >> (SHA256) rust/rustc-1.77.2-src.tar.xz: OK
> >> (SHA256) rust/rustc-bootstrap-amd64-1.77.0-20240318.tar.lz: OK
> ===> Verifying specs: c++ c++abi pthread c crypto curl m pthread ssh2 ssl z c++ c++abi pthread c m pthread c++ c++abi pthread c m pthread
> Missing library for ssh2>=0.0
> Fatal error
> *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2489 '/usr/ports/pobj/rust-1.77.2/.buildwantlibs': @case X${_DEPENDS_CACHE} in X...)
> *** Error 2 in /usr/ports/lang/rust (/usr/ports/infrastructure/mk/bsd.port.mk:2796 '/usr/ports/pobj/rust-1.77.2/.extract_done': @cd /usr/por...)
>
Just use "make port-lib-depends-check", don't pass SUBPACKAGE.
On reflection, though, my idea won't be good enough for bootstrap
because we want newer base libraries when they change (to cope with
changes in the kernel/libc ABI, which happen independently library
bumps). So really it does want always-update.
dpb always rebuild rust-bootstrap