Closed route1rodent closed 5 years ago
You are missing the 3ds-bzip2
package, I believe. Just download it via pacman and you should be a-okay :)
@xunknxwnx thanks, but 3dstools was also missing
@piepie62 please do not close issues unless they are confirmed fixed. This is clearly consequence of a documentation issue.
In the readme you mention the devkit dependencies but some are missing or have different names:
missing in the readme: 3ds-bzip2, 3dstools, tex3ds
full list (with actual names): libctru citro3d citro2d 3ds-curl 3ds-pkg-config 3ds-sdl_mixer 3ds-bzip2 3dstools tex3ds
I closed it because I added 3ds-bzip2. I will add the other two, though. As for the naming issue, we're not trying to provide the actual package names, but what they're actually documented as
Also, there is a devkitARM docker image provided by devkitPro; it's suggested that you use that instead of building your own
thanks, I didn't know
anyway this is the final Dockerfile that worked for me, in case it is useful for someone else:
FROM ubuntu:19.04 AS pksm_dev
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential software-properties-common locales locales-all \
sudo vim git curl wget dpkg pkg-config ca-certificates make \
pacman gpg gnupg2 libxml2 python3 python3-pip \
tar unzip bzip2 xz-utils \
bsdtar doxygen g++ glibc-source \
&& pip3 install gitpython \
&& apt-get clean -y && rm -rf /var/lib/apt/lists/*
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV PYTHONIOENCODING=utf-8
ENV DEVKITPRO=/opt/devkitpro
ENV DEVKITARM=${DEVKITPRO}/devkitARM
ENV DEVKITPPC=${DEVKITPRO}/devkitPPC
ENV PATH=${DEVKITPRO}/tools/bin:$PATH
ENV CITRA_DEBUG=1
WORKDIR /downloads
# download requirements
RUN echo 'cacert=/etc/ssl/certs/ca-certificates.crt' > ~/.curlrc \
# devkitpro
&& mkdir /downloads/devkitpro && cd /downloads/devkitpro \
&& curl -OL https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb \
&& sudo dpkg -i devkitpro-pacman.deb \
&& dkp-pacman -Scc --noconfirm \
# 3dstool
&& mkdir /downloads/3dstool && cd /downloads/3dstool \
&& curl -OL https://github.com/dnasdw/3dstool/releases/download/v1.2.6/3dstool_linux_x86_64.tar.gz \
&& tar -zxvf 3dstool_linux_x86_64.tar.gz \
&& mv 3dstool /bin/3dstool && chmod +x /bin/3dstool \
# bannertool
&& mkdir /downloads/bannertool && cd /downloads/bannertool \
&& curl -OL https://github.com/Steveice10/bannertool/releases/download/1.2.0/bannertool.zip \
&& unzip bannertool.zip \
&& mv linux-x86_64/bannertool /bin/bannertool && chmod +x /bin/bannertool \
# makerom and ctrtool (for CIA builds)
&& mkdir /downloads/makerom_ctrtool && cd /downloads/makerom_ctrtool \
&& curl -OL https://github.com/jakcron/Project_CTR/releases/download/v0.16/makerom_016_ctrtool.zip \
&& unzip makerom_016_ctrtool.zip \
&& mv Ubuntu/ctrtool /bin/ctrtool && chmod +x /bin/ctrtool \
&& mv Ubuntu/makerom /bin/makerom && chmod +x /bin/makerom \
#
&& rm -rf /downloads/* \
&& echo 'downloads finished.'
# install devkitpro packages
RUN dkp-pacman -Syyu --noconfirm 3ds-dev \
&& sudo dkp-pacman -S --noconfirm libctru citro3d citro2d \
3ds-curl 3ds-pkg-config 3ds-sdl_mixer 3ds-bzip2 tex3ds 3dstools 3dslink \
general-tools \
&& dkp-pacman -Scc --noconfirm
COPY . /home/pksm
WORKDIR /home/pksm
# init git submodules
RUN git submodule update --init --recursive && ls -la /home/pksm
# build cia (under /home/pksm/3ds/out)
RUN make 3ds
Later I extract the built files using docker cp
:
docker build -t pksm:latest . || exit 1
rm -rf ./build
mkdir -p ./build
docker rm -f pksm-build
docker create -t --name pksm-build pksm:latest /bin/bash
docker cp pksm-build:/home/pksm/3ds/out/ ./build/
Describe the bug I get an error
bzlib.h: No such file or directory
when trying to build the master source code.I was trying to build the CIA for Citra Emu, following the README instructions of this project (it also requires devkitPro's tex3ds btw) but I cannot get it to work properly.
For building this I am using a Docker image, to not pollute my computer. As you can see in the Dockerfile, the OS has all required packages and libraries (in theory). Am I missing something or is this a bug?
Information about your environment
How to reproduce Place the
Dockerfile
(from above) in the PKSM project dir and then run:This requires
docker
in your computer.Additional context
Dockerfile
Debug info