-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to ignore ports without skipping actual ones? #883
Comments
Why are you making 2 separate repositories? Poudriere won't support the |
I will try to expand. While I could add this package into by base repository this would only solve the symptom not the problem. My idea is to have a base repo for all jails. Then, repos per jail (use case) type on top of base which may depend on packages in base or any other packages from the official ports tree. So to speak a layered design. I want to avoid recompiling ports which aren't necessary. My idea is very similar to one of @rootwyrm in #534. Theoretically one could do the following:
where With that one can avoid duplication and introduce a layered design. WDYT? |
It seems like that #797 achieves a, simpler, but same goal though limited for some reason to official FreeBSD repo and the arbitrary one. |
I was able to very uglily trick poudriere with a modified version of #797:
but it still wanted to build too many packages, then I did the following:
It is not fully clear why I need to fake this overlay and why pkg simply doesn't install both Is this a starting point we can discuss for layering? WDYT? |
In https://blog.shatow.net/posts/2013-07-21-managing-role-based-freebsd-servers-with-meta-packages-and-poudriere/ I cover how I do this. I just make a separate meta package for each jail and then can use 1 unified repository. Of course this only works if you do not have packages with conflicting options. |
Thanks, I'll look into it after my vacation. |
I was caught up again by this. Read your post. I understand your approach, but a see a few issues:
For one usecase I have now tried
This works, but since the repo config done in |
The build has now been completed. Well, packages have been downloaded, but many which are available at the supplied repo are still being rebuild. This I don't understand. |
Found it. I still need to merge the port options from the repo to be used and the port options for this bulk. I will create an issue. |
To clarify something the dependencies are automatic but do not show in The leaf packages only show up in Here is an example from some of my jails. The matrix jail metaport used to depend on conduit but no longer does so it wants to delete it.
For what it's worth I am trying to wrap up #822 this week. It will significantly reduce port rebuilds to only when a version or
Yeah that makes sense as a workaround for what you want.
Definitely please open a separate issue so it can be fixed and tracked. |
@bdrewery Thanks, let me crunch on this and get back to you tomorrow. I think I have found yet another bug in Poudriere when building
is choking on the spaces here in the vendor arg:
makes it work. Will report also tomorrow as well. |
That's a |
But it does work when I am in the jail or just doing the from a host. I will report anyway for others which might trip over. Hopefully, you can explain why BSD make (?) fails here in this setup. |
Forget that, this is a problem in the build scripts of the OpenJDK, bad use of |
This adds up. I have, indeed, a very similar approach, but without the meta ports, so called "packages classes". I will consider this in the next round of improvements. The downside is that you have an extra layer which simplifies installation, but the actually ports you use aren't direct anymore and these are which I document. In anycase, both approaches work and have pros and cons. Thanks for sharing. |
Prerequisites
I believe that this isn't possible yet, so seeking for advice or need to create a feature request.
I have a repo with custom ports which aren't and won't be in the FreeBSD ports tree. One port is not selfcontained:
My jails have a base set of ports which include both dependencies from
RUN_DEPENDS
. That repos is build with:Now I want to build this custom tree:
This of course will trigger the build of both runtime dependencies which I don't want since those are already in
ldadw-base
. So I have added both ports to ablacklist
file and poudriere tells me:My port is skipped. My question: Is there anyway to tell poudriere to continue with the port and assume that the dependencies will be provided at runtime? This of course does not apply to build dependencies, but this could also be solved by compiling them, but not exposing them in the repo metadata when hosted for pkg.
Any help is appreciated. The only workaround I see is to remove the
RUN_DEPENDS
or move this port toldadw-base
, but other maybe upcoming custom ports will suffer from the same issue.The text was updated successfully, but these errors were encountered: