What's new

libxml2 in 386.4 fails to build - missing perl module?

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!


New Around Here
I'm getting a build failure trying to build Asuswrt-Merlin 386.4 for RT-AC68U

make[4]: Leaving directory '/src/asuswrt-merlin.ng/release/src/router'
cd libxml2 && mkdir -p m4 && autoreconf -i -f && \
CC=arm-brcm-linux-uclibcgnueabi-gcc AR=arm-brcm-linux-uclibcgnueabi-ar RANLIB=arm-brcm-linux-uclibcgnueabi-ranlib \
././configure --host=arm-linux --build=x86_64-linux-gnu --prefix=/usr --without-python --disable-dependency-tracking \
Can't locate Autom4te/ChannelDefs.pm in @INC (you may need to install the Autom4te::ChannelDefs module) (@INC contains: /projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/share/autoconf /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.30.0 /usr/local/share/perl/5.30.0 /usr/lib/x86_64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at /opt/brcm-arm/bin/autoreconf line 40.
BEGIN failed--compilation aborted at /opt/brcm-arm/bin/autoreconf line 40.
make[3]: *** [Makefile:6195: libxml2/stamp-h1] Error 2
make[3]: Leaving directory '/src/asuswrt-merlin.ng/release/src/router'
make[2]: *** [Makefile:646: all] Error 2
make[2]: Leaving directory '/src/asuswrt-merlin.ng/release/src-rt-6.x.4708'
make[1]: *** [Makefile:5445: bin] Error 2
make[1]: Leaving directory '/src/asuswrt-merlin.ng/release/src-rt-6.x.4708'
make: *** [Makefile:5639: rt-ac68u] Error 2

The Dockerfile I'm using is as follows:

FROM ubuntu
RUN dpkg --add-architecture i386 && apt update && DEBIAN_FRONTEND=noninteractive apt install -y git make libtool-bin cmake libproxy-dev uuid-dev liblzo2-dev autoconf automake bash bison bzip2 diffutils file flex m4 g++ gawk groff-base libtool libslang2 make patch perl pkg-config shtool subversion tar texinfo zlib1g zlib1g-dev gettext libexpat1-dev libssl-dev cvs gperf unzip python libxml-parser-perl gcc-multilib gconf-editor libxml2-dev g++-multilib gitk libncurses5 mtd-utils libncurses5-dev libvorbis-dev git autopoint autogen sed build-essential intltool libelf1:i386 libglib2.0-dev xutils-dev lib32z1-dev lib32stdc++6 xsltproc gtk-doc-tools
RUN mkdir /src
RUN git clone --depth=1 https://github.com/RMerl/am-toolchains && git clone --branch 386.4 --single-branch https://github.com/RMerl/asuswrt-merlin.ng
RUN ln -s /src/am-toolchains/brcm-arm-sdk/hndtools-arm-linux-2.6.36-uclibc-4.5.3 /opt/brcm-arm
ENV PATH /opt/brcm-arm/bin:$PATH
WORKDIR /src/asuswrt-merlin.ng/release/src-rt-6.x.4708
RUN make rt-ac68u || true

Can anyone assist?
here you can find my docker images I use to build my firmwares
and here the docker file.
There are things that can be cleaned out but it works for me.
I faced your same problem. I do not recall the exact way to solve that but I remember that the problem came from several version of autoconf available and maybe with the position in the PATH variable of them.

In any case the dockerfile shold work.
Worth pointing out generically that it's best to build on Ubuntu 20.04 as I discovered recently in the conversation in the thread here.

If you run into any other gotchas please DM me as I'm going to try and clean up some of the Wiki docs pertaining to building / supported build configurations, etc over the next week.

@GNUton those links are great, I'll add those to the list of different ways one can get builds!

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!