Ola,

Pål just pushed Monday's batch, so you get amd64 and aarch64 packages for
all the platforms. Go forth and test, the paint is still very wet.

Bonne journée!

-- 
Guillaume Quintard


On Tue, Jun 16, 2020 at 5:28 AM Emilio Fernandes <
emilio.fernande...@gmail.com> wrote:

> Hi,
>
> When we could expect the new aarch64 binaries at
> https://packagecloud.io/varnishcache/varnish-weekly ?
>
> Gracias!
> Emilio
>
> El mié., 15 abr. 2020 a las 14:33, Emilio Fernandes (<
> emilio.fernande...@gmail.com>) escribió:
>
>>
>>
>> El jue., 26 mar. 2020 a las 10:15, Martin Grigorov (<
>> martin.grigo...@gmail.com>) escribió:
>>
>>> Hello,
>>>
>>> Here is the PR: https://github.com/varnishcache/varnish-cache/pull/3263
>>> I will add some more documentation about the new setup.
>>> Any feedback is welcome!
>>>
>>
>> Nice work, Martin!
>>
>> Gracias!
>> Emilio
>>
>>
>>>
>>> Regards,
>>> Martin
>>>
>>> On Wed, Mar 25, 2020 at 9:55 PM Martin Grigorov <
>>> martin.grigo...@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> On Wed, Mar 25, 2020, 20:15 Guillaume Quintard <
>>>> guilla...@varnish-software.com> wrote:
>>>>
>>>>> is that script running as root?
>>>>>
>>>>
>>>> Yes.
>>>> I also added 'USER root' to its Dockerfile and '-u 0' to 'docker run'
>>>> arguments but it still doesn't work.
>>>> The x86 build is OK.
>>>> It must be something in the base docker image.
>>>> I've disabled the Alpine aarch64 job for now.
>>>> I'll send a PR tomorrow!
>>>>
>>>> Regards,
>>>> Martin
>>>>
>>>>
>>>>> --
>>>>> Guillaume Quintard
>>>>>
>>>>>
>>>>> On Wed, Mar 25, 2020 at 2:30 AM Martin Grigorov <
>>>>> martin.grigo...@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I've moved 'dist' job to be executed in parallel with 'tar_pkg_tools'
>>>>>> and the results from both are shared in the workspace for the actual
>>>>>> packing jobs.
>>>>>> Now the new error for aarch64-apk job is:
>>>>>>
>>>>>> abuild: varnish >>> varnish: Updating the sha512sums in APKBUILD...
>>>>>> ]0; DEBUG: 4
>>>>>> ]0;abuild: varnish >>> varnish: Building /varnish 6.4.0-r1 (using
>>>>>> abuild 3.5.0-r0) started Wed, 25 Mar 2020 09:22:02 +0000
>>>>>> >>> varnish: Checking sanity of /package/APKBUILD...
>>>>>> >>> WARNING: varnish: No maintainer
>>>>>> >>> varnish: Analyzing dependencies...
>>>>>>   0%                                             %
>>>>>> ############################################>>> varnish: Installing for
>>>>>> build: build-base gcc libc-dev libgcc pcre-dev ncurses-dev libedit-dev
>>>>>> py-docutils linux-headers libunwind-dev python py3-sphinx
>>>>>> Waiting for repository lock
>>>>>> ERROR: Unable to lock database: Bad file descriptor
>>>>>> ERROR: Failed to open apk database: Bad file descriptor
>>>>>> >>> ERROR: varnish: builddeps failed
>>>>>> ]0; >>> varnish: Uninstalling dependencies...
>>>>>> Waiting for repository lock
>>>>>> ERROR: Unable to lock database: Bad file descriptor
>>>>>> ERROR: Failed to open apk database: Bad file descriptor
>>>>>>
>>>>>> Google suggested to do this:
>>>>>>    rm -rf /var/cache/apk
>>>>>>    mkdir /var/cache/apk
>>>>>>
>>>>>> It fails at 'abuild -r' -
>>>>>> https://github.com/martin-g/varnish-cache/blob/b62c357b389c0e1e31e9c001cbffb55090c2e49f/.circleci/make-apk-packages.sh#L61
>>>>>>
>>>>>> Any hints ?
>>>>>>
>>>>>> Martin
>>>>>>
>>>>>> On Wed, Mar 25, 2020 at 2:39 AM Guillaume Quintard <
>>>>>> guilla...@varnish-software.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> So, you are pointing at the `dist` job, whose sole role is to
>>>>>>> provide us with a dist tarball, so we don't need that command line to 
>>>>>>> work
>>>>>>> for everyone, just for that specific platform.
>>>>>>>
>>>>>>> On the other hand,
>>>>>>> https://github.com/varnishcache/varnish-cache/blob/4f9d8bed6b24bf9ee900c754f37615fdba1c44db/.circleci/config.yml#L168
>>>>>>>  is
>>>>>>> closer to what you want, `distcheck` will be call on all platform, and 
>>>>>>> you
>>>>>>> can see that it has the `--with-unwind` argument.
>>>>>>> --
>>>>>>> Guillaume Quintard
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Mar 24, 2020 at 3:05 PM Martin Grigorov <
>>>>>>> martin.grigo...@gmail.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Mar 24, 2020, 17:19 Guillaume Quintard <
>>>>>>>> guilla...@varnish-software.com> wrote:
>>>>>>>>
>>>>>>>>> Compare your configure line with what's currently in use (or the
>>>>>>>>> apkbuild file), there are a few options (with-unwind, 
>>>>>>>>> without-jemalloc,
>>>>>>>>> etc.) That need to be set
>>>>>>>>>
>>>>>>>>
>>>>>>>> The configure line comes from "./autogen.des":
>>>>>>>> https://github.com/varnishcache/varnish-cache/blob/4f9d8bed6b24bf9ee900c754f37615fdba1c44db/autogen.des#L35-L42
>>>>>>>> It is called at:
>>>>>>>>
>>>>>>>> https://github.com/varnishcache/varnish-cache/blob/4f9d8bed6b24bf9ee900c754f37615fdba1c44db/.circleci/config.yml#L40
>>>>>>>> In my branch at:
>>>>>>>>
>>>>>>>> https://github.com/martin-g/varnish-cache/blob/4b4626ee9cc366b032a45f27b54d77176125ef03/.circleci/make-apk-packages.sh#L26
>>>>>>>>
>>>>>>>> It fails only on aarch64 for Alpine Linux. The x86_64 build for
>>>>>>>> Alpine is fine.
>>>>>>>> AARCH64 for CentOS 7 and Ubuntu 18.04 are also fine.
>>>>>>>>
>>>>>>>> Martin
>>>>>>>>
>>>>>>>>
>>>>>>>>> On Tue, Mar 24, 2020, 08:05 Martin Grigorov <
>>>>>>>>> martin.grigo...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> On Tue, Mar 24, 2020 at 11:00 AM Martin Grigorov <
>>>>>>>>>> martin.grigo...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Guillaume,
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Mar 23, 2020 at 8:01 PM Guillaume Quintard <
>>>>>>>>>>> guilla...@varnish-software.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Martin,
>>>>>>>>>>>>
>>>>>>>>>>>> Thank you for that.
>>>>>>>>>>>> A few remarks and questions:
>>>>>>>>>>>> - how much time does the "docker build" step takes? We can
>>>>>>>>>>>> possibly speed things up by push images to the dockerhub, as they 
>>>>>>>>>>>> don't
>>>>>>>>>>>> need to change very often.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Definitely such optimization would be a good thing to do!
>>>>>>>>>>> At the moment, with 'machine' executor it fetches the base image
>>>>>>>>>>> and then builds all the Docker layers again and again.
>>>>>>>>>>> Here are the timings:
>>>>>>>>>>> 1) Spinning up a VM - around 10secs
>>>>>>>>>>> 2) prepare env variables - 0secs
>>>>>>>>>>> 3) checkout code (varnish-cache) - 5secs
>>>>>>>>>>> 4) activate QEMU - 2secs
>>>>>>>>>>> 5) build packages
>>>>>>>>>>> 5.1) x86 deb - 3m 30secs
>>>>>>>>>>> 5.2) x86 rpm - 2m 50secs
>>>>>>>>>>> 5.3) aarch64 rpm - 35mins
>>>>>>>>>>> 5.4) aarch64 deb - 45mins
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> - any reason why you clone pkg-varnish-cache in each job? The
>>>>>>>>>>>> idea was to have it cloned once in tar-pkg-tools for consistency 
>>>>>>>>>>>> and
>>>>>>>>>>>> reproducibility, which we lose here.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> I will extract the common steps once I see it working. This is
>>>>>>>>>>> my first CircleCI project and I still find my ways in it!
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> - do we want to change things for the amd64 platforms for the
>>>>>>>>>>>> sake of consistency?
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> So far there is nothing specific for amd4 or aarch64, except the
>>>>>>>>>>> base Docker images.
>>>>>>>>>>> For example make-deb-packages.sh is reused for both amd64 and
>>>>>>>>>>> aarch64 builds. Same for -rpm- and now for -apk- (alpine).
>>>>>>>>>>>
>>>>>>>>>>> Once I feel the change is almost finished I will open a Pull
>>>>>>>>>>> Request for more comments!
>>>>>>>>>>>
>>>>>>>>>>> Martin
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Guillaume Quintard
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Mar 23, 2020 at 6:25 AM Martin Grigorov <
>>>>>>>>>>>> martin.grigo...@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Wed, Mar 18, 2020 at 5:31 PM Martin Grigorov <
>>>>>>>>>>>>> martin.grigo...@gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, Mar 12, 2020 at 4:35 PM Martin Grigorov <
>>>>>>>>>>>>>> martin.grigo...@gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Guillaume,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Thu, Mar 12, 2020 at 3:23 PM Guillaume Quintard <
>>>>>>>>>>>>>>> guilla...@varnish-software.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Offering arm64 packages requires a few things:
>>>>>>>>>>>>>>>> - arm64-compatible code (all good in
>>>>>>>>>>>>>>>> https://github.com/varnishcache/varnish-cache)
>>>>>>>>>>>>>>>> - arm64-compatible package framework (all good in
>>>>>>>>>>>>>>>> https://github.com/varnishcache/pkg-varnish-cache)
>>>>>>>>>>>>>>>> - infrastructure to build the packages (uhoh, see below)
>>>>>>>>>>>>>>>> - infrastructure to store and deliver (
>>>>>>>>>>>>>>>> https://packagecloud.io/varnishcache)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> So, everything is in place, expect for the third point. At
>>>>>>>>>>>>>>>> the moment, there are two concurrent CI implementations:
>>>>>>>>>>>>>>>> - travis:
>>>>>>>>>>>>>>>> https://github.com/varnishcache/varnish-cache/blob/master/.travis.yml
>>>>>>>>>>>>>>>>  It's
>>>>>>>>>>>>>>>> the historical one, and currently only runs compilation+test 
>>>>>>>>>>>>>>>> for OSX
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Actually it tests Linux AMD64 and ARM64 too.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> - circleci:
>>>>>>>>>>>>>>>> https://github.com/varnishcache/varnish-cache/blob/master/.circleci/config.yml
>>>>>>>>>>>>>>>>  the
>>>>>>>>>>>>>>>> new kid on the block, that builds all the packages and 
>>>>>>>>>>>>>>>> distchecks for all
>>>>>>>>>>>>>>>> the packaged platforms
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The issue is that cirecleci doesn't support arm64
>>>>>>>>>>>>>>>> containers (for now?), so we would need to re-implement the 
>>>>>>>>>>>>>>>> packaging logic
>>>>>>>>>>>>>>>> in Travis. It's not a big problem, but it's currently not a 
>>>>>>>>>>>>>>>> priority on my
>>>>>>>>>>>>>>>> side.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> However, I am totally ready to provide help if someone
>>>>>>>>>>>>>>>> wants to take that up. The added benefit it that Travis would 
>>>>>>>>>>>>>>>> be able to
>>>>>>>>>>>>>>>> handle everything and we can retire the circleci experiment
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I will take a look in the coming days and ask you if I need
>>>>>>>>>>>>>>> help!
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I've took a look at the current setup and here is what I've
>>>>>>>>>>>>>> found as problems and possible solutions:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 1) Circle CI
>>>>>>>>>>>>>> 1.1) problem - the 'machine' and 'Docker' executors run on
>>>>>>>>>>>>>> x86_64, so there is no way to build the packages in a "native" 
>>>>>>>>>>>>>> environment
>>>>>>>>>>>>>> 1.2) possible solutions
>>>>>>>>>>>>>> 1.2.1) use multiarch cross build
>>>>>>>>>>>>>> 1.2.2) use 'machine' executor that registers QEMU via
>>>>>>>>>>>>>> https://hub.docker.com/r/multiarch/qemu-user-static/ and
>>>>>>>>>>>>>> then builds and runs a custom Docker image that executes a shell 
>>>>>>>>>>>>>> script
>>>>>>>>>>>>>> with the build steps
>>>>>>>>>>>>>> It will look something like
>>>>>>>>>>>>>> https://github.com/yukimochi-containers/alpine-vpnserver/blob/69bb0a612c9df3e4ba78064d114751b760f0df9d/.circleci/config.yml#L19-L38
>>>>>>>>>>>>>>  but
>>>>>>>>>>>>>> instead of uploading the Docker image as a last step it will run 
>>>>>>>>>>>>>> it.
>>>>>>>>>>>>>> The RPM and DEB build related code from current config.yml
>>>>>>>>>>>>>> will be extracted into shell scripts which will be copied in the 
>>>>>>>>>>>>>> custom
>>>>>>>>>>>>>> Docker images
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> From these two possible ways I have better picture in my head
>>>>>>>>>>>>>> how to do 1.2.2, but I don't mind going deep in 1.2.1 if this is 
>>>>>>>>>>>>>> what you'd
>>>>>>>>>>>>>> prefer.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> I've decided to stay with Circle CI and use 'machine' executor
>>>>>>>>>>>>> with QEMU.
>>>>>>>>>>>>>
>>>>>>>>>>>>> The changed config.yml could be seen at
>>>>>>>>>>>>> https://github.com/martin-g/varnish-cache/tree/feature/aarch64-packages/.circleci
>>>>>>>>>>>>>  and
>>>>>>>>>>>>> the build at
>>>>>>>>>>>>> https://app.circleci.com/pipelines/github/martin-g/varnish-cache/71/workflows/3a275d79-62a9-48b4-9aef-1585de1c87c8
>>>>>>>>>>>>> The builds on x86 arch take 3-4 mins, but for aarch64
>>>>>>>>>>>>> (emulation!) ~40mins
>>>>>>>>>>>>> For now the jobs just build the .deb & .rpm packages for
>>>>>>>>>>>>> CentOS 7 and Ubuntu 18.04, both amd64 and aarch64.
>>>>>>>>>>>>> TODOs:
>>>>>>>>>>>>> - migrate Alpine
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>> Build on Alpine aarch64 fails with:
>>>>>>>>>> ...
>>>>>>>>>> automake: this behaviour will change in future Automake versions:
>>>>>>>>>> they will
>>>>>>>>>> automake: unconditionally cause object files to be placed in the
>>>>>>>>>> same subdirectory
>>>>>>>>>> automake: of the corresponding sources.
>>>>>>>>>> automake: project, to avoid future incompatibilities.
>>>>>>>>>> parallel-tests: installing 'build-aux/test-driver'
>>>>>>>>>> lib/libvmod_debug/Makefile.am:12: warning:
>>>>>>>>>> libvmod_debug_la_LDFLAGS multiply defined in condition TRUE ...
>>>>>>>>>> lib/libvmod_debug/automake_boilerplate.am:19: ...
>>>>>>>>>> 'libvmod_debug_la_LDFLAGS' previously defined here
>>>>>>>>>> lib/libvmod_debug/Makefile.am:9:   'lib/libvmod_debug/
>>>>>>>>>> automake_boilerplate.am' included from here
>>>>>>>>>> + autoconf
>>>>>>>>>> + CONFIG_SHELL=/bin/sh
>>>>>>>>>> + export CONFIG_SHELL
>>>>>>>>>> + ./configure '--prefix=/opt/varnish' '--mandir=/opt/varnish/man'
>>>>>>>>>> --enable-maintainer-mode --enable-developer-warnings
>>>>>>>>>> --enable-debugging-symbols --enable-dependency-tracking
>>>>>>>>>> --with-persistent-storage --quiet
>>>>>>>>>> configure: WARNING: dot not found - build will fail if svg files
>>>>>>>>>> are out of date.
>>>>>>>>>> configure: WARNING: No system jemalloc found, using system malloc
>>>>>>>>>> configure: error: Could not find backtrace() support
>>>>>>>>>>
>>>>>>>>>> Does anyone know a workaround ?
>>>>>>>>>> I use multiarch/alpine:aarch64-edge as a base Docker image
>>>>>>>>>>
>>>>>>>>>> Martin
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> - store the packages as CircleCI artifacts
>>>>>>>>>>>>> - anything else that is still missing
>>>>>>>>>>>>>
>>>>>>>>>>>>> Adding more architectures would be as easy as adding a new
>>>>>>>>>>>>> Dockerfile with a base image from the respective type.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Martin
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2) Travis CI
>>>>>>>>>>>>>> 2.1) problems
>>>>>>>>>>>>>> 2.1.1) generally Travis is slower than Circle!
>>>>>>>>>>>>>> Althought if we use CircleCI 'machine' executor it will be
>>>>>>>>>>>>>> slower than the current 'Docker' executor!
>>>>>>>>>>>>>> 2.1.2) Travis supports only Ubuntu
>>>>>>>>>>>>>> Current setup at CircleCI uses CentOS 7.
>>>>>>>>>>>>>> I guess the build steps won't have problems on Ubuntu.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 3) GitHub Actions
>>>>>>>>>>>>>> GH Actions does not support ARM64 but it supports self hosted
>>>>>>>>>>>>>> ARM64 runners
>>>>>>>>>>>>>> 3.1) The problem is that there is no way to make a self
>>>>>>>>>>>>>> hosted runner really private. I.e. if someone forks Varnish 
>>>>>>>>>>>>>> Cache any
>>>>>>>>>>>>>> commit in the fork will trigger builds on the arm64 node. There 
>>>>>>>>>>>>>> is no way
>>>>>>>>>>>>>> to reserve the runner only for commits against
>>>>>>>>>>>>>> https://github.com/varnishcache/varnish-cache
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Do you see other problems or maybe different ways ?
>>>>>>>>>>>>>> Do you have preferences which way to go ?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>> Martin
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>>> Martin
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>> Guillaume Quintard
>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>> varnish-dev mailing list
>>>>>>>>>>>>>>>> varnish-dev@varnish-cache.org
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
_______________________________________________
varnish-dev mailing list
varnish-dev@varnish-cache.org
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev

Reply via email to