PackageBuilding.hpp File Reference

Plans regarding package building. More...

Go to the source code of this file.

Detailed Description

Plans regarding package building.

DONE (it seems that sooner or later the space for the environment needs to be enlarged; perhaps bash version 3.2 or version 4 does that?) Package-building fails on csltok
  • Target html cannot be processed:
    make[1]: execvp: /bin/bash: Argument list too long
    make[1]: *** [/home/kullmann/csoliver/SAT-Algorithmen/OKplatform/system_directories/packages/OKlibrary-] Error 127
    make[1]: Leaving directory `/home/kullmann/csoliver/SAT-Algorithmen/OKplatform/system_directories/packages/OKlibrary-'
    make: *** [html] Error 2
    Apparently the error occurs when creating temporary.mak.
  • Since no long arguments should be involved, it could be due to a too large environment (according to Internet-information this is included in the above warning.
  • And this could be due to old Linux-software on csltok (Suse 9.2).
  • The env-content is actually non-negligible. The error occurs when actually the target is considered a second time? Yes, then via Configuration/Html/include.mak further make-variables are included.
  • So it seems that we can't do much. But still, the same happens also when just creating the html-documentation?? Perhaps it's the nesting of makefiles and bash's, which just happens to be a bit too much.
Missing Annotations/definitions.mak : DONE
  • It seems that "touch Annotations/definitions.mak" to create the empty definitions.mak in OKsystem/Annotations is missing?
DONE Package directory structure
  • It seems better that a package just creates directory "OKplatform".
  • Then there is no need to create links to OKplatform (which might cause problems).
The binary coming with the package (for creating links) does not work on standard 32-bit platforms
Providing update mechanisms for the package-clone
  • Some meta-data (like ignore-patterns) need to be added; see "Cloning" in Buildsystem/SourceControl/plans/general.hpp.
  • DONE (there is no need anymore for the old shared repository at cs-oksvr, but everything is done via the Github repository; we also don't need to document that system) Documenting the old system:
    1. git_public_repository must be set (typically in override.mak) to the full local path to the oklib-repository accessible from the Internet.
    2. The current value is "/home/csoliver/cs-svr1/csoliver/public_html/ok-sat-library/git/OKlib"
    3. The code
      cd ${git_public_repository}
      git fetch ${git_main_repository} master:master
      git --bare update-server-info
      in CreatePackage updated this repository from the main developers-repository.
    4. git_main_repository must be set (typically in override.mak) to the URL for the main (shared) repository.
    5. git_http_repository (again, typically in override.mak) finally is the http-address for git_public_repository; current value is "http://cs.swan.ac.uk/~csoliver/ok-sat-library/git/OKlib/".
    6. Via
      if [ ${git_upstream:+1} ]; then
        git_origin="--origin ${git_upstream}"
      cd ${package_directory}/OKplatform/OKsystem
      git clone ${git_origin} ${git_http_repository}
      then the clone for the package is created, where via setting "git_upstream" the clone is instructed to pull by default from "git_upstream" instead of git_http_repository.
  • DONE This is now simplified:
    1. git_http_repository is now the git-hub-repository.
    2. So there is no need for git_public_repository anymore.
    3. This repository is taken as-is (no update anymore).
    4. Pulling by user packages just from this repository.
  • DONE The goal is that the user can use "git pull", which pulls from the public repository.
  • DONE Currently the local repository, from which the package is created, is stored via "git pull", which isn't suitable.
CreatePackage extensions
  • Regarding the git-ignore-file, ignoring the makefiles should also be incorporated into the package (as long as we still need those makefiles).
    1. See todo "Cloning" in Buildsystem/SourceControl/plans/general.hpp.
  • Perhaps there should be additional targets for the oklib-masterscript to "compile and test" everything (to ease building a new environment).
  • For a package created, a ((semi-)automatical) e-mail to the notification list should be sent.
  • Release-packages must be stored in an accessible depot. At least the core-packages need to be backed-up on cs-oksvr. See "ExternalSources repository" in Buildsystem/ReleaseProcess/plans/Release.hpp.
  • Checking is separate, and has to be done (fully) in advance see Buildsystem/plans/CheckBuildSystem.hpp.
  • The appropriate "user clone" has to be created in advance (see Buildsystem/ReleaseProcess/plans/Release.hpp) --- and also this clone has to be tested.

Definition in file PackageBuilding.hpp.