def _dsc_to_sources(self, package_file): """ Reads the contents of a dsc file and converts it to a Sources file entry. ``file`` Filename of the dsc to read. """ filename = os.path.join(self.repository, package_file.filename) package_version = package_file.source_package.package_version package = package_version.package if not os.path.isfile(filename): log.critical('Cannot find file %s' % filename) return '' # Read the dsc file. dsc = deb822.Dsc(file(filename)) # There are a few differences between a dsc file and a Sources entry, listed and acted # upon below: # Firstly, the "Source" field in the dsc is simply renamed to "Package". dsc['Package'] = dsc.pop('Source') # There needs to be a "Directory" field to tell the package manager where to download the # package from. This is in the format (for the test package in the component "main"): # pool/main/t/test dsc['Directory'] = str('pool/%s/%s' % (package_version.component, get_package_dir(package.name))) # The dsc file, its size, and its md5sum needs to be added to the "Files" field. This is # unsurprisingly not in the original dsc file! dsc['Files'].append({'md5sum' : package_file.md5sum, 'size': str(package_file.size), 'name' : str(package_file.filename.split('/')[-1])}) # Get a nice rfc822 output of this dsc, now Sources, entry. return dsc.dump()
def rfs_howto(self, packagename = None): c.package = None c.package_dir = None if packagename: package = meta.session.query(Package).filter_by(name=packagename).first() if package: c.package = package c.package_dir = get_package_dir(package.name) return render('/sponsor/rfs_howto.mako')
def _get_package(self, packagename): """ """ log.debug('Details of package "%s" requested' % packagename) package = meta.session.query(Package).filter_by(name=packagename).first() if package is None: log.error("Could not get package information") return redirect_to(h.url_for(controller="packages", packagename=None)) c.package = package c.config = config c.package_dir = get_package_dir(package.name) return package
def _get_package(self, packagename): """ """ log.debug('Details of package "%s" requested' % packagename) package = meta.session.query(Package).filter_by( name=packagename).first() if package is None: log.error('Could not get package information') return redirect_to( h.url_for(controller='packages', packagename=None)) c.package = package c.config = config c.package_dir = get_package_dir(package.name) return package
def _dsc_to_sources(self, package_file): """ Reads the contents of a dsc file and converts it to a Sources file entry. ``file`` Filename of the dsc to read. """ filename = os.path.join(self.repository, package_file.filename) package_version = package_file.source_package.package_version package = package_version.package if not os.path.isfile(filename): log.critical('Cannot find file %s' % filename) return '' if not package: log.critical('For some reason package is None...') return '' # Read the dsc file. dsc = deb822.Dsc(file(filename)) # There are a few differences between a dsc file and a Sources entry, listed and acted # upon below: # Firstly, the "Source" field in the dsc is simply renamed to "Package". dsc['Package'] = dsc.pop('Source') # There needs to be a "Directory" field to tell the package manager where to download the # package from. This is in the format (for the test package in the component "main"): # pool/main/t/test dsc['Directory'] = str( 'pool/%s/%s' % (package_version.component, get_package_dir(package.name))) # The dsc file, its size, and its md5sum needs to be added to the "Files" field. This is # unsurprisingly not in the original dsc file! dsc['Files'].append({ 'md5sum': package_file.md5sum, 'size': str(package_file.size), 'name': str(package_file.filename.split('/')[-1]) }) # Get a nice rfc822 output of this dsc, now Sources, entry. return dsc.dump()
def _get_package(self, packagename, from_controller=True): """ """ log.debug('Details of package "%s" requested' % packagename) package = meta.session.query(Package).filter_by(name=packagename).first() if package is None and from_controller: log.error("Could not get package information") redirect(url(controller="packages", action="index", packagename=None)) if package is None and not from_controller: return None if from_controller: c.package = package c.config = config c.package_dir = get_package_dir(package.name) return package
def _get_package(self, packagename, from_controller=True): """ """ log.debug('Details of package "%s" requested' % packagename) package = meta.session.query(Package).filter_by(name=packagename).first() if package is None and from_controller: log.error('Could not get package information') redirect(url(controller='packages', action='index', packagename=None)) if package is None and not from_controller: return None if from_controller: c.package = package c.config = config c.package_dir = get_package_dir(package.name) return package