mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-03-13 08:01:09 +00:00
ubuntutools.update-maintainer: Do not use python-debian to parse
debian/control to avoid mangling this file (LP: #756373). The new simplified parser has no problems with comments in debian/control (LP: #701487, #713827).
This commit is contained in:
parent
f5ce76d52e
commit
457a6c6bee
8
debian/changelog
vendored
8
debian/changelog
vendored
@ -9,7 +9,13 @@ ubuntu-dev-tools (0.121) UNRELEASED; urgency=low
|
||||
* pull-debian-debdiff: Convert distance to an integer, so it works when
|
||||
specified.
|
||||
|
||||
-- Daniel Holbach <daniel.holbach@ubuntu.com> Mon, 21 Mar 2011 12:24:56 +0100
|
||||
[ Benjamin Drung ]
|
||||
* ubuntutools.update-maintainer: Do not use python-debian to parse
|
||||
debian/control to avoid mangling this file (LP: #756373). The new
|
||||
simplified parser has no problems with comments in debian/control
|
||||
(LP: #701487, #713827).
|
||||
|
||||
-- Benjamin Drung <bdrung@debian.org> Sun, 17 Apr 2011 16:06:49 +0200
|
||||
|
||||
ubuntu-dev-tools (0.120) unstable; urgency=low
|
||||
|
||||
|
@ -17,10 +17,10 @@
|
||||
"""This module is for updating the Maintainer field of an Ubuntu package."""
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
import debian.changelog
|
||||
|
||||
from ubuntutools.control import Control
|
||||
from ubuntutools.logger import Logger
|
||||
|
||||
# Prior May 2009 these Maintainers were used:
|
||||
@ -31,6 +31,56 @@ _PREVIOUS_UBUNTU_MAINTAINER = (
|
||||
)
|
||||
_UBUNTU_MAINTAINER = "Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>"
|
||||
|
||||
class Control(object):
|
||||
"""Represents a debian/control file"""
|
||||
|
||||
def __init__(self, filename):
|
||||
assert os.path.isfile(filename), "%s does not exist." % (filename)
|
||||
self._filename = filename
|
||||
self._content = open(filename).read()
|
||||
|
||||
def get_maintainer(self):
|
||||
"""Returns the value of the Maintainer field."""
|
||||
maintainer = re.search("^Maintainer: ?(.*)$", self._content,
|
||||
re.MULTILINE)
|
||||
if maintainer:
|
||||
maintainer = maintainer.group(1)
|
||||
return maintainer
|
||||
|
||||
def get_original_maintainer(self):
|
||||
"""Returns the value of the XSBC-Original-Maintainer field."""
|
||||
orig_maintainer = re.search("^(?:[XSBC]*-)?Original-Maintainer: ?(.*)$",
|
||||
self._content, re.MULTILINE)
|
||||
if orig_maintainer:
|
||||
orig_maintainer = orig_maintainer.group(1)
|
||||
return orig_maintainer
|
||||
|
||||
def save(self, filename=None):
|
||||
"""Saves the control file."""
|
||||
if filename:
|
||||
self._filename = filename
|
||||
control_file = open(self._filename, "w")
|
||||
control_file.write(self._content)
|
||||
control_file.close()
|
||||
|
||||
def set_maintainer(self, maintainer):
|
||||
"""Sets the value of the Maintainer field."""
|
||||
pattern = re.compile("^Maintainer: ?.*$", re.MULTILINE)
|
||||
self._content = pattern.sub("Maintainer: " + maintainer, self._content)
|
||||
|
||||
def set_original_maintainer(self, original_maintainer):
|
||||
"""Sets the value of the XSBC-Original-Maintainer field."""
|
||||
original_maintainer = "XSBC-Original-Maintainer: " + original_maintainer
|
||||
if self.get_original_maintainer():
|
||||
pattern = re.compile("^(?:[XSBC]*-)?Original-Maintainer:.*$",
|
||||
re.MULTILINE)
|
||||
self._content = pattern.sub(original_maintainer, self._content)
|
||||
else:
|
||||
pattern = re.compile("^(Maintainer:.*)$", re.MULTILINE)
|
||||
self._content = pattern.sub(r"\1\n" + original_maintainer,
|
||||
self._content)
|
||||
|
||||
|
||||
def _get_distribution(changelog_file):
|
||||
"""get distribution of latest changelog entry"""
|
||||
changelog = debian.changelog.Changelog(open(changelog_file))
|
||||
|
Loading…
x
Reference in New Issue
Block a user