FROM archlinux ENV TERM=xterm ENV CC="ccache gcc" RUN pacman -Syu --noconfirm # reflector is optional - if it fails due to network issues, continue with default mirrorlist RUN pacman -S --needed --noconfirm reflector && \ (reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist || true) RUN pacman-key --init RUN pacman -S --needed --noconfirm \ autoconf \ autoconf-archive \ automake \ base-devel \ ca-certificates \ ccache \ check \ cmake \ cmocka \ lcov \ curl \ debuginfod \ doxygen \ expat \ gcc \ git \ gpgme \ gtk3 \ libgcrypt \ libmicrohttpd \ libnotify \ libsignal-protocol-c \ libotr \ libtool \ libxss \ make \ openssl \ pkg-config \ python \ wget \ sqlite \ valgrind \ gdk-pixbuf2 \ qrencode RUN mkdir -p /usr/src/{stabber,profanity} RUN useradd -mb /usr/src --shell=/bin/false aur && usermod -L aur USER aur WORKDIR /usr/src/aur # NOTE: These will change their extension to .tar.zst if a new snapshot is built # due to: # https://www.archlinux.org/news/now-using-zstandard-instead-of-xz-for-package-compression/ RUN wget https://aur.archlinux.org/cgit/aur.git/snapshot/libstrophe-git.tar.gz RUN tar -zxvf libstrophe-git.tar.gz RUN pushd libstrophe-git && makepkg && popd USER root RUN pacman -U --noconfirm libstrophe-git/libstrophe-git-*.pkg.tar.zst WORKDIR /usr/src RUN git clone --depth 1 https://git.jabber.space/devs/stabber WORKDIR /usr/src/stabber RUN ./bootstrap.sh RUN ./configure --prefix=/usr --disable-dependency-tracking RUN make -j$(nproc) RUN make install WORKDIR /usr/src/profanity COPY . /usr/src/profanity