Single package repo (...or how to stop building chromium)

We have a poudriere server that builds all the packages we need on our servers.
The port that gives us the most headaches is chromium. We use it with www/selenium to do automated web functionality tests.

We've basically given up on maintaining the build, it can take hours to build, even with ccache, and sometimes breaks for strange reasons, while still building for the official repo.

What we want to do is keep FreeBSD repo disabled, but still install chromium from there.
I thought `pkg install --repository FreeBSD chromium` would allow us to do it, but apparantly the docs for pkg-info are wrong, setting --repository does *not* enable an otherwise disabled repository.

Is there a simple way to have the FreeBSD repsitory configured, but ensure it's only used to install chromium? I don't want to use priorities, unless there is a priority that says "Never install from this repo, unless explicitly selected" because I just know that future me will start using a new package and forget to add it to poudriere, and I won't notice because the server will just fetch it from upstream and I'm none the wiser.

Any ideas?
 
We have a poudriere server that builds all the packages we need on our servers.
The port that gives us the most headaches is chromium. We use it with www/selenium to do automated web functionality tests.
ports-mgmt/poudriere-devel has the option to pull packages from the official repositories. That might be a good solution for you in this case.

Edit: Zirias and I seem to have the same idea :)
 
This may be going off on a tangent, but I think you guys should stay away from Chromium because it's got issues with offline disk cache size management - and that setting is not only difficult to find, it keeps drifting in and out of different versions, adding to the nightmare. A long time ago, I once worked around that on Windows by installing Chrome to a VHD that has hard limits on size - that led me to ditching Chrome/Chromium altogether. And to this day, I still don't see that the issue was ever properly resolved. ?
 
Funny, I still have an unresolved issue about getting updates to show up:
 
On a quick glance, this looks like you're doing "funny" things with your tree to only contain some ports or whatever ... poudriere needs a complete tree to work correctly. You typically tell it what to build with the -f option.
 
On a quick glance, this looks like you're doing "funny" things with your tree to only contain some ports or whatever ... poudriere needs a complete tree to work correctly. You typically tell it what to build with the -f option.
Yeah, that was a quick glance. I take the complete tree, and update a subset of ports in there.
 
IMHO better approach: pull the binary package into your repository. ports-mgmt/poudriere-devel automates that, just add this to your poudriere.conf:
I installed poudriere-devel, but it doesn't help me at the moment, because the official 122amd64 builders can't build the chromium version in the latest port tree either, so poudriere continues to try to build. It doesn't care that there is a binary pkg for an earlier version in the repo.
 
poudriere bulk -b latest -j 12amd64 -z default -p 12amd64_default

PACKAGE_FETCH_BRANCH=latest
PACKAGE_FETCH_WHITELIST="chromium"

Just tried now and it worked! I guess the package got build upstream
... and now it doesn't work.
"deps wanted" and "deps remote" don't match. I guess a port like chromium with the number of deps it has will have a hard time. Every time a dep port is upgraded poudriere will check for an upstream pkg and when it doesn't exist (because it takes forever to build) it will try to build it itself.
 
... and now it doesn't work.
"deps wanted" and "deps remote" don't match. I guess a port like chromium with the number of deps it has will have a hard time. Every time a dep port is upgraded poudriere will check for an upstream pkg and when it doesn't exist (because it takes forever to build) it will try to build it itself.
Your interpretation isn't correct. Un upgraded lib won't trigger this, as long as it isn't a breaking change (which would require a new "minimum version" for the dependency, or in case of a lib dependency, depend on a new "SONAME"). What you see here is a changed list of dependencies as a result of a change to chromium itself:
The dependency changes are obvious from the commit message.

Yes, it will take the official builders a while (probably a few days) to have a package for that new version. Either wait for it or just build it yourself this time.
 
Yes, it will take the official builders a while (probably a few days) to have a package for that new version. Either wait for it or just build it yourself this time.
The reason I started this thread is because chromium fails to build, and has been failing for a few weeks.

I started a new thread about it, since it's unrelated to this issue.
 
As a workaround, you could add a BROKEN= line to the chromium port Makefile (e.g. in a local git branch that's automatically rebased onto main when updating) and also set this in poudriere.conf:
COMMIT_PACKAGES_ON_FAILURE=no

This way, your own repository will only be updated when chromium could be fetched successfully.
 
Back
Top