aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2015-08-14 17:25:04 +0200
committerGuido Günther <agx@sigxcpu.org>2015-08-14 17:57:17 +0200
commit3d86432d4509e5b30f2c0f5e2fa303630e5017c9 (patch)
treeb17b23acfcab2cd4eb4e49ad0e151a3e171dbb2b
parent035b179b047951f6eb354e748ea0daf7a3221cb9 (diff)
buildpackage: in overlay mode remove debian/ from unpacked tarball
We don't have a way to influence the upstream tarball in overlay mode so remove debian/ after unpack if the source format expects this. Closes: #792692
-rw-r--r--docs/manpages/gbp-buildpackage.sgml7
-rwxr-xr-xgbp/scripts/buildpackage.py13
2 files changed, 17 insertions, 3 deletions
diff --git a/docs/manpages/gbp-buildpackage.sgml b/docs/manpages/gbp-buildpackage.sgml
index ab99d24e..3895e14f 100644
--- a/docs/manpages/gbp-buildpackage.sgml
+++ b/docs/manpages/gbp-buildpackage.sgml
@@ -469,8 +469,11 @@
</term>
<listitem>
<para>
- Extract orig tarball when using export-dir option (analog to
- mergeWithUpstream in svn-bp)
+ Extract orig tarball from <option>tarball-dir</option> when
+ using the <option>export-dir</option> option (in analogy to
+ mergeWithUpstream in svn-bp). Also remove debian/ if
+ contained in the upstream tarball in case of 2.0 and 3.0
+ source formats.
</para>
</listitem>
</varlistentry>
diff --git a/gbp/scripts/buildpackage.py b/gbp/scripts/buildpackage.py
index c9a0403f..c26f57ff 100755
--- a/gbp/scripts/buildpackage.py
+++ b/gbp/scripts/buildpackage.py
@@ -20,6 +20,7 @@
from six.moves import configparser
import errno
import os, os.path
+import shutil
import sys
import time
import gbp.deb as du
@@ -29,6 +30,7 @@ from gbp.command_wrappers import (Command,
from gbp.config import (GbpOptionParserDebian, GbpOptionGroup)
from gbp.deb.git import (GitRepositoryError, DebianGitRepository)
from gbp.deb.source import DebianSource, DebianSourceError
+from gbp.deb.format import DebianSourceFormat
from gbp.format import format_str
from gbp.git.vfs import GitVfs
from gbp.deb.upstreamsource import DebianUpstreamSource
@@ -176,7 +178,7 @@ def extract_orig(orig_tarball, dest_dir):
upstream = DebianUpstreamSource(orig_tarball)
upstream.unpack(dest_dir)
- # Check if tarball extracts into a single folder or not:
+ # Check if tarball extracts into a single folder:
if upstream.unpacked != dest_dir:
# If it extracts a single folder, move its contents to dest_dir:
gbp.log.debug("Moving %s to %s" % (upstream.unpacked, dest_dir))
@@ -185,6 +187,15 @@ def extract_orig(orig_tarball, dest_dir):
os.rmdir(dest_dir)
os.rename(tmpdir, dest_dir)
+ # Remove debian/ from unpacked upstream tarball in case of non 1.0 format
+ underlay_debian_dir = os.path.join(dest_dir, 'debian')
+ format_file = os.path.join('debian', 'source', 'format')
+ if os.path.exists(underlay_debian_dir) and os.path.exists(format_file):
+ format = DebianSourceFormat.parse_file(format_file)
+ if format.version in ['2.0', '3.0']:
+ gbp.log.info("Removing debian/ from unpacked upstream source at %s" % underlay_debian_dir)
+ shutil.rmtree(underlay_debian_dir)
+
#}
def source_vfs(repo, options, tree):