flammie / omorfi

Open morphology for Finnish
Other
84 stars 25 forks source link

`PKG_CHECK_MODULES` error when running `./configure` #63

Open akaihola opened 5 years ago

akaihola commented 5 years ago

Since I'm on Fedora and omorfi documentation mostly talks about Ubuntu, I decided to try and create an Ubuntu based Docker image for omorfi.

Here is my first experimental Dockerfile:

FROM ubuntu

COPY . /omorfi
WORKDIR /omorfi
RUN apt-get update

RUN apt-get install -y autoconf automake libtool wget
RUN wget https://apertium.projectjj.com/apt/install-release.sh -O - | bash
RUN ./autogen.sh

RUN apt-get install -y hfst libhfst-dev python3 python3-libhfst zip
ENV AUTORECONF=false

RUN ./configure

I disabled autoreconf since it would always just fail.

In the ./configure script I now get this error:

./configure: line 20368: syntax error near unexpected token `LIBHFST,'
./configure: line 20368: `PKG_CHECK_MODULES(LIBHFST, hfst >= 3.15,'

I tried with

but none of those fixed the issue.

akaihola commented 5 years ago

I got forward by adding

RUN apt-get install -y pkgconf
RUN autoreconf -i -f

Maybe install instructions could make it clear that this is required for building?

akaihola commented 5 years ago

I also had to add

RUN apt-get install -y g++
flammie commented 5 years ago

Docker is a good idea, I think ubuntu has some package like build-essential which has most basic deps for building most autoconf-based projects. I'll add fix the dependencies in the doc, there's few other updates before release that is also hopefully soon.

akaihola commented 5 years ago

Yes, build-essential can be used instead of listing individual packages related to building software, and it indeed includes g++ as well. I just prefer to avoid downloading and installing packages which are unneeded.

Here is the Dockerfile I ended up with and which does give me a usable omorfi environment:

FROM ubuntu

ENV AUTORECONF=false
ENV LANG=C.UTF-8

COPY . /omorfi
WORKDIR /omorfi
RUN apt-get update

RUN apt-get install -y wget
RUN wget https://apertium.projectjj.com/apt/install-release.sh -O - | bash

RUN apt-get install -y \
    autoconf \
    automake \
    libtool \
    g++ \
    hfst \
    libhfst-dev \
    make \
    pkgconf \
    python3 \
    python3-libhfst \
    zip

RUN ./autogen.sh
RUN autoreconf -i -f

RUN src/bash/omorfi-download.bash

RUN ./configure --enable-segmenter --enable-labeled-segments --enable-lemmatiser
RUN make
RUN make install
ENV PYTHONPATH=/omorfi/src/python

I wonder if it would make sense to turn src/python/ into a proper Python package and install it, instead of tweaking PYTHONPATH.

flammie commented 5 years ago

Automake has limited python support and installs the omorfi package to $prefix/lib/pythonX.Y/site-packages/omorfi at least on my gentoo installation; if prefix is same as python's e.g. /usr it should just work.... when there's lots of API changes like recently thought the installation might be incomplete.