GA

2025/03/03

古いバージョンのxtrabackupをビルドしようとしたら -DDOWNLOAD_BOOST=1 だとダウンロードできなかった

TL;DR

  • boostを同梱していないMySQLやxtrabackupでboostのダウンロードっぽいところでcmakeが転けていたら cmake/boost.cmake を編集するとうまくいくことがある
    • boostorg.jfrog.io から archives.boost.io に変わってるっぽい

yoku0825/xtrabackup-monkey-patch を使って XtraBackup 8.0.35-31 をビルドしようと思ったら、boostをダウンロードしてるっぽいところで転けた。

$ git clone git@github.com:yoku0825/xtrabackup-monkey-patch
$ cd xtrabackup-monkey-patch
$ git checkout checkout 8.0.35-31

$ cd src
$ cmake -DCMAKE_INSTALL_PREFIX=~/xb-8.0.35-1 -DWITH_BOOST=./boost -DDOWNLOAD_BOOST=1 -DFORCE_INSOURCE_BUILD=1
..
-- Downloading boost_1_77_0.tar.bz2 to /home/yoku0825/git/xtrabackup-monkey-patch/src/boost
-- [download 100% complete]
-- [download 9% complete]
-- [download 22% complete]
-- [download 34% complete]
-- [download 46% complete]
-- [download 58% complete]
-- [download 70% complete]
-- [download 82% complete]
-- [download 94% complete]
-- [download 100% complete]
-- cd /home/yoku0825/git/xtrabackup-monkey-patch/src/boost; tar xfj /home/yoku0825/git/xtrabackup-monkey-patch/src/boost/boost_1_77_0.tar.bz2
CMake Error: Problem with archive_read_open_file(): Unrecognized archive format
CMake Error: Problem extracting tar: /home/yoku0825/git/xtrabackup-monkey-patch/src/boost/boost_1_77_0.tar.bz2
-- WITH_BOOST /home/yoku0825/git/xtrabackup-monkey-patch/src/boost.
-- Failed to extract files.
   Please try downloading and extracting yourself.
   The url is: https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2
CMake Error at cmake/boost.cmake:256 (MESSAGE):
  Giving up.
Call Stack (most recent call first):
  CMakeLists.txt:1567 (INCLUDE)

-- Configuring incomplete, errors occurred!

DOWNLOAD_BOOSTのあたりで転けている様子…。

$ ll /home/yoku0825/git/xtrabackup-monkey-patch/src/boost/boost_1_77_0.tar.bz2
-rw-r--r--. 1 yoku0825 yoku0825 11534 Feb 20 07:21 /home/yoku0825/git/xtrabackup-monkey-patch/src/boost/boost_1_77_0.tar.bz2

$ file /home/yoku0825/git/xtrabackup-monkey-patch/src/boost/boost_1_77_0.tar.bz2
/home/yoku0825/git/xtrabackup-monkey-patch/src/boost/boost_1_77_0.tar.bz2: HTML document, ASCII text, with very long lines

$ w3m -no-mouse -T text/html /home/yoku0825/git/xtrabackup-monkey-patch/src/boost/boost_1_77_0.tar.bz2 | cat
bunzip2: (stdin) is not a bzip2 file.

ブラウザで https://boostorg.jfrog.io/artifactory/main/release/ を開いてみると我々が期待しないような感じになっているのでたぶんここのURLが古い…。

$ grep -r boostorg.jfrog.io cmake/
cmake/boost.cmake:  "https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/${BOOST_TARBALL}"

cmake/boost.cmake の中で指定している。

本家8.0.41のcmake/boost.cmakearchives.boost.io に向いているのでそれを検索してみる。
jfrogと archives.boost.io の話題で正に Where is https://archives.boost.io/ hosted? · Issue #845 · boostorg/boost なんていうのが出てきたし、 Boost公式のダウンロードページ から辿れるリンクも archives.boost.io に向いているので正しそう。

というわけでpushしました。

古いソースコードで同じようになるやつはこれで使えるようになるかも。

0 件のコメント :

コメントを投稿