remove unneeeded scripts, minimize pisi installation. If anyone using these, please revert back
This commit is contained in:
@@ -1,81 +0,0 @@
|
|||||||
#! /usr/bin/python
|
|
||||||
# a simple tool to find the correct build order of source
|
|
||||||
# packages in the repository. this one works really fast.
|
|
||||||
# just give it the repository directory as an argument
|
|
||||||
# author: exa
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import os
|
|
||||||
sys.path.insert(0, '.')
|
|
||||||
|
|
||||||
import gettext
|
|
||||||
__trans = gettext.translation('pisi', fallback=True)
|
|
||||||
_ = __trans.ugettext
|
|
||||||
|
|
||||||
import pisi.context as ctx
|
|
||||||
import pisi
|
|
||||||
import pisi.api
|
|
||||||
import pisi.config
|
|
||||||
import pisi.specfile as specfile
|
|
||||||
import pisi.util
|
|
||||||
import pisi.graph
|
|
||||||
|
|
||||||
options = pisi.config.Options()
|
|
||||||
if len(sys.argv) > 2:
|
|
||||||
options.destdir=sys.argv[2]
|
|
||||||
else:
|
|
||||||
options.destdir = '/'
|
|
||||||
pisi.api.init(database=False, options=options)
|
|
||||||
repo_uri = sys.argv[1]
|
|
||||||
|
|
||||||
specfiles = []
|
|
||||||
|
|
||||||
print "reading pspecfiles, just a moment"
|
|
||||||
for root, dirs, files in os.walk(repo_uri):
|
|
||||||
for fn in files:
|
|
||||||
if fn == 'pspec.xml':
|
|
||||||
#ctx.ui.info(_('Adding %s to package index') % fn)
|
|
||||||
sf = specfile.SpecFile()
|
|
||||||
sf.read(pisi.util.join_path(root, fn))
|
|
||||||
sf.check()
|
|
||||||
sys.stdout.write('.')
|
|
||||||
sys.stdout.flush()
|
|
||||||
specfiles.append(sf)
|
|
||||||
|
|
||||||
def plan_build(specfiles):
|
|
||||||
# try to construct a pisi graph of packages to
|
|
||||||
# install / reinstall
|
|
||||||
|
|
||||||
G_f = pisi.graph.Digraph()
|
|
||||||
pkgtosrc = {}
|
|
||||||
for sf in specfiles:
|
|
||||||
for pkg in sf.packages:
|
|
||||||
pkgtosrc[str(pkg.name)] = str(sf.source.name)
|
|
||||||
|
|
||||||
for x in specfiles:
|
|
||||||
#G_f.add_package(x)
|
|
||||||
src = x.source
|
|
||||||
if not str(src.name) in G_f.vertices():
|
|
||||||
G_f.add_vertex(str(src.name), (src.version, src.release))
|
|
||||||
for builddep in src.buildDependencies:
|
|
||||||
G_f.add_edge(str(src.name), str(builddep.package))
|
|
||||||
for pkg in x.packages:
|
|
||||||
for rtdep in pkg.packageDependencies:
|
|
||||||
tsrc = pkgtosrc[rtdep.package]
|
|
||||||
if not src.name == tsrc: # firefox - firefox-devel thing
|
|
||||||
G_f.add_edge(src.name, tsrc )
|
|
||||||
|
|
||||||
if ctx.config.get_option('debug'):
|
|
||||||
G_f.write_graphviz(sys.stdout)
|
|
||||||
order = G_f.topological_sort()
|
|
||||||
order.reverse()
|
|
||||||
return G_f, order
|
|
||||||
|
|
||||||
print "planning build order"
|
|
||||||
try:
|
|
||||||
G_f, order = plan_build(specfiles)
|
|
||||||
print order
|
|
||||||
except pisi.graph.CycleException, e:
|
|
||||||
print e
|
|
||||||
|
|
||||||
pisi.api.finalize()
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
#! /usr/bin/python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
#
|
|
||||||
# find library dependencies of a package
|
|
||||||
# author: exa (Eray Özkural)
|
|
||||||
|
|
||||||
import locale
|
|
||||||
import sys
|
|
||||||
import os
|
|
||||||
import fnmatch
|
|
||||||
|
|
||||||
import gettext
|
|
||||||
__trans = gettext.translation('pisi', fallback=True)
|
|
||||||
_ = __trans.ugettext
|
|
||||||
|
|
||||||
import pisi
|
|
||||||
import pisi.api
|
|
||||||
import pisi.config
|
|
||||||
import pisi.specfile as specfile
|
|
||||||
import pisi.context as ctx
|
|
||||||
import pisi.util as util
|
|
||||||
from pisi.package import Package
|
|
||||||
|
|
||||||
locale.setlocale(locale.LC_ALL, '')
|
|
||||||
options = pisi.config.Options()
|
|
||||||
if len(sys.argv) > 2:
|
|
||||||
options.destdir=sys.argv[2]
|
|
||||||
else:
|
|
||||||
options.destdir = '/'
|
|
||||||
pisi.api.init(database=True, comar=False, options=options)
|
|
||||||
|
|
||||||
filename = sys.argv[1]
|
|
||||||
package = Package(filename)
|
|
||||||
package.read()
|
|
||||||
util.clean_dir('/tmp/install')
|
|
||||||
package.extract_dir_flat('install', '/tmp/install')
|
|
||||||
deps = set()
|
|
||||||
needed = set()
|
|
||||||
for file in package.files.list:
|
|
||||||
#print file.path, file.type
|
|
||||||
if file.type == 'executable':
|
|
||||||
(ret, lines) = util.run_batch('objdump -p %s' % util.join_path('/tmp/install', file.path))
|
|
||||||
for x in lines:
|
|
||||||
if x.startswith(' NEEDED'):
|
|
||||||
needed.add(x[8:].strip())
|
|
||||||
|
|
||||||
#print 'needed guys', needed
|
|
||||||
|
|
||||||
for lib in needed:
|
|
||||||
|
|
||||||
(ret, out) = util.run_batch('locate %s' % lib)
|
|
||||||
path = out[0].strip().lstrip('/')
|
|
||||||
try:
|
|
||||||
(pkg_name, file_info) = ctx.filesdb.get_file(path)
|
|
||||||
ctx.ui.info("Library dependency: '%s' due to library '%s'" % (pkg_name, file_info.path))
|
|
||||||
deps.add(pkg_name)
|
|
||||||
except:
|
|
||||||
ctx.ui.warning('Cannot find an installed package for library %s' % lib)
|
|
||||||
|
|
||||||
ctx.ui.info('Found deps:')
|
|
||||||
for x in deps:
|
|
||||||
ctx.ui.info(x)
|
|
||||||
|
|
||||||
pisi.api.finalize()
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
#
|
|
||||||
# Copyright (C) 2005, TUBITAK/UEKAE
|
|
||||||
#
|
|
||||||
# This program 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.
|
|
||||||
#
|
|
||||||
# Please read the COPYING file.
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import locale
|
|
||||||
import traceback
|
|
||||||
import exceptions
|
|
||||||
import signal
|
|
||||||
import bsddb3.db as db
|
|
||||||
import os
|
|
||||||
|
|
||||||
import pisi.ui
|
|
||||||
import pisi.context as ctx
|
|
||||||
from pisi.cli.pisicli import PisiCLI
|
|
||||||
|
|
||||||
import gettext
|
|
||||||
__trans = gettext.translation('pisi', fallback=True)
|
|
||||||
_ = __trans.ugettext
|
|
||||||
|
|
||||||
def exit(retval = 0):
|
|
||||||
pisi.api.finalize()
|
|
||||||
sys.exit(retval)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
|
|
||||||
locale.setlocale(locale.LC_ALL, '')
|
|
||||||
print """Welcome to the interactive PISI shell.
|
|
||||||
Type "help" to see a list of commands.
|
|
||||||
To end the session, type "exit".
|
|
||||||
You can run system commands by prefixing with '!' as in '!ls'.
|
|
||||||
Copyright 2006 (c) Pardus.
|
|
||||||
"""
|
|
||||||
while 1:
|
|
||||||
cmd = raw_input('pisi> ')
|
|
||||||
if cmd.strip()=='exit':
|
|
||||||
print 'Bye!'
|
|
||||||
exit()
|
|
||||||
if cmd.startswith('!'):
|
|
||||||
cmd = cmd[1:]
|
|
||||||
os.system(cmd)
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
cli = PisiCLI(cmd.split())
|
|
||||||
cli.run_command()
|
|
||||||
except Exception, value:
|
|
||||||
signal.signal(signal.SIGINT, signal.SIG_IGN) # disable further interrupts
|
|
||||||
ui = pisi.cli.CLI() # make a temporary UI
|
|
||||||
show_traceback = False
|
|
||||||
if isinstance(value, exceptions.KeyboardInterrupt):
|
|
||||||
ui.error(_("Keyboard Interrupt: Exiting..."))
|
|
||||||
elif isinstance(value, pisi.Error):
|
|
||||||
ui.error(_("Program Terminated."))
|
|
||||||
show_traceback = ctx.get_option('debug')
|
|
||||||
elif isinstance(value, db.DBRunRecoveryError):
|
|
||||||
ui.error(_("""A database operation has been aborted. You should run pisi
|
|
||||||
again for normal DB recovery procedure. Make sure you have free disk space.
|
|
||||||
You have to run rebuild-db only when there is file corruption and database upgrades."""))
|
|
||||||
elif isinstance(value, pisi.Exception):
|
|
||||||
show_traceback = True
|
|
||||||
ui.error(_("""Unhandled internal exception.
|
|
||||||
Please file a bug report. (http://bugs.uludag.org.tr)"""))
|
|
||||||
else:
|
|
||||||
# For any other exception (possibly Python exceptions) show
|
|
||||||
# the traceback!
|
|
||||||
show_traceback = ctx.get_option('debug')
|
|
||||||
ui.error(_("System Error. Program Terminated."))
|
|
||||||
|
|
||||||
if ctx.get_option('debug'):
|
|
||||||
ui.error(u"%s: %s" % (exception, value))
|
|
||||||
else:
|
|
||||||
ui.error(unicode(value))
|
|
||||||
|
|
||||||
ui.info(_("Please type 'help' for general help."))
|
|
||||||
|
|
||||||
if show_traceback:
|
|
||||||
ui.info(_("Traceback:"))
|
|
||||||
#traceback.print_exc(file=sys.stdout)
|
|
||||||
traceback.print_tb(sys.exc_traceback)
|
|
||||||
else:
|
|
||||||
ui.info(_("Use --debug to see a traceback."))
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
#! /usr/bin/python
|
|
||||||
# a simple tool to list stuff in source repository
|
|
||||||
# author: exa
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import os
|
|
||||||
|
|
||||||
import pisi
|
|
||||||
import pisi.api
|
|
||||||
import pisi.config
|
|
||||||
import pisi.specfile as specfile
|
|
||||||
import pisi.context as ctx
|
|
||||||
import pisi.util
|
|
||||||
import pisi.pxml.xmlfilecdom as xmlfile
|
|
||||||
|
|
||||||
options = pisi.config.Options()
|
|
||||||
if len(sys.argv) > 2:
|
|
||||||
options.destdir=sys.argv[2]
|
|
||||||
else:
|
|
||||||
options.destdir = '/'
|
|
||||||
pisi.api.init(database=False, options=options)
|
|
||||||
repo_uri = sys.argv[1]
|
|
||||||
|
|
||||||
for root, dirs, files in os.walk(repo_uri):
|
|
||||||
for fn in files:
|
|
||||||
if fn == 'pspec.xml':
|
|
||||||
sf = xmlfile.XmlFile(tag = 'PISI')
|
|
||||||
path = pisi.util.join_path(root, fn)
|
|
||||||
ctx.ui.info('Looking at %s' % path)
|
|
||||||
ls = file(path).readlines()
|
|
||||||
ls = filter(lambda x:x.find('<PartOf>')==-1, ls)
|
|
||||||
f = file(path, 'w')
|
|
||||||
for x in ls:
|
|
||||||
f.write(x)
|
|
||||||
f.close()
|
|
||||||
#sf.readxml(path)
|
|
||||||
#src = sf.getNode('Source')
|
|
||||||
#comp = sf.getNode('Source/PartOf')
|
|
||||||
#print src, comp
|
|
||||||
#if comp:
|
|
||||||
# print 'removing partof tag'
|
|
||||||
# src.removeChild(comp)
|
|
||||||
#else:
|
|
||||||
# print 'no comp already'
|
|
||||||
#sf.writexml(path)
|
|
||||||
pisi.api.finalize()
|
|
||||||
@@ -87,12 +87,8 @@ setup(name="pisi",
|
|||||||
url="http://www.pardus.org.tr/eng/pisi/",
|
url="http://www.pardus.org.tr/eng/pisi/",
|
||||||
package_dir = {'': ''},
|
package_dir = {'': ''},
|
||||||
packages = ['pisi', 'pisi.cli', 'pisi.actionsapi', 'pisi.pxml', 'pisi.search', 'pisi.scenarioapi'],
|
packages = ['pisi', 'pisi.cli', 'pisi.actionsapi', 'pisi.pxml', 'pisi.search', 'pisi.scenarioapi'],
|
||||||
scripts = ['pisi-cli', 'scripts/repostats.py', 'scripts/find-lib-deps.py',
|
scripts = ['pisi-cli', 'scripts/find-lib-deps.py', 'scripts/lspisi', 'scripts/unpisi', 'scripts/check-newconfigs.py'],
|
||||||
'scripts/lspisi', 'scripts/unpisi', 'scripts/check-newconfigs.py',
|
cmdclass = {'install' : Install}
|
||||||
'scripts/calc-build-order.py', 'scripts/pisish'],
|
|
||||||
cmdclass = {
|
|
||||||
'install' : Install
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# the below stuff is really nice but we already have a version
|
# the below stuff is really nice but we already have a version
|
||||||
|
|||||||
Reference in New Issue
Block a user