refractahrpup: an auto-generated hybrid distro spin

okay, its just a remaster script. but for people waiting for the next version of puppy linux, why not start puppifying distros with scripts the same way its done “by hand?” this is the idea behind refractahrpup, a combination of refracta and puppy tahr in a single .iso file.

currently the program attaches the two distros together, adds one package (fig, naturally– tahr and refracta both include python 2) and copies part of refractas isolinux configuration into puppys.

it is possible to load the puppy sfs from refracta and run binaries from puppy in refracta, although it is sometimes necessary to copy libraries over also.

to boot puppy, type “puppy” at boot. to boot refracta, type “live” at boot.

refractahrpup in puppy mode:



refractahrpup in refracta mode, with puppy wallpaper and running puppys copy of urxvt and mtpaint:



currently there are no puppy-related modifications to refracta mode, you simply have to mount puppy_tahr_6.0.5.sfs with -o loop and copy the relevant part over. but theres no reason this couldnt be done by the script that generates the .iso.

and thats the idea of refractahrpup: automate the puppification of distros and the customization of derivatives. dont just do customization manually and remaster: do it using the remaster script itself, so people can tweak it to remaster the next version of the upstream distro when it comes out.

here is mkrefractapup 0.2, the script that creates the .iso that the screencaps are from:

#### license: creative commons cc0 1.0 (public domain)

proginf "mkrefractahrpup 0.2, jul 2016 mn" print

# lazy way to stop redundant downloads
morewget 1

function addquoted mainv toquote
    q 34 chr
    now mainv  plus " "  plus q  plus toquote  plus q  return now

function urf p
    # filename from url
    # ... return whats to the right of the rightmost "/" (or entire string if "/" not found)
    r p  reverse  instr r "/" minus 1
    ifmore r 0
        now p  right r  return now
        now p  return now

function download iso
    now iso
    now urf iso
    u  urf iso 
    ck "ls"  addquoted ck u  plus " | wc -l"  arrshell  join ck " "  int
    ifequal ck 0
        now "wget"  addquoted now iso  shell

pwd "pwd" arrshell  join pwd "" 

tahrurl ""
refractaurl ""
urftahrurl  urf tahrurl
urfrefractaurl  urf refractaurl

now download tahrurl
now download refractaurl

fpath pwd  plus "/"  plus urfrefractaurl
now "ln -s "  addquoted now fpath  addquoted now "refracta8_xfce_i386_beta-20160526_1442.iso"  plus " 2> /dev/null"  shell

shel "du -b refr*.iso*"
now "hello"  addquoted now shel  colortext 7 print

now "mkdir /mnt/mkrefpup"  shell
now "mkdir /mnt/mkrefpup/iso"  shell
now "mkdir /mnt/mkrefpup/newiso"  shell
now "mkdir /mnt/mkrefpup/fs"  shell
now "mkdir /mnt/mkrefpup/newfs"  shell
now "mkdir /mnt/mkrefpup/unsq"  shell

q 34  chr
now "mount "  plus q  plus pwd  plus "/"  plus urftahrurl  plus q  plus " /mnt/mkrefpup/iso -o loop"  shell
now "cp /mnt/mkrefpup/iso/* /mnt/mkrefpup/newiso"  shell   

# now "cp /mnt/refracta/live/vmlinuz /mnt/mkrefpup/newiso"  shell   
# now "cp /mnt/refracta/live/initrd.img /mnt/mkrefpup/newiso/initrd.gz"  shell   
now "mkdir /mnt/mkrefpup/newiso/live"  shell

now "cp /mnt/refracta/live/vmlinuz /mnt/mkrefpup/newiso/live"  shell   
now "cp /mnt/refracta/live/initrd.img /mnt/mkrefpup/newiso/live/"  shell   

now "cp /mnt/refracta/live/filesystem.squashfs /mnt/mkrefpup/newiso/live"  shell   

now "cat /mnt/refracta/isolinux/live.cfg >> /mnt/mkrefpup/newiso/isolinux.cfg"  shell   

now "/mnt/mkrefpup/unsq"  chdir
now "unsquashfs /mnt/mkrefpup/iso/puppy_tahr_6.0.5.sfs"  shell

now "/mnt/mkrefpup/unsq/squashfs-root/usr/share/"  chdir
iftrue morewget
    now "mkdir fig ; cd fig ; wget ; cp fig31_1.0.deb /mnt/mkrefpup/newiso"  shell

now "/mnt/mkrefpup/unsq/squashfs-root"  chdir
now "mksquashfs . /mnt/mkrefpup/newfs/new.sfs -noappend ; cp /mnt/mkrefpup/newfs/new.sfs /mnt/mkrefpup/newiso/puppy_tahr_6.0.5.sfs"  shell
now "/mnt/mkrefpup/newiso"  chdir

iftrue morewget
    now "rm logo.16 ; wget "  plus q plus ""  plus q plus " -O logo.16"  shell

now "genisoimage -b isolinux.bin -c -no-emul-boot -boot-load-size 4 -boot-info-table -r -J -l -o /mnt/mkrefpup/unsq/rpup.iso /mnt/mkrefpup/newiso/"  shell 


  • this article is in the public domain, some of the images in the article are probably not.
  • generally speaking you are free to take screencaps of your own distro derivative, and i welcome you to use the images in any way you can– i simply cant put them in the public domain as they contain elements that are under one license or another.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s