[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Error 'local changes detected' on META.yml during package build



On Wed, 10 Oct 2012 00:56:58 -0400, Robert James Clay wrote:

> > Which probably means that the .orig.tar.gz (created from the
> > pristine-tar branch) is different than the master branch.
>    But from where is it seeing that difference?  That's what I'd like to
> figure out, so I can do something about it.

Right, that's the mystery we need to solve :)
 
> > My assumption is that that the upstream branch in our repo is not
> > created by git-import-orig
[..] 
> > (And it's then merged into master.)
>    Yes; after it's tagged & I've created & committed both distribution
> and 'orig' archives, I merge that to the 'upstream' branch and from
> there to the 'master' branch. That's merged to the 'debian' branch; once
> the packaging work is done, that's merged back to the 'master' branch
> and intended for release. That's how I thought it was going to work...

Ok, then my rough idea was not completly off :)
(Not sure if git experts can propose a simplier workflow but I guess
that's not the root of our problem at hand.)
 
> > And pristine-tar is then run manually later with the created .tar.gz?
>    Yes; after tagging the version being released and creating
> the .tag.gz archive, I ran 'pristine-tar commit' on it for both the
> distribution archive (for CPAN) and (after renaming the original
> archive) the 'orig' archive.

Ok.
 
> > So the difference seems to be between META.yml in your upstream repo
> > (the "raw" file) and the META.yml in your upstream tarball; or in
> > other words: the release process seems to somehow modify META.yml.
>    I'm not sure where in the process it's seeing the modification, and
> it's only happening when I use git-buildpackage (which I presume is how
> you found the issue).  

Yup; git-pkg re-creates the .orig.tar.gz with the help of
pristine-tar, and dpkg-source then whines about the change.

> And, IIRC, doing a diff on the version of the
> file as tagged in the repo and the version of the file extracted from
> the 'orig' archive does not find any differences...  (I'll be testing
> that some more...)  And running debuild manually on the same v0.15-1
> debian directory and the same 'orig' archive results in a successful
> build.

That would mean that the pristine-tar date is the problem, i.e. that
the re-created tarball is somehow different than your 'orig' archive?
 

Let's try:

So we have 3 META.yml's: the one in git (master), the one on the
CPAN, and the one in the re-created tarball:

% md5sum /home/gregoa/src/git-pkg-perl/meta/packages/libnet-citadel-perl/META.yml Net-Citadel-0.15.cpan/META.yml Net-Citadel-0.15.pristine-tar/META.yml 
fb410e6f6ead5f501b88246572de8d5a  /home/gregoa/src/git-pkg-perl/meta/packages/libnet-citadel-perl/META.yml
de6bc293ab2aee66243dd79f4e522af8  Net-Citadel-0.15.cpan/META.yml
de6bc293ab2aee66243dd79f4e522af8  Net-Citadel-0.15.pristine-tar/META.yml

Ok, so META.yml in the tarball on the CPAN and the one re-created
with pristine tar are the same.


Diff between the tarball and META.yml in git(master):

% diff -u Net-Citadel-0.15.pristine-tar/META.yml /home/gregoa/src/git-pkg-perl/meta/packages/libnet-citadel-perl/META.yml
--- Net-Citadel-0.15.pristine-tar/META.yml  2012-10-06 14:20:58.000000000 +0200
+++ /home/gregoa/src/git-pkg-perl/meta/packages/libnet-citadel-perl/META.yml    2012-10-07 20:18:37.873522418 +0200
@@ -1,24 +1,25 @@
---- #YAML:1.0
-name:               Net-Citadel
-version:            0.15
-abstract:           Citadel.org protocol coverage
+---
+abstract: 'Citadel.org protocol coverage'
 author:
-    - Robert Barta <rho@devc.at>, Robert James Clay <jame@rocasa.us>
-license:            perl
-distribution_type:  module
-configure_requires:
-    ExtUtils::MakeMaker:  0
+  - 'Robert Barta <rho@devc.at>, Robert James Clay <jame@rocasa.us>'
 build_requires:
-    Config::YAML:  1.42
-    Test::More:    0
-    Test::Pod:     0
-requires:
-    Readonly:  0
-no_index:
-    directory:
-        - t
-        - inc
-generated_by:       ExtUtils::MakeMaker version 6.57_05
+  Config::YAML: 1.42
+  Test::More: 0
+  Test::Pod: 0
+configure_requires:
+  ExtUtils::MakeMaker: 0
+distribution_type: module
+dynamic_config: 0
+generated_by: 'ExtUtils::MakeMaker version 6.57_05'
+license: perl
 meta-spec:
-    url:      http://module-build.sourceforge.net/META-spec-v1.4.html
-    version:  1.4
+  url: http://module-build.sourceforge.net/META-spec-v1.4.html
+  version: 1.4
+name: Net-Citadel
+no_index:
+  directory:
+    - t
+    - inc
+requires:
+  Readonly: 0
+version: 0.15


And the diff between META.yml in the tarball and META.yml in git's upstream branch is the same:

% diff -u Net-Citadel-0.15.pristine-tar/META.yml /home/gregoa/src/git-pkg-perl/meta/packages/libnet-citadel-perl/META.yml
--- Net-Citadel-0.15.pristine-tar/META.yml  2012-10-06 14:20:58.000000000 +0200
+++ /home/gregoa/src/git-pkg-perl/meta/packages/libnet-citadel-perl/META.yml    2012-10-07 20:18:37.873522418 +0200
@@ -1,24 +1,25 @@
---- #YAML:1.0
-name:               Net-Citadel
-version:            0.15
-abstract:           Citadel.org protocol coverage
+---
+abstract: 'Citadel.org protocol coverage'
 author:
-    - Robert Barta <rho@devc.at>, Robert James Clay <jame@rocasa.us>
-license:            perl
-distribution_type:  module
-configure_requires:
-    ExtUtils::MakeMaker:  0
+  - 'Robert Barta <rho@devc.at>, Robert James Clay <jame@rocasa.us>'
 build_requires:
-    Config::YAML:  1.42
-    Test::More:    0
-    Test::Pod:     0
-requires:
-    Readonly:  0
-no_index:
-    directory:
-        - t
-        - inc
-generated_by:       ExtUtils::MakeMaker version 6.57_05
+  Config::YAML: 1.42
+  Test::More: 0
+  Test::Pod: 0
+configure_requires:
+  ExtUtils::MakeMaker: 0
+distribution_type: module
+dynamic_config: 0
+generated_by: 'ExtUtils::MakeMaker version 6.57_05'
+license: perl
 meta-spec:
-    url:      http://module-build.sourceforge.net/META-spec-v1.4.html
-    version:  1.4
+  url: http://module-build.sourceforge.net/META-spec-v1.4.html
+  version: 1.4
+name: Net-Citadel
+no_index:
+  directory:
+    - t
+    - inc
+requires:
+  Readonly: 0
+version: 0.15


Summary: It looks like the git merging across several branches works,
and that the tarballs on the CPAN and from pristine-tar are the same;
but META.yml seems to be changed/regenerated/whatever between
git and creating the tarball for the CPAN.

Now we need someone who knows more about EUMM's "make dist" :)

(The alternative would be to have two separe repos for development
and packaging, and use git-import-orig to get the tarball into the
packaging repo.)

Cheers,
gregor

-- 
 .''`.  Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer  -  http://www.debian.org/
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   NP: Red Hot Chili Peppers: Fortune Faded

Attachment: signature.asc
Description: Digital signature


Reply to: