diff --git a/README.md b/README.md index b6482b4..7145c11 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ This is an unofficial Homebrew repository for the Yandex's [ClickHouse](https://clickhouse.yandex/) DBMS. -Stable version is v1.1.54284 and it is building fine on the Sierra. +Stable version is 19.17.5.18 and it is building fine on the Mojave. It is built Without MySQL support. It is relatively new and isn't tested well. Please consider appending the `--verbose` and `--debug` parameters to the `brew install` command to make it easier to debug the package installation. @@ -12,7 +12,7 @@ Issues and pull requests are always welcome! ## Note on the test (development) build -The dev version is v1.1.54288-testing and it is not building :-() +The dev version is v19.19.1.1902-testing and it was not tested yet. ## Usage diff --git a/clickhouse.rb b/clickhouse.rb index 916e6c4..57edbbf 100644 --- a/clickhouse.rb +++ b/clickhouse.rb @@ -1,66 +1,78 @@ class Clickhouse < Formula + target_version = "19.17.5.18" desc "is an open-source column-oriented database management system." homepage "https://clickhouse.yandex/" - url "https://github.com/yandex/ClickHouse/archive/v1.1.54284-stable.zip" - version "1.1.54284" - sha256 "2985575609980d94bb75d67a20880e3a6c09490fe0f65b31ae130b9c451560da" + version "#{target_version}-stable" + url "https://github.com/ClickHouse/ClickHouse.git", :using => :git, :tag => "v#{version}" + sha256 "0895c24e2d10b46f2c0eb391797aeac342b39a89fb4350efdaa1601d0b1e50a6" devel do - url "https://github.com/yandex/ClickHouse/archive/v1.1.54288-testing.zip" - version "1.1.54214" + target_version = "19.19.1.1902" + version "#{target_version}-testing" + url "https://github.com/ClickHouse/ClickHouse.git", :using => :git, :tag => "v#{version}" sha256 "44c0aa152a9c0c4b99e17bba55a69d839d1a12c0346679eb681508eba9896ad2" end + # --HEAD + head "https://github.com/ClickHouse/ClickHouse.git", :using => :git, :tag => "v19.19.1.1902-testing" + bottle do rebuild 1 - root_url 'https://github.com/deem0n/homebrew-clickhouse/releases/download/v1.1.54284' - sha256 "4a35a4c2cb2c9e4066a30be79e250428ee98c1f0c5aacbae4a9470e9dc9f2fb9" => :sierra + root_url "https://github.com/deem0n/homebrew-clickhouse/releases/download/v#{target_version}/" + sha256 "f9f871f85761bfbe6ea9338746b11e73398a95256da4c59dc50b4a8170bf2c9d" => :mojave end - head "https://github.com/yandex/ClickHouse.git" - depends_on "cmake" => :build - depends_on "gcc@6" => :build - - depends_on "boost" => :build - depends_on "icu4c" => :build - depends_on "mysql" => :build - depends_on "openssl" => :build - depends_on "unixodbc" => :build - depends_on "libtool" => :build - depends_on "gettext" => :build - depends_on "zlib" => :build - depends_on "readline" => :recommended + depends_on "ninja" => :build + #depends_on "mariadb" => :build + + +# depends_on "boost" => :build +# depends_on "icu4c" => :build +# depends_on "mysql" => :build +# depends_on "openssl" => :build +# depends_on "unixodbc" => :build +# depends_on "libtool" => :build +# depends_on "gettext" => :build +# depends_on "zlib" => :build +# depends_on "readline" => :recommended def install ENV["ENABLE_MONGODB"] = "0" + #ENV["LDFLAGS"] = "-all_load" + + #ENV["ENABLE_MYSQL"] = "1" - ENV["CC"] = "#{Formula["gcc@6"].bin}/gcc-6" - ENV["CXX"] = "#{Formula["gcc@6"].bin}/g++-6" - ENV["CFLAGS"] = "-I/usr/local/include" - ENV["CXXFLAGS"] = "-I/usr/local/include" - ENV["LDFLAGS"] = "-L/usr/local/lib" + #ENV["CC"] = "#{Formula["gcc"].bin}/gcc-9" + #ENV["CXX"] = "#{Formula["gcc"].bin}/g++-9" + #ENV["CFLAGS"] = "-I/usr/local/include" + #ENV["CXXFLAGS"] = "-I/usr/local/include" + #ENV["LDFLAGS"] = "-L/usr/local/lib" cmake_args = %w[] - cmake_args << "-DUSE_STATIC_LIBRARIES=0" if MacOS.version >= :sierra - cmake_args << "-DENABLE_MYSQL=1" + cmake_args << "-DUSE_STATIC_LIBRARIES=1" if MacOS.version >= :sierra + cmake_args << "-DENABLE_MYSQL=0" + cmake_args << "-DENABLE_IPO=0" # WE have -- IPO/LTO not enabled. + # cmake_args << "-DLLVM_ENABLE_LTO=Thin" # ???? mkdir "build" + # boost somehow is not populated with standard git commands, do manual forced fetch! + system "git", "submodule", "update", "--init", "--recursive", "--force", "contrib/boost" cd "build" do system "cmake", "..", *cmake_args - system "make" + system "ninja" if MacOS.version >= :sierra - lib.install Dir["#{buildpath}/build/dbms/*.dylib"] - lib.install Dir["#{buildpath}/build/contrib/libzlib-ng/*.dylib"] + #lib.install Dir["#{buildpath}/build/dbms/*.dylib"] + #lib.install Dir["#{buildpath}/build/contrib/libzlib-ng/*.dylib"] end - bin.install "#{buildpath}/build/dbms/src/Server/clickhouse" + bin.install "#{buildpath}/build/dbms/programs/clickhouse" bin.install_symlink "clickhouse" => "clickhouse-server" bin.install_symlink "clickhouse" => "clickhouse-client" end mkdir "#{var}/clickhouse" - inreplace "#{buildpath}/dbms/src/Server/config.xml" do |s| + inreplace "#{buildpath}/dbms/programs/server/config.xml" do |s| s.gsub! "/var/lib/clickhouse/", "#{var}/clickhouse/" s.gsub! "/var/log/clickhouse-server/", "#{var}/log/clickhouse/" s.gsub! "", "262144" @@ -74,11 +86,11 @@ def install #there is no client config as of Sept 2017 #(etc/"clickhouse-client").install "#{buildpath}/dbms/src/Client/config.xml" - (etc/"clickhouse-server").install "#{buildpath}/dbms/src/Server/config.xml" - (etc/"clickhouse-server").install "#{buildpath}/dbms/src/Server/users.xml" + (etc/"clickhouse-server").install "#{buildpath}/dbms/programs/server/config.xml" + (etc/"clickhouse-server").install "#{buildpath}/dbms/programs/server/users.xml" end - def plist; <<-EOS.undent + def plist; <<-EOS @@ -102,7 +114,7 @@ def plist; <<-EOS.undent EOS end - def caveats; <<-EOS.undent + def caveats; <<-EOS The configuration files are available at: #{etc}/clickhouse-client/ #{etc}/clickhouse-server/ @@ -115,6 +127,7 @@ def caveats; <<-EOS.undent end test do - system "#{bin}/clickhouse-client", "--version" + assert_equal "ClickHouse client version #{target_version}.", shell_output("#{bin}/clickhouse-client --version").strip + assert_equal "ClickHouse server version #{target_version}.", shell_output("#{bin}/clickhouse-server --version").strip end end