Blame SOURCES/0010-buildlib-Remove-travis-CI.patch

baba1b
From 6ce72aaa5963b28a2a01b47f332fa20c02eeb0db Mon Sep 17 00:00:00 2001
baba1b
From: Jason Gunthorpe <jgg@mellanox.com>
baba1b
Date: Thu, 31 Oct 2019 13:17:11 -0300
baba1b
Subject: [PATCH rdma-core 10/13] buildlib: Remove travis CI
baba1b
baba1b
[ Upstream commit ae029ac74d62b12ea69127c91f83ad5944130764 ]
baba1b
baba1b
Azure Pipelines replaces it completely now, remove the word 'travis' from
baba1b
the source tree.
baba1b
baba1b
v26 was supposed to transition to azp for releases and it lacks the
baba1b
ability for travis to make the offical github tar.gz, so this needs to be
baba1b
back ported.
baba1b
baba1b
Cc: stable@linux-rdma.org #v26
baba1b
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
baba1b
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
baba1b
---
baba1b
 .travis.yml             |  45 -----------
baba1b
 CMakeLists.txt          |   2 +-
baba1b
 Documentation/stable.md |   8 +-
baba1b
 README.md               |  12 +--
baba1b
 buildlib/cbuild         | 173 ++--------------------------------------
baba1b
 buildlib/check-build    |   6 --
baba1b
 buildlib/travis-build   |  58 --------------
baba1b
 7 files changed, 17 insertions(+), 287 deletions(-)
baba1b
 delete mode 100644 .travis.yml
baba1b
 delete mode 100755 buildlib/travis-build
baba1b
baba1b
diff --git a/.travis.yml b/.travis.yml
baba1b
deleted file mode 100644
baba1b
index e00b0165..00000000
baba1b
--- a/.travis.yml
baba1b
+++ /dev/null
baba1b
@@ -1,45 +0,0 @@
baba1b
-language: c
baba1b
-dist: xenial
baba1b
-addons:
baba1b
-  # We run our builds sequentially in one VM rather than try and use the
baba1b
-  # matrix feature. This is because Travis is unreasonably inefficient
baba1b
-  # doing this APT setup pass.
baba1b
-  apt:
baba1b
-    sources:
baba1b
-      - ubuntu-toolchain-r-test
baba1b
-    packages:
baba1b
-      - debhelper
baba1b
-      - dh-systemd
baba1b
-      - fakeroot
baba1b
-      - gcc-8
baba1b
-      - git-core
baba1b
-      - libnl-3-dev
baba1b
-      - libnl-route-3-dev
baba1b
-      - libudev-dev
baba1b
-      - make
baba1b
-      - ninja-build
baba1b
-      - pandoc
baba1b
-      - python-docutils
baba1b
-      - pkg-config
baba1b
-      - python
baba1b
-      - valgrind
baba1b
-      - sparse
baba1b
-      - wget
baba1b
-      - abi-compliance-checker
baba1b
-      - abi-dumper
baba1b
-
baba1b
-      # 32 bit support packages
baba1b
-      - gcc-multilib
baba1b
-      # xenial craziness, need to give specific version of multilib,
baba1b
-      # in addition to general multilib
baba1b
-      - gcc-8-multilib
baba1b
-      - lib32gcc-8-dev
baba1b
-
baba1b
-      # pyverbs
baba1b
-      - python3-dev
baba1b
-      - python3-pip
baba1b
-
baba1b
-before_script:
baba1b
-  - http_proxy= pip3 install cython
baba1b
-script:
baba1b
-  - buildlib/travis-build
baba1b
diff --git a/CMakeLists.txt b/CMakeLists.txt
baba1b
index 59ffdf83..b5da62b1 100644
baba1b
--- a/CMakeLists.txt
baba1b
+++ b/CMakeLists.txt
baba1b
@@ -44,7 +44,7 @@
baba1b
 #      prefers python3 if available.
baba1b
 #   -DNO_PYVERBS=1 (default, build pyverbs)
baba1b
 #      Invoke cython to build pyverbs. Usually you will run with this option
baba1b
-#      is set, but it will be disabled for travis runs.
baba1b
+#      set
baba1b
 #   -DENABLE_IBDIAGS_COMPAT=True (default False)
