Mercurial > treepkg > treepkg
comparison treepkg/packager.py @ 9:16689c948bbc
Rename the instance variable plant to pkg_line in some classes
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Fri, 09 Mar 2007 15:02:41 +0100 |
parents | 574506a022f6 |
children | 59d6055493f5 |
comparison
equal
deleted
inserted
replaced
8:574506a022f6 | 9:16689c948bbc |
---|---|
28 class SourcePackager(object): | 28 class SourcePackager(object): |
29 | 29 |
30 # Derived classes must supply the package basename | 30 # Derived classes must supply the package basename |
31 pkg_basename = None | 31 pkg_basename = None |
32 | 32 |
33 def __init__(self, plant, status, work_dir, src_dir, revision): | 33 def __init__(self, pkg_line, status, work_dir, src_dir, revision): |
34 self.plant = plant | 34 self.pkg_line = pkg_line |
35 self.status = status | 35 self.status = status |
36 self.work_dir = work_dir | 36 self.work_dir = work_dir |
37 self.src_dir = src_dir | 37 self.src_dir = src_dir |
38 self.revision = revision | 38 self.revision = revision |
39 assert(self.pkg_basename) | 39 assert(self.pkg_basename) |
60 | 60 |
61 Where pkg_basename is the value of self.pkg_basename and version | 61 Where pkg_basename is the value of self.pkg_basename and version |
62 is the return value of the determine_package_version() method. | 62 is the return value of the determine_package_version() method. |
63 """ | 63 """ |
64 temp_dir = os.path.join(self.work_dir, "temp") | 64 temp_dir = os.path.join(self.work_dir, "temp") |
65 self.plant.export_sources(temp_dir) | 65 self.pkg_line.export_sources(temp_dir) |
66 | 66 |
67 pkgbaseversion = self.determine_package_version(temp_dir) | 67 pkgbaseversion = self.determine_package_version(temp_dir) |
68 pkgbasedir = os.path.join(self.work_dir, | 68 pkgbasedir = os.path.join(self.work_dir, |
69 self.pkg_basename + "-" + pkgbaseversion) | 69 self.pkg_basename + "-" + pkgbaseversion) |
70 | 70 |
109 uses such prefixes for the kde packages. | 109 uses such prefixes for the kde packages. |
110 """ | 110 """ |
111 debian_dir = os.path.join(pkgbasedir, "debian") | 111 debian_dir = os.path.join(pkgbasedir, "debian") |
112 changelog = os.path.join(debian_dir, "changelog") | 112 changelog = os.path.join(debian_dir, "changelog") |
113 | 113 |
114 self.plant.copy_debian_directory(debian_dir) | 114 self.pkg_line.copy_debian_directory(debian_dir) |
115 | 115 |
116 logging.info("Updating %r", changelog) | 116 logging.info("Updating %r", changelog) |
117 oldversion = util.debian_changelog_version(changelog) | 117 oldversion = util.debian_changelog_version(changelog) |
118 if ":" in oldversion: | 118 if ":" in oldversion: |
119 oldversionprefix = oldversion.split(":")[0] + ":" | 119 oldversionprefix = oldversion.split(":")[0] + ":" |
120 else: | 120 else: |
121 oldversionprefix = "" | 121 oldversionprefix = "" |
122 run.call(["debchange", "-c", changelog, | 122 run.call(["debchange", "-c", changelog, |
123 "-v", oldversionprefix + pkgbaseversion + "-kk1", | 123 "-v", oldversionprefix + pkgbaseversion + "-kk1", |
124 changemsg], | 124 changemsg], |
125 env=self.plant.debian_environment()) | 125 env=self.pkg_line.debian_environment()) |
126 | 126 |
127 | 127 |
128 def create_source_package(self, pkgbasedir, origtargz): | 128 def create_source_package(self, pkgbasedir, origtargz): |
129 """Creates a new source package from pkgbasedir and origtargz""" | 129 """Creates a new source package from pkgbasedir and origtargz""" |
130 logging.info("Creating new source package") | 130 logging.info("Creating new source package") |
131 run.call(["dpkg-source", "-b", os.path.basename(pkgbasedir), | 131 run.call(["dpkg-source", "-b", os.path.basename(pkgbasedir), |
132 os.path.basename(origtargz)], | 132 os.path.basename(origtargz)], |
133 cwd=os.path.dirname(pkgbasedir), | 133 cwd=os.path.dirname(pkgbasedir), |
134 suppress_output=True, | 134 suppress_output=True, |
135 env=self.plant.debian_environment()) | 135 env=self.pkg_line.debian_environment()) |
136 | 136 |
137 def move_source_package(self, pkgbasename): | 137 def move_source_package(self, pkgbasename): |
138 """Moves the new source package from the work_dir to the src_dir""" | 138 """Moves the new source package from the work_dir to the src_dir""" |
139 logging.info("Moving source package to %r", self.src_dir) | 139 logging.info("Moving source package to %r", self.src_dir) |
140 util.ensure_directory(self.src_dir) | 140 util.ensure_directory(self.src_dir) |
170 raise NotImplementedError | 170 raise NotImplementedError |
171 | 171 |
172 | 172 |
173 class BinaryPackager(object): | 173 class BinaryPackager(object): |
174 | 174 |
175 def __init__(self, plant, status, binary_dir, dsc_file, logfile): | 175 def __init__(self, pkg_line, status, binary_dir, dsc_file, logfile): |
176 self.plant = plant | 176 self.pkg_line = pkg_line |
177 self.status = status | 177 self.status = status |
178 self.binary_dir = binary_dir | 178 self.binary_dir = binary_dir |
179 self.dsc_file = dsc_file | 179 self.dsc_file = dsc_file |
180 self.logfile = logfile | 180 self.logfile = logfile |
181 | 181 |
183 self.status.set("creating_binary_package") | 183 self.status.set("creating_binary_package") |
184 util.ensure_directory(self.binary_dir) | 184 util.ensure_directory(self.binary_dir) |
185 logging.info("Building binary package; loging to %r", self.logfile) | 185 logging.info("Building binary package; loging to %r", self.logfile) |
186 cmd = ["/usr/sbin/pbuilder", "build", "--logfile", self.logfile, | 186 cmd = ["/usr/sbin/pbuilder", "build", "--logfile", self.logfile, |
187 "--buildresult", self.binary_dir, self.dsc_file] | 187 "--buildresult", self.binary_dir, self.dsc_file] |
188 run.call(self.plant.root_cmd + cmd, suppress_output=True) | 188 run.call(self.pkg_line.root_cmd + cmd, suppress_output=True) |
189 self.status.set("binary_package_created") | 189 self.status.set("binary_package_created") |
190 | 190 |
191 | 191 |
192 class RevisionPackager(object): | 192 class RevisionPackager(object): |
193 | 193 |
194 source_packager_cls = SourcePackager | 194 source_packager_cls = SourcePackager |
195 binary_packager_cls = BinaryPackager | 195 binary_packager_cls = BinaryPackager |
196 | 196 |
197 def __init__(self, plant, revision): | 197 def __init__(self, pkg_line, revision): |
198 self.plant = plant | 198 self.pkg_line = pkg_line |
199 self.revision = revision | 199 self.revision = revision |
200 self.base_dir = self.plant.pkg_dir_for_revision(self.revision, 1) | 200 self.base_dir = self.pkg_line.pkg_dir_for_revision(self.revision, 1) |
201 self.status = util.StatusFile(os.path.join(self.base_dir, "status")) | 201 self.status = util.StatusFile(os.path.join(self.base_dir, "status")) |
202 | 202 |
203 work_dir = _filenameproperty("work") | 203 work_dir = _filenameproperty("work") |
204 binary_dir = _filenameproperty("binary") | 204 binary_dir = _filenameproperty("binary") |
205 src_dir = _filenameproperty("src") | 205 src_dir = _filenameproperty("src") |
210 return os.path.join(self.src_dir, filename) | 210 return os.path.join(self.src_dir, filename) |
211 return None | 211 return None |
212 | 212 |
213 def package(self): | 213 def package(self): |
214 try: | 214 try: |
215 src_packager = self.source_packager_cls(self.plant, self.status, | 215 src_packager = self.source_packager_cls(self.pkg_line, self.status, |
216 self.work_dir, self.src_dir, | 216 self.work_dir, self.src_dir, |
217 self.revision) | 217 self.revision) |
218 src_packager.package() | 218 src_packager.package() |
219 | 219 |
220 dsc_file = self.find_dsc_file() | 220 dsc_file = self.find_dsc_file() |
221 if dsc_file is None: | 221 if dsc_file is None: |
222 raise RuntimeError("Cannot find dsc File in %r" % self.src_dir) | 222 raise RuntimeError("Cannot find dsc File in %r" % self.src_dir) |
223 | 223 |
224 bin_packager = self.binary_packager_cls(self.plant, self.status, | 224 bin_packager = self.binary_packager_cls(self.pkg_line, self.status, |
225 self.binary_dir, dsc_file, | 225 self.binary_dir, dsc_file, |
226 os.path.join(self.base_dir, | 226 os.path.join(self.base_dir, |
227 "build.log")) | 227 "build.log")) |
228 bin_packager.package() | 228 bin_packager.package() |
229 except: | 229 except: |