[Rpm-maint] [rpm-software-management/rpm] How to change a header value of something in the base and in the package file itself? (#478)

Victor Polevoy notifications at github.com
Fri Aug 3 13:41:14 UTC 2018


Thanks very much for the help. There are a lot of thins which prevented me from doing what I need, though I managed to do it eventually. As a sort of thanks, here is what I had problem with and what needed to do:

Problems:
1. I don't need to remove immutability from headers for modifying them. Even if I had needed, it would have segfaulted all the time in `qsort` call somewhere in `headerGet`.
2. I don't need to mimick `lib/pack.c` or `sig/rpmgensig.c`'s package modifier functions because all of these manipulations are not applicable just for changing some header tag value. The reason of that is that the function which is called in both of these places, `rpmGenerateSignature` uses `rpmtd` inside it and I found (after spending a lot of time, of course) that it actually writes more than needed, all the time, and corrupts the header located after it (I got header read errors - bad magic all the time). I decided not to use this at all and to regenerate header's SHA1 hash and manually putting it inside my signature header with just `headerDel`/`headerPutString` functions without any `rpmtd` objects and everything worked fine.

I needed to patch an existing rpm by adding a certificate inside it. It seemed to be an easy task but the code in the rpm looks very complicated to me and I spent like 2+ weeks doing this easy thing: adding a header enum value and patching and rpm. I wish the librpm be not so useless for developers (it is just like nothing for a developer because he can't do anything with it).

Thank you again for spending time on my questions.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/478#issuecomment-410246821
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rpm.org/pipermail/rpm-maint/attachments/20180803/5807a56d/attachment-0001.html>


More information about the Rpm-maint mailing list