Description of problem:
When creating an (admittedly large) RPM, rpmbuild bombs out with:
Processing files: matlab-2012b-1.el6.x86_64
Checking for unpackaged file(s): /usr/lib/rpm/check-files /local/home/rpmb/rpmbuild/BUILDROOT/matlab-2012b-1.el6.x86_64
error: Unable to create immutable header region.
RPM build errors:
Unable to create immutable header region.
I was a bit surprised to hit this as although I am trying to build a big package, it's well below the 16 GB limit for rpm.
buildroot details for the package:
$ find ../BUILDROOT/matlab-2012b-1.el6.x86_64/ | wc -l
$ du -sh ../BUILDROOT/matlab-2012b-1.el6.x86_64/
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Try to build a large rpm with a moderate number of files
There's no "16 GB" limit, the theoretical maximum payload size is INT64_MAX but in practise you'll run into various other issues long before that. Such as this... It's not related to the size of the contained files, but the total number of them which causes the metadata size to exceed the (artificial) limitations imposed on headers:
* Sanity check on data size and/or offset and/or count.
* This check imposes a limit of 16 MB, more than enough.
#define HEADER_DATA_MAX 0x00ffffff
#define hdrchkData(_nbytes) ((_nbytes) & (~HEADER_DATA_MAX))
/** \ingroup header
* Maximum no. of bytes permitted in a header.
static const size_t headerMaxbytes = (32*1024*1024);
See bug 462539 and bug 706935 for background and related issues.
For now, the easy workaround is to split up the package into smaller pieces.
OK, understood, thanks. I guess that's a WONTFIX for rhel6. Can you regard it as an RFE for rhel7 tho? :)
This request was not resolved in time for the current release.
Red Hat invites you to ask your support representative to
propose this request, if still desired, for consideration in
the next release of Red Hat Enterprise Linux.
OK, closing it here. The issue moved to the upstream bug tracker to be fixes in future RPM versions: http://rpm.org/ticket/862
Thanks for reporting!
I ran into the same problem with fedora 18 and matlab 2013a with all matlab tool boxes. Will there be a fix in fedora 19 and redhat 7?
In the upstream bug report there are no changes since the report.
We are currently working on the improved payload format. However it is not even in upstream yet so getting it into RHEL and Fedora will take some time. We *might* be able to push it in F20 but certainly not sooner (F19 has a devel freeze in a few weeks IIRC). Then it needs some stabilization and testing before it hits RHEL. Therefore the chances of this feature hitting RHEL7 during its life cycle are very close to zero.
Thanks for the evaluation!
A hint for those who run into problems with the big data of matlab (see comment 1):
I have used subpackages in the rpm spec file to create a number of smaller rpm files instead of one big which crashes during build. For example, I used the following files declaration:
See the documentation for rpm spec files how to create subpackages.
Jan, this is not a payload issue but an artificial cap on header size.
(In reply to Panu Matilainen from comment #9)
> Jan, this is not a payload issue but an artificial cap on header size.
Ah, sorry, I misunderstood the description and figured it will be addressed together with the payload change. Thanks for the correction.
Anyway I still don't expect this to land neither in F19 nor in RHEL7, right?