* ebuild'lerden pspec oluşturacak kod, gerekli bilgi README içinde var.
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
all:
|
||||||
|
python main.py
|
||||||
|
PORTDIR=PORTDIR_OVERLAY_KLASÖRÜ sudo python portage2pisi.py
|
||||||
|
clean:
|
||||||
|
sudo rm -rf packages
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
import os
|
||||||
|
import string
|
||||||
|
|
||||||
|
os.mkdir('packages')
|
||||||
|
for i in string.ascii_letters:
|
||||||
|
os.mkdir('packages' + '/' + i)
|
||||||
@@ -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 += " <Dependency>" + dep + "</Dependency>\n"
|
||||||
|
|
||||||
|
''' Runtime Dependencies '''
|
||||||
|
runDep = ""
|
||||||
|
for dep in portage.flatten(portage.tokenize(rdepend)):
|
||||||
|
runDep += " <Dependency>" + dep + "</Dependency>\n"
|
||||||
|
|
||||||
|
template='''<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
|
||||||
|
<!DOCTYPE PSPEC SYSTEM "http://www.uludag.org.tr/projeler/pisi/pisi-spec.dtd">
|
||||||
|
|
||||||
|
<PISI>
|
||||||
|
<Source>
|
||||||
|
<Name>%s</Name>
|
||||||
|
<Homepage>%s</Homepage>
|
||||||
|
<Packager>
|
||||||
|
<Name>PACKAGER</Name>
|
||||||
|
<Email>PACKAGER_EMAIL</Email>
|
||||||
|
</Packager>
|
||||||
|
<License>%s</License>
|
||||||
|
<IsA>ISA</IsA>
|
||||||
|
<PartOf>PARTOF</PartOf>
|
||||||
|
<Description>%s</Description>
|
||||||
|
<Archive archType="%s" sha1sum="SUM">%s</Archive>
|
||||||
|
<BuildDependencies>
|
||||||
|
|
||||||
|
%s
|
||||||
|
</BuildDependencies>
|
||||||
|
<History>
|
||||||
|
<Update>
|
||||||
|
<Date>%s</Date>
|
||||||
|
<Version>%s</Version>
|
||||||
|
<Release>%s</Release>
|
||||||
|
</Update>
|
||||||
|
</History>
|
||||||
|
</Source>
|
||||||
|
|
||||||
|
<Package>
|
||||||
|
<Name>%s</Name>
|
||||||
|
<Summary xml:lang="en">%s</Summary>
|
||||||
|
<RuntimeDependencies>
|
||||||
|
|
||||||
|
%s
|
||||||
|
</RuntimeDependencies>
|
||||||
|
<Description>%s</Description>
|
||||||
|
<Files>FILES</Files>
|
||||||
|
<History>
|
||||||
|
<Update>
|
||||||
|
<Date>%s</Date>
|
||||||
|
<Version>%s</Version>
|
||||||
|
<Release>%s</Release>
|
||||||
|
</Update>
|
||||||
|
</History>
|
||||||
|
</Package>
|
||||||
|
|
||||||
|
</PISI>
|
||||||
|
''' % ( 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..."
|
||||||
Reference in New Issue
Block a user