Skip to content
Snippets Groups Projects
Commit d8c47a17 authored by MADELA Patrick's avatar MADELA Patrick
Browse files

Update to git 2.38.1

parent 766293eb
No related branches found
No related tags found
1 merge request!12.38.1
Pipeline #1487 failed
variables: variables:
GIT_VERSION: "2.36.2" GIT_VERSION: "2.38.1"
PYTHON_VERSION: "3.10.8"
DEFAULT_HELP_FORMAT: "man" DEFAULT_HELP_FORMAT: "man"
stages: stages:
...@@ -8,17 +9,24 @@ stages: ...@@ -8,17 +9,24 @@ stages:
- test - test
- package - package
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
- if: $CI_PIPELINE_SOURCE == "web"
- if: $CI_COMMIT_TAG
.build: .build:
stage: build stage: build
script: script:
- yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker - curl -s -L -o python.zip https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/python3/-/jobs/artifacts/${PYTHON_VERSION}/download?job=${PLATFORM} && unzip -q python.zip
- git clone https://github.com/git/git.git - rm python.zip
- cd git - export PATH=$(readlink -e .)/python-${PYTHON_VERSION}-${PLATFORM}/bin:${PATH}
- git checkout v${GIT_VERSION} - sudo python -m pip install --upgrade pip
- autoconf - sudo python -m pip install --upgrade conan
- ./configure --prefix=${CI_PROJECT_DIR}/${NAME} - conan config init
- make NO_INSTALL_HARDLINKS=YesPlease - conan profile update settings.compiler.libcxx=libstdc++11 default
- make NO_INSTALL_HARDLINKS=YesPlease install - conan create . git/${GIT_VERSION}@soleil/stable --build -c tools.system.package_manager:mode=install -c tools.system.package_manager:tool=yum -c tools.system.package_manager:sudo=True
- conan install git/${GIT_VERSION}@soleil/stable --install-folder ${CI_PROJECT_DIR}/${NAME}
artifacts: artifacts:
name: ${NAME} name: ${NAME}
paths: paths:
...@@ -36,95 +44,54 @@ stages: ...@@ -36,95 +44,54 @@ stages:
- zip -r --symlinks ../${NAME}.zip * - zip -r --symlinks ../${NAME}.zip *
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ../${NAME}.zip "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/git/${GIT_VERSION}/"' - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ../${NAME}.zip "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/git/${GIT_VERSION}/"'
linux-el6-x86_64: linux-x86_64:
extends: [".build"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44
variables:
NAME: "git-${GIT_VERSION}-linux-el6-x86_64"
test-el6-x86_64:
extends: [".test"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44
variables:
NAME: "git-${GIT_VERSION}-linux-el6-x86_64"
needs:
- linux-el6-x86_64
package-el6-x86_64:
extends: [".package"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44
variables:
NAME: "git-${GIT_VERSION}-linux-el6-x86_64"
needs:
- linux-el6-x86_64
- test-el6-x86_64
linux-el6-i686:
extends: [".build"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86
variables:
NAME: "git-${GIT_VERSION}-linux-el6-i686"
test-el6-i686:
extends: [".test"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86
variables:
NAME: "git-${GIT_VERSION}-linux-el6-i686"
needs:
- linux-el6-i686
package-el6-i686:
extends: [".package"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86
variables:
NAME: "git-${GIT_VERSION}-linux-el6-i686"
needs:
- linux-el6-i686
- test-el6-i686
linux-el7-x86_64:
extends: [".build"] extends: [".build"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el7-gcc48 image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91
variables: variables:
NAME: "git-${GIT_VERSION}-linux-el7-x86_64" PLATFORM: linux-x86_64
NAME: "git-${GIT_VERSION}-${PLATFORM}"
test-el7-x86_64: test-x86_64:
extends: [".test"] extends: [".test"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el7-gcc48 image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91
variables: variables:
NAME: "git-${GIT_VERSION}-linux-el7-x86_64" PLATFORM: linux-x86_64
NAME: "git-${GIT_VERSION}-${PLATFORM}"
needs: needs:
- linux-el7-x86_64 - linux-x86_64
package-el7-x86_64: package-x86_64:
extends: [".package"] extends: [".package"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86 image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91
variables: variables:
NAME: "git-${GIT_VERSION}-linux-el7-x86_64" PLATFORM: linux-x86_64
NAME: "git-${GIT_VERSION}-${PLATFORM}"
needs: needs:
- linux-el7-x86_64 - linux-x86_64
- test-el7-x86_64 - test-x86_64
linux-el7-i686: linux-i686:
extends: [".build"] extends: [".build"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el7-gcc48-x86 image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91-x86
variables: variables:
NAME: "git-${GIT_VERSION}-linux-el7-i686" PLATFORM: linux-i686
GIT_ROOT: "${CI_PROJECT_DIR}/${NAME}" NAME: "git-${GIT_VERSION}-${PLATFORM}"
test-el7-i686: test-i686:
extends: [".test"] extends: [".test"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el7-gcc48-x86 image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91-x86
variables: variables:
NAME: "git-${GIT_VERSION}-linux-el7-i686" PLATFORM: linux-i686
NAME: "git-${GIT_VERSION}-${PLATFORM}"
needs: needs:
- linux-el7-i686 - linux-i686
package-el7-i686: package-i686:
extends: [".package"] extends: [".package"]
image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el7-gcc48-x86 image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el6-gcc91-x86
variables: variables:
NAME: "git-${GIT_VERSION}-linux-el7-i686" PLATFORM: linux-i686
NAME: "git-${GIT_VERSION}-${PLATFORM}"
needs: needs:
- linux-el7-i686 - linux-i686
- test-el7-i686 - test-i686
# Git # Git
Pipeline to build Git 2.36.2 for our legacy CentOS platform. Pipeline to build Git 2.38.1 with conan on our legacy CentOS 6.
Allows to build Git for: Git 2.38.1 for:
* CentOS 6.10 64 bits: [git-2.36.2-linux-el6-x86_64.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/git/-/jobs/artifacts/main/download?job=linux-el6-x86_64) * Linux 64 bits: [git-2.38.1-linux-x86_64.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/git/-/jobs/artifacts/main/download?job=linux-x86_64)
* CentOS 6.10 32 bits: [git-2.36.2-linux-el6-i686.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/git/-/jobs/artifacts/main/download?job=linux-el6-i686) * Linux 32 bits: [git-2.38.1-linux-i686.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/git/-/jobs/artifacts/main/download?job=linux-i686)
* CentOS 7.9 64 bits: [git-2.36.2-linux-el7-x86_64.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/git/-/jobs/artifacts/main/download?job=linux-el7-x86_64)
* CentOS 7.9 32 bits: [git-2.36.2-linux-el7-i686.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/git/-/jobs/artifacts/main/download?job=linux-el7-i686)
Build on Docker image:
* gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44
* gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el6-gcc44-x86
* gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el7-gcc48
* gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-docker-tools/dev-el7-gcc48-x86
from conan import ConanFile
from conan.tools.system import package_manager
from conan.errors import ConanInvalidConfiguration
from conans import AutoToolsBuildEnvironment, RunEnvironment, tools
import os
class GitConan(ConanFile):
name = "git"
version = "2.38.1"
settings = "os", "compiler", "build_type", "arch"
requires = \
"libcurl/7.86.0", \
"zlib/1.2.13"
_autotools = None
_autotools_args = [
"NO_TCLTK=YesPlease",
"NO_INSTALL_HARDLINKS=YesPlease",
"RUNTIME_PREFIX=YesPlease",
"gitexecdir=libexec/git-core",
"template_dir=share/git-core/templates",
"sysconfdir=etc",
# "V=1"
]
def validate(self):
if self.settings.os not in ["Linux"]:
raise ConanInvalidConfiguration("This recipe supports only Linux")
def source(self):
self.run(
"curl -s -L -O https://github.com/git/git/archive/refs/tags/v%s.tar.gz" % self.version)
self.run("tar -xzf v%s.tar.gz --strip 1" % self.version)
def _build_configure(self):
if self._autotools:
return self._autotools
self._autotools = AutoToolsBuildEnvironment(self)
args = [
"--enable-pthreads=-pthread",
"--with-tcltk=NO",
]
# Append run environment to autotools environment to have curl-config in path
env_build_vars = self._autotools.vars
run_environment = RunEnvironment(self)
env_build_vars = env_build_vars | run_environment.vars
# Build configure
self.run("make configure")
self._autotools.configure(args=args, vars=env_build_vars)
return self._autotools
def build(self):
env_build = self._build_configure()
tools.replace_in_file("Makefile", "EXTLIBS += -lrt", "EXTLIBS += -lrt -ldl")
env_build.make(args=self._autotools_args)
def package(self):
env_build = self._build_configure()
env_build.install(args=self._autotools_args)
def package_info(self):
self.env_info.PATH.append(os.path.join(self.package_folder, "bin"))
def deploy(self):
self.copy("*", symlinks=True)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment