From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Bavier Subject: Re: [PATCH] gnu: boost: Update to 1.61.0. Date: Tue, 20 Sep 2016 15:58:18 -0500 Message-ID: <20160920155818.52acdeeb@openmailbox.org> References: <8737kw2tp8.fsf@gnu.org> <871t0g2o7m.fsf@gnu.org> <79cd9857b728801cd6721dcd8c15882e@openmailbox.org> <87vaxrhr85.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46189) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmS7d-0006kP-Po for guix-devel@gnu.org; Tue, 20 Sep 2016 16:58:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bmS7a-0005fH-Hd for guix-devel@gnu.org; Tue, 20 Sep 2016 16:58:33 -0400 Received: from smtp10.openmailbox.org ([62.4.1.44]:50543) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmS7a-0005ef-6z for guix-devel@gnu.org; Tue, 20 Sep 2016 16:58:30 -0400 In-Reply-To: <87vaxrhr85.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Roel Janssen Cc: guix-devel@gnu.org, Guix-devel On Tue, 20 Sep 2016 11:10:02 +0200 Roel Janssen wrote: > Eric Bavier writes: > > > On 2016-09-19 05:11, Roel Janssen wrote: > >> Roel Janssen writes: > >> > >>> Dear Guix, > >>> > >>> I don't know what the impact of the following upgrade is, but I think > >>> it > >>> would be good to update Boost to the latest stable version that was > >>> released on May 13th, 2016. > >>> > >>> What do you think? > >>> > >>> Kind regards, > >>> Roel Janssen > >>> > >>>> From a6409b0648352cac86a3ceb205ee183c034085f5 Mon Sep 17 00:00:00 > >>>> 2001 > >>> From: Roel Janssen > >>> Date: Mon, 19 Sep 2016 10:08:52 +0200 > >>> Subject: [PATCH] gnu: boost: Update to 1.61.0. > >>> > >>> * gnu/packages/boost.scm (boost): Update to 1.61.0. > >>> --- > >>> gnu/packages/boost.scm | 4 ++-- > >>> 1 file changed, 2 insertions(+), 2 deletions(-) > >>> > >>> diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm > >>> index 8fe8c8e..ccc1f06 100644 > >>> --- a/gnu/packages/boost.scm > >>> +++ b/gnu/packages/boost.scm > >>> @@ -34,7 +34,7 @@ > >>> (define-public boost > >>> (package > >>> (name "boost") > >>> - (version "1.60.0") > >>> + (version "1.61.0") > >>> (source (origin > >>> (method url-fetch) > >>> (uri (string-append > >>> @@ -43,7 +43,7 @@ > >>> ".tar.bz2")) > >>> (sha256 > >>> (base32 > >>> - > >>> "0fzx6dwqbrkd4bcd8pjv0fpapwmrxxwr8yx9g67lihlsk3zzysk8")))) > >>> + > >>> "0h5nk7pgxf7xsvvshj9qfpsfp9wx6gq9r78n3nx736pxq83bsix5")))) > >>> (build-system gnu-build-system) > >>> (inputs `(("zlib" ,zlib))) > >>> (native-inputs > >> > >> It looks like an upgrade to 1.61.0 causes a build failure for MySQL: > >> > >> -------------------------- BUILD OUTPUT LOG FOR MYSQL > >> -------------------------- > >> -- BOOST_VERSION_NUMBER is #define BOOST_VERSION 106100 > >> CMake Warning at cmake/boost.cmake:266 (MESSAGE): > >> Boost minor version found is 61 we need 60 > >> Call Stack (most recent call first): > >> CMakeLists.txt:455 (INCLUDE) > >> > >> > >> -- BOOST_INCLUDE_DIR /gnu/store/...fzzl-boost-1.61.0/include > >> -- LOCAL_BOOST_DIR > >> -- LOCAL_BOOST_ZIP > >> -- Could not find (the correct version of) boost. > >> -- MySQL currently requires boost_1_60_0 > >> > >> CMake Error at cmake/boost.cmake:81 (MESSAGE): > >> You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST= > >> ------------------------ END BUILD OUTPUT LOG FOR MYSQL > >> ------------------------ > >> > >> So I guess the impact is too large to just go for it. > >> > >> Do we have a Guix command to find out which packages are dependent on > >> a package (in this case Boost)? > >> > >> Kind regards, > >> Roel Janssen > > > > I looked at this upgrade a few weeks ago. I took a stab at building the > > complete dependency set, and, for the most part, mysql is the only > > package that breaks. I fixed this with the below patch (which also > > enable parallel builds that can improve build times significantly): > > > > diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm > > index bb123d3..f3288d1 100644 > > --- a/gnu/packages/boost.scm > > +++ b/gnu/packages/boost.scm > > @@ -34,7 +34,7 @@ > > (define-public boost > > (package > > (name "boost") > > - (version "1.60.0") > > + (version "1.61.0") > > (source (origin > > (method url-fetch) > > (uri (string-append > > @@ -43,7 +43,7 @@ > > ".tar.bz2")) > > (sha256 > > (base32 > > - > > "0fzx6dwqbrkd4bcd8pjv0fpapwmrxxwr8yx9g67lihlsk3zzysk8")))) > > + > > "0h5nk7pgxf7xsvvshj9qfpsfp9wx6gq9r78n3nx736pxq83bsix5")))) > > (build-system gnu-build-system) > > (inputs `(("zlib" ,zlib))) > > (native-inputs > > @@ -53,6 +53,7 @@ > > (arguments > > (let ((build-flags > > `("threading=multi" "link=shared" > > + (format #f "-j~a" (parallel-job-count)) > > > > ;; Set the RUNPATH to $libdir so that the libs find each > > other. > > (string-append "linkflags=-Wl,-rpath=" > > diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm > > index e05232d..5d7fe13 100644 > > --- a/gnu/packages/databases.scm > > +++ b/gnu/packages/databases.scm > > @@ -202,7 +202,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage > > for their data model.") > > > > "11qbib1xpy0zkki7j9ip17hks5kp5zgpcj7x8gy3a4m66lb1mgsh")))) > > (build-system cmake-build-system) > > (arguments > > - '(#:configure-flags > > + `(#:configure-flags > > '("-DBUILD_CONFIG=mysql_release" > > "-DWITH_SSL=system" > > "-DWITH_ZLIB=system" > > @@ -229,7 +229,9 @@ SQL, Key/Value, XML/XQuery or Java Object storage > > for their data model.") > > (lambda _ > > ;; Mysql wants boost-1.59.0 specifically > > (substitute* "cmake/boost.cmake" > > - (("59") "60")))) > > + (("59") > > + ,(match (string-split (package-version boost) > > #\.) > > + ((_ minor . _) minor)))))) > > (add-after > > 'install 'remove-extra-binaries > > (lambda* (#:key outputs #:allow-other-keys) > > This patch looks good to me. I changed the `(("59") "60")' construct to > `(("59") "61")' myself, and that seemed to work. Your solution is > better because this will continue to work in the future, plus the > parallel building is nice. > > Is there anything that requires more work to apply your patch for MySQL > and then upgrade Boost? Are there any other packages that break that we > should look into? As far as I recall, the only breakages besides mysql that I experienced were due to reasons outside of the boost upgrade. I'll try to find my notes from those builds... Given that this upgrade forces a rebuild of libreoffice, should it be applied to core-updates? `~Eric