free software resistance

 the cost of computing freedom is eternal vigilance

### distdiff.fig *original date:* jun 2017 *originally posted:* oct 2024 distdiff.fig: ``` #### license: creative commons cc0 1.0 (public domain) #### http://creativecommons.org/publicdomain/zero/1.0/ proginf = "distdiff 0.3, jun 2017 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 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|\/linuxfs'" 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|\/linuxfs'" 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 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 ``` license: 0-clause bsd ``` # 2017 mn # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ``` => https://freesoftwareresistance.neocities.org