Index: smart/commands/install.py
===================================================================
--- smart/commands/install.py	(revisão 696)
+++ smart/commands/install.py	(cópia de trabalho)
@@ -54,6 +54,12 @@
                       help=_("split operation in steps"))
     parser.add_option("--urls", action="store_true",
                       help=_("dump needed urls and don't commit operation"))
+    parser.add_option("--dump", action="store_true",
+                      help=_("dump package names and versions but "
+                             "don't commit operation"))
+    parser.add_option("--dump-noversion", action="store_true",
+                      help=_("dump package names without versions but "
+                             "don't commit operation"))
     parser.add_option("--download", action="store_true",
                       help=_("download packages and don't commit operation"))
     parser.add_option("--explain", action="store_true",
@@ -165,6 +171,10 @@
         confirm = not opts.yes
         if opts.urls:
             ctrl.dumpTransactionURLs(trans)
+        if opts.dump:
+            ctrl.dumpTransactionPackages(trans, "install", noversion=False)
+        if opts.dump-noversion:
+            ctrl.dumpTransactionPackages(trans, "install", noversion=True)
         elif opts.download:
             ctrl.downloadTransaction(trans, confirm=confirm)
         elif opts.stepped:
Index: smart/commands/upgrade.py
===================================================================
--- smart/commands/upgrade.py	(revisão 696)
+++ smart/commands/upgrade.py	(cópia de trabalho)
@@ -53,6 +53,12 @@
                       help=_("split operation in steps"))
     parser.add_option("--urls", action="store_true",
                       help=_("dump needed urls and don't commit operation"))
+    parser.add_option("--dump", action="store_true",
+                          help=_("dump package names and versions but "
+                                 "don't commit operation"))
+    parser.add_option("--dump-noversion", action="store_true",
+                          help=_("dump package names without versions but "
+                                 "don't commit operation"))
     parser.add_option("--download", action="store_true",
                       help=_("download packages and don't commit operation"))
     parser.add_option("--update", action="store_true",
@@ -174,6 +180,10 @@
         confirm = not opts.yes
         if opts.urls:
             ctrl.dumpTransactionURLs(trans)
+        if opts.dump:
+            ctrl.dumpTransactionPackages(trans, "upgrade", False)
+        elif opts.dump_noversion:
+            ctrl.dumpTransactionPackages(trans, "upgrade", True)
         elif opts.download:
             ctrl.downloadTransaction(trans, confirm=confirm)
         elif opts.stepped:
Index: smart/control.py
===================================================================
--- smart/control.py	(revisão 696)
+++ smart/control.py	(cópia de trabalho)
@@ -414,6 +414,21 @@
         for url in urls:
             print >>output, url
 
+    def dumpTransactionPackages(self, trans, action="install", noversion=False):
+        print
+        from smart.report import Report
+        report = Report(trans.getChangeSet())
+        report.compute()
+        if action == "install":
+            pkgs = report.installing
+        elif action == "upgrade":
+            pkgs = report.upgrading
+        for pkg in pkgs:
+            if noversion:
+                print >>sys.stderr, pkg.name
+            else:
+                print >>sys.stderr, pkg
+
     def downloadURLs(self, urllst, what=None, caching=NEVER, targetdir=None):
         fetcher = self._fetcher
         fetcher.reset()
