devkitPro / docker

Dockerfiles for https://hub.docker.com/u/devkitpro/
GNU General Public License v3.0
58 stars 28 forks source link

zziplib is absent in devkita64 images newer than 20240324 #30

Closed IrneRacoonovich closed 3 months ago

IrneRacoonovich commented 3 months ago

Bug Report

What's the issue you encountered?

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.

How can the issue be reproduced?

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>

Environment?

Tested with docker on Linux Mint and in Github pipeline using the official docker without modifications.

Additional context?

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.

IrneRacoonovich commented 3 months ago

Additionally, after running dkp-pacman -Suy inside the latest docker image the issue present in SDK appears in the docker image as well:

/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/14.1.0/../../../../aarch64-none-elf/bin/ld: read-only segment has dynamic relocations
collect2: error: ld returned 1 exit status

Seems like the latest version of zzip (switch-zziplib-0.13.76-2) is broken in devkit.

WinterMute commented 3 months ago

This should, in theory be fixed with the latest zziplib package & docker image but I don't have a testcase to check. Can you give it a shot & report back please @IrneRacoonovich ?

IrneRacoonovich commented 3 months ago

@WinterMute Yes, the latest version (0.13.78-1) is okay and causes no issues. The latest docker is quite outdated it seems. There are around a dozen updates from dkp-pacman if running inside the devkita64:latest container.

IrneRacoonovich commented 3 months ago

With the latest docker image update (devkitpro/devkita64:20240827) there's no issue anymore. I'm closing the issue.