How to extract, modify the contents of a delta file iso?

For discussions about programming, programming questions/advice, and projects that don't really have anything to do with Puppy.
Post Reply
Message
Author
User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

How to extract, modify the contents of a delta file iso?

#1 Post by Argolance »

Hello,
I don't know exactly how a "delta" file is built but I presume that, in one way or the other, iit contains the added or modified files. I would like to see the exact list of modified files of an iso file, extract them to be able to modify some of them and then, manually copy them to the new iso.

How could this be done?

Thank you.
Cordialement.

amigo
Posts: 2629
Joined: Mon 02 Apr 2007, 06:52

#2 Post by amigo »

A delta file consists of binary changes which cannot be extracted. It inserts/deletes binary values which are not correlated to file names, etc. The 'binary' representation of an iso is a linear form, mixing the metadata(file system formatting/padding) and data together.

In order to see the results in a conventional 'diff' form, you'd need to compare mounted images of before and after copies of the modified iso.

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#3 Post by Argolance »

Hello,
Thank you for answering.
I mounted the Puppy iso files, then mounted sfs files, then launched xdiff.
Now, I have to examine in great detail all the files, one after the other, (without knowing their names!), even those that are identical, to effectively notice the differences between old and new files... But this is not what I expected: names of modified/new files inside a simple list would have been very sufficient for my need:
I built an iso file based on Puppy precise 5.4.1. Meanwhile, the Puppy 5.3.4 was released and I cannot upgrade directly with any delta file because my own modified files would be overwritten by the new ones if existing.
If I well understand, I just have to do all the work again... till next release and for each one? Is there not an other way to proceed?

Cordialement.

amigo
Posts: 2629
Joined: Mon 02 Apr 2007, 06:52

#4 Post by amigo »

Use 'diff' to get a real diff file:
diff -pruN olddir newdir > delta.diff

It may be very long. To get a quick file-by-file look, I usually open the diff in my favorite text editor, then use the serach function to search for: '+++'
That will take you to the first relevant line of the diff for each altered file. xdiff or other graphical diff programs make it pretty tedious -as you say they show even unaltered files.

Yes, unfortunately you must repeat the process every time therre is an update -just as you'd have to do if the original changes were already in a diff file. Keeping up with version changes is a royal PITA -especially when the changes are done with no consideration as to what the diff will look like. What I mean is, if a diff includes mayn un-related changes then you'll have no clue as to which parts of the diff are related. Also, whitespace or other formatting changes will also show up and are particularly hard to distinguish from changes which are really relevant. This is why I have always encouraged the use of separate diff files for each relevant change. Developers who mix bug-fix releases with new fetaures and whitespace/format changes make me very angry! Take FireFox/SeaMonkey for example -how can you possibly know which release might be more reliable or safer than any other release? Bug-fix releases should add *no* other changes, and whitespace changes should be handled in a diff which contains *no* other changes. Note that redhat has begun to deliberatley *not* release separat difss in order to obscure their changes -or at least make them harder to isolate and be used by others. What a lovely example: open-source obscurity.

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#5 Post by Argolance »

Hello amigo,
Thank you for replying and explanations.

I don't know if "our" BK (who already makes a lot!) is attentive/sensitive to the bothers met by the pupplets makers but it would be very convenient (and very simple too) for them to get an exhaustive list of modified/added/removed files when jumping from a release to another, I mean, for example, from 5.4.1 to 5.4.2 and so on. For the rest, this can easily manually be done through pets and service packs...

Have a good day and good luck!

Cordialement.

Post Reply