If it's not on-topic, it's in here.
Post a reply

distdiff 0.1 - compare 2 isos with squashfs / md5deep

Mon Aug 01, 2016 8:29 am

here is what the uploads of mkfigos 0.8 and mkfigos 0.9 say:

0.8: upgrade to latest refracta, upgrade to icewm, added leafpad, hsetroot, yadless, battery indicator in icewm, added "auto-edited by" to scripts that might otherwise be thought of as unedited.

0.9: icewm menus fixed, puppy yad upgraded, simple python server, rox copied from puppy to refracta


but you want to check, so you load up distdiff on the isos like this:

Code:
# distdiff mkpup/figos0.8.iso mkpup/figos0.9.iso | grep -v "^="


and you get this on the screen:

Code:
mount: /dev/loop3 is write-protected, mounting read-only
mount: /dev/loop4 is write-protected, mounting read-only
< eb5b8e66405d071c9e34dd13a791fb3f usr/share/icewm/keys
< 10fd9f051accb6fd1f753f2d48371890 etc/rc.local
< a4cf948f7f005241c648811b49cd5261 usr/share/alsa-base/alsa-info.sh
< 6d009c4e23a4ba8fdf0798599d94b93b usr/sbin/getflash
< b3fd20aa58c33f2f28625fdad7d72b48 usr/sbin/check_internet
< ecca8272eac8025c5f08efe632145abf usr/sbin/Pudd
< 1bad027fe65499b72134eef44fd8ec4d usr/local/yassm/yassm-search
< 86f8a266a06b361b3ffccee6ba9efa0c usr/local/video_upgrade/video_upgrade_wizard
< e5cc397e188dd1cab2340558fed8352c usr/local/petget/service_pack.sh
< 76742d642bb19544637d0b6272e44aa4 usr/local/petget/devx_service_pack.sh
< 635d6408a6a3be785450b84d20239c69 usr/local/apps/pnethood/pnethood
< b93d969f839faae38712a3c2da3f4a94 usr/bin/yad
< 343425f121dbd6f15fdc06d699ec7575 live/filesystem.squashfs
< 036e0e898d6220977ff56b95df264e26 root/.bashrc
< a02f9d69458bf2741d293547ae0dd1fa puppy_tahr_6.0.5.sfs

> 86c1a95602845c6fdb373811c9678e93 usr/share/icewm/keys
> 5b3f32c16700534744e91f726393a338 usr/local/apps/rox
> 00906ab93fe63b14e724103278822cec usr/bin/pserver
> b20a11718e0ec2d6ffa85a9aaf61e306 etc/rc.local
> c3fc8b18407a7f6d91aa87555ca5a841 usr/share/alsa-base/alsa-info.sh
> fe8ddef6e4753987e1edba28012becb8 usr/sbin/getflash
> 31dc183ed6b5328861139e5cc71dd425 usr/sbin/check_internet
> f8891221fa7edbd0c6e0b27befa6754f usr/sbin/Pudd
> c014ae15d62831dd6b02dd526d098256 usr/local/yassm/yassm-search
> 285a88c9d7cb3271145a8b7260bb665a usr/local/video_upgrade/video_upgrade_wizard
> beda1a99bfe3b98a3077db02a8d23345 usr/local/petget/service_pack.sh
> 49858ff3cd332c9744accabb2a038a61 usr/local/petget/devx_service_pack.sh
> 7b58a012ae905571378d45eef4c8d1fa usr/local/apps/pnethood/pnethood
> 00906ab93fe63b14e724103278822cec usr/bin/pserver
> d6b1d04ca51db82d7da062618b18fc71 live/filesystem.squashfs
> 389a583eaa0e3e18724f266c4e9c7722 root/.bashrc
> 5cda6eb0a21ea4c7610615ec48d97df4 puppy_tahr_6.0.5.sfs


here is the fig script:

Code:
#### license: creative commons cc0 1.0 (public domain)
#### http://creativecommons.org/publicdomain/zero/1.0/

proginf = "distdiff 0.1, aug 2016 mn"

# this program is FREE SOFTWARE and comes with NO WARRANTY

debinstall_md5deep 0

