Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aM3wB-000842-9q for pgsql-pkg-yum@arkaria.postgresql.org; Thu, 21 Jan 2016 01:21:23 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aM3wA-0006jB-T0 for pgsql-pkg-yum@arkaria.postgresql.org; Thu, 21 Jan 2016 01:21:22 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aM3w7-0006fx-Q1 for pgsql-pkg-yum@postgresql.org; Thu, 21 Jan 2016 01:21:19 +0000 Received: from mail-lf0-x232.google.com ([2a00:1450:4010:c07::232]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aM3w3-0002Ia-Pl for pgsql-pkg-yum@postgresql.org; Thu, 21 Jan 2016 01:21:19 +0000 Received: by mail-lf0-x232.google.com with SMTP id m198so17283659lfm.0 for ; Wed, 20 Jan 2016 17:21:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=2ndquadrant-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=7Q4OcQ7Trdsns/sOgY9cockk/QzlzdTWPYPDI/wUOek=; b=gmNd4JQCs6IzXcUoOsMSJsJYyjG2gT4FVFOSL5L1zu4FuhAu0fdX79vRLh6WSeBBRd NNtIvras5BGp7q5TVE37/2B7NntfBRNwCD+TEnt3oneMxb+LLwxZ9rGO7ub3qPhTMRGO vZyPzQ5kridycejajqpJaJYvzSEe1UXnfZvaCuegMOesEZOEj3itQDXXYjTUiflae0Wc t7ao8zIiWOEnrzQqmCIRpcd9o/Bq2GGNhhXhU13zer+LKERHCfToWgiZheZqAV6fK3Y0 r+8DOhr/g3N0iFLIhzxvinyZ5sdb7cxiCv3qH+zrzrxXnw2eWovbI8p3hqlY4HO+yOKZ YapA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=7Q4OcQ7Trdsns/sOgY9cockk/QzlzdTWPYPDI/wUOek=; b=HQ3iCl/nj54uDBtjoZXADY1IHl+JcBCWui3qtMJF3pTT+p6vYLoG9QugsxFmjMToJP VY8bfx0dHtUQV3zV0oIlJ4iGUfbeGud3JLm24l+NY98rhjBVc9dFO2cBTUfU0cnRFWAZ 60QhaSwnFEDVUn+l816Dvg5l3JKsnOT9lyMS4A7fGUM056T6iQu6FCrDfMW9duPjx6CA 5/mW8h8/8iCAb85zKmEWxYY4GgJzWfEiZ9wvz0b5xbBOtpshrPWFgkq3oueFUqaQzo5J AuAEg23cBge/7R+59q5klVEFao7w98VxV+hnWctD2miKdVEIeCgnI0HC4J0ES7FBkFHC OKNw== X-Gm-Message-State: ALoCoQlSOOb/w3RPKQm4vtuKb56pdeDUZv531suqETfWtFUQxScfG5aNSOoZ+fGt7Warfq0mdWigJ872jACaNpKVNk+NaQXP63wGzrOfeqST65XPCiU24xs= MIME-Version: 1.0 X-Received: by 10.25.213.134 with SMTP id m128mr14382934lfg.87.1453339274477; Wed, 20 Jan 2016 17:21:14 -0800 (PST) Received: by 10.114.1.7 with HTTP; Wed, 20 Jan 2016 17:21:14 -0800 (PST) In-Reply-To: <1453321034.24314.446.camel@gunduz.org> References: <1453239881.24314.362.camel@gunduz.org> <1453321034.24314.446.camel@gunduz.org> Date: Thu, 21 Jan 2016 09:21:14 +0800 Message-ID: Subject: Re: New and unified 9.5 spec file is in git From: Craig Ringer To: =?UTF-8?B?RGV2cmltIEfDnE5Ew5xa?= Cc: pgsql-pkg-yum Content-Type: multipart/alternative; boundary=001a11420fba31a4200529cdeb12 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-pkg-yum Precedence: bulk Sender: pgsql-pkg-yum-owner@postgresql.org --001a11420fba31a4200529cdeb12 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 21 January 2016 at 04:17, Devrim G=C3=9CND=C3=9CZ wr= ote: > > I'm really happy about this, since it means the build depends are now > > correct and it can be built without needing a dedicated build machine > > using nothing but mock. No need to manually set up dependencies > > anymore, set up a build box, etc. No need to juggle x86_64 and i386 > > either, you can run builds for *everything* from a single F23 box or > > VM or docker or whatever. > > Well, we are building 100+ packages in 9.5 set. Setting up a new mock > environment everytime would slow us down, IMHO. What do you think? > mock caches the build env so in practice it's very fast. mockchain helps even more. mock is what Koji uses and what's used to build all of Fedora and EPEL, so it gets a fair bit of performance attention. There _is_ a performance cost vs building bare on a preconfigured build box but it's (IMO) greatly offset by the increased reliability and consistency of package builds. You don't risk having undeclared dependencies, building against a version other than the one declared in the spec file, etc. > > If the same process is followed for other packages > > *All* of the *recently added* spec files are unified nowadays :) Great! > > it's less of an issue than when the build boxes are hand-maintained, > > but the great thing about mock is that it gets all the build depends > > info straight from the spec file. > > All deps are already installed on our build servers. If not, we install > them before building a new package. > That can cause issues though. For example I think that's how the Java 8 problems a while ago happened. The spec file declared a dependency on openjdk 7 but the rpms were built against what was locally installed, which is openjdk 8. The nice thing with mock is that the buildroot can contain only exactly the required packages for a build. No extras. It provides a lot more confidence that the spec matches the actual build and that anyone can reproduce the package build consistently without a special hand-created build env. I've been using it for the BDR and pglogical builds and it does a pretty good job. It's helped me find a number of bugs and oversights too. --=20 Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services --001a11420fba31a4200529cdeb12 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On 2= 1 January 2016 at 04:17, Devrim G=C3=9CND=C3=9CZ <devrim@gunduz.org>= ; wrote:
=C2=A0
> I'm really happy about this, since it means the build dep= ends are now
> correct and it can be built without needing a dedicated build machine<= br> > using nothing but mock. No need to manually set up dependencies
> anymore, set up a build box, etc. No need to juggle x86_64 and i386 > either, you can run builds for *everything* from a single F23 box or > VM or docker or whatever.

Well, we are building 100+ packages in 9.5 set. Setting up a new moc= k
environment everytime would slow us down, IMHO. What do you think?

mock caches the build env so in practice it'= ;s very fast. mockchain helps even more.

mock is w= hat Koji uses and what's used to build all of Fedora and EPEL, so it ge= ts a fair bit of performance attention. There _is_ a performance cost vs bu= ilding bare on a preconfigured build box but it's (IMO) greatly offset = by the increased reliability and consistency of package builds. You don'= ;t risk having undeclared dependencies, building against a version other th= an the one declared in the spec file, etc.
=C2=A0
> If the same process is followed = for other packages

*All* of the *recently added* spec files are unified nowadays :)

Great!
=C2=A0
=C2=A0
=
>=C2=A0 it's less of= an issue than when the build boxes are hand-maintained,
> but the great thing about mock is that it gets all the build depends > info straight from the spec file.

All deps are already installed on our build servers. If not, we inst= all
them before building a new package.

Tha= t can cause issues though. For example I think that's how the Java 8 pr= oblems a while ago happened. The spec file declared a dependency on openjdk= 7 but the rpms were built against what was locally installed, which is ope= njdk 8.

The nice thing with mock is that the build= root can contain only exactly the required packages for a build. No extras.= It provides a lot more confidence that the spec matches the actual build a= nd that anyone can reproduce the package build consistently without a speci= al hand-created build env.

I've been using it = for the BDR and pglogical builds and it does a pretty good job. It's he= lped me find a number of bugs and oversights too.

--
=C2=A0Craig Ringer=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 http://www.2ndQuadrant.com/
= =C2=A0PostgreSQL Development, 24x7 Support, Training & Services
--001a11420fba31a4200529cdeb12--