2.2. Package Build Management Changes

This section covers all changes concerning the ComPact package build management (implemented in pkgm).

  ---- [] display effective TPC
  devel_pkg=build_d22_0_1:
    date: 1999/08/26 13:20:11;  author: wagner;  state: Exp;  lines: +1 -0
    the effective TPC is now displayed for all build actions unless -q
    is specified
       


  ---- [] change set fix-no-shipping-of-modified-releases-with-old-version
    created by wagner at 2000.05.24.14.04.45
    description:
    The shipping behaviour of the package manager has been changed for the
    case when a release from a modified package is shipped: now the used
    version will have at least the patch level incremented. The former
    implementation would overwrite existing valid releases in the local
    pool by default.
    package changes:
      pkg_build     devel_pkg=build_d22_2_13 devel_pkg=build_d22_2_14
       


  ---- [i] change set latest-version-extensions-for-build
    created by wagner at 2000.05.25.13.04.16
    description:
    Special `latest' versions have been introduced to be able to override
    any other versions of packages in pools. They can be used for building
    and shipping by specifying the `-lovr' command option of pkgm.
    package changes:
      pkg_pools    devel_pkg=pools_d5_0_1   devel_pkg=pools_d6_0_0
      pkgversions  devel_pkgversions_d6_1_6 devel_pkgversions_d7_0_0
      pkg_build    devel_pkg=build_d22_2_14 devel_pkg=build_d23_0_0
      pkg_base     devel_pkg=base_d25_0_0   devel_pkg=base_d26_0_0
      pkgelems     devel_pkgelems_d4_0_1    devel_pkgelems_d5_0_0
       


  ---- [i] change set feature-pkgm-pkgovr-files
    created by wagner at 2000.06.28.00.05.51
    description:
    The PkgDesc parser now knows how to handle PkgOvr files, which may
    contain import declarations that override those in PkgDesc. The
    current implementation uses a virtual include("PkgOvr") statement to
    parse the files.

    The package manager has been extended by a -novr option which inhibits
    the automatic reading of the PkgOvr files. All actual overrides are
    reported on stdout.

    This change set complements feature-pkgovr-files, which introduces the
    generation of PkgOvr files by the project manager.

    This change set has been extended to cover the fixes in revisions
    revision devel_pkg=parse_d14_1_0, revision devel_pkg=parse_d14_1_1,
    and revision devel_pkg=parse_d14_1_2 at Fri Sep  1 19:34:34 MET DST 2000.
    package changes:
      pkg_build     devel_pkg=build_d24_0_0 devel_pkg=build_d25_0_0
      pkg_parse     devel_pkg=parse_d13_0_2 devel_pkg=parse_d14_1_2
       


  ---- [f] change set fix-pkgm-depgraph-error-handling
    created by wagner at 2000.06.29.23.58.36
    description:
    in pkg_build:
    fix: recognize missing of PkgDesc for build actions
    fix: complain about trivial cyclic dependencies
    fix: changed target name "global_sources" to ".global_sources." to
         avoid unnecessary warnings because of the corresponding change
         in pkg_parse

    in pkg_parse:
    fix: added periods to initial target names to make them more improbable
         to match by accident
    package changes:
      pkg_build     devel_pkg=build_d25_0_1 devel_pkg=build_d25_0_3
      pkg_parse     devel_pkg=parse_d14_0_0 devel_pkg=parse_d14_0_1
       


  ---- [] change set feature-target-creation-rule+improved-action-selection
    created by wagner at 2000.07.05.12.28.46
    description:
    This change set includes several small improvements of the TPC based
    build backend:

     o support for explicit target creation rule
     o improved selection of backend actions (first try derivation rule
       name, then conventional composed name)
     o seriousness of missing backend action now depends on a parameter
       (missing gnumake is no more fatal :-)
    package changes:
      pkg_build     devel_pkg=build_d25_0_3 devel_pkg=build_d25_1_0
      pkg_parse     devel_pkg=parse_d14_0_1 devel_pkg=parse_d14_1_0
      pkgelems      devel_pkgelems_d5_0_0   devel_pkgelems_d5_1_0
       


  ---- [i] change set feature-force-realclean
    created by wagner at 2000.08.17.14.43.36
    description:
    Added `-force -realclean' which completely removes the TPC directory
    without further checks; this is now the default for most package
    kinds, too.
    package changes:
      pkg_build     devel_pkg=build_d27_1_1 devel_pkg=build_d27_2_0
      pkg_base      devel_pkg=base_d26_0_0  devel_pkg=base_d26_1_0
       


  ---- [p] change set fix-java+build+doc+misc
    created by wagner at 2000.09.29.11.10.11
    description:
    This change set combines several fixes made after test of some
    Java packages:

     o pkgconf.cbcl has been extended by applet_test_source,
       java_applet_script, and some associated rules
     o all compactrc defaults now include more appropriate java package
       TPC computation
     o PkgVC.Add has been extended to automatically add parent directories
       if necessary. Now pkgm -catchup should work even if directories
       are missing.
     o The erroneous removal of / and \ characters from dir options
       in TPCs has been fixed (TPC.m3).
     o latex_format now runs latex twice
     o Comparison of export descriptions has been moved from PkgBuildBase
       to PkgBuildDepGraph, as exported derived documents are computed
       during dependency graph construction, so we got a hen and egg
       problem. The adapted algorithm is now contained in 
       PkgBuildDepGraph.CheckExportEquivalence.
     o exportsFN is now defined in pkg_build/src/PkgUtils.i3
     o java_format now touches all symbolic link destinations, as not all
       documents may be generated by javadoc. This would lead to endless
       repetition of build runs, as no build could be really successful.
       The basic problem here is that we don't know exactly which documents
       are generated by javadoc.
     o Variables which match tpc-compiler*, tpc-options*, and
       external-*-hook are now accepted without warning in compactrc.
    package changes:
      pkg_global    devel_pkg=global_d16_1_0  devel_pkg=global_d16_1_1
      compactrc     devel_compactrc_d16_0_1   devel_compactrc_d16_0_2
      pkg_build     devel_pkg=build_d28_2_3   devel_pkg=build_d28_2_4
      pkgconf       devel_pkgconf_d18_1_0     devel_pkgconf_d18_1_1
      pkg_vc        devel_pkg=vc_d38_1_0      devel_pkg=vc_d38_1_1
       


  ---- [p] change set feature-jsimple+misc-fixes
    created by wagner at 2000.10.19.16.04.53
    description:
    This change set adds some basic simple, esay-to-use, flat Java
    package kinds and build configurations. In order to make these work,
    several things had to be fixed and several small extensions be made
    to the miniscan package, the package manager, and compactrc mapping
    evaluation.

    There are three new package kinds: SIMPLE_COMPACT_JAVA[_WIN32|_UNIX]
    The names ComPact and ComPacT have been changed to upper case
    in all configuration resources.

    The package manager now additionally exports the variables
    PKG_RelativePkgRootPath, PKG_RelativePkgIncPath,
    PKG_RelativePkgSrcPath, PKG_RelativePkgDocPath to the build backend,
    which are also used in the shipping module.
    It also heeds definitions of these variables as well as PKG_ActDerived
    in pkgconf.cbcl, if they are present for the current TPC. -tpcdir
    overrides are now no more fatal, they just produce a warning.

    Overriding of mapping definitions in compactrc should now work, as
    well as string escape sequences in pkgconf.cbcl.
    package changes:
      pkg_global    devel_pkg=global_d16_1_1  devel_pkg=global_d16_2_0
      compactrc     devel_compactrc_d16_0_3   devel_compactrc_d16_1_0
      pkg_build     devel_pkg=build_d28_2_4   devel_pkg=build_d28_3_0
      pkgconf       devel_pkgconf_d18_1_1     devel_pkgconf_d18_2_0
      pkg_base      devel_pkg=base_d27_0_2    devel_pkg=base_d27_1_0
      miniscan      devel_miniscan_d2_0_2     devel_miniscan_d2_1_0
       


  ---- [] change set feature-java-on-linux
    created by mdiers at 2000.11.03.19.43.20
    description:
    Add support for IBM JDK 1.1.8 and Sun JDK 1.2.2 on Linux.
    TPC variants now select the JDK, e.g. "ibmjdk" or "jdk122".
    The simple Java package kind can be specified by using the prefix
    "jsim" for a TPC variant, e.g. "jsimjdk11".
    package changes:
       


  ---- [] change set fix-pkgconf-win32
    created by mdiers at 2000.11.03.19.56.04
    description:
    Move the override section for Win32 file extensions and suffixes
    (".obj", ".exe", etc.) after the default section. This change makes
    the Win32 TPCs work (again).
    package changes:
      pkgconf       devel_pkgconf_d18_4_2   devel_pkgconf_d18_4_3
       


  ---- [] change set fix-pkgconf-solaris
    created by mdiers at 2000.11.03.20.01.15
    description:
    Make Solaris TPCs more robust.
    package changes:
      pkgconf       devel_pkgconf_d18_4_3   devel_pkgconf_d18_4_4
       


  ---- [] change set fix-canonical-pathname+forced-realclean
    created by wagner at 2000.11.03.20.45.57
    description:
    The canonical pathname function did not work for names containing
    non-existing directories. This has been changed, though now
    non-exisiting suffixes may remain in a non-canonical format
    (i.e. containing . and .. entries). This should avoid certain failures
    that were due to the inability to create a canonical pathname
    representation, while hopefully not having any negative effects on the
    semantics of pkgm and other ComPact programs. Regression testing has
    still to be done :-)

    The forced realclean command of the package manager (-F -realclean)
    now checks if the directory it tries to remove is under version
    control, i.e. contains a CVS subdirectory. In this case, it delegates
    its task to the standard realclean procedure. Thus it should now be
    impossible to accidently delete e.g. the inc or src directories.
    package changes:
      miscutils     devel_miscutils_d30_1_3 devel_miscutils_d30_1_5
      pkg_build     devel_pkg=build_d28_3_1 devel_pkg=build_d28_3_2
       


  ---- [] change set fix-tpc-platform-defaults+compactrc-default-subst
    created by wagner at 2000.11.04.18.47.45
    description:
    This change set assembles several changes that together provide improved
    initialization of tpc-hosttype, tpc-ostype, tpc-variant, and tpc-compiler,
    as well as appropriately changed configuration files (compactrc*), a fix
    in TextUtils needed for theses changes, and an improved pkgconf.cbcl
    resource, containing the first attempt at cygwin backend support.

    ComPact now no more sets the variables tpc-hosttype, tpc-ostype,
    tpc-variant, and tpc-compiler with default values internally; rather
    it defines the names tpc-hosttype-default, tpc-ostype-default,
    tpc-variant-default, and tpc-compiler-default. These values are
    either internally computed defaults (guesses), or overrides from
    environment variables (HOSTTYPE, OSTYPE, TCP_VARIANT, TPC_COMPILER).

    In compactrc these values are used to set *-start values, which are
    then used (depending on the package kind) to define the actual
    TPC.

    GUI initialization (where TPCs are only relevant for pool contexts)
    has been adapted, too. Along with this some missing rescan and
    reinit buttons have been added.

    package changes:
      pkg_global    devel_pkg=global_d16_2_3  devel_pkg=global_d16_2_4
      miscutils     devel_miscutils_d30_1_5   devel_miscutils_d30_1_7
      compactrc     devel_compactrc_d16_1_2   devel_compactrc_d16_1_3
      prjm          devel_prjm_d26_0_2        devel_prjm_d26_0_3
      pkgconf       devel_pkgconf_d18_4_7     devel_pkgconf_d18_4_8
      pkg_base      devel_pkg=base_d27_1_1    devel_pkg=base_d27_1_2
       


  ---- [] change set fix-init-external-cmds+win32-tpcs
    created by wagner at 2000.11.04.21.57.53 description: This change
    set fixes the initialization of several external commands from the
    pkgconf.cbcl resource (cmd_remove_file, cmd_remove_dir,
    cmd_remove_recursive , cmd_shell, make_comment_start,
    make_include_directive, make_phony_directive, make_var_definition,
    make_var_reference, make_continuation_token) and also fixes some
    minor pathname issues for win32 TPCs.  Also fixed make commands
    for FreeBSD and Linux.

    The impact of this is that cleaning of files and directories
    should now work in more win32 environments than before.

    package changes:
      pkg_build     devel_pkg=build_d28_3_2 devel_pkg=build_d28_3_3
      pkgconf       devel_pkgconf_d18_4_8   devel_pkgconf_d18_4_10
       


  ---- [f] change set fix-pkgm-realclean-gnumake-init
    created by wagner at 2000.11.22.12.18.49
    description:
    This fixes the initialization of external commands including gnumake for
    the call `pkgm -F -realclean'. Without this, if a makefile existed in 
    a package and a clean hook was executed, always `gmake' was used instead
    of the TPC dependent value.
    package changes:
      pkg_build     devel_pkg=build_d28_3_6 devel_pkg=build_d28_3_7
       


  ---- [f] change set fix-clean-shipping+release-precond
    created by wagner at 2000.12.12.15.03.39
    description:
    close some problem reports before branching: request id 100, 
    request id 103, request id 106

    fix: pkgm leaves cruft of previous version in pool
    fix: pkgm -rel: failure on locally removed files
    fix: pkgm -rel: failure on locally added files
    package changes:
      pkg_build     devel_pkg=build_d28_3_10  devel_pkg=build_d28_3_11
      pkg_vc        devel_pkg=vc_d38_1_11     devel_pkg=vc_d38_1_12