On 2020/07/06 16:30, Masato Asou wrote:
> Hi,
> 
> I have already applied your previous patch.

My mail was about several things. Some were fixed by the patch, some were not.

> >> Several of these are in ports already (normally dependencies should be 
> >> taken
> >> from ports rather than bundled - so that patches needed for working on 
> >> OpenBSD,
> >> at least on some arches, are picked up - and so that security fixes don't 
> >> have
> >> to be made in multiple places - for example onigmo/oniguruma is an old 
> >> version
> >> missing security fixes).
> >> Builds for some of these do things like force using gcc as the compiler,
> >> setting opt flags like -O3 -funroll-loops which aren't allowed in ports.

Ports should normally use dependencies from the ports tree, not bundled
ones. That way, when patches are made to fix some architecture, it fixes
things for all programs using the library. And when a security fix is
made, it doesn't require patches in separate copies across the ports tree.

If that is absolutely unavoidable then the build process for all of
the different parts still needs to follow ports standards. Use the
correct compiler (normally "cc"/"c++" but can be overridden on the
make command line by setting CC/CXX variables). Use correct optimizer
flags (CFLAGS/CXXFLAGS). Not pick up any software which is installed
during the build unless listed as a dependency.

> >> Those using autoconf bypass the normal ports infrastructure for this and
> >> pick up tools like gsed/ggrep if present at build time, which in a bulk
> >> build maybe removed part-way through the build.

-> at the stages when "configure" is run during the build it can pick up
installed programs that are not listed as dependencies. in a bulk build,
packages are installed and deinstalled _all the time_

> >> cmake checks for some things which aren't listed as dependencies too (and
> >> finds them if installed), which need to be disabled properly or at least 
> >> check
> >> that they don't break things if they're present when configure is run but
> >> removed during the build
> >> 
> >> -- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR 
> >> GTEST_MAIN_LIBRARY)
> >> -- Found Doxygen: /usr/local/bin/doxygen (found version "1.8.18") found 
> >> components: doxygen dot
> >> -- Found PythonInterp: /usr/local/bin/python3.8 (found version "3.8.2")
> >> -- Found PostgreSQL: /usr/local/lib/libpq.so.6.11 (found version "12.2")

-> a port build must produce the same results whether or not other
packages are installed. either list all optional dependencies, or
disable them.

> >> I've tidied up some things (diff below) but due to upstream's choices of
> >> how to do things this is going to be complicated to get in proper shape for
> >> commit.
> > 
> 
> Here is the difference between my first and last email.
> Am I misunderstanding something?

The basic problem is that the way this software is normally built is not
really compatible with the way things are done in ports.

Reply via email to