packaging a port that uses npm during build.

Adam Weinberger adamw at adamw.org
Tue Oct 29 00:41:34 UTC 2019


On Mon, Oct 28, 2019 at 6:34 AM Willem Jan Withagen <wjw at digiware.nl> wrote:
>
> On 28-10-2019 13:28, Adam Weinberger wrote:
> > On Mon, Oct 28, 2019 at 5:17 AM Willem Jan Withagen <wjw at digiware.nl> wrote:
> >>
> >> Hi,
> >>
> >> The ceph ports should have a manager module called dashboard that
> >> exists of a large bundle op JS-scripts that get installed with npm/node
> >> during running make on the configured build.
> >>
> >> Uptil now I've exclude that from builds, but that gets more and more
> >> complicated. Ceph cluster status is not reported not healty if the
> >> dashboard is not running....
> >>
> >> Apart from the fact that npm does not like to be ran as 'root',
> >> poudriere also complains about fetching data afte the fetch fase.
> >>
> >> There are about 1000 npm-modules included in this project.
> >> So that would be a large set of things to maintain correctly.
> >>
> >> Is there a way around this?
> >> Or does anybody here have experience with this?
> >>
> >> I think I read once somewhere that there is also a "flag" that indicates
> >> that the port wants network access during the build. Is that feasible?
> >
> > Can the modules be installed after installation? As in, does a
> > package.json get installed somewhere? If so, I'd put the `npm install`
> > instructions in pkg-message.
>
> I'd have to dig deeper, but as far as I can now see it is a rather
> convoluted part of the Cmake infra that gets called by gmake to run
> several scripts and others...
> But the hint is very temping if it was only like: call npm in something
> like /usr/local/share/ceph/dasboard/frontend

It looks like in the tarball there is
src/pybind/mgr/dashboard/frontend/package.json. Does this have what
you're looking for?

>
> > The flag you're talking about has to go in poudriere.conf, so it
> > wouldn't be able to help much here. It's for local control.
>
> Bummer...
> What is the latest moment a (Make)script can get access to the network?
> Tried finding this in the porters manual, but could not find that detail.

The fetch phase is the only time that the network is available,
unfortunately. It's a great feature, though it does require rethinking
in situations like this.

# Adam


-- 
Adam Weinberger
adamw at adamw.org
https://www.adamw.org


More information about the freebsd-ports mailing list