diff options
| author | James Meyer <jams@linhes.org> | 2010-12-04 23:44:45 (GMT) | 
|---|---|---|
| committer | James Meyer <jams@linhes.org> | 2010-12-04 23:44:51 (GMT) | 
| commit | f51fb708846d13222bd97b3f760eb3be902c0be0 (patch) | |
| tree | ad25ff81828f12cb7da86384863e163cb4e001f2 /build_tools/larch7/larch0/scripts | |
| parent | 4384efe238cdfeac86fae0d8e1097a409350f8c6 (diff) | |
| download | linhes_dev-f51fb708846d13222bd97b3f760eb3be902c0be0.zip | |
remove old versions of larch 6 and 7
Diffstat (limited to 'build_tools/larch7/larch0/scripts')
| -rwxr-xr-x | build_tools/larch7/larch0/scripts/gen_repo | 206 | ||||
| -rwxr-xr-x | build_tools/larch7/larch0/scripts/repos.sh | 19 | 
2 files changed, 0 insertions, 225 deletions
| diff --git a/build_tools/larch7/larch0/scripts/gen_repo b/build_tools/larch7/larch0/scripts/gen_repo deleted file mode 100755 index 86e7b85..0000000 --- a/build_tools/larch7/larch0/scripts/gen_repo +++ /dev/null @@ -1,206 +0,0 @@ -#!/usr/bin/env python - -# gen_repo - build a repository db file from a set of packages -# -# Author: Michael Towers (gradgrind) <mt.42@web.de> -# -# This file is part of the larch project. -# -#    larch is free software; you can redistribute it and/or modify -#    it under the terms of the GNU General Public License as published by -#    the Free Software Foundation; either version 2 of the License, or -#    (at your option) any later version. -# -#    larch is distributed in the hope that it will be useful, -#    but WITHOUT ANY WARRANTY; without even the implied warranty of -#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -#    GNU General Public License for more details. -# -#    You should have received a copy of the GNU General Public License -#    along with larch; if not, write to the Free Software Foundation, Inc.,  -#    51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA -# -#---------------------------------------------------------------------------- -# -# Version 1.5 // 7th July 2007 - -import os -import os.path -import sys -import tarfile -from types import * -import re -from subprocess import check_call - -# to add a package: -#check_call(["repo-add", dbfile, pkg, pkg, pkg, ...]) - -# Regex to remove version comparison from package dependency -onlyname = re.compile("([^=><]+).*") - -def create_db(dbname, packagesdir, dep_ignore_list): -    os.chdir(packagesdir) -    dbfile = dbname + ".db.tar.gz" -    if os.path.exists(dbfile): -        os.remove(dbfile) - -    # Get a list of packages -    packages = filter(lambda s: s.endswith(".pkg.tar.gz"), os.listdir(".")) -    packages.sort() - -    # Use 'repo-add' to build the repo -    check_call(["repo-add", dbfile] + packages) - -    # Make a dict for keeping track of dependencies -    dep_dict = {} -    for p in packages: -        pkg_dict = get_pkg_info(p) -        pkg_name = pkg_dict["pkgname"] -        pkg_dbname = pkg_name + "-" + pkg_dict["pkgver"] -        # Add dependency info to dependency dict -        for d in pkg_dict["depend"]: -               # But also need to cater for versioning!!! -               # I will just ignore it here ... -            dm = onlyname.match(d) -            if not dm: -                if d: -                    print "DEBUG: package %s, dependency = '%s'" % (pkg_name, d) -                continue -            d = dm.group(1) -            if not dep_dict.has_key(d): -                dep_dict[d] = [False] -            dep_dict[d].append(pkg_name) -        # Mark packages provided by this one -        for p in (pkg_dict["provides"] + [pkg_name]): -            if dep_dict.has_key(p): -                dep_dict[p][0] = True -            else: -                dep_dict[p] = [True] -        # Mark packages in ignore list -        for p in dep_ignore_list: -            if dep_dict.has_key(p): -                dep_dict[p][0] = True - -    # Now display unsatisfied dependencies -    # Should add the possibility of declaring a list of packages -    # available (e.g. the base set, or all those on the live CD ..." -    print "-------------\nUnsatisfied dependencies:" -    for d, r in dep_dict.items(): -        if not r[0]: -            print "  ", d, "- needed by: ", -            for p in r[1:]: -                print p, " ", -            print "" - - - -def get_pkg_info(pkg): -    tf = tarfile.open(pkg, "r:gz") -    pkginfo = tf.extractfile(".PKGINFO") -    pkg_dict = {# the first ones go to 'desc' -                    "pkgname"   : None, -                    "pkgver"    : None, -                # from here they are optional, and can occur more than once -                    "depend"    : [], -                    "provides"  : [], -        } -    while True: -        l = pkginfo.readline().strip() -        if not l: break -        if l[0] == "#": continue -        split3 = l.split(None, 2) -        while len(split3) < 3: split3.append("") -        key, eq, value = split3 -        if not pkg_dict.has_key(key): continue -        val = pkg_dict[key] -        if val == None: -            pkg_dict[key] = value -            continue -        if not isinstance(val, ListType): -            print "Unexpected situation ...\n  key [oldvalue] <- newvalue" -            print key, "[%s]" % val, "<-", value -            sys.exit(1) -        pkg_dict[key].append(value) -    pkginfo.close() -    return pkg_dict - -def cat(path): -    """Python version of 'cat'""" -    fp = open(path, "r") -    op = "" -    for l in fp: -        op += l -    fp.close() -    return op - -def usage(): -    print """ -         gen_repo package-dir [repo-name] [-- ignore-list] - -     Generate a pacman db file for the packages in package-dir. -      -     If repo-name is given, this will be used as the name for the repository, -     otherwise the name of the directory containing the packages will be used. -      -     All dependencies of the packages in the repository will be listed to -     standard output, but a list of packages not to be included in this list -     can be specified: -           ignore-list should be either a file containing the names of packages -     not to be listed as dependencies (separated by space or newline), or a -     directory containing 'package directories', like /var/abs/base or -     /var/lib/pacman/local -         """ -    sys.exit(1) - -if __name__ == "__main__": - -    if len(sys.argv) < 2: -        usage() -    if os.getuid() != 0: -        print "Must be root to run this" -        sys.exit(1) -    pkgdir = sys.argv[1] -    if (len(sys.argv) == 2) or (sys.argv[2] == "--"): -        dbname = os.path.basename(os.path.abspath(pkgdir)) -        i = 2 -    else: -        dbname = sys.argv[2] -        i = 3 -    if len(sys.argv) == i: -        ignore_list = [] -    elif (len(sys.argv) == i+2) and (sys.argv[i] == "--"): -        ignore_list = sys.argv[i+1] -    else: -        usage() -    if not os.path.isdir(pkgdir): -        print "\n1st argument must be a directory" -        sys.exit(1) -    print "\nCreating pacman database (%s.db.tar.gz) file in %s" % (dbname, pkgdir) - -    if ignore_list: -        # Get list of packages to be ignored in dependency list -        if os.path.isfile(ignore_list): -            # A simple file containing the names of packages to ignore -            # separated by space or newline. -            ignore_list = cat(ignore_list).split() -        elif os.path.isdir(ignore_list): -            # A directory containing packages or package-directories (like in abs) -            l = os.listdir(ignore_list) -            # See if there are packages in this directory -            lp = filter(lambda s: s.endswith(".pkg.tar.gz"), l) -            if lp: -                l = map(lambda s: s.replace(".pkg.tar.gz", ""), lp) -            re1 = re.compile("(.+)-[^-]+?-[0-9]+") -            ignore_list = [] -            for f in l: -                m = re1.match(f) -                if m: -                    ignore_list.append(m.group(1)) -                else: -                    # the directory contains just the package names (like abs) -                    ignore_list.append(m) -        else: -            print "!!! Invalid ignore-list" -            usage() - -    create_db(dbname, pkgdir, ignore_list) diff --git a/build_tools/larch7/larch0/scripts/repos.sh b/build_tools/larch7/larch0/scripts/repos.sh deleted file mode 100755 index 731a1d5..0000000 --- a/build_tools/larch7/larch0/scripts/repos.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -# Script to build repository database archives from the current state of -# the pacman/sync database on the running system. - -# $1 (optional) is the directory within which subdirectories for each -# repository will be built. The default is the current directory. - -if [ -z "$1" ]; then -   d="." -else -   d="$1" -fi - -for f in core extra community; do -    mkdir -p ${d}/${f} -    echo "Compressing $f db ..." -    tar -czf ${d}/${f}/${f}.db.tar.gz -C /var/lib/pacman/sync/${f} . -done | 
