tag 700411 -patch
thanks.

Hi Carlos,
On Sun, May 05, 2013 at 07:41:04PM +0200, Carlos Alberto Lopez Perez wrote:
> tags 700411 patch
> thanks
> 
> On 12/02/13 14:37, Raphaël Hertzog wrote:
> > 
> > git-import-orig will happily import upstream tarballs that contain a
> > debian directory and when the upstream debian dir changes, git-import-orig
> > will try to merge those changes in the real debian packaging available on
> > the master branch.
> > 
> > In the best case, it fails, in the worst case it leads to indesirable
> > changes.
> > 
> > I tried to work-around this problem with --filter='debian/*' but there's
> > no safe pattern to use... because this one will also strip
> > "src/plugins/debian" from the upstream tarball and we don't really want
> > this by default.
> > 
> > So I would suggest that git-import-orig should automatically remove the
> > top-level "debian" directory when it does its work.
> > 
> > I'm not sure how git-import-dsc behaves in the same situation but it
> > should probably adjust its behaviour depending on the source format.
> > With 3.0 (quilt), you want this behaviour since the debian directory
> > is always coming from a separate tarball and thus both debian directories
> > are entirely unrelated. With "3.0 (native)" you want to keep the debian
> > directory because it only exists in the upstream tarball. With "1.0" it
> > depends...
> > 
> 
> Hi!
> 
> I have been also affected by this issue.
> 
> I have cooked a patch to fix this. It checks if the unpacked upstream
> tarball contains a "debian/" directory, then it checks if the current
> package is native or not. If it's not native, then it wipes the debian/
> directory from the unpacked upstream tarball before doing the import.

It's a great start but before applying it we should also make sure
git-import-dsc behaves consistently and also not do it for 1.0 packages
since these are expected to have a patch that applies against the
upstream tarball.
Cheers,
 -- Guido

> 
> The patch attached is against git-buildpackage=0.6.0~git20130414

> --- a/gbp/scripts/import_orig.py
> +++ b/gbp/scripts/import_orig.py
> @@ -21,11 +21,13 @@
>  import os
>  import sys
>  import tempfile
> +import shutil
>  import gbp.command_wrappers as gbpc
>  from gbp.deb import (DebianPkgPolicy, parse_changelog_repo)
>  from gbp.deb.uscan import (Uscan, UscanError)
>  from gbp.deb.changelog import ChangeLog, NoChangeLogError
>  from gbp.deb.git import (GitRepositoryError, DebianGitRepository)
> +from gbp.deb.source import DebianSource
>  from gbp.config import GbpOptionParserDebian, GbpOptionGroup, 
> no_upstream_branch_msg
>  from gbp.errors import GbpError
>  import gbp.log
> @@ -283,6 +285,13 @@
>              tmpdir = tempfile.mkdtemp(dir='../')
>              source.unpack(tmpdir, options.filters)
>              gbp.log.debug("Unpacked '%s' to '%s'" % (source.path, 
> source.unpacked))
> +            if os.path.isdir("%s" %(os.path.join(source.unpacked,"debian"))):
> +                try:
> +                    if not DebianSource('.').is_native():
> +                        shutil.rmtree("%s" 
> %(os.path.join(source.unpacked,"debian")))
> +                        gbp.log.info("Deleted 'debian/' directory from 
> unpacked upstream tarball before import")
> +                except Exception as e:
> +                    raise GbpError("Can't determine package type: %s" % e)
>  
>          if source.needs_repack(options):
>              gbp.log.debug("Filter pristine-tar: repacking '%s' from '%s'" % 
> (source.path, source.unpacked))


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to