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:
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)