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

Re: Please support templates for submitting RM bugs to ftp.debian.org



# Bcc: control
tags 459333 + patch
thanks

On 08/01/05 17:00 +0100, Pierre Habouzit said ...
> 
> On Sat, Jan 05, 2008 at 01:50:56PM +0000, Joerg Jaspert wrote:
> > 
> > With the current title you request removal from unstable, please fix.
> 
>   Rrriiight, it'd be nice if reportbug could have the proper questions,
> I never remember what the subject for RMs should be, and usually
> maintainers don't ask for removals _that_ often, so it'd be best if
> reportbug assumed we were stupid about that :)
> 
> To the reporbug maintainer: it'd be great if when reporting a bug to
> ftp.debian.org a `removal` bug suite of questions could happen that
> would ask for the targetted suites (defaulting to unstable), the reason
> (RoM, RoQA, RoRM, ..) and ask for the complementar informations
> (obsolete, no upstream, whatever).

Attached patch attempts to reduce this pain.  Comments are welcome.  TV
indicated that he would sponsor an NMU if (among other bugs) it has this
bug fixed.

Giridhar

-- 
Y Giridhar Appaji Nag | http://www.appaji.net/
diff -Nur reportbug-3.39.orig/debianbts.py reportbug-3.39/debianbts.py
--- reportbug-3.39.orig/debianbts.py	2007-04-20 02:03:09.000000000 +0530
+++ reportbug-3.39/debianbts.py	2008-03-19 01:11:14.000000000 +0530
@@ -155,7 +155,7 @@
     'cdrom' : 'Problems with installation from CD-ROMs',
 # dpkg-iwj -- The dpkg branch maintained by Ian Jackson
     'debian-policy' : 'Proposed changes in the Debian policy documentation',
-    'ftp.debian.org' : 'Problems with the FTP site',
+    'ftp.debian.org' : 'Problems with the FTP site and Package removal requests',
     'general' : 'General problems (e.g., that many manpages are mode 755)',
 #    'install' : 'Problems with the sarge installer.',
 #    'installation' : 'General installation problems not covered otherwise.',
@@ -182,6 +182,115 @@
     'debian-general' : 'Any non-package-specific bug',
     }
 
