README.txt 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. Woof
  2. ----
  3. Woof is a "Puppy builder". What this means is you can build your own custom
  4. Puppy Linux live-CD from the binary packages of another distro.
  5. Currently supported: Ubuntu, Debian, Slackware, Arch, T2, Puppy, Mageia
  6. What you get looks and feels just like Puppy, is Puppy. The default selection
  7. of packages gives you a live-CD ISO file about 100MB - 130MB. You also get the
  8. freedom and speed of Puppy, and none of the disadvantages that you may have
  9. perceived with the other distros.
  10. Notice that 'Puppy' is in the list. It may seem a bit "circular" but yes, the
  11. compatible-distro can be one of the Puppy-releases, so you could build a Puppy
  12. live-CD with 100% PET packages. Wary Puppy is built this way.
  13. Preparation
  14. -----------
  15. 1. Suitable build environment
  16. If you are reading this then you have expanded the 'woof' tarball. But, be sure
  17. that this is done in a Linux partition. A Windows/DOS FAT or NTFS partition will
  18. not work! Also, the partition needs lots of space, I suggest 10GB.
  19. 2. Host operating system
  20. You must be running in a Linux environment.
  21. The Linux distro that you are running rght now may have inadequate or missing
  22. 'dpkg-deb' and 'lzma' utilities. This problem also applies to Puppy Linux <= v4.
  23. Place 'support/dpkg-deb' into /bin and 'support/lzma' into /usr/bin, replacing any other
  24. versions (first run 'which' to check they aren't existing elsehwere).
  25. NOTICE: Woof is currently only supported in a running Puppy 4.3+ environment.
  26. Do not use any other Linux distro.
  27. 3. Choose a compatible-distro.
  28. This is the distro whose packages you are going to 'borrow' to build your Puppy.
  29. Open file DISTRO_SPECS in a text editor and change this line:
  30. DISTRO_BINARY_COMPAT="ubuntu"
  31. to what you want, 'arch', 'ubuntu', 'debian', 'slackware', 't2' or 'puppy'.
  32. Building a Puppy: using the commandline scripts
  33. -----------------------------------------------
  34. 0. Download package database files
  35. You must have broadband Internet access.
  36. Open a terminal in the 'woof' directory, then run '0setup':
  37. # ./0setup
  38. ###PENDING###
  39. 1a. OPTIONAL: Tweak common PET package selection
  40. # ./1choosepackages
  41. You can edit the variable PKGS_SPECS_TABLE in file DISTRO_PKGS_SPECS-* to choose
  42. the packages that you want in your build. '1choosepackages' is a GUI that might
  43. make it easier to fiddle with the choices of "common" PET packages, which is
  44. those PETs that are used in all Puppy builds.
  45. Note, file Packges-puppy-common-official is the database of the common PETs.
  46. 1. Download packages
  47. About 500MB drive space is required, but this may vary enormously
  48. depending on the package selection.
  49. # ./1download
  50. 2. Build the cut-down generic Puppy-packages
  51. This will take 2 - 3 hours, depending on your PC. A reasonably modern fast PC
  52. with CPU >= 1.5GHz and >= 256MB RAM is recommended.
  53. # ./2createpackages
  54. 3. Build Puppy live-CD
  55. This gets built in a directory named 'sandbox3' and as well as the live-CD iso
  56. file you will also find the individual built files and the 'devx' file.
  57. # ./3builddistro
  58. Building a Puppy: using the GUI
  59. -------------------------------
  60. NOTICE, OCTOBER 2009:
  61. The GUI is under heavy development.
  62. Currently only tested building from compat-distro Puppy-4 PET pkgs.
  63. I have written a frontend GUI for the above scripts (and then some).
  64. The GUI is also a frontend for all of the configuration files, so you
  65. should not have to directly edit any of them (or that's the plan anyway).
  66. It is a work-in-progress, but quite usable, and I recommend that you use the
  67. GUI interface rather than the commandline scripts, especially when new to Woof.
  68. # ./woof_gui
  69. It will come up with a tabbed-interface, and basically you go from left-tab
  70. to right-tab.
  71. For newcomers, I recommend that you perform a run-through without making any
  72. changes, to confirm that everything works. By default, Woof is configured
  73. to build Puppy 4.3+ from 4.x PET packages only (the compatible-distro is set
  74. to 'puppy').
  75. Newcomer instructions:
  76. SKIP THIS IF LATEST WOOF: 'Download dbs' tab: click the 'UPDATE' button.
  77. 'Download pkgs' tab: click the 'DOWNLOAD' button.
  78. 'Build pkgs' tab: click the 'BUILD ALL' button.
  79. 'Kernel options' tab: choose the latest kernel.
  80. 'Build distro' tab: click the 'BUILD DISTRO' button.
  81. ...then you will have a Puppy 4.3+ live-CD ISO file and a 'devx' SFS file!
  82. LEGAL
  83. -----
  84. Woof is (c) copyright Barry Kauler 2009, puppylinux.com
  85. Woof is free, at this stage a specific distribution licence is not decided.
  86. However, Woof consists of components that are under various 'GPL' licences
  87. and builds from 'GPL' and various 'free' binary packages, so the final
  88. build of Puppy will be in conformance with those and as stated in the Puppy
  89. 'rootfs-skeleton/usr/share/doc/index.html' file.
  90. ------------------------------------------------------------------------------
  91. TECHNICAL NOTES
  92. ---------------
  93. packages-templates directory
  94. ----------------------------
  95. any directory in the template, the files in the target pkg will be cut down to the same selection.
  96. (even if empty dir). Exception, file named 'PLUSEXTRAFILES' then target will have all files from deb.
  97. 0-size file, means get file of same name from deb (even if in different dir) to target.
  98. non-zero file, means copy this file from template to target.
  99. template files with '-FULL' suffix, rename target file also (exs: in coreutils, util-linux).
  100. Any dir in template with 'PKGVERSION' in name, substitute actual pkg version number in target dir.
  101. Except for /dev, /var, all dirs in target are deleted to only those in template, except
  102. if file 'PLUSEXTRADIRS' is found in template.
  103. As a last resort, if target pkg is wrong, a file 'FIXUPHACK' is a script that can be at top dir
  104. in template. It executes in target, with current-dir set to where FIXUPHACK is located. (ex: perl_tiny).
  105. Ran into problem slackware post-install scripts messing things up. See near bottom of '2createpackages'
  106. how damage is limited. Also DISABLE_POST_INSTALL_SCRIPT=yes in FIXUPHACK to disable entirely.
  107. If a dir in template has files in it then target is cut down (unless PLUSEXTRAFILES present),
  108. however there are some exceptions (such as .so regular files). To not allow any exceptions,
  109. place NOEXCEPTIONFILES in the template dir (ex: glibc usr/lib/gconv).
  110. I needed to finetune this some more -- example packages-templates/gettext/usr/lib, have
  111. NOEXCEPTIONFILES, but do want all of libasfprint.so.* whatever the version numbers are,
  112. so can now create zero-size file 'libasfprint.so.STARCHAR' to achieve this.
  113. Packages-puppy-*
  114. ----------------
  115. Notice that there are 'Packages-puppy-2-official' and 'Packages-puppy-2xx-official',
  116. also 'Packages-puppy-4-official' and 'Packages-puppy-4xx-official'.
  117. The '-2xx-' and '-4xx-' database files are local only, used in Woof only.
  118. These files do not get uploaded to ibiblio.org.
  119. They are used for building a "compatible-distro" from PET packages.
  120. The 'DISTRO_PKGS_SPECS-puppy-2' and 'DISTRO_PKGS_SPECS-puppy-4' specify these database files.
  121. The single-digit '-2-', '-3-', '-4-', '-5-' files reside on ibiblio.org also.
  122. These files list the complete contents of each repository.
  123. The reason for having a '-2xx-' as well as a '-2-' database files is because
  124. the latter is a complete record of what is in 'pet_packages-2' directory on
  125. ibiblio.org, whereas the former lists packages being used to build the Puppy
  126. live-CD.
  127. Regards,
  128. Barry Kauler
  129. puppylinux.com