Skip to content

Conversation

kaspar030
Copy link
Contributor

@kaspar030 kaspar030 commented May 5, 2020

This PR updates the base for our build container to Ubuntu focal (2020.04).

There's no coccinelle package anymore for focal in the coccinelle ppa, so I've added a binary package.
Same with libsocketcan.

In order to not clutter the git history with binary data, those package files have been added using git lfs, and the build.yml workflow has been adapted to pull the lfs files.

WIP, want to see travis output

@kaspar030
Copy link
Contributor Author

2020.04 doesn't include coccinelle. This PR adds a self-compiled version, need to test that. And, maybe not include it in the repo, it is like 5mb.

What do you guys think?

@aabadie
Copy link
Contributor

aabadie commented May 19, 2020

Ubuntu 20.04 also includes a version of doxygen that generates tons of warning. This will break the static tests.

@kaspar030
Copy link
Contributor Author

Ubuntu 20.04 also includes a version of doxygen that generates tons of warning. This will break the static tests.

oh yes, I got the same on arch. That's a bummer.

@miri64
Copy link
Member

miri64 commented Jul 1, 2020

This PR should also be tested for RIOT-OS/RIOT#14288.

@miri64
Copy link
Member

miri64 commented Jul 1, 2020

Ubuntu 20.04 also includes a version of doxygen that generates tons of warning. This will break the static tests.

oh yes, I got the same on arch. That's a bummer.

I guess its time to find out how to deactivate those in config ;-).

@kaspar030 kaspar030 changed the title Update to Ubuntu 2020.04 LTS Update to Ubuntu 2020.04 LTS (don't merge yet!) Aug 11, 2020
@MrKevinWeiss
Copy link

Do you need to add apt install linux-libc-dev:i386 as well so native can compile?

@kaspar030
Copy link
Contributor Author

Do you need to add apt install linux-libc-dev:i386 as well so native can compile?

not sure it get's selected somehow, but travis did compile native correctly.

@kaspar030
Copy link
Contributor Author

  • rebased. let's see if the static tests fail now (they should show a lot of new documentation warnings)

@kaspar030
Copy link
Contributor Author

* they should show a lot of new documentation warnings

Hm, it didn't. :/

@miri64
Copy link
Member

miri64 commented Jan 7, 2021

Ubuntu 20.04 also includes a version of doxygen that generates tons of warning. This will break the static tests.

As those checks are run through a parsing script anyways, we could add exclude patterns for the warnings we deem false negatives.

@miri64
Copy link
Member

miri64 commented Jan 13, 2021

Many of those false positives should have been fixed in doxygen 1.8.16 btw... not sure, why they still show up. Will investigate.

chrysn added a commit to chrysn-pull-requests/RIOT that referenced this pull request Feb 17, 2021
chrysn added a commit to chrysn-pull-requests/RIOT that referenced this pull request Feb 18, 2021
chrysn added a commit to chrysn-pull-requests/RIOT that referenced this pull request Feb 18, 2021
Dockerfile Outdated
@@ -29,6 +29,13 @@ ENV DEBIAN_FRONTEND noninteractive
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8

# copy some included packages
RUN mkdir /pkgs
COPY files/coccinelle_1.0.8~19.04npalix1_amd64.deb /pkgs/coccinelle_1.0.8~19.04npalix1_amd64.deb
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah nvm, this particular version only appeared in groovy

Dockerfile Outdated
# copy some included packages
RUN mkdir /pkgs
COPY files/coccinelle_1.0.8~19.04npalix1_amd64.deb /pkgs/coccinelle_1.0.8~19.04npalix1_amd64.deb
COPY files/libsocketcan-dev_0.0.11-1_i386.deb /pkgs/libsocketcan-dev_0.0.11-1_i386.deb
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah nvm, this particular version only appeared in groovy

@larseggert larseggert mentioned this pull request Aug 4, 2021
@larseggert
Copy link

Any ETA on merging this? I'm trying to port a package to RIOT that requires a pretty modern cmake.

@kaspar030
Copy link
Contributor Author

This is mostly blocked by the newer Doxygen, which warns on a lot more undocumented stuff than the bionic one.
Fixing all of those is a bigger task. We could work around by using the older version for this container.
Anyhow, there's no ETA and AFAIK, noone working on this.

@miri64
Copy link
Member

miri64 commented Aug 24, 2021

This is mostly blocked by the newer Doxygen, which warns on a lot more undocumented stuff than the bionic one.

Is there really no one willing to look into how to surppress or fix those doxygen warnings? Looking at the doxygen output in Arch I don't see this solving by itself. We are now closer to the next LTS than we are to 2020.04, so only ~1,5 years time to solve this before 2018.04 will reach EOL. IMHO someone(TM) should fix this ASAP. It's a boring job and shooting at a moving target, granted, but it should be done.

@kaspar030
Copy link
Contributor Author

It might be more fruitful to integrate the older doxygen version in this PR, no need to block on a specific tool version.

@kaspar030
Copy link
Contributor Author

Doxygen warnings are down to this:

ERROR: Doxygen generates the following warnings:
	boards/nucleo-g070rb/include/periph_conf.h:139: warning: end of file with unbalanced grouping commands
	boards/nucleo-g071rb/include/periph_conf.h:137: warning: end of file with unbalanced grouping commands
	boards/nucleo-g070rb/include/periph_conf.h:108: warning: Member ADC_NUMOF (macro definition) of file periph_conf.h is not documented.
	boards/nucleo-g070rb/include/periph_conf.h:99: warning: Member adc_config[] (variable) of file periph_conf.h is not documented.
	boards/nucleo-g071rb/include/periph_conf.h:106: warning: Member ADC_NUMOF (macro definition) of file periph_conf.h is not documented.
	boards/nucleo-g071rb/include/periph_conf.h:97: warning: Member adc_config[] (variable) of file periph_conf.h is not documented.

I guess I could add these to master?

@kaspar030
Copy link
Contributor Author

I guess I could add these to master?

oh, and either those would have to be commited to 2021.10-branch, or we'd need to change the RIOT base branch of this repo's workflow.

@kaspar030
Copy link
Contributor Author

From experience: that is not really hard. Just install git lfs install and git lfs <filename> and add both <filename> and .gitattributes to the repo.

Yeah, that's how it looks. I think adapting the workflows might involve a bit more. (I looked it up, there's an "lfs: true" flag for the checkout action, but another "git lfs pull" might be needed.)

