Wednesday, May 27, 2020

Re: new: devel/py3c

On Wed, May 27 2020, Stefan Sperling <stsp@stsp.name> wrote:
> py3c is a header-only C library which provides a python 2/3 compat layer.
>
> This is required to compile the Python bindings of Subversion 1.14,
> regardless of whether python2 or python3 bindings are built.
>
> I will need this as a BUILD_DEP of devel/subversion soon.
>
> ok?

port Makefile:
--8<--
# Upstream's default make target just prints a list of available targets.
# All we need upstream's Makefile to do is produce a pkg-config .pc file
# which we can ship in our package. The Makefile's "prefix" variable ends
# up in the generated .pc file. So use LOCALBASE instead of use PREFIX:
MAKE_FLAGS = prefix=${LOCALBASE}
ALL_TARGET = py3c.pc

USE_GMAKE = Yes

# Upstream Makefile 'make install' doesn't respect DESTDIR.
# We replicate the entire install target here:
-->8--

ALL_TARGET is fine, the first line of the comment isn't needed IMO.

prefix=${TRUEPREFIX} looks more correct than prefix=${LOCALBASE}.

Maybe you already tried this, we could set

FAKE_FLAGS = prefix=${DESTDIR}${PREFIX}

to inject DESTDIR in the install step, but the Makefile dependencies
would then trigger a rebuild of py3c.pc with a wrong value for
$(includedir).

I think the cleanest approach is to patch the Makefile so that it honors
DESTDIR. This way you only need

MAKE_FLAGS = prefix=${PREFIX}

The patch could easily be pushed upstream since supporting DESTDIR is
a common feature.

python2 and python3 are needed for the tests so use the python module
to register those deps. The tests fail, maybe because of a difference
between OpenBSD and other libcs.

Updated tarball, ok jca@ if you like the changes I introduced.

No comments:

Post a Comment