Comments please: Ports 2.0 SoC application to Google

Aryeh M. Friedman aryeh.friedman at gmail.com
Thu Mar 27 19:27:08 PDT 2008


Abstract:

   Ports 2.0 is designed to be a drop in replacement for the FreeBSD 
ports system that incorporates the lesson learned from Peter Miller's 
"Recursive Make Considered Harmful", 
http://aegis.sourceforge.net/auug97.pdf.   The SoC portion of the 
project will be to create the engine and demostrate its capabilities by 
doing a ground up install and maintaince of the x11/xorg metaport.   The 
implementation it self will be in C++ and use Aegis/Cook/FHist as the 
development environment.   The design is meant to be extensible via 
plugins and embedded modules.   After much field testing and completion 
of the complete project it is hoped Ports 2.0 will replace the current 
ports system.   A hoped for side effect of using Aegis/Cook as the 
dependency management and configuration control systems is, they will be 
used more widely in the FreeBSD community.

   This project has been discussed at length on the 
freebsd-ports at freebsd.org mailing list and while the original team 
disbanded for logistical reasons Ports 2.0 will be tightly coupled with 
Alejandro Pulver's <alepulver at FreeBSD.org> work on his ports to do list 
maintained at http://wiki.freebsd.org/PortsToDo.  Specifically the main 
work for the SoC portion of Ports 2.0 will come under items 3.1 and 5.x 
of the to do list.

   Kip Macy <kip.macy at gmail.com> has agreed to be the mentor for the 
project if accepted as a SoC project provided that no other suitable 
mentor can be found.   For detailed development schedule see the 
"Detailed Description" portion of the this application.   I have used 
FreeBSD since 1995 and before returning to school worked as a research 
scientist and director of R&D for a very early pioneer of streaming 
media which was a 100% FreeBSD shop and required substantial 
modifications to the network stack and file subsytems of the kernel 
(most of which have been since incorporated into the mainstream TCP/IP 
stack/kernel and/or made unnecessary by them).   See resume for more 
detail.

Detailed Description:   

    Please refer to abstract for general description of Ports 2.0.

   Key Features:

       1. Avoidance of all issues raised in "Recursive Make Considered 
Harmful"

       2. Maintain 100% compatibility with current ports system, 
portmaster/portupgrade and
         per project make files.

       3. Provide a documented API for making modules and plugins

       4. Document the theory behind the design so as to allow for 
faithful use of it

       5. For ports not buildable by ports 2.0 (yet) fall back to the 
current ports system and/or portmaster/portupgrade automatically

       6. Demonstrate on a very small subset of ports (for example 
sys/fusefs-ntfs and all it's dependabilities) the ability to trivially 
implement items 5.1, 5.5, 5.11 (awareness of updated base system only) 
from the to do list.

   Key Milestones and deadlines:

       Milestone                Deadline
       ------------------------------------------------
       Complete the build skeleton        Week 1

       Complete the graph library        Week 3

       Dependency scanning            Week 5

       Demonstration of dry run over xorg and    Week 6
        items from feature 6

       Demonstration of building an         Week 7
       non-cyclical ports graph

       Alpha test of xorg build        Week 9

       Beta test of xorg build            Week 11

       Complete API and theoretical         Week 12
       documentation





More information about the freebsd-ports mailing list