-
Notifications
You must be signed in to change notification settings - Fork 375
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
RFE: introduce an rpm-controlled per-build directory to builds #2078
Comments
This ticket was triggered by the .gemspec file in #2076 and therefore I'd like to share here additional issues we typically face packaging rubygem- packages:
|
The question here is whether we can just point %_builddir to this new directory during build or if we need a new name. The former will keep all spec files working unchanged and just move very package to a save place. Otoh specs relying on having a save name space might cause problems when being build with an older rpm version. |
This keeps coming up in various contexts. It's time we actually do it. |
Couldn't we just make |
See also https://bugzilla.redhat.com/show_bug.cgi?id=1479198 which is a similar issue also including debuginfo not working outside of |
This directory needs to be set up regardless of whether a spec uses %setup or not. And, extracting the sources to the topmost directory would defeat some of the reasons we're doing this to begin with, as explained in the ticket description. |
Added buildroot itself to the description, there's no reason whatsoever to scatter the built content around multiple directories if we have that one top-level directory to rule it all. |
Vpath builds added... |
Making remote execution (cross-compilation) easier added (inspired by #2884) |
...which builds the spec file's code in a dedicated directory now, see <rpm-software-management/rpm#2078> "RFE: introduce an rpm-controlled per-build directory to builds", and no longer in the directory from which rpm is invoked. So invent some libo_start_dir parameter to communicate that directory into the rpm build. Change-Id: I28268837caafe3b892f76e936dfa747fe13fb9bd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173779 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
...which builds the spec file's code in a dedicated directory now, see <rpm-software-management/rpm#2078> "RFE: introduce an rpm-controlled per-build directory to builds", and no longer in the directory from which rpm is invoked. So invent some libo_start_dir parameter to communicate that directory into the rpm build. Change-Id: I28268837caafe3b892f76e936dfa747fe13fb9bd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173779 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins (cherry picked from commit 52b3b38) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175484 Tested-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
I found my way here from the Fedora Developers Matrix chat... After reading through everything a couple of times I get the need for the change at a high level, but it completely broke quilt for me as it doesn't know about the change. Any pointers? |
The current build directory setup is suboptimal in many ways: %_builddir can be shared among multiple packages so there's a possibility for conflicts, cleanup is not straightforward, and OTOH %buildsubdir is dependent on %setup and so rpm cannot rely on it existing at all times.
We should introduce a fully rpm controlled intermediate directory between these two. This gives us a place to safely unpack multiple sources, put per-build temporary rpm-level data without disturbing the pristine sources in the build directory (there's a ticket on that somewhere), including but not limited to eg debuginfo file manifests, gemspec files, place spec parts (thinking dynamic spec generation) and whatnot other context, such as the buildroot directory. It's also trivial to clean up. It would be also easier to share for remote execution (cross-compilation etc), especially if we wrote the build scriptlets to the build directory instead of %_tmpddir.
I know I'm missing a known use-case or two in the above, will add when I remember. Easier to augment an existing ticket...
The text was updated successfully, but these errors were encountered: