linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gene Czarcinski <gene@czarc.net>
To: Hugo Mills <hugo@carfax.org.uk>,
	dsterba@suse.cz, chris.mason@fusionio.com,
	linux-btrfs@vger.kernel.org
Subject: Re: [GIT PULL] btrfs-progs: more bugfixes for 0.20-rc1
Date: Fri, 18 Jan 2013 11:48:45 -0500	[thread overview]
Message-ID: <50F97CED.2040701@czarc.net> (raw)
In-Reply-To: <20130118155535.GB5406@carfax.org.uk>

On 01/18/2013 10:55 AM, Hugo Mills wrote:
> On Fri, Jan 18, 2013 at 10:49:20AM -0500, Gene Czarcinski wrote:
>> On 01/18/2013 09:44 AM, David Sterba wrote:
>>> On Fri, Jan 18, 2013 at 09:16:00AM -0500, Gene Czarcinski wrote:
>>>>> Sergei Trofimovich (1):
>>>>>        version.sh: fix version when built from tarball
>>>> While you are about it, how about adding in this fix from Dieter Ries to fix
>>>> version a little more:
>>>> http://article.gmane.org/gmane.comp.file-systems.btrfs/20069
>>> I did not notice it before, but Dieter's patch does not work when progs
>>> are built from .git repository
>>>
>>> -echo "#define BTRFS_BUILD_VERSION \"Btrfs $v\"" >> .build-version.h
>>> +echo "#define BTRFS_BUILD_VERSION \"$v\"" >> .build-version.h
>>>
>>> $v is set with the git tag, so the "Btrfs" string does not appear in the
>>> output (eg. mkfs.btrfs).
>>>
>>> Technically, $v should always contain some sort of a tag, Sergei's patch
>>> hardcodes it to the latest one for the non-git case. This is IMHO the
>>> right approach.
>>>
>> OK, I see what you mean.  However, the current situation when btrfs
>> is built from a tarball results in:
>>
>>> btrfs  --version
>> Btrfs Btrfs v0.19
>     I guess one problem here is that there's no canonical way of
> generating a tarball (without the git files) from a git checkout, with
> detailed version information. So what's happening, I suspect, is that
> the distributions/people producing source tarballs of btrfs-progs are
> checking out the git tree, deleting .git, and tarring up that, which
> loses any git versioning.
>
>     I think a solution may be to have a "dist" or "tar" make target
> which does the above automatically and includes a suitably-generated
> version.h in the tarball.
>
>     Hugo.
If you use gitweb to addess btrfs-progs.git, there is a very nice label 
"snapshot" beside each commit entry and clicking it will get you a 
tarball of the tree from that point.

I am a newbie at the git stuff but it seems to me that a few more 
branches are needed with stable branches marked as such and one or more 
unstable development branches ... at least that is what I have seen done 
on other projects such as NetworkManager and libvirt.  The branch will 
then include a hardcoded value for the version id which will/can be 
different in each branch.  And they also usually have a "make dist" 
which packages things up into a tarball.

The snapshot-tarball from gitweb includes the first part of the git 
commit id.  It is just that it is not included in a file.  The tarball 
does not includes only ".gitignore".  Rpms (and I assume the debian 
packages also) are based on tarball source with additional patches as 
necessary.  I have seen only one fedora package actually use git in the 
rpm and that was grub2.

While running stuff directly from a local git repository may be nice for 
developer, actual inclusion in a distribution package will (I believe) 
be via tarball.
>
>> and
>>
>>> mkfs.btrfs  -V
>> mkfs.btrfs, part of Btrfs Btrfs v0.19
>>
>> There must be a way to reliably just have one "Btrfs" and I will
>> look into it.
>>
As I was sitting here typing this message, the "solution" occurred to me:

Do not use Dieter's patch because it is unnecessary ... Sergei's patch 
does things correctly already.

Sorry for the noise on the list.  However, I do suggest that more git 
branches be used rather than having everything under "master".

  reply	other threads:[~2013-01-18 16:48 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-17 17:47 [GIT PULL] btrfs-progs: more bugfixes for 0.20-rc1 David Sterba
2013-01-17 17:51 ` Chris Mason
2013-01-18 17:32   ` Goffredo Baroncelli
2013-01-18 14:16 ` Gene Czarcinski
2013-01-18 14:44   ` David Sterba
2013-01-18 15:49     ` Gene Czarcinski
2013-01-18 15:55       ` Hugo Mills
2013-01-18 16:48         ` Gene Czarcinski [this message]
2013-01-18 15:33 ` Gene Czarcinski
2013-01-18 17:22   ` David Sterba
2013-01-18 21:02     ` Gene Czarcinski
2013-01-21 10:50       ` David Sterba

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50F97CED.2040701@czarc.net \
    --to=gene@czarc.net \
    --cc=chris.mason@fusionio.com \
    --cc=dsterba@suse.cz \
    --cc=hugo@carfax.org.uk \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).