From aabe8b325f7128320044d9636257f0628e95fbec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=2E=C3=87a=C4=9Flar=20Onur?= Date: Tue, 28 Jun 2005 13:52:06 +0000 Subject: [PATCH] =?UTF-8?q?=20=20=20=20*=20ebuild'lerden=20pspec=20olu?= =?UTF-8?q?=C5=9Fturacak=20kod,=20gerekli=20bilgi=20README=20i=C3=A7inde?= =?UTF-8?q?=20var.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/Makefile | 5 ++ tools/README | 7 ++ tools/main.py | 8 +++ tools/portage2pisi.py | 147 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 167 insertions(+) create mode 100644 tools/Makefile create mode 100644 tools/README create mode 100644 tools/main.py create mode 100644 tools/portage2pisi.py diff --git a/tools/Makefile b/tools/Makefile new file mode 100644 index 00000000..ed4d760d --- /dev/null +++ b/tools/Makefile @@ -0,0 +1,5 @@ +all: + python main.py + PORTDIR=PORTDIR_OVERLAY_KLASÖRÜ sudo python portage2pisi.py +clean: + sudo rm -rf packages diff --git a/tools/README b/tools/README new file mode 100644 index 00000000..853ca466 --- /dev/null +++ b/tools/README @@ -0,0 +1,7 @@ +cd PORTDIR_OVERLAY_KLASÖRÜNÜZ +ln -s /usr/portage/eclass/ +ln -s /usr/portage/profiles/ + +Makefile içindeki PORTDIR=PORTDIR_OVERLAY_KLASÖRÜ düzeltilecek + +Sonrasınra make ve make clean diff --git a/tools/main.py b/tools/main.py new file mode 100644 index 00000000..46445b9a --- /dev/null +++ b/tools/main.py @@ -0,0 +1,8 @@ +#!/usr/bin/python + +import os +import string + +os.mkdir('packages') +for i in string.ascii_letters: + os.mkdir('packages' + '/' + i) diff --git a/tools/portage2pisi.py b/tools/portage2pisi.py new file mode 100644 index 00000000..d1ee9807 --- /dev/null +++ b/tools/portage2pisi.py @@ -0,0 +1,147 @@ +#!/usr/bin/python + +import sys +import os +import datetime + +sys.path.insert(0, "/usr/lib/portage/pym") +import portage +from portage import catpkgsplit + +def packageVersion(pkg): + if len(pkg) > 1: + parts = catpkgsplit(pkg) + if parts == None: + return "" + + if parts[3] != 'r0': + version = parts[2] + "-" + parts[3] + else: + version = parts[2] + return version + else: + return False + +db = portage.portdb + +ebuilds = [] +for p in db.cp_all(): + for pv in db.cp_list(p): + ebuilds.append(pv) + +try: + for pkg in ebuilds: + + try: + homepage, description, license, URI, depend, rdepend = portage.portdb.aux_get(pkg, ["HOMEPAGE", "DESCRIPTION", "LICENSE", "SRC_URI", "DEPEND", "RDEPEND"]) + except KeyError: + homepage, description, license, URI, depend, rdepend = "", "", "" + pass + + ''' Package name without version ''' + PackageName = catpkgsplit(pkg)[1] + + ''' Category and Package name with version ''' + (category, name) = pkg.split("/") + + ''' Version and release ''' + if '-' in packageVersion(pkg): + (version, release) = packageVersion(pkg).split("-") + release = release.replace("r","") + else: + version = packageVersion(pkg) + release = '' + + ''' Type of archieve file ''' + if URI[-2:] == 'gz': + type = 'targz' + elif URI[-3:] == 'bz2': + type = 'tarbz2' + elif URI[-3:] == 'tar': + type = 'tar' + elif URI[-3:] == 'zip': + type = 'zip' + + ''' Current date ''' + date = datetime.date.today() + + ''' Build Dependencies ''' + buildDep = "" + for dep in portage.flatten(portage.tokenize(depend)): + buildDep += " " + dep + "\n" + + ''' Runtime Dependencies ''' + runDep = "" + for dep in portage.flatten(portage.tokenize(rdepend)): + runDep += " " + dep + "\n" + + template=''' + + + + + + %s + %s + + PACKAGER + PACKAGER_EMAIL + + %s + ISA + PARTOF + %s + %s + + +%s + + + + %s + %s + %s + + + + + + %s + %s + + +%s + + %s + FILES + + + %s + %s + %s + + + + + +''' % ( PackageName, homepage, license, description, type, URI, buildDep, date, version, release, PackageName, description, \ + runDep, description, date, version, release ) + + ''' package/a/acpid-1.2.0/acpid.pspec ''' + filename = "packages/" + name[:1] + "/" + name + "/" + name + ".pspec" + + try: + os.mkdir("packages/" + name[:1] + "/" + name ) + except OSError, e: + print "Directort exist %s" % e + pass + + ''' Write to file ''' + entry = open( filename, 'w' ) + entry.write( template ) + entry.close() + +except KeyboardInterrupt: + sys.exit(1) + +print "Total: " + str(len(ebuilds)) + " ebuilds has been converted to pspec..."