baba1b
 #      Include obsolete scripts. These scripts are replaced by C programs with
baba1b
 #      a different interface now.
baba1b
diff --git a/Documentation/stable.md b/Documentation/stable.md
baba1b
index 76f5cf32..c12b2768 100644
baba1b
--- a/Documentation/stable.md
baba1b
+++ b/Documentation/stable.md
baba1b
@@ -10,7 +10,7 @@ Branched stable releases, off a mainline release, are on as-needed basis and lim
baba1b
 
baba1b
 All bug fixes are to be backported from mainline and applied by stable branch maintainer.
baba1b
 
baba1b
-Branched stable releases will append an additional release number (e.g. 15.1) and will ensure that Travis CI reports a successful build.
baba1b
+Branched stable releases will append an additional release number (e.g. 15.1) and will ensure that Azure Pipelines CI reports a successful build.
baba1b
 
baba1b
 Regular stable releases will be generated at the same time as mainline releases.
baba1b
 Additional stable releases can be generated if the need arise (Needed by distributions or OFED).
baba1b
@@ -73,17 +73,17 @@ so that latters patches/fixes can be checked against this reference.
baba1b
 
baba1b
 To do that, the creator of the branch should run
baba1b
 ```
baba1b
-./buildlib/cbuild build-images travis
baba1b
+./buildlib/cbuild build-images azp
baba1b
 mkdir ABI
baba1b
 touch ABI/.gitignore
baba1b
 git add ABI/.gitignore
baba1b
 git commit -m "ABI Files"
baba1b
-./buildlib/cbuild pkg travis
baba1b
+./buildlib/cbuild pkg azp
baba1b
 git add ABI/*
baba1b
 git commit --amend
baba1b
 ```
baba1b
 
baba1b
-'cbuild pkg travis' will fail as the ABI verification step files, but it will
baba1b
+'cbuild pkg azp' will fail as the ABI verification step files, but it will
baba1b
 produce the ABI reference files.
baba1b
 
baba1b
 Note that the ABI directory must NOT be committed at any point in the master branch.
