README-FIRST 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. Woof2 README
  2. ------------
  3. *PLEASE READ ALL OF THIS, INCLUDING THE EXTRA NOTES*
  4. Woof2 has two major enhancements over "Woof1":
  5. 1. Supports multiple architectures (exs: x86, arm)
  6. 2. VCS (Version Control System) friendly
  7. This is achieved by splitting the 'woof-tree' of Woof1 into three directories
  8. 'woof-arch', 'woof-code' and 'woof-distro':
  9. woof-arch: architecture-dependent (x86, arm) files, mostly binary executables.
  10. woof-code: the core of Woof. Mostly scripts.
  11. woof-distro: distro-configuration (Debian, Slackware, etc.) files.
  12. To create a working directory, named 'woof-out_*', that you will then use just
  13. like you did before with Woof1, you first have to run the 'merge2out'
  14. script. This merges the three directories into a directory named 'woof-out-*'.
  15. You then 'cd' into woof-out_* and run the usual Puppy build scripts.
  16. The great thing about this merge operation is that you can choose exactly what
  17. you want to go into woof-out. You can choose the host system that you are building
  18. on (usually x86), the target (exs: x86, arm), the compatible-distro (ex: debian),
  19. and the compat-distro version (ex: squeeze).
  20. So, you create woof-out without any confusing inappropriate content.
  21. The script 'merge2out' has further explanation of the VCS support,
  22. but basically, 'woof-code' content has been modified to make it VCS-friendly.
  23. A VCS such as Fossil will be able to handle the dirs 'woof-arch', 'woof-code'
  24. and 'woof-distro'.
  25. The 'merge2out' removes those VCS-friendly features from woof-out, so that
  26. woof-out is restored to a normal Woof build environment.
  27. For example, woof-code has a file named 'EMPTYDIRMARKER' inside every empty
  28. directory, and these are removed from woof-out.
  29. Another example, woof-code/boot/initrd-tree0 and woof-code/rootfs-skeleton has
  30. 'dev' directory converted to *DEVDIR.tar.gz tarballs (and stored in woof-arch),
  31. as VCS's cannot handle device nodes.
  32. So, to get going with Woof2, open a terminal inside 'woof2' and do this:
  33. # ./merge2out
  34. # cd ../woof-out_<REST OF DIRNAME>
  35. Regards,
  36. Barry Kauler
  37. Nov. 24, 2011
  38. bkhome.org/blog
  39. NOTE Nov. 25, 2011
  40. ------------------
  41. Directory woof-code has a lot of binary files in it, but git, svn, mercurial and
  42. fossil all support binary files -- in fact they feature automatic detection of
  43. binary files. Note, cvs has very limited support for binary files.
  44. I was going to move all binary files from woof-code to woof-arch, thinking to have
  45. all binary files in woof-arch only, and started some code in script 'vcs-workarounds'
  46. (commented out). The thinking was that woof-arch could be left out of the VCS if it
  47. does not support binary files, but as most do, I decided that it is an unnecessary
  48. complication.
  49. I did a bit of research and found that a lot of projects store binary files in
  50. their VCS, so Woof is not so unusual.
  51. So, woof-code is allowed to have architecture-independent binary files, such as
  52. images. woof-arch has architecture-dependent binary files, such as executables
  53. for x86 or arm.
  54. NOTE Nov. 26, 2011
  55. ------------------
  56. Woof1 was for building an x86-based Puppy only. Woof2 inherits all of that, so
  57. can be used for x86 "build" and x86 "target" environments. When you run the
  58. 'merge2out' script, do not choose anything else.
  59. I am currently working on x86-build, arm1176jzf-s-target, but it is not yet
  60. complete. Basically, more arm packages are needed to build a working Puppy.
  61. I am working on an arm Dpup, using Debian Squeeze compatible-distro binary
  62. packages.
  63. NOTE June. 18, 2014
  64. -------------------
  65. by 01micko
  66. Woof-CE, a fork of woof2 can build the same as woof2 however a new feature
  67. has been added as of today. It now has the ability to build a distro with out
  68. modules in the initrd.gz, a feature which had been pioneered by Fatdog
  69. developers kirk and jamesbond. This has a number of advantages over the
  70. legacy kernel builds.
  71. 1. No messy copying kernel modules from the initial ram disk to the root
  72. system.
  73. 2. Ease of changing kernels.
  74. I have named this the 'huge' type kernel, for want of a better term. The
  75. rationale for this is that Slackware developers name their default kernel
  76. "huge-$some_suffix". The reason is that the vmlinuz kernel image contains
  77. all the necessary filesystem and hardware drivers to get the system to boot
  78. and hand over to the real running system. Once that occurs, kernel modules
  79. are loaded to bring up the rest of the hardware and extra filesystems if
  80. necessary.
  81. "kernel-kit", part of woof-CE, and a work in progress, now has the ability
  82. to produce one of these 'huge' style kernel packages. Please read the relevant
  83. README and the comments in "build.conf" inside the kernel-kit directory.
  84. To use this new feature just start woof-gui or 0setup as usual. Run through
  85. the download stage. The 1download now will not to download a legacy style Puppy
  86. kernel. At the 3builddistro stage there is a new button in the 'woof-gui' named
  87. "HUGE BUILD DISTRO". This button invokes an alternate script named
  88. "3builddistro-Z". If using CLI just call ./3builddistro-Z as normal.
  89. If you have built a "huge" style kernel with kernel-kit then place the package
  90. in the "huge_kernel" directory at the root of your woof installation. If not,
  91. one will be downloaded for you after you invoke 3builddistro-Z from the
  92. woof-gui or CLI. You do get a choice of which version you want. Be sure you
  93. choose the correct architecure. All 32 bit builds are suffixed with either
  94. i486, i686 or x86. All 64 bit builds are suffixed x86_64. At the end you will
  95. end up with an iso image, devx and checksums as usual.