Also raise `lz4` version requirement from 1.7.3 to 1.8.1 since it includes
fixes necessary for building with clang (e.g. https://github.com/lz4/lz4/pull/393).
---
include/seastar/net/inet_address.hh | 2 ++
src/core/reactor.cc | 2 +-
src/net/dns.cc | 8 --------
src/net/inet_address.cc | 9 +++++++++
CMakeLists.txt | 2 +-
cmake/SeastarConfig.cmake.in | 2 +-
cooking_recipe.cmake | 4 ++--
pkgconfig/seastar.pc.in | 2 +-
8 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/include/seastar/net/inet_address.hh b/include/seastar/net/inet_address.hh
index 79798601..4b00b784 100644
--- a/include/seastar/net/inet_address.hh
+++ b/include/seastar/net/inet_address.hh
@@ -29,6 +29,7 @@
#include <seastar/core/future.hh>
#include <seastar/core/sstring.hh>
+#include <seastar/util/std-compat.hh>
namespace seastar {
namespace net {
@@ -105,6 +106,7 @@ class inet_address {
std::ostream& operator<<(std::ostream&, const inet_address&);
std::ostream& operator<<(std::ostream&, const inet_address::family&);
+std::ostream& operator<<(std::ostream& os, const compat::optional<inet_address::family>& f);
#
# Private and private/public dependencies.
diff --git a/cooking_recipe.cmake b/cooking_recipe.cmake
index 88d4e602..b9e20c2a 100644
--- a/cooking_recipe.cmake
+++ b/cooking_recipe.cmake
@@ -287,8 +287,8 @@ cooking_ingredient (fmt
cooking_ingredient (lz4
EXTERNAL_PROJECT_ARGS
- URL https://github.com/lz4/lz4/archive/v1.8.0.tar.gz
- URL_MD5 6247bf0e955899969d1600ff34baed6b
+ URL https://github.com/lz4/lz4/archive/v1.8.1.2.tar.gz
+ URL_MD5 343538e69ba752a386c669b1a28111e2
# This is upsetting.
BUILD_IN_SOURCE ON
CONFIGURE_COMMAND <DISABLE>
diff --git a/pkgconfig/seastar.pc.in b/pkgconfig/seastar.pc.in
index db000748..8b81307c 100644
--- a/pkgconfig/seastar.pc.in
+++ b/pkgconfig/seastar.pc.in
@@ -38,7 +38,7 @@ numactl_libs=$<JOIN:@numactl_LIBRARIES@, >
seastar_cflags=${seastar_include_flags} $<JOIN:$<TARGET_PROPERTY:seastar,INTERFACE_COMPILE_OPTIONS>, > -D$<JOIN:$<TARGET_PROPERTY:seastar,INTERFACE_COMPILE_DEFINITIONS>, -D>
seastar_libs=${libdir}/$<TARGET_FILE_NAME:seastar> @Seastar_SPLIT_DWARF_FLAG@
-Requires: liblz4 >= 1.7.3
+Requires: liblz4 >= 1.8.1
Requires.private: gnutls >= 3.2.26, protobuf >= 2.5.0, hwloc >= 1.11.2, yaml-cpp >= 0.5.1
Conflicts:
Cflags: ${boost_cflags} ${c_ares_cflags} ${cryptopp_cflags} ${fmt_cflags} ${lksctp_tools_cflags} ${numactl_cflags} ${seastar_cflags}
--
2.17.1
--
You received this message because you are subscribed to the Google Groups "seastar-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to seastar-dev...@googlegroups.com.
To post to this group, send email to seast...@googlegroups.com.
Visit this group at https://groups.google.com/group/seastar-dev.
To view this discussion on the web visit https://groups.google.com/d/msgid/seastar-dev/20190403071805.14066-1-pavel.al.solodovnikov%40gmail.com.
For more options, visit https://groups.google.com/d/optout.
I am not strongly opposed to this increased requirement (1.8.1 was released a bit more than a year ago),but it makes me wonder, yet again, whether we should be looking at version numbers or at specificfeatures (as was customary in the autoconf world). In this case, we could have checked the buggyfeature against the current compiler, and allow gcc+1.7.3 to work, without forcing someone whodoesn't even have clang, to upgrade to 1.8.1.
I didn't understand why this movement of operator<< from one file to the other is part of this patch.Did clang have a particular problem with this location?
FAILED: CMakeFiles/seastar.dir/src/net/dns.cc.o
/usr/bin/c++ -DSEASTAR_ASAN_ENABLED -DSEASTAR_DEBUG -DSEASTAR_DEBUG_SHARED_PTR -DSEASTAR_DEFAULT_ALLOCATOR -DSEASTAR_HAVE_ASAN_FIBER_SUPPORT -DSEASTAR_HAVE_HWLOC -DSEASTAR_HAVE_NUMA -DSEASTAR_NO_EXCEPTION_HACK -DSEA
STAR_SHUFFLE_TASK_QUEUE -DSEASTAR_THREAD_STACK_GUARDS -DSEASTAR_TYPE_ERASE_MORE -I../include -Igen/include -I../src -Igen/src -isystem _cooking/installed/include -g -std=gnu++17 -U_FORTIFY_SOURCE -fvisibility=hidde
n -UNDEBUG -Wall -Werror -Wno-error=deprecated-declarations -gz -fsanitize=address -fsanitize=undefined -fno-sanitize=vptr -MD -MT CMakeFiles/seastar.dir/src/net/dns.cc.o -MF CMakeFiles/seastar.dir/src/net/dns.cc.o.d
-o CMakeFiles/seastar.dir/src/net/dns.cc.o -c ../src/net/dns.cc
In file included from ../src/net/dns.cc:28:
In file included from ../include/seastar/net/ip.hh:36:
In file included from ../include/seastar/net/arp.hh:25:
In file included from ../include/seastar/net/net.hh:24:
In file included from ../include/seastar/core/reactor.hh:76:
../include/seastar/util/log.hh:91:20: error: call to function 'operator<<' that is neither visible in the template definition nor found by argument-dependent lookup
os << *static_cast<const std::remove_reference_t<Arg>*>(object);
^
../include/seastar/util/log.hh:314:8: note: in instantiation of function template specialization 'seastar::logger::stringer_for<const std::experimental::fundamentals_v1::optional<seastar::net::inet_address::family> &
>' requested here
} (stringer_for<Args>(std::forward<Args>(args))...);
^
../include/seastar/util/log.hh:124:17: note: in instantiation of function template specialization 'seastar::logger::do_log<const seastar::basic_sstring<char, unsigned int, 15, true> &, const std::experimental::fundam
entals_v1::optional<seastar::net::inet_address::family> &>' requested here
do_log(level, fmt, args...);
^
../include/seastar/util/log.hh:181:9: note: in instantiation of function template specialization 'seastar::logger::log<seastar::basic_sstring<char, unsigned int, 15, true>, std::experimental::fundamentals_v1::optiona
l<seastar::net::inet_address::family> >' requested here
log(log_level::debug, fmt, std::forward<Args>(args)...);
^
../src/net/dns.cc:228:17: note: in instantiation of function template specialization 'seastar::logger::debug<seastar::basic_sstring<char, unsigned int, 15, true> &, std::experimental::fundamentals_v1::optional<seasta
r::net::inet_address::family> &>' requested here
dns_log.debug("Query name {} ({})", name, family);
^
../src/net/dns.cc:41:15: note: 'operator<<' should be declared prior to the call site or in namespace 'seastar::net'
std::ostream& operator<<(std::ostream& os, const compat::optional<net::inet_address::family>& f) {
^
1 error generated.
Looks ok, but note that 1.8.3 is already out. I don't know what is our policy here, do we go with the latest version, or the oldest allowed version?
Sad, this is the *third* place we have this specification :-(Not related to your patch, of course, but it would have been nice to reduce this duplication.
To unsubscribe from this group and stop receiving emails from it, send an email to seast...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to seastar-dev...@googlegroups.com.
To post to this group, send email to seast...@googlegroups.com.
Visit this group at https://groups.google.com/group/seastar-dev.
To view this discussion on the web visit https://groups.google.com/d/msgid/seastar-dev/e1724bd4-bfed-428e-9a11-456589fa757e%40googlegroups.com.
- The version specification in `CMakeLists.txt` is checked at the time of configuration when building the project- The version specification in `cmake/SeastarConfig.cmake.in` is for checking the version when Seastar is used as part of another project (ie, `find_package (SeastarA)`)
We previously decided that the first two of these will reflect minimums (as best as we can guess them), while the last (for cmake-cooking) are supposed to reflect a reasonably up-to-date environment.
Hello Jesse,- The version specification in `CMakeLists.txt` is checked at the time of configuration when building the project- The version specification in `cmake/SeastarConfig.cmake.in` is for checking the version when Seastar is used as part of another project (ie, `find_package (SeastarA)`)Dependencies shared across multiple CMake files could be wrapped into a separate `.cmake` script, which doesseries of `find_package(...)` calls (or alternatively populates some variable with the dependencies list), this way duplicates are gone.
We previously decided that the first two of these will reflect minimums (as best as we can guess them), while the last (for cmake-cooking) are supposed to reflect a reasonably up-to-date environment.So I think I could leave a note in both README and in the header of `cooking_recipe.cmake` todocument this policy, what do you think?
On Thu, Apr 4, 2019 at 4:32 AM Pavel Solodovnikov <pavel.al.s...@gmail.com> wrote:Hello Jesse,- The version specification in `CMakeLists.txt` is checked at the time of configuration when building the project- The version specification in `cmake/SeastarConfig.cmake.in` is for checking the version when Seastar is used as part of another project (ie, `find_package (SeastarA)`)Dependencies shared across multiple CMake files could be wrapped into a separate `.cmake` script, which doesseries of `find_package(...)` calls (or alternatively populates some variable with the dependencies list), this way duplicates are gone.I suppose we could define a bunch of variables likeset (Seastar_fmt_minimum_version 3.14159)and then `INCLUDE` it.
You received this message because you are subscribed to a topic in the Google Groups "seastar-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/seastar-dev/-uJLib1jKMU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to seastar-dev...@googlegroups.com.
To post to this group, send email to seast...@googlegroups.com.
Visit this group at https://groups.google.com/group/seastar-dev.
To view this discussion on the web visit https://groups.google.com/d/msgid/seastar-dev/CALNeFX-0-f0yybKqakx4sadSSC3%2B-u4U%3D4cjbf9A29V3EV4bWw%40mail.gmail.com.
On Fri, Apr 5, 2019 at 3:07 PM Jesse Haber-Kucharsky <jhab...@scylladb.com> wrote:On Thu, Apr 4, 2019 at 4:32 AM Pavel Solodovnikov <pavel.al.s...@gmail.com> wrote:Hello Jesse,- The version specification in `CMakeLists.txt` is checked at the time of configuration when building the project- The version specification in `cmake/SeastarConfig.cmake.in` is for checking the version when Seastar is used as part of another project (ie, `find_package (SeastarA)`)Dependencies shared across multiple CMake files could be wrapped into a separate `.cmake` script, which doesseries of `find_package(...)` calls (or alternatively populates some variable with the dependencies list), this way duplicates are gone.I suppose we could define a bunch of variables likeset (Seastar_fmt_minimum_version 3.14159)and then `INCLUDE` it.Actually, I'm hoping for a single list of dependencies that the parent file can iterate through. When we add a new dependency tomorrow, we should only have to update the INCLUDEd file. Each list entry would (somehow) provide both the package name and any version info we need.
Actually, I'm hoping for a single list of dependencies that the parent file can iterate through. When we add a new dependency tomorrow, we should only have to update the INCLUDEd file. Each list entry would (somehow) provide both the package name and any version info we need.
Can you send the warning fixes separately? Let's commit what we can first.