OKlibrary  0.2.1.6
PackageBuilding.hpp File Reference

Plans regarding package building. More...

Go to the source code of this file.


Detailed Description

Plans regarding package building.

Bug:
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-0.2.1.2_00107/OKplatform/system_directories/aux/temporary.mak] Error 127
    make[1]: Leaving directory `/home/kullmann/csoliver/SAT-Algorithmen/OKplatform/system_directories/packages/OKlibrary-0.2.1.2_00107/OKplatform/OKsystem'
    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.
Bug:
Missing Annotations/definitions.mak : DONE
  • It seems that "touch Annotations/definitions.mak" to create the empty definitions.mak in OKsystem/Annotations is missing?
Todo:
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).
Bug:
The binary coming with the package (for creating links) does not work on standard 32-bit platforms
Todo:
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}"
      else
        git_origin=""
      fi
      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.
Todo:
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.