If you own a component in the SFW gate or plan on integrating one in the 
future, read on and read carefully...

My recent integration of

  6836557 sfw gate needs consistent metadata

introduces some change to the SFW gate.

    * Each component now contains a METADATA file and that METADATA file
      should contain a consistent set of fields with consistent values.
    * The component builds will now validate that each component
      contains a METADATA file and that the file contains what appears
      to be valid data.
    * All components' Makefile.sfw now indirectly include
      $(SRC)/Makefile.targ, which defines sets of common rules.  There
      are currently rules defined for
          o unpacking source for both 32 and 64 bit builds
          o patching source for both 32 and 64 bit builds
          o validating METADATA file contents
          o hooks for other actions
    * Two new top level targets have been introduced
          o 'meta-check' to validate the METADATA files across all of
            the components in the gate.
          o 'component-hook' to perform a supplied action across each
            component in the gate. (see example below)

If you attempt to build a component and it doesn't contain a METADATA 
file or the validation tool determines it to be invalid in some way, 
your build will fail.  You must correct any ERROR reported by the 
validation tool in order to proceed with your build.

If you own a component in the gate...

    Please take the time to look at the METADATA file that currently
    exists and verify it's accuracy.  If the file doesn't contain
    accurate information, please update it.  A complete description of
    the METADATA file contents can be found at
    http://wikis.sun.com/display/SFWNotes/METADATA.

If you have a workspace that is waiting to integrate into the gate...

    You must resync with the gate, add or update your METADATA file,
    rebuild your component, and resolve any issues that show up.  If you
    don't, your integration will very likely break the gate.

A note about the OWNER field...

    In the process of making these updates, I found the majority of the
    OWNER information in the existing METADATA files was way out of
    date.  As a result, I have removed the OWNER field from the METADATA
    and will be placing it in a table on the gate website, possibly out
    on http://wikis.sun.com/display/SFWNotes/ as well.  In the end, the
    decision to remove the OWNER came down to the fact that staffing
    changes shouldn't require a putback into the gate.

Example of checking a component's METADATA:

    % cd {component-dir} ; make -f Makefile.sfw meta-check

Example of checking all components' METADATA:

    % cd ${SRC}; make -f Makefile.sfw meta-check

Example of invoking 'component-hook' support:

    % cd ${SRC} ; make COMPONENT_HOOK="cat METADATA" component-hook

One more bit of information about some changes on the horizon...

    Over the next few weeks, I will be going through the various
    components and unifying their unpacking and patching methodology
    (hence some of the rules in $(SRC)/Makefile.targ).  I will be
    updating all of the unpacking and packing rules in the gate to use
    the tools defined in Makefile.master and rules in Makefile.targ (at
    least where possible).  I will also be converting all patching that
    I find to use unified context diffs that can be applied using "cd
    $(@D) ; gpatch -p1 <.../foo.patch" during the patching phase of a
    component build.

    If you are integrating any new components into the gate over the
    next few weeks, I would recommend that you take advantage of the
    existing unpacking and patching rules already in the gate and that
    any patches that you supply be unified context diffs that can be
    applied via "cd $(@D) ; gpatch -p1 <.../foo.patch"

    Unified Context Diffs can be generated using "diff -u" (see diff(1))
    Ex:
        % diff -u cups-1.4b2/backend/serial.c.orig
    cups-1.4b2/backend/serial.c >> Patches/00-backend-serial.c.patch


  -Norm


Reply via email to