pkgsrc-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Bob woes
Rhialto <rhialto%falu.nl@localhost> writes:
> When I straightened this out, I did have success, and packages were
> built! The only thing was that they ended up in a strange place...
>
> I have my pkgsrc directory in a place similar to /vol1/cvs/pkgsrc, and I
> null-mount that to /usr/pkgsrc in the sandbox. Outside, I have a symlink
> /usr/pkgsrc -> /vol1/cvs/pkgsrc.
>
> The created binary packages should go to something like
> /scratch/packages-11.0, which I then mounted on top /usr/pkgsrc/packages
> (as inside the sandbox). That's because I don't want to mix everything
> together in /vol1/cvs/pkgsrc/packages, which is too small anyway to
> contain all packages.
>
> However, somehow bob managed to put the built packages in
> /vol1/cvs/pkgsrc/packages *anyway*, even though that directory isn't (or
> shouldn't be) visible from the sandbox. (Well in theory you could reach
> it if you save a directory fd for the packages directory before
> something is mounted on top of it, but that seems far-fetched)
I am doing something that seems similar to your goals, and I did not
have any real problems -- once I got my sandbox config right.
More or less, I have a bunch of zfs datasets
tank0/pkgsrc-current
tank0/pkgsrc-2026Q2 (etc)
tank0/pkgsrc-wip
tank0/distfiles
tank0/packages
within this, dirs named by os-arch-branch
I have symlinks in /links for pkgsrc, distfiles, packages, and the
packages ones:
packages -> /tank0/packages/netbsd-11-x86_64-current
I set PACKAGES in mk.conf to point to this.
In my sandbox config, I null mount /links, and I null mount all the
things pointed to. bob then deals with this without apparent problems.
> So I puzzeled on that for a while, and then (in line with the idea to
> avoid overriding settings where possible) decided to put this directory
> in the same place as pkg_comp uses: /pkg_comp/packages. (Same for the
> distfiles) mk.conf inside the sandbox points there: PACKAGES =
> /pkg_comp/packages.
>
> Now I could still build packages, but they disappeared into a void...
> I cranked the logging up to debug level and it did properly mention that
> it created /pkg_comp/packages/All/pkg_summary.zst for example. But there
> was no sign of it in /scratch/packages-11.0...
Did you add that path to the sandbox?
> Only after a lot of hair-pulling, I discovered that bob had created a
> new(!) directory /pkg_comp in the *real* root! That's where my packages
> went...
I now see your point, but I still think that if you try to do things the
way I do, with PACKAGES set in real and sandbox the same, and the real
path in the sandbox, it should be ok.
> But to me it seemed obvious that settings in mk.conf inside the sandbox
> *obviously* refer to the path *inside* the sandbox, not outside. Hence,
> PACKAGES = /pkg_comp/packages. It had never come up in my mind that Bob
> would interpret that as some path outside the sandbox. The make process
> inside the sandbox certainly wouldn't! I found it totally unexpected
> that Bob would do something different than "make package" would.
> That Bob copies packages around (and to my very small / partition too) is
> a total surprise to me (if only because it is unneeded work; it also
> isn't in the debug log).
I think your real isue is "mk.conf inside the sandbox". I do not try to
make them different. But I see that you see that as a bob bug, vs a
misconfiguration.
I don't try to make them different, because I have a version-controlled
shared mk.conf for all my systems, to build packages the way I want.
But, I'm not trying to do pure bulk builds, the way build for official
redistribution must be.
I wonder if you need a ".if BOB" in your outside mk.conf, or some way to
invoke bob with "PACKAGES is really /here". I see that's one of your
options.
Overall, the biggest next step is probbaly for Jonathan to explain the
rules in the forthcoming bob manpage and configuration guide, that's
installed locally with bob. (I'm still traumatized by the experience of
doing software development totally offline many years ago. Except for
the culture of "docs on the web are fine; why do you need them
installed", it was a great experience, with incredibly low distractions,
so I always rant about needed docs being part of the default install!)
Home |
Main Index |
Thread Index |
Old Index