-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/70047/#review213313
-----------------------------------------------------------


Fix it, then Ship it!




Thanks Till. While I am not a big fan of how we directly emit CPP macros from 
configure, I cannot think of a much better approach.

Left some mostly stylistic points.


cmake/CompilationConfigure.cmake
Lines 630-637 (original), 663-667 (patched)
<https://reviews.apache.org/r/70047/#comment299248>

    The idea (at least on the autotools side which currently supports 
packaging) is to generate an artifact specifiying git info which is included 
with the distribution tarball.
    
    AFAICT, unless we completely rip out autotools while implementing cmake 
distribution tarballs, we'll need to implement something like this to support 
showing git info when building from distribution tarballs, even in the cmake 
build (which would probably emit this also during packaging time).
    
    Suggest to keep as is.



configure.ac
Lines 2829 (patched)
<https://reviews.apache.org/r/70047/#comment299243>

    Lets use `presence` instead of `for`,
    
        checking src/common/build_git_config.hpp presence ...



configure.ac
Lines 2831 (patched)
<https://reviews.apache.org/r/70047/#comment299245>

    Even though there is some nesting I'd prefer more general `AS_IF` and 
friends.
    
    Here and below.



configure.ac
Lines 2836 (patched)
<https://reviews.apache.org/r/70047/#comment299244>

    `s/creating/generating/`



configure.ac
Lines 2843 (patched)
<https://reviews.apache.org/r/70047/#comment299246>

    Do you understand why this command could print something to stderr? It 
seems it should be possible to treat the absent case as error and define the 
variable with a value immediately.
    
    Also, what do you think about instead
    ```
    git --git-dir=${srcdir}"/.git/ rev-parse HEAD ...
    ```
    
    We could put the git dir into a variable.
    
    Here and below.



src/common/build_git_config.hpp.in
Lines 1 (patched)
<https://reviews.apache.org/r/70047/#comment299242>

    Since this isn't about the build but git version, what do you think abot 
calling this file e.g., `git_version.hpp.in` or similar?



src/common/build_git_config.hpp.in
Lines 23-25 (patched)
<https://reviews.apache.org/r/70047/#comment299247>

    Not really a fan of how we directly emit a CPP macro from autoconf, but 
without config headers I cannot really think of a objectively better approach :(


- Benjamin Bannier


On Feb. 26, 2019, 12:05 p.m., Till Toenshoff wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/70047/
> -----------------------------------------------------------
> 
> (Updated Feb. 26, 2019, 12:05 p.m.)
> 
> 
> Review request for mesos, Benjamin Bannier and Joseph Wu.
> 
> 
> Bugs: MESOS-9605
>     https://issues.apache.org/jira/browse/MESOS-9605
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> For autotools, we extracted additional build info like the git branch
> and sha during the automake phase handing them into libbuild via
> commandline defines.
> 
> CMake builds however used a configuration file for this purpose.
> 
> This patch updates both build systems to make use of
> build_git_config.hpp.in for build specific git information.
> 
> 
> Diffs
> -----
> 
>   cmake/CompilationConfigure.cmake c330324e2e3dea6e71980ae8c9ed71632ebb018e 
>   configure.ac ee29fc784e53ebaf1bb016c33136b200c646ee9b 
>   src/Makefile.am 283d5ed89b36d74da36f38c26aec03c6129d6261 
>   src/common/build.cpp f5271d87d33ac429fb94093a347be1d6c25d3432 
>   src/common/build_config.hpp.in 4cce2403c1d7a5feee8fd2fffa7cf4308507cd0c 
>   src/common/build_git_config.hpp.in PRE-CREATION 
> 
> 
> Diff: https://reviews.apache.org/r/70047/diff/4/
> 
> 
> Testing
> -------
> 
> Manually tested both cmake and autotools.
> 
> First configure run:
> ```
> [...]
> checking for src/common/build_git_config.hpp... no
> configure: creating src/common/build_git_config.hpp
> [...]
> 
> ```
> 
> Subsequent configure runs:
> ```
> [...]
> checking for src/common/build_git_config.hpp... yes
> [...]
> ```
> 
> Final build from `support/packaging/centos/build-docker-rpmbuild.sh` 
> installed and ran agent;
> ```
> Installed:
>   mesos.x86_64 0:1.8.0-0.1.pre.20190226gitc125541.el7
> 
> Complete!
> [root@9b0d899ff4c6 ~]# mesos-slave --work_dir=/tmp --master=127.0.0.1:5050
> I0226 01:00:48.581748   157 main.cpp:350] Build: 2019-02-26 00:36:49 by centos
> I0226 01:00:48.581817   157 main.cpp:351] Version: 1.8.0
> I0226 01:00:48.581823   157 main.cpp:358] Git SHA: 
> c125541b8e4f2c2f6f56fe7e1c2e0b26d5bbfc62
> I0226 01:00:48.587003   157 systemd.cpp:240] systemd version `219` detected
> I0226 01:00:48.587026   157 main.cpp:453] Initializing systemd state
> ```
> 
> 
> Thanks,
> 
> Till Toenshoff
> 
>

Reply via email to