Last Edited: 01 May 2008 by superuser
Importered from old WiKi -- 30/04-08 18:04.
Contents
Self Hosting Puppy
      Contents
         Aims
         Current State
         Possible Pathway and Milestones
         List of Compiled Packages
         Useful Resources
         Further Reading

Self Hosting Puppy

Last edited by JonathanMarsden:
Added #puppylinux-selfhosting IRC channel info.
Mon, 20 Feb 2006 00:29 GMT [diff]

Motto: Do it with source!

Abstract: Creating a native software development toolchain for Puppy that can rebuild itself, and using that toolchain to create a Puppy distribution from source.

Contents

0. Aims
1. Current state (as at Puppy 1.0.7 and usr_devx.sfs)
2. Possible pathway to self-hosting (and Milestones)
3. List of packages compiled and tested under Puppy (with status)
4. Useful Resources
5. Further Reading

Aims

The main aim of this project is to systematically create a variant of Puppy which is capable of hosting (building) itself, that is "self-hosting". On the way, it is likely that this will result in the creation of a supportable and consistent development toolchain for Puppy.

Current State

As of Puppy 1.0.7, the official development add on filesystem, usr_devx.sfs , is not compiled from sources, has a few inconsistencies (e.g. openssl, libexif headers) and omissions, and so is insufficient to build some major packages which are part of Puppy.

Possible Pathway and Milestones

How do we get there from here? This project may take a while, so some milestones along the way will be helpful. Initial suggestions are:

KethD added:
M0: Find someplace to host Unleashed and Sourcerer CD ISOs etc
-- all existing relevant source collections -- and get them online.
Puppy Unleashed & Sourcerer CDs
Unleashed CD has some source, Sourcerer CD has most of the rest.
It's a work-in- progress toward compiling Puppy from source.
http://www.pupweb.org/puppy/download/downpage.htm

I (JonathanMarsden) am not sure this is really a pre-requisite for the project. It seems more likely to me that these would be useful around M4/M5 than when creating the toolchain itself. We already know that the contents of usr_devx.sfs were not compiled from sources, and so their source code is (as far as I know) not on the Unleashed or Sourcerer CDs. Doing this is a good idea, and I suspect that TheBabbs might be able to make these available for FTP for us.
But I don't think we need to hold up work on M1 until this is done.

M1: Creation of a set of pupget packages, all compiled from source, that have equivalents for everything in the Puppy 1.0.7 usr_devx.sfs .

M2: Creation of an "upgraded" or "alternate" filesystem of developer tools, perhaps named usr_devx-open.sfs or similar.
[FlaVour: Puppy2's file will be called devx_xxx.sfs, where xxx is the version number. It is a whole /, not just a /usr]

M3: Confirmation that the developer toolchain in M2 can build itself, and that the resulting newly built toolchain works as expected in Puppy 1.0.7. Publication of an automated test framework for this, if practical.

M4: Creation of a "command-line-only" variant of Puppy, perhaps called "Puppy Commander" or similar, using the M2 toolchain. Every component of this variant would be built from source, and source code packages would be made available for the entire distribution, along with a script or a Makefile or other method to compile "the world".

M5: Creation of a variant Puppy that includes the X Window System (probably Xorg) and a window manager, and at least some basic graphical applications, all of which can be compiled from source from within the M4 "Puppy
Commander" distribution. This variant would be more of a "proof of concept" than a full, user-friendly direct replacement for Puppy 1.0.7.
[FlaVour: Perhaps package selection can be based on EmptyCrust]

M6: Addition to M5 of the remaining packages from Puppy 1.0.7, but all built from source and compilable under the M4 or M5 variants, such that a newcomer would not find the result significantly less featureful or less easy to learn and use than Puppy 1.0.7.

M7: If we ever reach M6, we could then suggest that this approach be used as the basis for future "official" Puppy distributions, and work with others towards that end. Getting this approach accepted by BarryK and the Puppy Foundation would constitute reaching Milestone 7. At that point, this would no longer be a sub-project at all, but would in effect have "become" Puppy!

Note: There is no mention of a real-time kernel, or CNC-specific code, here. I know little or nothing about that arena, and would see that as a highly-specialized variant that might be related to, and would probably benefit from, this more general "do it with source" project.

List of Compiled Packages

A list of already compiled and packaged items, giving their status and ideally a link to download both the source and binary packages, should go here. Soon?

Package Name Status Binary Package Source Package
helloworld-0.1 dummy N/A N/A

Useful Resources

Links to useful resources for this sub-project.

Project Email List

Project IRC channel

  • #puppylinux-selfhosting on irc.freenode.net : This has not seen much use yet, but it exists.

Discussion of self-compiling Puppy

Wiki pages

The GNU Autotools book, online

Distributions built from source on the End-users machine:

Notes about a CNC-related Puppy distribution

Further Reading

Links to other books and documentation and pages that are related to this project, but perhaps not directly relevant, go here.

JonathanMarsden

CategoryDevelopment