redline icon indicating copy to clipboard operation
redline copied to clipboard

unable to create delta rpms from redline rpms

Open ruedigerblock opened this issue 6 years ago • 2 comments

Hello,

We use maven and redline to build RPMs from WAR files. Those RPMs only contain the plain WAR file. Some are pretty big ~ 80MB, thus I tried to create deltarpms. Lets say I have: myrpm-1.0-1.rpm and myrpm-1.2-1.rpm. I should be able to do: makedeltarpm myrpm-1.0-1.rpm myrpm-1.2-1.rpm myrpm-1.2-1.drpm. Which is only about 10 % of the size. But makedeltrpm fails with:

makedeltarpm myrpm-1.0-1.x86_64.rpm myrpm-1.2-1.x86_64.rpm new.rpm -vvvv
Old: myrpm-1.0-1.rpm
New: myrpm-1.2-1.rpm
reading new rpm...
reading old rpm...
USING ELEMENT opt/tomcat
USING ELEMENT opt/tomcat/webapps
USING FILE opt/tomcat/webapps/my.war
files used:       3/3 = 100.0%
files skipped:    0/3 = 0.0%
sequence: 30
creating diff...
writing delta rpm...
payload open failed

I tried a lot of things to make it work but I am stuck. I tried building the RPMs but with a plain text file instead of the WAR but no luck. If I create the RPMs using FPM it works though.

I suspect that it issue is somehow related to the compression method of the payload. This should be "gzip rsyncable" but is "gzip". How do I know ? If I append "-z bzip2" to makedeltarpm, it works. Unfortunately applydeltarpm does not have this switch so I am left with a deltarpm which I can't combine with the source rpm. :-(

I searched the Code and the Docs, but could not find a method to tell the payload which compression mode to use.

ruedigerblock avatar Oct 18 '18 12:10 ruedigerblock

@ruedigerblock did you ever make progress on this? I just encountered the same issue.

oesolutions avatar Apr 14 '21 18:04 oesolutions

Puh ... To be honest: I don't remember ! I switched jobs thus I can't look at the code. But what I do remember is that I figured that this solution did not fit my use case anyway. I had to send GBs of RPMs over a very thin and expensive line on a regular non-deteministic basis. At the end - and this worked amazing - I zipped the release at the source, used RSYNCs send only deltas feature, which did the job flawlessly and the extracted the archive at the destination for further distribution. With delta RPMs you always have to make sure that - as with sequencial backups - you supply the full lineage of RPMs. Which I could not gurantee.

ruedigerblock avatar Apr 14 '21 19:04 ruedigerblock