Web lists-archives.com

Re: [PATCH] ci: install 'libsvn-perl' instead of 'git-svn'


On Tue, 30 Apr 2019, SZEDER Gábor wrote:

> Since e7e9f5e7a1 (travis-ci: enable Git SVN tests t91xx on Linux,
> 2016-05-19) some of our Travis CI build jobs install the 'git-svn'
> package, because it was a convenient way to install its dependencies,
> which are necessary to run our 'git-svn' tests (we don't actually need
> the 'git-svn' package itself).  However, from those dependencies,
> namely the 'libsvn-perl', 'libyaml-perl', and 'libterm-readkey-perl'
> packages, only 'libsvn-perl' is necessary to run those tests, the
> others arent, not even to fulfill some prereqs.
> So update 'ci/install-dependencies.sh' to install only 'libsvn-perl'
> instead of 'git-svn' and its additional dependencies.
> Note that this change has more important implications than merely not
> installing three unnecessary packages, as it keeps our builds working
> with Travis CI's Xenial images.  In our '.travis.yml' we never
> explicitly specified which Linux image we want to use to run our Linux
> build jobs, and so far they have been run on the default Ubuntu 14.04
> Trusty image.  However, 14.04 just reached its EOL, and Travis CI has
> already began the transition to use 16.04 Xenial as the default Linux
> build environment [1].  Alas, our Linux Clang and GCC build jobs can't
> simply 'apt-get install git-svn' in the current Xenial images [2],
> like they did in the Trusty images, and, consequently, fail.
> Installing only 'libsvn-perl' avoids this issue, while the 'git svn'
> tests are still run as they should.
> [1] https://blog.travis-ci.com/2019-04-15-xenial-default-build-environment
> [2] 'apt-get install git-svn' in the Xenial image fails with:
>       The following packages have unmet dependencies:
>        git-svn : Depends: git (< 1:2.7.4-.)
>       E: Unable to correct problems, you have held broken packages.
>     The reason is that both the Trusty and Xenial images contain the
>     'git' package installed from 'ppa:git-core/ppa', so it's
>     considerably newer than the 'git' package in the corresponding
>     standard Ubuntu package repositories.  The difference is that the
>     Trusty image still contains these third-party apt repositories, so
>     the 'git-svn' package was installed from the same PPA, and its
>     version matched the version of the already installed 'git'
>     package.  In the Xenial image, however, these third-party
>     apt-repositories are removed (to reduce the risk of unrelated
>     interference and faster 'apt-get update') [3], and the version of
>     the 'git-svn' package coming from the standard Ubuntu package
>     repositories doesn't match the much more recent version of the
>     'git' package installed from the PPA, resulting in this dependecy
>     error.
>     Adding back the 'ppa:git-core/ppa' package repository would solve
>     this dependency issue as well, but since the troublesome package
>     happens to be unnecessary, not installing it in the first place is
>     better.
> [3] https://docs.travis-ci.com/user/reference/xenial/#third-party-apt-repositories-removed
> Signed-off-by: SZEDER Gábor <szeder.dev@xxxxxxxxx>
> ---
>  ci/install-dependencies.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 52a44c690a..7f6acdd803 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -12,7 +12,7 @@ case "$jobname" in
>  linux-clang|linux-gcc)
>  	sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
>  	sudo apt-get -q update
> -	sudo apt-get -q -y install language-pack-is git-svn apache2
> +	sudo apt-get -q -y install language-pack-is libsvn-perl apache2

Makes sense.

I assume you verified that this works also with our Azure Pipeline?


>  	case "$jobname" in
>  	linux-gcc)
>  		sudo apt-get -q -y install gcc-8
> --