summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/fedpkg.bash2
-rwxr-xr-xsrc/fedpkg.py14
-rw-r--r--src/pyfedpkg/__init__.py13
3 files changed, 28 insertions, 1 deletions
diff --git a/src/fedpkg.bash b/src/fedpkg.bash
index 90cb2ac..e890345 100644
--- a/src/fedpkg.bash
+++ b/src/fedpkg.bash
@@ -37,7 +37,7 @@ _fedpkg()
local options_value="--dist --user --path"
local commands="build chain-build ci clean clog clone co commit compile diff gimmespec giturl help \
import install lint local mockbuild new new-sources patch prep pull push retire scratch-build sources \
- srpm switch-branch tag tag-request unused-patches update upload verrel"
+ srpm switch-branch tag tag-request unused-patches update upload verify-files verrel"
# parse main options and get command
diff --git a/src/fedpkg.py b/src/fedpkg.py
index b9d46c4..e12124f 100755
--- a/src/fedpkg.py
+++ b/src/fedpkg.py
@@ -498,6 +498,14 @@ def diff(args):
log.error('Could not diff: %s' % e)
sys.exit(1)
+def verify_files(args):
+ try:
+ mymodule = pyfedpkg.PackageModule(args.path, args.dist)
+ return mymodule.verify_files()
+ except pyfedpkg.FedpkgError, e:
+ log.error('Could not verify %%files list: %s' % e)
+ sys.exit(1)
+
def export(args):
# not implimented; not planned
log.warning('Not implimented yet, got %s' % args)
@@ -1007,6 +1015,12 @@ packages will be built sequentially.
help = 'short-circuit compile')
parser_compile.set_defaults(command = compile)
+ # Verify %files list locally
+ parser_verify_files = subparsers.add_parser('verify-files',
+ help='Locally verify %%files section',
+ description="Locally run 'rpmbuild -bl' to verify the spec file's %files sections. This is useful after a successful run of 'fedpkg install' or after a 'fedpkg local' run which failed due to %files list inaccuracies.")
+ parser_verify_files.set_defaults(command = verify_files)
+
# export the module; not planned
#parser_export = subparsers.add_parser('export',
# help = 'Create a clean export')
diff --git a/src/pyfedpkg/__init__.py b/src/pyfedpkg/__init__.py
index 76b4e5d..0a1e897 100644
--- a/src/pyfedpkg/__init__.py
+++ b/src/pyfedpkg/__init__.py
@@ -1323,6 +1323,19 @@ class PackageModule:
_run_command(cmd, shell=True)
return
+ def verify_files(self):
+ """Run rpmbuild -bl on a module to verify the %files section"""
+
+ # Get the sources
+ sources(self.path)
+ # setup the rpm command
+ cmd = ['rpmbuild']
+ cmd.extend(self.rpmdefines)
+ cmd.extend(['-bl', os.path.join(self.path, self.spec)])
+ # Run the command
+ _run_command(cmd, shell=True)
+ return
+
def getver(self):
"""Return the version-release of a package module."""