source Dockerfiles for docker images at https://hub.docker.com/u/devkitpro/
devkitpro / docker Goto Github PK
View Code? Open in Web Editor NEWDockerfiles for https://hub.docker.com/u/devkitpro/
License: GNU General Public License v3.0
Dockerfiles for https://hub.docker.com/u/devkitpro/
License: GNU General Public License v3.0
source Dockerfiles for docker images at https://hub.docker.com/u/devkitpro/
Hey,
I'm trying to execute the patch
command for CI/CD on GitHub Actions. Apparently the command is not found and inspecting the devkitARM image shows that it's missing:
I've spoken with @fincs and apparently it'll require installing the patch
package in toolchain-base
.
Hello,
Small suggestion : It would be great to have a different source base for the toolchain-base container.
Currently the debian:stretch-slim is shipped with old versions of some tools (git, pyhton2, cmake)
I know that you are not supporting cmake and I perfectly understand why.
I do not want to raise another thread on this topic.
Unfortunately, since downloads.devkitpro.org is returning "403 forbidden" from Github CI,
we are no longer able to use pacman from arch container.
As far as I can see, the https://hub.docker.com/r/devkitpro/devkita64 is our best option.
On the other hand, tools available from stretch repos are pretty old (especially for continuous integration).
So It would be great to have a different base like debian buster or the latest arch container.
let me know if you have any other recommendation.
Regards,
Libnx 4.0 came out about a week ago and it's a pretty big update, with re-factoring and all. Could it be possible to update the image?
Thank you
Hello,
I'm working on Apple Silicon and really like the idea of having dockerized build environment. Unfortunately your docker images are made for amd64 architecture. Mac can emulate x86 architecture with Rosetta and your images work that way but I've noticed compiling homebrew takes much more time. Would you be able to publish cross compiled arm64 builds? It shouldn't add too much overhead to your current workflow: https://dev.to/aws-builders/using-docker-buildx-to-create-cross-platform-docker-images-for-seamless-compatibility-4k8b
Best regards,
Maciej
The devkitpro/devkita64:latest image has been failing for us in CircleCI since about August 1. There is a suggestion for a solution in this articel:
https://circleci.com/docs/2.0/high-uid-error/
The error we get when running the build process for DevilutionX:
Build-agent version 1.0.38841-5271c1f7 (2020-08-28T15:52:24+0000)
Docker Engine Version: 18.09.6
Kernel Version: Linux 9a5a0f427d29 4.15.0-1077-aws #81-Ubuntu SMP Wed Jun 24 16:48:15 UTC 2020 x86_64 Linux
Starting container devkitpro/devkita64:latest
image cache not found on this host, downloading devkitpro/devkita64:latest
latest: Pulling from devkitpro/devkita64
77b12acb: Pulling fs layer
46bc7d40: Pulling fs layer
2ab5cd05: Pulling fs layer
df2f57d3: Extracting [==================================================>] 256.2MB/256.2MBB
CircleCI was unable to start the container because of a userns remapping failure in Docker.
This typically means the image contains files with UID/GID values that are higher than Docker and CircleCI can use.
Checkout our docs https://circleci.com/docs/2.0/high-uid-error/ to learn how to fix this problem.
Original error: CircleCI was unable to start the container because of a userns remapping failure in Docker.
This typically means the image contains files with UID/GID values that are higher than Docker and CircleCI can use.
Checkout our docs https://circleci.com/docs/2.0/high-uid-error/ to learn how to fix this problem.
Original error: failed to register layer: Error processing tar file(exit status 1): Container ID 197609 cannot be mapped to a host ID
The libmad package is missing in latest devkita64 Docker image.
Latest images use the switch-portlibs group to include libraries.
Change has been made to libmad PKGBUILD file but it seems package hasn't been rebuilt and lacks the group tag.
Could you rebuild both the package and then the Docker image?
Thanks
Hello hello, long time.
Appears that there isn't a linux/arm64/v8
image on Hub, and building locally barfs when /etc/mtab
isn't found...
How plausible is this goal?
Hi there, I hope you are doing fine.
Is it possible to change the update sources for apt update?
I'm using Ubuntu 20.04 and do a pull for the Docker image from Github to compile a project but I cannot install and update the necessary tools like python3 and lz4.
It might be that this also applies to the other docker images I didn't test.
As a work around I pull the docker image, remove /etc/apt/sources.list and replace the sources.list with the information below:
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu focal partner
deb-src http://archive.canonical.com/ubuntu focal partner
Thanks in advance.
Zziplib is not available anymore in portlibs in the newest devkita64
docker images. The latest devkita64
image where it was present is 20240324.
I haven't made any changes to the image before or after the issue occurred. The issue appears just from updating the docker image from version 20240324
to any later one.
Pull docker image latest
, 20240602
or 20240604
and try including "zzip/zzip.h"
while using the switch MAKEFILE to build.
Will result in:
fatal error: zzip/zzip.h: No such file or directory
5 | #include "zzip/zzip.h"
In the image 20240324
the files are present:
# find /opt/devkitpro/portlibs/switch/ -iname *zzip*
/opt/devkitpro/portlibs/switch/lib/libzzipwrap.a
/opt/devkitpro/portlibs/switch/lib/libzzipwrap.la
/opt/devkitpro/portlibs/switch/lib/libzzip.a
/opt/devkitpro/portlibs/switch/lib/libzzipfseeko.la
/opt/devkitpro/portlibs/switch/lib/libzzipfseeko.a
/opt/devkitpro/portlibs/switch/lib/libzzipmmapped.la
/opt/devkitpro/portlibs/switch/lib/libzzipmmapped.a
/opt/devkitpro/portlibs/switch/lib/pkgconfig/zzipwrap.pc
/opt/devkitpro/portlibs/switch/lib/pkgconfig/zzip-zlib-config.pc
/opt/devkitpro/portlibs/switch/lib/pkgconfig/zzipfseeko.pc
/opt/devkitpro/portlibs/switch/lib/pkgconfig/zziplib.pc
/opt/devkitpro/portlibs/switch/lib/pkgconfig/zzipmmapped.pc
/opt/devkitpro/portlibs/switch/lib/libzzip.la
/opt/devkitpro/portlibs/switch/include/zziplib.h
/opt/devkitpro/portlibs/switch/include/zzip.h
/opt/devkitpro/portlibs/switch/include/zzip-io.h
/opt/devkitpro/portlibs/switch/include/zzip
/opt/devkitpro/portlibs/switch/include/zzip/zzip32.h
/opt/devkitpro/portlibs/switch/include/zzip/zzip.h
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_dirfd.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_fclose.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_dir_open.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_telldir.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_realdir.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_strerror.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_realfd.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_get_default_io.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_tell.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_ffile.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_open_shared_io.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_entry_strdup_comment.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_entry_strdup_name.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_rewinddir.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_fopen.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_fopen.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_freopen.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_data_offset.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_init_io.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_open.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_dir_alloc.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_findfirst.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_munmap.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_fread.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_dirhandle.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_telldir32.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_entry_to_data.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_findnext.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_findfile.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_findmatch.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_tell32.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_findmatch.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_feof.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_opendir.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_fread_file_header.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_new.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_seek.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_file_real.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_findnext.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_seekdir32.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_open_ext_io.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_entry_to_file_header.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_fopen.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_file_stat.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_free.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_open.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_seekdir.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_dir_real.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_dir_stat.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_mmap.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_strdup_name.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_close.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_feof.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_buffer.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_dir_read.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_opendir_ext_io.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_fread.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_strerror_of.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_read.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_dir_open_ext_io.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_fstat.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_dir_alloc_ext_io.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_findfirst.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_fclose.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_fread.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_dir_free.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_error.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_entry_fopen.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_entry_findfile.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_disk_init.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_seterror.3
/opt/devkitpro/portlibs/switch/share/man/man3/zzip_seek32.3
/opt/devkitpro/portlibs/switch/share/aclocal/zziplib.m4
In the newer ones they are absent:
# find /opt/devkitpro/portlibs/switch/ -iname *zzip*
<no result>
Tested with docker on Linux Mint and in Github pipeline using the official docker without modifications.
Additionally the zzip portlib is also broken in the latest SDK (tested with official windows MSYS based SDK). It causes "read-only segment has dynamic relocations" linking errors if any zzip_*
function is called, unlike with an earlier SDK version.
The latest devkitARM image is failing on dkp-pacman -Syu --no-confirm
.
$ docker run devkitpro/devkitarm
:: Synchronizing package databases...
downloading dkp-libs.db...
dkp-linux is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
Packages (3) 3ds-bulletphysics-2.87-5 3ds-examples-20210610-1 3ds-physfs-3.0.2-3
Total Download Size: 3.55 MiB
Total Installed Size: 9.54 MiB
Net Upgrade Size: -0.36 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages...
downloading 3ds-bulletphysics-2.87-5-any.pkg.tar.xz...
downloading 3ds-examples-20210610-1-any.pkg.tar.xz...
downloading 3ds-physfs-3.0.2-3-any.pkg.tar.xz...
checking package integrity...
loading package files...
error: error while reading package /opt/devkitpro/pacman/var/cache/pacman/pkg/3ds-examples-20210610-1-any.pkg.tar.xz: Pathname can't be converted from UTF-8 to current locale.
error: failed to commit transaction (libarchive error)
Errors occurred, no packages were upgraded.
CI builds for 3DS are broken in DevilutionX with the same error.
https://app.circleci.com/pipelines/github/diasurgical/devilutionX/6348/workflows/254aae36-de94-4aa3-b5ed-e7e1ddabcc52/jobs/45643
Latest devkitPPC Docker image (digest b8a8d3d901fc) is only available through the latest tag.
Using the latest tag means that the toolchain will move every now and then.
Could you add a date tag for it as you already do for other devkit toolchains?
Thanks
2 days ago, the CI for ObjFW broke. I saw that the Docker image for devkitpro/devkitarm was updated, and it fails ever since with
configure: error: Objective C compiler cannot create executables
Adding a cat config.log
to see the actual invocation, I see:
arm-none-eabi-gcc: error: conftest.m: Objective-C compiler not installed on this system
So it seems the cc1objc binary is missing in the Docker image now?
Could you please push a new Docker image that includes cc1objc again? Thanks.
I'm unable to run arm-none-eabi-gdb
using the devkitpro/devkitarm
image. It appears there are a couple issues:
/opt/devkitpro/devkitARM/bin
isn't in the path
$ docker run -it --rm -v "$PWD:/build" devkitpro/devkitarm
# arm-none-eabi-gdb
bash: arm-none-eabi-gdb: command not found
# find / -name arm-none-eabi-gdb
/opt/devkitpro/devkitARM/bin/arm-none-eabi-gdb
Dependencies are missing:
# /opt/devkitpro/devkitARM/bin/arm-none-eabi-gdb
/opt/devkitpro/devkitARM/bin/arm-none-eabi-gdb: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
# apt install libtinfo5
...
# /opt/devkitpro/devkitARM/bin/arm-none-eabi-gdb
/opt/devkitpro/devkitARM/bin/arm-none-eabi-gdb: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
# apt -y install libpython2.7
...
# /opt/devkitpro/devkitARM/bin/arm-none-eabi-gdb
(gdb)
Here's my one-liner workaround for anyone running into this:
docker run -it --rm -v "$PWD:/build" devkitpro/devkitarm sh -c "PATH=/opt/devkitpro/devkitARM/bin:"$PATH"; apt -y install libtinfo5 libpython2.7; arm-none-eabi-gdb"
or:
docker run -it --rm -v "$PWD:/build" devkitpro/devkitarm sh -c "PATH=/opt/devkitpro/devkitARM/bin:"$PATH"; apt -y install libtinfo5 libpython2.7; bash"
These Dockerfiles are currently using debian:bullseye-slim
. This version of Debian has been released in 2021 and will go EOL somewhere within this month:
https://wiki.debian.org/DebianReleases
11 | Bullseye | Release: 2021-08-14 | EOL: ~2024-07
An upgrade to Bookworm should be as simple as changing this line to debian:bookworm-slim
:
https://github.com/devkitPro/docker/blob/master/toolchain-base/Dockerfile#L1
However, I cannot test the resulting containers properly, so opening a PR seems wrong to me. Please take a look at this, thanks!
Hey :)
Could you update the devkitarm image from your dockerhub please ?
libctru went to 1.6 since the image was built.
Thanks!
-- Found PkgConfig: /opt/devkitpro/devkitA64/bin/aarch64-none-elf-pkg-config (found version "")
-- Checking for module 'sdl2'
--
CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:463 (message):
A required package was not found
Homebrew apps on Switch rarely use make anymore. I think it would be great to include cmake in these official containers.
Also, the switch.cmake etc. files seems to be missing. These could maybe be installed by installing the devkitpro-pkgbuild-helpers package. Or maybe I am just blind.
I use this image to run CI in bitbucket pipeline but it fails as it cannot find target build. I use the GBA template in my project. This makefile defines build target when not in the build directory to call itself within the build directory again. Neat trick. Unfortunately a bitbucket pipeline runs in the directory /opt/atlassian/pipelines/agent/build and thus the makefile assumes it is already in the second call frame. It is not.
Why do I post it here when this is a problem of the GBA template? This is a CI/CD issue that is not easy to debug without looking further into the Makefiles which is an uneasy starter. As this is a CI/CD issue and these docker images should be used for CI/CD I think this place is right here.
What I expect? Just a hint somewhere in the getting started page or some other explanatory pages that this can be troublesome :)
Hello.
I'm using these docker images to compile and run my homebrew on my Switch but one feature doesn't seem to work, which is nxlink in server mode.
It successfully sends the .nro to the switch but stuff like stdio redirection doesn't work, while it works as intended when running nxlink outside the container.
Tried both with docker (both on native linux (RHEL 8.5 and Fedora 35) and on Windows through WSL2) and podman (also RHEL 8.5 and Fedora 35) with no difference in outcome/behavior.
Commands used:
docker run --rm -it -v $PWD:/source devkitpro/devkita64 bash # for docker
podman run --rm -it -v $PWD:/source devkitpro/devkita64 bash # for podman
and then:
cd /source
make
nxlink -s -a <switch ip> <nro file>
I suspect this could be something to do with docker not exposing the port needed for communication switch -> pc but idk.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.