Skip to main content

New build system - Week 3

· 2 min read

Attendees

Week 2 Progress

  1. Version file Implementation
  2. Initial functions on obtaining commit and branch info
  3. To test the current progress, follow the instructions here

Discussions

  • What is the regex expression used for obtaining version information?

    • The regex has recently been modified to cover recent versions. The latest form is as below:
      ([[:digit:]]+.[[:digit:]]+.[[:digit:]]+)(-?rc[[:digit:]]+)?-?([[:digit:]]*)-?[[:alnum:]]*
    • You can also try alternatives to regex if possible for CMake.
  • Should I use git describe --tags or git describe --always HEAD for obtaining version information?

    • In FOSSology we always use :code:git describe --tags, no exception whatsoever.
  • CMake provides a preset configuration for the install path on GNU systems, you can see the description here based on the configuration suggested by the GNU. After comparing the variables defined in Makefile.conf with these, it seems directly taken from GNU standards. So I wanted to ask if this would be okay to stick to the presets, instead of manually declaring the same paths? The former step will reduce the number of variables we are currently caching and will make it flexible for different installation scenarios.

    • Using the GNU standards is the ideal situation but FOSSology uses slightly different locations. For example, all agents end up under /usr/local/share/fossology/ with their individual folders instead of going to /usr/local/bin/.
    • If the same results can be achieved by using the CMAKE_INSTALL_<dir> and CMAKE_INSTALL_PREFIX then yeah, it will be preferred.

Conclusion and Further Plans

  • Try adding the version and commit hash info.
  • Implement writing version files for each build.