Is anyone against this for any reason? otherwise I'd give it a shot.

that was really painless. I added *.deb though, instead of the individual files.

@kaspar030
Copy link
Contributor Author

bors try

bors bot added a commit that referenced this pull request Oct 29, 2021
@bors
Copy link
Contributor

bors bot commented Oct 29, 2021

try

Build succeeded:

@kaspar030 kaspar030 changed the title Update to Ubuntu 2020.04 LTS (don't merge yet!) Update to Ubuntu 2020.04 LTS Oct 29, 2021
@kaspar030
Copy link
Contributor Author

doccheck succeeded now.

In some of my experiments on my 20.04 machine I noticed some problems with tinydtls that I do not have on my Arch machine (some numbers are wrong on the receiving end). Maybe we should check that as well before merging.

do you remember any details?

@kaspar030
Copy link
Contributor Author

do you remember any details?

we're early in the release cycle, so I'd suggest now that the doxygen issue is solved, we go with this as is. for tinydtls, we can open an issue so we don't forget verifying that still works. (it should, the toolchain used is the same).

@fjmolinas
Copy link
Contributor

Please squash

@miri64
Copy link
Member

miri64 commented Nov 2, 2021

I lately noticed some weird behavior of gCoAP over TinyDTLS when compiled my Ubuntu 20.04 machine (the python-based server receives TinyDTLS packets from the gCoAP client that it can not decypher, due to an "unknown TLS extension 23"). Not a blocker, but we should keep an eye of this during the coming release cycle.

@miri64
Copy link
Member

miri64 commented Nov 2, 2021

bors try

bors bot added a commit that referenced this pull request Nov 2, 2021
Copy link
Contributor

@fjmolinas fjmolinas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK

@fjmolinas
Copy link
Contributor

bors merge

@bors
Copy link
Contributor

bors bot commented Nov 2, 2021

try

Build succeeded:

@bors
Copy link
Contributor

bors bot commented Nov 2, 2021

Build succeeded:

@bors bors bot merged commit 6fdc262 into RIOT-OS:master Nov 2, 2021
@kaspar030 kaspar030 deleted the update_to_focal branch November 2, 2021 09:38
@larseggert
Copy link

Thank you for getting this merged!

bors bot added a commit that referenced this pull request Nov 17, 2021
153: Build C2Rust on focal r=kaspar030 a=chrysn

This issue tracks changes needed in the Rust installation (OK: C2Rust -- the rest should just work) when #104 is rebased and gets merged.

By building c2rust on the same Ubuntu release (focal), the friction between different installed LLVM versions will be reduced.

This
* switches from using c2rust's shipped build containers (which made sense back when supported Ubuntus had those old LLVM versions) to a plain feisty base,
* consequently installs the build-deps manually, and
* builds a Debian binary package in the course of installing c2rust.

The latter is done to get us rid of the manual `apt-get install llvm-7-dev` (and pray that it matches what c2rust needs) in favor of copying the .deb out of the c2rust image and getting the right build-deps automatically. (A part of building a Debian package is the tools inspecting any binaries for used shared libraries, looking up the packages they're in, and looking at that library's exported symbol versionings to get a correctly version for the dependency).

<del>Put on hold / WIP / draft until #104 is done, given that these don't need lockstepping yet.</del>

Co-authored-by: chrysn <chrysn@fsfe.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants