Exemple #1
0
    def get_version(self):
        changed = []
        for key in ['pkgver', 'pkgrel', 'epoch']:
            old_val = getattr(self, key)
            new_val = self.get_from_pkgbuild(key)
            if new_val != old_val:
                changed.append((key, new_val))
                setattr(self, key, new_val)

        if not changed:
            return self.version_str

        if self.name == "cnchi-dev" and not str(self.pkgver).endswith("0") and not True:
            event = self.tl_event
            results = db.scan_iter('timeline:%s:*' % event, 100)
            for k in results:
                db.delete(k)
            db.lrem('timeline:all', 0, event)
            return False

        version = self.pkgver
        if self.epoch and self.epoch != '' and self.epoch is not None:
            version = self.epoch + ':' + version

        version = version + '-' + self.pkgrel
        if version and version != '' and version is not None:
            self.version_str = version
            # logger.info('@@-package.py-@@ | pkgver is %s' % pkgver)
        else:
            version = self.version_str

        return version
Exemple #2
0
def cache_buster():
    if db.exists('antbs:misc:cache_buster:flag'):
        db.delete('antbs:misc:cache_buster:flag')
        return True
    elif user.is_authenticated():
        return True

    return False
Exemple #3
0
    def maybe_update_pkgbuild_repo():
        """


        """
        if not db.exists('PKGBUILD_REPO_UPDATED'):
            if db.setnx('PKGBUILD_REPO_LOCK', True):
                db.expire('PKGBUILD_REPO_LOCK', 300)
                try:
                    if os.path.exists('/var/tmp/antergos-packages'):
                        shutil.rmtree('/var/tmp/antergos-packages')
                    subprocess.check_call(['git', 'clone', 'http://github.com/antergos/antergos-packages'], cwd='/var/tmp')
                    db.setex('PKGBUILD_REPO_UPDATED', 350, True)
                except subprocess.CalledProcessError as err:
                    logger.error(err)
                    db.delete('PKGBUILD_REPO_UPDATED')

                db.delete('PKGBUILD_REPO_LOCK')
                return
            else:
                while not db.exists('PKGBUILD_REPO_UPDATED') and db.exists('PKGBUILD_REPO_LOCK'):
                    time.sleep(2)
                return
Exemple #4
0
def process_package_queue():
    """

    :param the_queue:
    :return: :raise ValueError:
    """
    hook_queue = status.hook_queue
    logger.info(hook_queue)
    if hook_queue is None:
        raise ValueError('the_queue cannot be None')
    all_deps = []

    if not db.exists('BUILD_REPO_UPDATED'):
        if db.setnx('BUILD_REPO_LOCK', True):
            db.expire('BUILD_REPO_LOCK', 300)
            try:
                subprocess.check_call(
                    ['git', 'clone', 'http://github.com/antergos/antergos-packages.git'],
                    cwd='/opt')
                subprocess.check_call(['chmod', '-R', 'a+rw', REPO_DIR], cwd='/opt')
            except subprocess.CalledProcessError:
                try:
                    subprocess.check_call(['git', 'reset', '--soft', 'origin/master'], cwd='/opt/antergos-packages')
                    subprocess.check_call(['git', 'pull'], cwd='/opt/antergos-packages')
                    db.setex('BUILD_REPO_UPDATED', 350, True)
                except subprocess.CalledProcessError as err:
                    logger.error(err)
            db.delete('BUILD_REPO_LOCK')
        else:
            while not db.exists('BUILD_REPO_UPDATED') and db.exists('BUILD_REPO_LOCK'):
                time.sleep(2)

    for pkg in hook_queue:
        logger.info(pkg)
        if pkg == '':
            continue
        pkg_obj = package.get_pkg_object(name=pkg)
        version = pkg_obj.get_version()
        if not version:
            status.hook_queue.remove(pkg_obj.name)
            if 'cnchi-dev' != pkg:
                logger.error('pkgbuild path is not valid for %s', pkg_obj.name)
            else:
                continue

        logger.info('Updating pkgver in database for %s to %s' % (pkg_obj.name, version))
        status.current_status = 'Updating pkgver in database for %s to %s' % (pkg_obj.name, version)
        depends = pkg_obj.get_deps()

        if not pkg_obj.build_path or pkg_obj.build_path == '':
            paths = [os.path.join('/opt/antergos-packages/', pkg),
                     os.path.join('/opt/antergos-packages/deepin_desktop', pkg),
                     os.path.join('/opt/antergos-packages/cinnamon', pkg)]
            for p in paths:
                if os.path.exists(p):
                    pkg_obj.build_path = p
                    break
        if 'cnchi' in pkg:
            logger.info('cnchi package detected.')
            src = os.path.join('/var/tmp/antergos-packages/', pkg, 'cnchi')
            dest = os.path.join('/opt/antergos-packages/', pkg)
            remove(os.path.join(dest, 'cnchi'))
            shutil.move(src, dest)
            status.current_status = 'Fetching latest translations for %s from Transifex.' % pkg
            logger.info(status.current_status)
            cnchi_dir = '/opt/antergos-packages/%s' % pkg
            fetch_and_compile_translations(translations_for=["cnchi"], pkg_obj=pkg_obj)
            remove(os.path.join(cnchi_dir, 'cnchi/.git'))
            subprocess.check_output(['tar', '-cf', 'cnchi.tar', 'cnchi'], cwd='/opt/antergos-packages/%s' % pkg)
        elif 'numix-icon-theme-square' in pkg:
            src = os.path.join('/var/tmp/antergos-packages/', pkg, pkg)
            dest = os.path.join('/opt/antergos-packages/', pkg)
            shutil.move(src, dest)
            subprocess.check_output(['tar', '-cf', pkg + '.tar', pkg], cwd='/opt/antergos-packages/%s' % pkg)

        if depends and len(hook_queue) > 1:
            all_deps.append(depends)
        elif len(hook_queue) == 1:
            all_deps.append(1)

    return all_deps