OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Thomas Lotterer
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-re                       Date:   30-Jan-2004 21:25:49
  Branch: HEAD                             Handle: 2004013020254900

  Modified files:
    openpkg-re              upgrade.txt

  Log:
    talk about tags, headers, sections and intermediate upgrade step

  Summary:
    Revision    Changes     Path
    1.21        +90 -1      openpkg-re/upgrade.txt
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-re/upgrade.txt
  ============================================================================
  $ cvs diff -u -r1.20 -r1.21 upgrade.txt
  --- openpkg-re/upgrade.txt    30 Jan 2004 09:26:03 -0000      1.20
  +++ openpkg-re/upgrade.txt    30 Jan 2004 20:25:49 -0000      1.21
  @@ -2,7 +2,7 @@
     General Notes
     =============
   
  -  o $Revision: 1.20 $. The most recent update of this file can be
  +  o $Revision: 1.21 $. The most recent update of this file can be
       downloaded from http://cvs.openpkg.org/openpkg-re/upgrade.txt
   
     o This file upgrade.txt file talks about tweaks and quirks when
  @@ -105,6 +105,95 @@
       compatible to vendor ndbm. Existing ndbm files must be rebuild or
       applications must explicitly use vendor ndbm (if available) by being
       build with no gdbm_ndbm. See http://cvs.openpkg.org/chngview?cn=14523
  +
  +  o new tag feature to replace location id
  +
  +    In OpenPKG v1.x, binaries were named
  +    "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}-%{OS}-%{l_location}.rpm"
  +    where location was computed during installation of the bootstrap
  +    and hardcoded for all binaries being build with that bootstrap. The
  +    prefix of the hierarchy was the input for location id creation.
  +
  +    In OpenPKG v2.x, the location id was replaced by a user
  +    configurable tag. The tag can be specified during bootstrap
  +    using the new --tag=xxx option. It is then used as a default
  +    for every binary package being build. It can be overridden for
  +    every individual binary package by specifying the --tag=xxx
  +    option on a --rebuild or -bb or -ba command line. See
  +    http://cvs.openpkg.org/chngview?cn=14312
  +
  +    The tag is even more powerful as it is not a constant string but a
  +    macro that is expanded during the build process. This allows for
  +    creation of dynamic tags.
  +    
  +    More precisely from a users perspective the tag is actually a tag
  +    format (tagfmt). To enhance convenience for the user some predefined
  +    combinations or macros are provided which can be specified using
  +    their name in angle brackets. The default tagfmt is <compat> (FIXME
  +    reality currently is <loc>) which provides exactly the same output
  +    as OpenPKG v1.3 did.
  +
  +    Predefined tagfmt's (just omit the %l_tag_fmt_ prefix) are:
  +
  +    - %l_tag_fmt_compat location id (compatible to OpenPKG v1.x) FIXME
  +    - %l_tag_fmt_loc    location id (improved)
  +    - %l_tag_fmt_opt    UUID based on with_xxx options
  +    - %l_tag_fmt_uuid   UUID
  +    - %l_tag_fmt_time   date and time of build
  +    - %l_tag_fmt_user   user doing the build
  +    - %l_tag_fmt_host   host that run the build
  +
  +    The predefined tagfmt's are not limits, just examples. Use any
  +    combination of predefined tags, RPM macros and constants to create
  +    a tagfmt, i.e. "<user>binary<opt>at<time>on<host>". Note that the
  +    resulting tag can have any character valid for creating a filename
  +    but a dash. No error is created for dashes, they are silently
  +    removed.
  +
  +    Keep in mind the tag feature is a function of the bootstrap that is
  +    doing the build. An upgrade is run by the existing (old) bootstrap
  +    which means that the tag feature is not yet available. Unless you're
  +    hacking the rpmmacros file manually, the easiest way to get the tag
  +    option on upgrades is to upgrade twice. First to get the new code
  +    with the new feature but not using it as the build runs with the
  +    old code. Then once again building the new code, this time with the
  +    already new code itself, having the feature available.
  +    
  +    There is another reason why an intermediate step will be required
  +    during an upgrade, see "Class" header below.
  +
  +  o new RPM functionality specific to OpenPKG
  +
  +    "%track" section which will become the new vcheck(1) source
  +    "%test" section which will allow run-time testing
  +    "Class" header which will become the new package class source 
  +    See http://cvs.openpkg.org/chngview?cn=14532
  +
  +  o upgrade procedure with intermediate step
  +
  +    While RPM silently ignores unknown sections, the introduction of
  +    new headers like "Class" inhibits older RPMs from parsing the spec
  +    file. Thus an old RPM will refuse to accept packages leveraging
  +    such a feature. For all but one packages it means that the OpenPKG
  +    bootstrap package "openpkg" has to be upgraded first. The upgrade
  +    of the "openpkg" package itself is an exception that requires
  +    additional steps.
  +
  +    FIXME [alternatives listed]
  +
  +    - we provide an intermediate 2.0.UPGRADE package which can be
  +      installed using a 1.x bootstrap. This 2.0.UPGRADE is only
  +      supported to fulfill one operation: upgrade to the real 2.0.0
  +      bootstrap.
  +
  +    - install 2.0.0 source RPM, filter the offending header out from the
  +      spec and build binary.
  +       
  +    - get ingredients from 2.0.0 source RPM using rpm2cpio, filter the
  +      offending header out from the spec and build binary.
  +
  +    There is another reason why an intermediate step will be required
  +    during an upgrade, see "tag" feature above.
   
     Upgrade from OpenPKG 1.2 to OpenPKG 1.3
     =======================================
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to