All-
If there's anyone out there that's using RPM for packaging on Tru64 UNIX or IRIX, I've recently discovered a limitation in the osf.prov and irix6.prov that are distributed with RPM. The osf.prov can't handle shared libraries with an IVERSION field that's more than awk's LINE_MAX bytes long -- approximately 5K. I haven't tested yet, but I'm guessing that the irix6.prov has the same issue.
I contributed both of those, so I feel a certain responsibility regarding those scripts (and the others I've contributed).
The problem turns up when
- you build a package that has shared libraries that are created via libtool.
- the shared libraries have an ABI that hasn't changed in a significant time.
One example of this is atk-1.9.0, which is part of the gtk+ prereqs. Because the atk interface hasn't changed since version 1.0, it calls libtool with a command line that includes
-version-info 900:0:900
which results in libtool creating a shared library that has an internal version field (IVERSION or DT_IVERSION, depending on platform) that is more than 5K in length. That overflows LINE_MAX within awk, which was used by the osf.prov and irix6.prov scripts.
I've updated the osf.prov to not use awk at all -- instead it calls odump twice and uses sed and a shell loop to process the SONAME and IVERSION fields. It's less sexy, and a bit slower to boot, but it allows osf.prov to correctly handle shared libraries with an IVERSION that's much longer than the previous version could handle. There's still a limitation, it's just much larger.
If anyone needs this or the updated irix6.prov, please let me know. I'll submit it and irix6.prov for inclusion in some future version of RPM after I've done more testing with it.
Tim -- Tim Mooney mooney@xxxxxxxxxxxxxxxxxxxxxxxxx Information Technology Services (701) 231-1076 (Voice) Room 242-J6, IACC Building (701) 231-8541 (Fax) North Dakota State University, Fargo, ND 58105-5164
_______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/rpm-list