baba1b
diff --git a/README.md b/README.md
baba1b
index 451ff7fc..36273ad9 100644
baba1b
--- a/README.md
baba1b
+++ b/README.md
baba1b
@@ -1,4 +1,4 @@
baba1b
-[![Build Status](https://travis-ci.org/linux-rdma/rdma-core.svg?branch=master)](https://travis-ci.org/linux-rdma/rdma-core)
baba1b
+[![Build Status](https://dev.azure.com/ucfconsort/rdma-core/_apis/build/status/linux-rdma.rdma-core?branchName=master)](https://dev.azure.com/ucfconsort/rdma-core/_build/latest?definitionId=2&branchName=master)
baba1b
 
baba1b
 # RDMA Core Userspace Libraries and Daemons
baba1b
 
baba1b
@@ -137,13 +137,13 @@ Make sure that your contribution can be licensed under the same
baba1b
 license as the original code you are patching, and that you have all
baba1b
 necessary permissions to release your work.
baba1b
 
baba1b
-## TravisCI
baba1b
+## Azure Pipelines CI
baba1b
 
baba1b
-Submitted patches must pass the TravisCI automatic builds without warnings.
baba1b
-A build similar to TravisCI can be run locally using docker and the
baba1b
+Submitted patches must pass the Azure Pipelines CI automatic builds without
baba1b
+warnings.  A build similar to AZP can be run locally using docker and the
baba1b
 'buildlib/cbuild' script.
baba1b
 
baba1b
 ```sh
baba1b
-$ buildlib/cbuild build-images travis
baba1b
-$ buildlib/cbuild pkg travis
baba1b
+$ buildlib/cbuild build-images azp
baba1b
+$ buildlib/cbuild pkg azp
baba1b
 ```
baba1b
diff --git a/buildlib/cbuild b/buildlib/cbuild
baba1b
index 742a9e22..9825e099 100755
baba1b
--- a/buildlib/cbuild
baba1b
+++ b/buildlib/cbuild
baba1b
@@ -290,100 +290,6 @@ class debian_experimental(APTEnvironment):
baba1b
             " ".join(sorted(self.pkgs))));
baba1b
         return res;
baba1b
 
baba1b
-class travis(APTEnvironment):
baba1b
-    """This parses the .travis.yml "apt" add on and converts it to a dockerfile,
baba1b
-    basically creating a container that is similar to what travis would
baba1b
-    use. Note this does not use the base travis image, nor does it install the
baba1b
-    typical travis packages."""
baba1b
-    docker_parent = "ubuntu:16.04";
baba1b
-    name = "travis";
baba1b
-    is_deb = True;
baba1b
-    _yaml = None;
baba1b
-
baba1b
-    def get_yaml(self):
baba1b
-        if self._yaml:
baba1b
-            return self._yaml;
baba1b
-
baba1b
-        # Load the commands from the travis file
baba1b
-        with open(".travis.yml") as F:
baba1b
-            self._yaml = yaml.safe_load(F);
baba1b
-        return self._yaml;
baba1b
-    yaml = property(get_yaml);
baba1b
-
baba1b
-    def get_repos(self):
baba1b
-        """Return a list of things to add with apt-add-repository"""
baba1b
-        Source = collections.namedtuple("Source",["sourceline","key_url"]);
baba1b
-
baba1b
-        # See https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
baba1b
-        pre_defined = {
baba1b
-            "ubuntu-toolchain-r-test": Source("ppa:ubuntu-toolchain-r/test",None),
baba1b
-        };
baba1b
-
baba1b
-        # Unique the sources
baba1b
-        res = set();
baba1b
-        for src in self.yaml["addons"]["apt"]["sources"]:
baba1b
-            if isinstance(src,dict):
baba1b
-                res.add(Source(sourceline=src["sourceline"],
baba1b
-                               key_url=src.get("key_url",None)));
baba1b
-            else:
baba1b
-                res.add(pre_defined[src]);
baba1b
-
baba1b
-        # Add the sources
baba1b
-        scmds = [];
baba1b
-        scmds.extend("apt-key add /etc/apt/trusted.gpg.d/%s"%(os.path.basename(I.key_url))
baba1b
-                    for I in res if I.key_url is not None);
baba1b
-        scmds.extend("http_proxy= apt-add-repository -y %s"%(pipes.quote(I.sourceline))
baba1b
-                    for I in res);
baba1b
-
baba1b
-        # Download the keys
baba1b
-        cmds = ["ADD %s /etc/apt/trusted.gpg.d/"%(I.key_url)
baba1b
-                for I in res if I.key_url is not None];
baba1b
-
baba1b
-        cmds.append("RUN " + " && ".join(scmds));
baba1b
-        return cmds;
baba1b
-
baba1b
-    def get_before_script(self):
baba1b
-        """Return a list of commands to run from before_script"""
baba1b
-        cmds = ["RUN useradd -ms /bin/bash travis && \\"
baba1b
-                "su -l -c %s"%(pipes.quote(" && ".join(self.yaml["before_script"]))) + " travis"];
baba1b
-        return cmds
baba1b
-
baba1b
-    def get_clang(self):
baba1b
-        """We are using the clang that comes in travis, which is not part of our base
baba1b
-        docker container, install something similar by hand."""
baba1b
-        llvm_tar = "clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz"
baba1b
-        cmds = [
baba1b
-            """RUN wget -q http://releases.llvm.org/7.0.0/{0} -O /tmp/{0} && \\
baba1b
-            tar xf /tmp/{0} -C /usr/local/ && \\
baba1b
-            rm /tmp/{0} && \\
baba1b
-            (cd /usr/local/bin/ && ln -sf ../clang*/bin/clang-7 .)""".format(llvm_tar)];
baba1b
-        return cmds;
baba1b
-
baba1b
-    def get_cython(self):
baba1b
-        return ["""RUN pip3 install cython"""]
baba1b
-
baba1b
-    def get_docker_file(self,tmpdir):
baba1b
-        # First this to get apt-add-repository
baba1b
-        self.pkgs = {"software-properties-common"}
baba1b
-        res = APTEnvironment.get_docker_file(self,tmpdir);
baba1b
-
baba1b
-        # Sources list from the travis.yml
baba1b
-        res.lines.extend(self.get_repos());
baba1b
-
baba1b
-        # Package list from the travis.yml
baba1b
-        # Travis uses the new cmake built into the image, we need to get an
baba1b
-        # older version from ubuntu.
baba1b
-        res.lines.append("RUN apt-get update && apt-get install -y --no-install-recommends %s"%(
baba1b
-            " ".join(sorted(["cmake"] + self.yaml["addons"]["apt"]["packages"]))));
baba1b
-
baba1b
-        # Adding before_script commands
baba1b
-        res.lines.extend(self.get_before_script())
baba1b
-
baba1b
-        res.lines.extend(self.get_clang())
baba1b
-        res.lines.extend(self.get_cython())
baba1b
-
baba1b
-        return res;
baba1b
-
baba1b
 # -------------------------------------------------------------------------
baba1b
 
baba1b
 class ZypperEnvironment(Environment):
baba1b
@@ -521,7 +427,6 @@ deb [arch=arm64,ppc64el] http://ports.ubuntu.com/ bionic-updates main universe""
baba1b
 environments = [centos6(),
baba1b
                 centos7(),
baba1b
                 centos7_epel(),
baba1b
-                travis(),
baba1b
                 xenial(),
baba1b
                 bionic(),
baba1b
                 jessie(),
baba1b
@@ -572,7 +477,7 @@ def env_choices_pkg():
baba1b
     """All the names that can be used with ToEnvAction"""
baba1b
     envs = set(("all",));
baba1b
     for I in environments:
baba1b
-        if I.name == "travis" or getattr(I,"is_deb",False) or getattr(I,"is_rpm",False):
baba1b
+        if getattr(I,"is_deb",False) or getattr(I,"is_rpm",False):
baba1b
                 envs.add(I.name);
baba1b
                 envs.update(I.aliases);
baba1b
     return envs;
baba1b
@@ -660,12 +565,12 @@ def get_tar_file(args,tarfn,pandoc_prebuilt=False):
baba1b
         return;
baba1b
 
baba1b
     # When the OS does not support pandoc we got through the extra step to
baba1b
-    # build pandoc output in the travis container and include it in the
baba1b
+    # build pandoc output in the azp container and include it in the
baba1b
     # tar.
baba1b
     if not args.use_prebuilt_pandoc:
baba1b
-        subprocess.check_call(["buildlib/cbuild","make","travis","docs"]);
baba1b
+        subprocess.check_call(["buildlib/cbuild","make","azure_pipelines","docs"]);
baba1b
 
baba1b
-    cmd_make_dist_tar(argparse.Namespace(BUILD="build-travis",tarfn=tarfn,
baba1b
+    cmd_make_dist_tar(argparse.Namespace(BUILD="build-azure_pipelines",tarfn=tarfn,
baba1b
                                          script_pwd="",tag=None));
baba1b
 
baba1b
 def run_rpm_build(args,spec_file,env):
baba1b
@@ -839,70 +744,6 @@ def copy_abi_files(src):
baba1b
             print("Changed ABI File: ", ref_fn);
baba1b
             shutil.copy(cur_fn, ref_fn);
baba1b
 
baba1b
-def run_travis_build(args,env):
baba1b
-    with private_tmp(args) as tmpdir:
baba1b
-        os.mkdir(os.path.join(tmpdir,"src"));
baba1b
-        os.mkdir(os.path.join(tmpdir,"tmp"));
baba1b
-
baba1b
-        opwd = os.getcwd();
baba1b
-        with inDirectory(os.path.join(tmpdir,"src")):
baba1b
-            subprocess.check_call(["git",
baba1b
-                                   "--git-dir",os.path.join(opwd,".git"),
baba1b
-                                   "reset","--hard","HEAD"]);
baba1b
-            subprocess.check_call(["git",
baba1b
-                                   "--git-dir",os.path.join(opwd,".git"),
baba1b
-                                   "fetch",
baba1b
-                                   "--no-tags",
baba1b
-                                   "https://github.com/linux-rdma/rdma-core.git","HEAD",
baba1b
-                                   "master"]);
baba1b
-            base = subprocess.check_output(["git",
baba1b
-                                            "--git-dir",os.path.join(opwd,".git"),
baba1b
-                                            "merge-base",
baba1b
-                                            "HEAD","FETCH_HEAD"]).decode().strip();
baba1b
-
baba1b
-        home = os.path.join(os.path.sep,"home","travis");
baba1b
-        home_build = os.path.join(os.path.sep,home,"build");
baba1b
-
baba1b
-        opts = [
baba1b
-            "run",
baba1b
-            "--read-only",
baba1b
-            "--rm=true",
baba1b
-            "-v","%s:%s"%(tmpdir, home_build),
baba1b
-            "-w",os.path.join(home_build,"src"),
baba1b
-            "-u",str(os.getuid()),
baba1b
-            "-e","TRAVIS_COMMIT_RANGE=%s..HEAD"%(base),
baba1b
-            "-e","TRAVIS_BRANCH=%s"%(base),
baba1b
-            "-e","TRAVIS_EVENT_TYPE=pull_request",
baba1b
-            "-e","HOME=%s"%(home),
baba1b
-            "-e","TMPDIR=%s"%(os.path.join(home_build,"tmp")),
baba1b
-        ] + map_git_args(opwd,os.path.join(home_build,"src"));
baba1b
-
baba1b
-        # Load the commands from the travis file
baba1b
-        with open(os.path.join(opwd,".travis.yml")) as F:
baba1b
-            cmds = yaml.safe_load(F)["script"];
baba1b
-
baba1b
-        with open(os.path.join(tmpdir,"go.sh"),"w") as F:
baba1b
-            print("#!/bin/bash", file=F);
baba1b
-            print("set -e", file=F);
baba1b
-            for I in cmds:
baba1b
-                print(I, file=F);
baba1b
-
baba1b
-        if args.run_shell:
baba1b
-            opts.append("-ti");
baba1b
-        opts.append(env.image_name());
baba1b
-
baba1b
-        if args.run_shell:
baba1b
-            opts.append("/bin/bash");
baba1b
-        else:
baba1b
-            opts.extend(["/bin/bash",os.path.join(home_build,"go.sh")]);
baba1b
-
baba1b
-        try:
baba1b
-            docker_cmd(args,*opts);
baba1b
-        except subprocess.CalledProcessError as e:
baba1b
-            copy_abi_files(os.path.join(tmpdir, "src/ABI"));
baba1b
-            raise;
baba1b
-        copy_abi_files(os.path.join(tmpdir, "src/ABI"));
baba1b
-
baba1b
 def run_azp_build(args,env):
baba1b
     # Load the commands from the pipelines file
baba1b
     with open("buildlib/azure-pipelines.yml") as F:
baba1b
@@ -995,7 +836,7 @@ def args_pkg(parser):
baba1b
     parser.add_argument("--run-shell",default=False,action="store_true",
baba1b
                         help="Instead of running the build, enter a shell");
baba1b
     parser.add_argument("--use-prebuilt-pandoc",default=False,action="store_true",
baba1b
-                        help="Do not rebuild the pandoc cache in build-travis/pandoc-prebuilt/");
baba1b
+                        help="Do not rebuild the pandoc cache in build-azure_pipelines/pandoc-prebuilt/");
baba1b
     parser.add_argument("--with", default=[],action="append", dest="with_flags",
baba1b
                         help="Enable specified feature in RPM builds");
baba1b
     parser.add_argument("--without", default=[],action="append", dest="without_flags",
baba1b
@@ -1003,9 +844,7 @@ def args_pkg(parser):
baba1b
 def cmd_pkg(args):
baba1b
     """Build a package in the given environment."""
baba1b
     for env in args.ENV:
baba1b
-        if env.name == "travis":
baba1b
-            run_travis_build(args,env);
baba1b
-        elif env.name == "azure_pipelines":
baba1b
+        if env.name == "azure_pipelines":
baba1b
             run_azp_build(args,env);
baba1b
         elif getattr(env,"is_deb",False):
baba1b
             run_deb_build(args,env);
baba1b
diff --git a/buildlib/check-build b/buildlib/check-build
baba1b
index 46053527..ab8524e5 100755
baba1b
--- a/buildlib/check-build
baba1b
+++ b/buildlib/check-build
baba1b
@@ -364,12 +364,6 @@ def get_cc_args_from_pkgconfig(args, name, static):
baba1b
     if not static:
baba1b
         return opts
baba1b
 
baba1b
-    # The old pkg-config that travis uses incorrectly removes duplicated
baba1b
-    # flags, which breaks linking.
baba1b
-    if (name == "ibverbs" and
baba1b
-        subprocess.check_output(["pkg-config", "--version"]).decode().strip() == "0.26"):
baba1b
-        opts.insert(0, "-libverbs")
baba1b
-
baba1b
     # Only static link the pkg-config stuff, otherwise we get warnings about
baba1b
     # static linking portions of glibc that need NSS.
baba1b
     opts.insert(0, "-Wl,-Bstatic")
baba1b
diff --git a/buildlib/travis-build b/buildlib/travis-build
baba1b
deleted file mode 100755
baba1b
index 48c1c8f6..00000000
baba1b
--- a/buildlib/travis-build
baba1b
+++ /dev/null
baba1b
@@ -1,58 +0,0 @@
baba1b
-#!/bin/bash
baba1b
-
baba1b
-PATH=/home/`whoami`/.local/bin:$PATH
baba1b
-
baba1b
-# Stop on error
baba1b
-set -e
baba1b
-# Echo all commands to Travis log
baba1b
-set -x
baba1b
-
baba1b
-mkdir build-travis build32 build-sparse
baba1b
-
baba1b
-# Build with latest clang first
baba1b
-cd build-travis
baba1b
-CC=clang-7 CFLAGS=-Werror cmake -GNinja .. -DIOCTL_MODE=both -DENABLE_STATIC=1
baba1b
-ninja
baba1b
-../buildlib/check-build --src .. --cc clang-7
baba1b
-
baba1b
-# 32 bit build to check format strings/etc
baba1b
-cd ../build32
baba1b
-# travis is not configured in a way that enables all 32 bit
baba1b
-# packages. We could fix this with some sudo stuff.. For now turn off libnl
baba1b
-CC=gcc-8 CFLAGS="-Werror -m32 -msse3" cmake -GNinja .. -DENABLE_RESOLVE_NEIGH=0 -DIOCTL_MODE=both -DNO_PYVERBS=1
baba1b
-ninja
baba1b
-
baba1b
-# Run sparse on the subdirectories which are sparse clean
baba1b
-cd ../build-sparse
baba1b
-mv ../CMakeLists.txt ../CMakeLists-orig.txt
baba1b
-grep -v "# NO SPARSE" ../CMakeLists-orig.txt > ../CMakeLists.txt
baba1b
-CC=cgcc CFLAGS="-Werror" cmake -GNinja .. -DIOCTL_MODE=both -DNO_PYVERBS=1
baba1b
-ninja | grep -v '^\[' | tee out
baba1b
-# sparse does not fail gcc on messages
baba1b
-if [ -s out ]; then
baba1b
-   false
baba1b
-fi
baba1b
-mv ../CMakeLists-orig.txt ../CMakeLists.txt
baba1b
-
baba1b
-# Test with coherent DMA mode disabled (ie as would be on ARM32, etc)
baba1b
-cd ../build-travis
baba1b
-cp ../util/udma_barrier.h ../util/udma_barrier.h.old
baba1b
-echo "#error Fail" >> ../util/udma_barrier.h
baba1b
-rm CMakeCache.txt
baba1b
-CC=clang-7 CFLAGS=-Werror cmake -GNinja .. -DIOCTL_MODE=both
baba1b
-ninja
baba1b
-cp ../util/udma_barrier.h.old ../util/udma_barrier.h
baba1b
-
baba1b
-# Finally run through gcc-8 64 bit through the debian packaging This gives a
baba1b
-# good clue if patches are changing packaging related things, the RPM stuff
baba1b
-# will have to be audited by hand.
baba1b
-
baba1b
-# When running cmake through debian/rules it is hard to set -Werror,
baba1b
-# instead force it on by changing the CMakeLists.txt
baba1b
-cd ..
baba1b
-echo 'set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")' >> buildlib/RDMA_EnableCStd.cmake
baba1b
-sed -i -e 's/-DCMAKE_BUILD_TYPE=Release/-DCMAKE_BUILD_TYPE=Debug/g' debian/rules
baba1b
-sed -i -e 's/ninja \(.*\)-v/ninja \1/g' debian/rules
baba1b
-
baba1b
-CC=gcc-8 debian/rules build
baba1b
-fakeroot debian/rules binary
baba1b
-- 
baba1b
2.20.1
baba1b