function cmd
python
    from sys import argv as figargv ; return figargv[1:]
    fig
    fig

function plusquotes st mvar
    q 34  chr  #plus "\\" reverse
    qq q  times 2
    now mvar  plus " "  plus q  plus st  plus q  split now qq  join now q  return now
    fig

function orph mvar
   ck instr mvar "/"
   iftrue ck
       mlen mvar  len  minus  ck
       now mvar  right mlen  return now
   else
       now  return mvar     
       fig
   fig

e 0
try
f1 cmd mid 1  1
f2 cmd mid 2  1 rtrim
f3 "."
#f3 cmd mid 3 1 rtrim

pwd "pwd" arrshell mid 1 1
whoami "whoami" arrshell mid 1 1
e 1

ifequal whoami "root"

iftrue debinstall_md5deep
    now "echo installing md5deep ; apt-get install -y md5deep 2> /dev/null > /dev/null" shell
    fig

now "mkdir  " plusquotes f3 now plus "/1 2> /dev/null" shell
now "mkdir  " plusquotes f3 now plus "/2 2> /dev/null" shell
now "mkdir -p " plusquotes f3 now plus "/1/iso/1 2> /dev/null" shell
now "mkdir -p " plusquotes f3 now plus "/2/iso/1 2> /dev/null" shell
now "mkdir  " plusquotes f3 now plus "/1/sqfs 2> /dev/null" shell
now "mkdir  " plusquotes f3 now plus "/2/sqfs 2> /dev/null" shell

now "mount " plusquotes f1 now  plus " 1/iso/1" shell
now "mount " plusquotes f2 now  plus " 2/iso/1" shell

onesq "find 1 | egrep -i '.sfs$|.squashfs'" arrshell 
sqlen onesq len minus 1
onesq left sqlen #print

num
forin sq onesq
inc num val  plus 1  str  swap inc num
now "mkdir 1/sqfs/"  plus num  plus " 2> /dev/null"  shell
now "mount " plusquotes sq now  plus " 1/sqfs/" plus num   shell
next

twosq "find 2 | egrep -i '.sfs$|.squashfs'" arrshell 
sqlen twosq len minus 1
twosq left sqlen #print

num
forin sq twosq
inc num val  plus 1  str  swap inc num
now "mkdir 2/sqfs/"  plus num  plus " 2> /dev/null"  shell
now "mount " plusquotes sq now  plus " 2/sqfs/" plus num   shell
next

#now "mount | egrep 'iso|1|2'" shell

try
o "md5deep -of -sr 1" arrshell
except
pass
resume

try
p "md5deep -of -sr 2" arrshell
except
pass
resume

now "umount " plusquotes f3 now plus "/1/sqfs/* 2> /dev/null" shell
now "umount " plusquotes f3 now plus "/2/sqfs/* 2> /dev/null" shell
now "umount " plusquotes f3 now plus "/1/iso/1  2> /dev/null" shell
now "umount " plusquotes f3 now plus "/2/iso/1  2> /dev/null" shell

function ckl p
plen p len
r "" arr times plen plus 2
forin each p
md5 split each " " mid 1 1   
ck pwd len plus 37
pathlen each len minus ck
iftrue ck
path each right pathlen  orph path  orph path
else
path ""
fig
now md5  plus " "  plus path
r arrset plen now
ckplen plen minus 1 swap ckplen plen
#ckplen plen mod 250
#ifequal ckplen 0
#now plen prints " " prints
#fig
next
now return r
fig

o ckl o
p ckl p

xc
yc

#z "in "  plus f1  print
forin y o
yin instr p y sgn
ifequal yin 0
z "< " prints
z y print
else
z "= " prints
z y print
fig
next

z ""  print
forin x p
xin instr o x  sgn
ifequal xin 0
z "> " prints
z x  print
#else
#z "= " prints
#z x  print
fig
next
now ""  print

else   
    now whoami
    e 1
    now "sudo distdiff " plusquotes f1 now  plusquotes f2 now   now shell
   
    fig

except

ifequal e 0
z proginf print "usage: distdiff iso-file1 iso-file2" print "" print end
fig

resume
Post a reply