Hi, From: Stuart Henderson <[email protected]> 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