+def handle_debian_ftp(package, bts, ui, fromaddr, online=True, http_proxy=None):
+    body = reason = archs = ''
+    suite = 'unstable'
+    headers = []
+    pseudos = []
+    query = True
+    
+    tag = ui.menu('What sort of request is this?  (If none of these '
+                  'things mean anything to you, or you are trying to report '
+                  'a bug in an existing package, please press Enter to '
+                  'exit reportbug.)', {
+        'ROM' :
+        "Package removal - Request Of Maintainer.",
+        'RoQA' :
+        "Package removal - Requested by the QA team.",
+        'ROP' :
+        "Package removal - Request of Porter.",
+        'ROSRM' :
+        "Package removal - Request of Stable Release Manager.",
+        'NBS' :
+        "Package removal - Not Built [by] Source.",
+        'NPOASR' :
+        "Package removal - Never Part Of A Stable Release.",
+        'NVIU' :
+        "Package removal - Newer Version In Unstable.",
+        'ANAIS' :
+        "Package removal - Architecture Not Allowed In Source.",
+        'ICE' :
+        "Package removal - Internal Compiler Error.",
+        '[cruft-report]' :
+        "Package removal - detected by the cruft finder script.",
+        'other' :
+        "Not a package removal request, report other problems.",
+        }, 'Choose the request type: ', empty_ok=True)
+    if not tag:
+        ui.long_message('To report a bug in a package, use the name of the package, not ftp.debian.org.\n')
+        raise SystemExit
+
+    severity = 'normal'
+    if tag == 'other':
+        return
+    else:
+        prompt = 'Please enter the name of the package: '
+        package = ui.get_string(prompt)
+        if not package:
+            ui.ewrite('You seem to want to report a generic bug, not request a removal\n')
+            return
+
+        ui.ewrite('Checking status database...\n')
+        info = reportbug.get_package_status(package)
+        available = info[1]
+
+        query = False
+        if not available:
+            info = reportbug.get_source_package(package)
+            if info:
+                info = reportbug.get_package_status(info[0][0])
+
+        if not info:
+            cont = ui.select_options(
+                "This package doesn't appear to exist; continue?",
+                'yN', {'y': 'Ignore this problem and continue.',
+                       'n': 'Exit without filing a report.' })
+            if cont == 'n':
+                sys.exit(1)
+        else:
+            package = info[12] or package
+
+        suite = ui.menu('Is the removal to be done in a suite other than'
+                        ' "unstable"?  Please press Enter for "unstable"', {
+            'oldstable' : "Old stable.",
+            'oldstable-proposed-updates' : "Old stable proposed updates.",
+            'stable' : "Stable.",
+            'stable-proposed-updates' : "Stable proposed updates.",
+            'testing' : "Testing",
+	    'testing-proposed-updates' : "Testing proposed updates",
+            'experimental' : "Experimental.",
+        }, 'Choose the suite: ', empty_ok=True)
+        if not suite:
+            suite = 'unstable'
+
+        why = 'Please enter the reason for removal: '
+        reason = ui.get_string(why)
+        if not reason: return
+
+        partial = ui.select_options(
+            "Is this removal request for specific architectures?",
+            'yN', {'y': 'This is a partial (specific architectures) removal.',
+                   'n': 'This removal is for all architectures.' })
+        if partial == 'y':
+            prompt = 'Please enter the arch list separated by a space: '
+            archs = ui.get_string(prompt)
+            if not archs:
+                ui.long_message('Partial removal requests must have a list of architectures.\n')
+                raise SystemExit
+
+    if archs:
+        if suite != 'unstable':
+            subject = 'RM: %s/%s [%s] -- %s; %s' % (package, suite, archs, tag, reason)
+        else:
+            subject = 'RM: %s [%s] -- %s; %s' % (package, archs, tag, reason)
+    else:
+        if suite != 'unstable':
+            subject = 'RM: %s/%s -- %s; %s' % (package, suite, tag, reason)
+        else:
+            subject = 'RM: %s -- %s; %s' % (package, tag, reason)
+
+    return (subject, severity, headers, pseudos, body, query)
+
 def handle_wnpp(package, bts, ui, fromaddr, online=True, http_proxy=None):
     desc = body = ''
     headers = []
@@ -310,7 +419,9 @@
               'btsroot' : 'http://www.debian.org/Bugs/',
               'otherpkgs' : debother,
               'nonvirtual' : ['linux-image', 'kernel-image'],
-              'specials' : { 'wnpp': handle_wnpp },
+              'specials' :
+                { 'wnpp': handle_wnpp,
+                  'ftp.debian.org': handle_debian_ftp },
               # Dependency packages
               'deppkgs' : ('gcc', 'g++', 'cpp', 'gcj', 'gpc', 'gobjc',
                            'chill', 'gij', 'g77', 'python', 'python-base',
diff -Nur reportbug-3.39.orig/reportbug reportbug-3.39/reportbug
--- reportbug-3.39.orig/reportbug	2007-08-17 04:10:37.000000000 +0530
+++ reportbug-3.39/reportbug	2008-03-18 23:48:52.000000000 +0530
@@ -344,6 +344,14 @@
                 False):
                 return get_package_name(bts, mode)
 
+        if package == 'ftp.debian.org':
+            if not ui.yes_no(
+                'Are you sure you want to file a bug on ftp.debian.org?',
+                'Yes, I am a developer or know what I\'m doing.',
+                'No, I am not a developer and I don\'t know what ftp.debian.org is.',
+                False):
+                return get_package_name(bts, mode)
+
     return package
 
 def special_prompts(package, bts, ui, fromaddr):

Attachment: signature.asc
Description: Digital signature


Reply to: