Hi,

From: Stuart Henderson <s...@spacehopper.org>
Date: Mon, 6 Jul 2020 10:55:14 +0100

> 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.

I did not correctly understand the first reply from you.

>> >> 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.

I will review the change to fluent-bit again, but I need time to work
on that.

Thank you for your explanation.
--
ASOU Masato

Reply via email to