On Tue, 11 Jul 2017, Willem Jan Withagen wrote: > On 11-7-2017 16:05, Sage Weil wrote: > > On Tue, 11 Jul 2017, Willem Jan Withagen wrote: > >> Hi, > >> > >> I'm doing some work to be ready when Luminous gets fully released. > >> But I now run into the following code from src/CMakeLists.txtx > >> ==== > >> # the src/.git_version file may be written out by make-dist; otherwise > >> # we pull the git version from .git > >> option(ENABLE_GIT_VERSION "build Ceph with git version string" ON) > >> if(${ENABLE_GIT_VERSION}) > >> get_git_head_revision(GIT_REFSPEC CEPH_GIT_VER) > >> git_describe(CEPH_GIT_NICE_VER --always) > >> #if building from a source tarball via make-dist > >> if(${CEPH_GIT_VER} STREQUAL "GITDIR-NOTFOUND") > >> message(STATUS "Ceph/.git directory not found, parsing > >> ${CMAKE_CURRENT_SOURCE_DIR}/.git_version for CEPH_GIT_VER and > >> CEPH_GIT_NICE_VER") > >> file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/.git_version > >> CEPH_GIT_SHA_AND_TAG) > >> list(GET CEPH_GIT_SHA_AND_TAG 0 CEPH_GIT_VER) > >> list(GET CEPH_GIT_SHA_AND_TAG 1 CEPH_GIT_NICE_VER) > >> endif(${CEPH_GIT_VER} STREQUAL "GITDIR-NOTFOUND") > >> # remove 'v' prefix from raw git version > >> string(SUBSTRING ${CEPH_GIT_NICE_VER} 1 -1 CEPH_GIT_NICE_VER) > >> else(${ENABLE_GIT_VERSION}) > >> set(CEPH_GIT_VER "no_version") > >> set(CEPH_GIT_NICE_VER "Development") > >> endif(${ENABLE_GIT_VERSION}) > >> ==== > >> > >> This build the Ceph version from data in the .git repo. > >> But that is not how FreeBSD packaging works. There a tarbal is fetched > >> but that does not contain any git info. > >> > >> Work is done in: > >> /usr/ports/net/ceph/work/ceph-12.1.0 > >> and that is about all where I can extract some versioning from. > >> > >> Does anybody have suggestions for an easy way out? > >> Other than hardcode it in the Makefile as an option to CMake. > > > > Take a look at the make-dist script; it puts the git version info in a > > tarball that has everything needed to build. (i.e., it writes out > > the .git_version file referenced above.) > > I think I used the wrong words.... > > The make-dis script begins with: > if [ ! -d .git ]; then > echo "no .git present. run this from the base dir of the git checkout." > exit 1 > fi > > When I say tarball, I mean that the FreeBSD packaging system will fetch > something like: > https://codeload.github.com/ceph/ceph-v12.1.0_GH0.tar.gz > > And that tar file does not contain ANY git information. > So I have to extract that from somewhere/something else. All I know is > the TAG v12.1.0. So if I want to have a git hash in the version I need > to construct it from that, or use that reference to fetch the hash. > > Otherwise I'll need to put it in the package makefile everytime, I > release a new version. Can you instead fetch the tarball from download.ceph.com? Those tarballs are generated with make-dist and already include the .git_version information. sage -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html