From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS22989 209.51.188.0/24 X-Spam-Status: No, score=-4.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 64AB920248 for ; Sun, 3 Mar 2019 19:01:48 +0000 (UTC) Received: from localhost ([127.0.0.1]:43125 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h0WMt-0005jl-NM for normalperson@yhbt.net; Sun, 03 Mar 2019 14:01:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33081) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h0WMp-0005jc-Oj for bug-gnulib@gnu.org; Sun, 03 Mar 2019 14:01:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h0WMo-00048U-MK for bug-gnulib@gnu.org; Sun, 03 Mar 2019 14:01:43 -0500 Received: from quail.birch.relay.mailchannels.net ([23.83.209.151]:64610) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h0WMo-00046t-B1 for bug-gnulib@gnu.org; Sun, 03 Mar 2019 14:01:42 -0500 X-Sender-Id: dreamhost|x-authsender|gary@vaughan.pe Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id C4564124887; Sun, 3 Mar 2019 19:01:38 +0000 (UTC) Received: from pdx1-sub0-mail-a46.g.dreamhost.com (unknown [100.96.19.254]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 686F512166A; Sun, 3 Mar 2019 19:01:38 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|gary@vaughan.pe Received: from pdx1-sub0-mail-a46.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.16.3); Sun, 03 Mar 2019 19:01:38 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|gary@vaughan.pe X-MailChannels-Auth-Id: dreamhost X-Befitting-Harbor: 571c98451e892477_1551639698628_1934106488 X-MC-Loop-Signature: 1551639698628:1803091445 X-MC-Ingress-Time: 1551639698628 Received: from pdx1-sub0-mail-a46.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a46.g.dreamhost.com (Postfix) with ESMTP id DD1897FFA9; Sun, 3 Mar 2019 11:01:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=vaughan.pe; h=content-type :mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s= vaughan.pe; bh=Sjfqszd2AJvzeVJDTXPWGXnM9YA=; b=bZsrk7OLCwSqwl4YN hz9LRmUC9h2obM5/mSUqQkolSiZ3jPCUvUuNs3pNTcowcr7l1eQBaSG2wE/rfXlp ijl8GClGzQ/c3EkFNnlBRxCc+oRdQiEejDJXMYjcsjaEYKhc1KuOy1fxwRLFWfkc fLXHkBBgZBxUXedAba4AFVgrcI= Received: from [192.168.1.2] (13.sub-174-214-9.myvzw.com [174.214.9.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: gary@vaughan.pe) by pdx1-sub0-mail-a46.g.dreamhost.com (Postfix) with ESMTPSA id C9B837FFAB; Sun, 3 Mar 2019 11:01:36 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (1.0) Subject: Re: bootstrap/autogen.sh and git submodules X-DH-BACKEND: pdx1-sub0-mail-a46 From: "Gary V. Vaughan" X-Mailer: iPhone Mail (16E204) In-Reply-To: <2684078.KdmCAigxga@omega> Date: Sun, 3 Mar 2019 11:01:35 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: <45A2F6BD-DDBD-4753-9076-E55CA012095D@vaughan.pe> References: <2684078.KdmCAigxga@omega> To: Bruno Haible X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: -100 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedutddrvdelgdduvddtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuggftfghnshhusghstghrihgsvgdpffftgfetoffjqffuvfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurheptggguffhofgjfffgkfhfvfesthhqmhdthhdtjeenucfhrhhomhepfdfirghrhicuggdrucggrghughhhrghnfdcuoehgrghrhiesvhgruhhghhgrnhdrphgvqeenucfkphepudejgedrvddugedrledrudefnecurfgrrhgrmhepmhhouggvpehsmhhtphdphhgvlhhopegludelvddrudeikedruddrvdgnpdhinhgvthepudejgedrvddugedrledrudefpdhrvghtuhhrnhdqphgrthhhpedfifgrrhihucggrdcugggruhhghhgrnhdfuceoghgrrhihsehvrghughhhrghnrdhpvgeqpdhmrghilhhfrhhomhepghgrrhihsehvrghughhhrghnrdhpvgdpnhhrtghpthhtohepsghruhhnohestghlihhsphdrohhrghenucevlhhushhtvghrufhiiigvpedt X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 23.83.209.151 X-BeenThere: bug-gnulib@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Gnulib discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: bug-gnulib@gnu.org Errors-To: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Sender: "bug-gnulib" > On Mar 3, 2019, at 10:03 AM, Bruno Haible wrote: >=20 > Hi, >=20 > When gnulib is used in a package, often the maintainers of that package > use it via a git submodule, because that enables them to upgrade to newer > versions of gnulib when they want to (and have a failsafe build between > these upgrades), rather than having to adapt to gnulib changes at any mome= nt. > Even if it's only the imported file list which has changed, which might > require an update to the package's .gitignore file. >=20 > The use of git submodules, however, has three problems: >=20 > 1) There are two use-cases of bootstrap/autogen.sh (the name does not mat= ter): > - first-time checkout and build of the sources, > - repeated build, possibly after modifying something in the submodul= e. > Currently bootstrap is optimized for the first one, and requires clums= y > recipes for the second one. Such as: > $ GNULIB_SRCDIR=3D`pwd`/gnulib ./autogen.sh --no-git >=20 > 2) A submodule has to be upgraded occasionally. bootstrap/autogen.sh does= > not help doing this. I have to keep a command in a cheat-sheet: > $ (cd gnulib && git fetch && git merge origin/master); git add gnuli= b >=20 > 3) As can be seen in the recent thread, there is considerable disagreemen= t > regarding the handling of git submodules. Akim wants a fatal error whe= n > some git submodules have not been initialized, whereas Tim hates this.= >=20 > I would propose to split the common bootstrap or autogen.sh into two > programs that can be invoked independently: >=20 > 1. A program that deals only with the git submodules. > 2. A program that only generates files (or, regarding PO files, fetches > files that are not kept in git). >=20 > The developer should have the ability to set an environment variable > (GNULIB_SRCDIR or GNULIB_TOOL), to be used by both programs. >=20 > Advantages: > - Developers can test modified gnulib sources without running through > hoops. > - Developers will have an easy way to upgrade to a newer gnulib version. > - Different project policies regarding submodules are isolated in one pla= ce > and thus have no influence on the gnulib-tool invocation, the PO file > handling, etc. >=20 > Disadvantages: > - The README-HACKING file will have to list two commands instead of one, > for the first-time checkout. >=20 > What's your opinion? >=20 > I'd like to hear your voices, before I modify the autogen.sh scripts that > I maintain. I won't touch 'bootstrap' (not my domain). >=20 > Bruno Hi Bruno, It=E2=80=99s been so long since I maintained a gnulib client project that I f= eel barely qualified to offer an opinion here... I=E2=80=99m likely misunder= standing the question. I don=E2=80=99t even know what ./autogen.sh is for? But answering as best I can purely for completeness=E2=80=99 sake, and assum= ing my memory is behaving well, I found using my bootstrap rewrite alone (us= ually with additional function overrides or wrappers in bootstrap.conf) to b= e entirely sufficient for: 1. running on a freshly cloned working copy to set everything up ready for .= /configure && make 2. rebootstrapping after updating submodules 3. regenerating itself from an updated gnulib-modules/bootstrap submodule fr= om time to time Even so, after the Makefiles were configured, even editing autotools input f= iles would not require rebootstrapping, so I really only needed to run boots= trap a few times per year per project when updated Automake on my laptop or g= nulib submodule hashref in a working copy or similar. This is totally accept= able from my perspective, and doesn=E2=80=99t require any additional tooling= or driver scripts. Cheers, Gary=