Index: Makefile =================================================================== --- Makefile (revision 321024) +++ Makefile (working copy) @@ -1,9 +1,8 @@ # Created by: Li-Wen Hsu # $FreeBSD$ -# PORTNAME= gdata -PORTVERSION= 2.0.17 +PORTVERSION= 2.0.18 CATEGORIES= devel python MASTER_SITES= GOOGLE_CODE PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -28,25 +27,16 @@ EXAMPLESDIR= ${PREFIX}/share/examples/py-${PORTNAME} -.include +.include -# avoid warning with Python > 2.5 -.if ${PYTHON_REL} > 250 -EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_atom-mock_service.py \ - ${FILESDIR}/extra-patch-src_gdata_tlslite-mathls.py \ - ${FILESDIR}/extra-patch-src_gdata_tlslite-messages.py \ - ${FILESDIR}/extra-patch-src_gdata_tlslite-TLSRecordLayer.py \ - ${FILESDIR}/extra-patch-src_gdata_tlslite_utils-jython_compat.py -.endif - .if ${PORT_OPTIONS:MM2CRYPTO} RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}m2crypto>=0.20:${PORTSDIR}/security/py-m2crypto .endif .if ${PORT_OPTIONS:MPYCRYPTO} -RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/Crypto/__init__.py:${PORTSDIR}/security/py-pycrypto +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}pycrypto>0:${PORTSDIR}/security/py-pycrypto .endif .if ${PORT_OPTIONS:MGMPY} -RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/gmpy.so:${PORTSDIR}/math/py-gmpy +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}gmpy>0:${PORTSDIR}/math/py-gmpy .endif post-install: @@ -55,4 +45,4 @@ ${CP} -R ${WRKSRC}/samples/ ${EXAMPLESDIR}/ .endif -.include +.include Index: distinfo =================================================================== --- distinfo (revision 321024) +++ distinfo (working copy) @@ -1,2 +1,2 @@ -SHA256 (gdata-2.0.17.tar.gz) = ad72274532d726304733c5bfc01bffab8c7a34ce7e730deed849aecb62c5aa2d -SIZE (gdata-2.0.17.tar.gz) = 2398047 +SHA256 (gdata-2.0.18.tar.gz) = 56e7d22de819c22b13ceb0fe1869729b4287f89ebbd4bb55380d7bcf61a1fdb6 +SIZE (gdata-2.0.18.tar.gz) = 2475552 Index: files/extra-patch-src_atom-mock_service.py =================================================================== --- files/extra-patch-src_atom-mock_service.py (revision 321024) +++ files/extra-patch-src_atom-mock_service.py (working copy) @@ -1,13 +0,0 @@ ---- src/atom/mock_service.py.orig 2008-09-03 23:11:05.000000000 +0200 -+++ src/atom/mock_service.py 2009-11-03 21:39:47.358018717 +0100 -@@ -34,8 +34,8 @@ - real_request_handler = None - - def ConcealValueWithSha(source): -- import sha -- return sha.new(source[:-5]).hexdigest() -+ import hashlib -+ return hashlibsha1.new(source[:-5]).hexdigest() - - def DumpRecordings(conceal_func=ConcealValueWithSha): - if conceal_func: Index: files/extra-patch-src_gdata_tlslite-TLSRecordLayer.py =================================================================== --- files/extra-patch-src_gdata_tlslite-TLSRecordLayer.py (revision 321024) +++ files/extra-patch-src_gdata_tlslite-TLSRecordLayer.py (working copy) @@ -1,46 +0,0 @@ ---- src/gdata/tlslite/TLSRecordLayer.py.orig 2008-12-02 03:35:33.000000000 +0100 -+++ src/gdata/tlslite/TLSRecordLayer.py 2009-11-03 21:51:47.220882123 +0100 -@@ -12,8 +12,7 @@ - from utils.cryptomath import getRandomBytes - from utils import hmac - from FileObject import FileObject --import sha --import md5 -+import hashlib - import socket - import errno - import traceback -@@ -116,8 +115,8 @@ - self._readBuffer = "" - - #Handshake digests -- self._handshake_md5 = md5.md5() -- self._handshake_sha = sha.sha() -+ self._handshake_md5 = hashlib.md5() -+ self._handshake_sha = hashlib.sha1() - - #TLS Protocol Version - self.version = (0,0) #read-only -@@ -935,8 +934,8 @@ - - def _handshakeStart(self, client): - self._client = client -- self._handshake_md5 = md5.md5() -- self._handshake_sha = sha.sha() -+ self._handshake_md5 = hashlib.md5() -+ self._handshake_sha = hashlib.sha1() - self._handshakeBuffer = [] - self.allegedSharedKeyUsername = None - self.allegedSrpUsername = None -@@ -1114,9 +1113,9 @@ - imac_md5.update(label + masterSecretStr + '\x36'*48) - imac_sha.update(label + masterSecretStr + '\x36'*40) - -- md5Str = md5.md5(masterSecretStr + ('\x5c'*48) + \ -+ md5Str = hashlib.md5(masterSecretStr + ('\x5c'*48) + \ - imac_md5.digest()).digest() -- shaStr = sha.sha(masterSecretStr + ('\x5c'*40) + \ -+ shaStr = hashlib.sha1(masterSecretStr + ('\x5c'*40) + \ - imac_sha.digest()).digest() - - return stringToBytes(md5Str + shaStr) Index: files/extra-patch-src_gdata_tlslite-mathls.py =================================================================== --- files/extra-patch-src_gdata_tlslite-mathls.py (revision 321024) +++ files/extra-patch-src_gdata_tlslite-mathls.py (working copy) @@ -1,69 +0,0 @@ ---- src/gdata/tlslite/mathtls.py.orig 2008-12-02 03:35:35.000000000 +0100 -+++ src/gdata/tlslite/mathtls.py 2009-11-03 21:45:19.140316480 +0100 -@@ -4,8 +4,7 @@ - from utils.cryptomath import * - - import hmac --import md5 --import sha -+import hashlib - - #1024, 1536, 2048, 3072, 4096, 6144, and 8192 bit groups] - goodGroupParameters = [(2,0xEEAF0AB9ADB38DD69C33F80AFA8FC5E86072618775FF3C0B9EA2314C9C256576D674DF7496EA81D3383B4813D692C6E0E0D5D8E250B98BE48E495C1D6089DAD15DC7D7B46154D6B6CE8EF4AD69B15D4982559B297BCF1885C529F566660E57EC68EDBC3C05726CC02FD4CBF4976EAA9AFD5138FE8376435B9FC61D2FC0EB06E3),\ -@@ -38,8 +37,10 @@ - S2 = secret[ int(math.floor(len(secret)/2.0)) : ] - - #Run the left half through P_MD5 and the right half through P_SHA1 -- p_md5 = P_hash(md5, S1, concatArrays(stringToBytes(label), seed), length) -- p_sha1 = P_hash(sha, S2, concatArrays(stringToBytes(label), seed), length) -+ p_md5 = P_hash(hashlib.md5, S1, concatArrays(stringToBytes(label), \ -+ seed), length) -+ p_sha1 = P_hash(hashlib.sha1, S2, concatArrays(stringToBytes(label), \ -+ seed), length) - - #XOR the output values and return the result - for x in range(length): -@@ -54,8 +55,8 @@ - index = 0 - for x in range(26): - A = chr(ord('A')+x) * (x+1) # 'A', 'BB', 'CCC', etc.. -- input = secretStr + sha.sha(A + secretStr + seedStr).digest() -- output = md5.md5(input).digest() -+ input = secretStr + hashlib.sha1(A + secretStr + seedStr).digest() -+ output = hashlib.md5(input).digest() - for c in output: - if index >= length: - return bytes -@@ -68,7 +69,8 @@ - raise ValueError("username too long") - if len(salt)>=256: - raise ValueError("salt too long") -- return stringToNumber(sha.sha(salt + sha.sha(username + ":" + password)\ -+ return stringToNumber(hashlib.sha1(salt + \ -+ hashlib.sha1(username + ":" + password)\ - .digest()).digest()) - - #This function is used by VerifierDB.makeVerifier -@@ -88,10 +90,10 @@ - return s - - def makeU(N, A, B): -- return stringToNumber(sha.sha(PAD(N, A) + PAD(N, B)).digest()) -+ return stringToNumber(hashlib.sha1(PAD(N, A) + PAD(N, B)).digest()) - - def makeK(N, g): -- return stringToNumber(sha.sha(numberToString(N) + PAD(N, g)).digest()) -+ return stringToNumber(hashlib.sha1(numberToString(N) + PAD(N, g)).digest()) - - - """ -@@ -113,8 +115,7 @@ - digestmod: A module supporting PEP 247. Defaults to the md5 module. - """ - if digestmod is None: -- import md5 -- digestmod = md5 -+ digestmod = hashlib.md5 - - if key == None: #TREVNEW - for faster copying - return #TREVNEW Index: files/extra-patch-src_gdata_tlslite-messages.py =================================================================== --- files/extra-patch-src_gdata_tlslite-messages.py (revision 321024) +++ files/extra-patch-src_gdata_tlslite-messages.py (working copy) @@ -1,22 +0,0 @@ ---- src/gdata/tlslite/messages.py.orig 2008-12-02 03:35:34.000000000 +0100 -+++ src/gdata/tlslite/messages.py 2009-11-03 21:48:12.189964805 +0100 -@@ -8,8 +8,7 @@ - from X509 import X509 - from X509CertChain import X509CertChain - --import sha --import md5 -+import hashlib - - class RecordHeader3: - def __init__(self): -@@ -405,7 +404,8 @@ - try: - bytes = clientRandom + serverRandom + self.write()[4:] - s = bytesToString(bytes) -- return stringToBytes(md5.md5(s).digest() + sha.sha(s).digest()) -+ return stringToBytes(hashlib.md5(s).digest() \ -+ + hashlib.sha1(s).digest()) - finally: - self.cipherSuite = oldCipherSuite - Index: files/extra-patch-src_gdata_tlslite_utils-jython_compat.py =================================================================== --- files/extra-patch-src_gdata_tlslite_utils-jython_compat.py (revision 321024) +++ files/extra-patch-src_gdata_tlslite_utils-jython_compat.py (working copy) @@ -1,29 +0,0 @@ ---- src/gdata/tlslite/utils/jython_compat.py.orig 2008-12-02 03:35:28.000000000 +0100 -+++ src/gdata/tlslite/utils/jython_compat.py 2009-11-03 21:55:05.916366480 +0100 -@@ -1,7 +1,7 @@ - """Miscellaneous functions to mask Python/Jython differences.""" - - import os --import sha -+import hashlib - - if os.name != "java": - BaseException = Exception -@@ -43,7 +43,7 @@ - - #Factory function for getting a SHA1 object - def getSHA1(s): -- return sha.sha(s) -+ return hashlib.sha1(s) - - import sys - import traceback -@@ -175,7 +175,7 @@ - #release, and needs to be patched - def getSHA1(s): - #return JCE_SHA1(s) -- return sha.sha(s) -+ return hashlib.sha1(s) - - - #Adjust the string to an array of bytes Index: pkg-descr =================================================================== --- pkg-descr (revision 321024) +++ pkg-descr (working copy) @@ -17,4 +17,4 @@ The GData Python Client Library provides a library and source code that make it easy to access data through Google Data APIs. -WWW: http://code.google.com/p/gdata-python-client/ +WWW: http://code.google.com/p/gdata-python-client/ Index: pkg-plist =================================================================== --- pkg-plist (revision 321024) +++ pkg-plist (working copy) @@ -136,39 +136,27 @@ %%PYTHON_SITELIBDIR%%/gdata/apps/__init__.py %%PYTHON_SITELIBDIR%%/gdata/apps/__init__.pyc %%PYTHON_SITELIBDIR%%/gdata/apps/__init__.pyo -%%PYTHON_SITELIBDIR%%/gdata/apps/apps_property_entry.py -%%PYTHON_SITELIBDIR%%/gdata/apps/client.py -%%PYTHON_SITELIBDIR%%/gdata/apps/data.py -%%PYTHON_SITELIBDIR%%/gdata/apps/groups/client.py -%%PYTHON_SITELIBDIR%%/gdata/apps/groups/data.py -%%PYTHON_SITELIBDIR%%/gdata/apps/groups/client.pyc -%%PYTHON_SITELIBDIR%%/gdata/apps/groups/data.pyc -%%PYTHON_SITELIBDIR%%/gdata/apps/groups/client.pyo -%%PYTHON_SITELIBDIR%%/gdata/apps/groups/data.pyo -%%PYTHON_SITELIBDIR%%/gdata/apps/organization/client.py -%%PYTHON_SITELIBDIR%%/gdata/apps/organization/data.py -%%PYTHON_SITELIBDIR%%/gdata/apps/organization/client.pyc -%%PYTHON_SITELIBDIR%%/gdata/apps/organization/data.pyc -%%PYTHON_SITELIBDIR%%/gdata/apps/organization/client.pyo -%%PYTHON_SITELIBDIR%%/gdata/apps/organization/data.pyo -%%PYTHON_SITELIBDIR%%/gdata/apps/apps_property_entry.pyc -%%PYTHON_SITELIBDIR%%/gdata/apps/client.pyc -%%PYTHON_SITELIBDIR%%/gdata/apps/data.pyc -%%PYTHON_SITELIBDIR%%/gdata/apps/apps_property_entry.pyo -%%PYTHON_SITELIBDIR%%/gdata/apps/client.pyo -%%PYTHON_SITELIBDIR%%/gdata/apps/data.pyo %%PYTHON_SITELIBDIR%%/gdata/apps/adminsettings/__init__.py %%PYTHON_SITELIBDIR%%/gdata/apps/adminsettings/__init__.pyc %%PYTHON_SITELIBDIR%%/gdata/apps/adminsettings/__init__.pyo %%PYTHON_SITELIBDIR%%/gdata/apps/adminsettings/service.py %%PYTHON_SITELIBDIR%%/gdata/apps/adminsettings/service.pyc %%PYTHON_SITELIBDIR%%/gdata/apps/adminsettings/service.pyo +%%PYTHON_SITELIBDIR%%/gdata/apps/apps_property_entry.py +%%PYTHON_SITELIBDIR%%/gdata/apps/apps_property_entry.pyc +%%PYTHON_SITELIBDIR%%/gdata/apps/apps_property_entry.pyo %%PYTHON_SITELIBDIR%%/gdata/apps/audit/__init__.py %%PYTHON_SITELIBDIR%%/gdata/apps/audit/__init__.pyc %%PYTHON_SITELIBDIR%%/gdata/apps/audit/__init__.pyo %%PYTHON_SITELIBDIR%%/gdata/apps/audit/service.py %%PYTHON_SITELIBDIR%%/gdata/apps/audit/service.pyc %%PYTHON_SITELIBDIR%%/gdata/apps/audit/service.pyo +%%PYTHON_SITELIBDIR%%/gdata/apps/client.py +%%PYTHON_SITELIBDIR%%/gdata/apps/client.pyc +%%PYTHON_SITELIBDIR%%/gdata/apps/client.pyo +%%PYTHON_SITELIBDIR%%/gdata/apps/data.py +%%PYTHON_SITELIBDIR%%/gdata/apps/data.pyc +%%PYTHON_SITELIBDIR%%/gdata/apps/data.pyo %%PYTHON_SITELIBDIR%%/gdata/apps/emailsettings/__init__.py %%PYTHON_SITELIBDIR%%/gdata/apps/emailsettings/__init__.pyc %%PYTHON_SITELIBDIR%%/gdata/apps/emailsettings/__init__.pyo @@ -184,6 +172,12 @@ %%PYTHON_SITELIBDIR%%/gdata/apps/groups/__init__.py %%PYTHON_SITELIBDIR%%/gdata/apps/groups/__init__.pyc %%PYTHON_SITELIBDIR%%/gdata/apps/groups/__init__.pyo +%%PYTHON_SITELIBDIR%%/gdata/apps/groups/client.py +%%PYTHON_SITELIBDIR%%/gdata/apps/groups/client.pyc +%%PYTHON_SITELIBDIR%%/gdata/apps/groups/client.pyo +%%PYTHON_SITELIBDIR%%/gdata/apps/groups/data.py +%%PYTHON_SITELIBDIR%%/gdata/apps/groups/data.pyc +%%PYTHON_SITELIBDIR%%/gdata/apps/groups/data.pyo %%PYTHON_SITELIBDIR%%/gdata/apps/groups/service.py %%PYTHON_SITELIBDIR%%/gdata/apps/groups/service.pyc %%PYTHON_SITELIBDIR%%/gdata/apps/groups/service.pyo @@ -205,6 +199,12 @@ %%PYTHON_SITELIBDIR%%/gdata/apps/organization/__init__.py %%PYTHON_SITELIBDIR%%/gdata/apps/organization/__init__.pyc %%PYTHON_SITELIBDIR%%/gdata/apps/organization/__init__.pyo +%%PYTHON_SITELIBDIR%%/gdata/apps/organization/client.py +%%PYTHON_SITELIBDIR%%/gdata/apps/organization/client.pyc +%%PYTHON_SITELIBDIR%%/gdata/apps/organization/client.pyo +%%PYTHON_SITELIBDIR%%/gdata/apps/organization/data.py +%%PYTHON_SITELIBDIR%%/gdata/apps/organization/data.pyc +%%PYTHON_SITELIBDIR%%/gdata/apps/organization/data.pyo %%PYTHON_SITELIBDIR%%/gdata/apps/organization/service.py %%PYTHON_SITELIBDIR%%/gdata/apps/organization/service.pyc %%PYTHON_SITELIBDIR%%/gdata/apps/organization/service.pyo @@ -622,52 +622,6 @@ %%PYTHON_SITELIBDIR%%/gdata/youtube/service.py %%PYTHON_SITELIBDIR%%/gdata/youtube/service.pyc %%PYTHON_SITELIBDIR%%/gdata/youtube/service.pyo -@dirrm %%PYTHON_SITELIBDIR%%/gdata/youtube -@dirrm %%PYTHON_SITELIBDIR%%/gdata/webmastertools -@dirrm %%PYTHON_SITELIBDIR%%/gdata/tlslite/utils -@dirrm %%PYTHON_SITELIBDIR%%/gdata/tlslite/integration -@dirrm %%PYTHON_SITELIBDIR%%/gdata/tlslite -@dirrm %%PYTHON_SITELIBDIR%%/gdata/spreadsheets -@dirrm %%PYTHON_SITELIBDIR%%/gdata/spreadsheet -@dirrm %%PYTHON_SITELIBDIR%%/gdata/sites -@dirrm %%PYTHON_SITELIBDIR%%/gdata/projecthosting -@dirrm %%PYTHON_SITELIBDIR%%/gdata/photos -@dirrm %%PYTHON_SITELIBDIR%%/gdata/opensearch -@dirrm %%PYTHON_SITELIBDIR%%/gdata/oauth -@dirrm %%PYTHON_SITELIBDIR%%/gdata/notebook -@dirrm %%PYTHON_SITELIBDIR%%/gdata/media -@dirrm %%PYTHON_SITELIBDIR%%/gdata/health -@dirrm %%PYTHON_SITELIBDIR%%/gdata/geo -@dirrm %%PYTHON_SITELIBDIR%%/gdata/finance -@dirrm %%PYTHON_SITELIBDIR%%/gdata/exif -@dirrm %%PYTHON_SITELIBDIR%%/gdata/dublincore -@dirrm %%PYTHON_SITELIBDIR%%/gdata/docs -@dirrm %%PYTHON_SITELIBDIR%%/gdata/contentforshopping -@dirrm %%PYTHON_SITELIBDIR%%/gdata/contacts -@dirrm %%PYTHON_SITELIBDIR%%/gdata/codesearch -@dirrm %%PYTHON_SITELIBDIR%%/gdata/calendar_resource -@dirrm %%PYTHON_SITELIBDIR%%/gdata/calendar -@dirrm %%PYTHON_SITELIBDIR%%/gdata/books -@dirrm %%PYTHON_SITELIBDIR%%/gdata/blogger -@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/organization -@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/multidomain -@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/migration -@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/groups -@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/emailsettings -@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/audit -@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/adminsettings -@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps -@dirrm %%PYTHON_SITELIBDIR%%/gdata/analytics -@dirrm %%PYTHON_SITELIBDIR%%/gdata/alt -@dirrm %%PYTHON_SITELIBDIR%%/gdata/acl -@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto/Util -@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto/PublicKey -@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto/Protocol -@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto/Hash -@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto/Cipher -@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto -@dirrm %%PYTHON_SITELIBDIR%%/gdata -@dirrm %%PYTHON_SITELIBDIR%%/atom %%PORTEXAMPLES%%%%EXAMPLESDIR%%/analytics/account_feed_demo.py %%PORTEXAMPLES%%%%EXAMPLESDIR%%/analytics/data_feed_demo.py %%PORTEXAMPLES%%%%EXAMPLESDIR%%/analytics/mgmt_feed_demo.py @@ -709,6 +663,9 @@ %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/appengine_utilities/interface/templates/404.html %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/appengine_utilities/interface/templates/base.html %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/appengine_utilities/interface/templates/scheduler_form.html +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/appengine_utilities/rotmodel.py +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/appengine_utilities/sessions.py +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/appengine_utilities/settings_default.py %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/atom/__init__.py %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/atom/auth.py %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/atom/client.py @@ -727,9 +684,6 @@ %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/domain_mgmt_app.py %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/gdata/__init__.py %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/gdata/apps/__init__.py -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/appengine_utilities/rotmodel.py -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/appengine_utilities/sessions.py -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/appengine_utilities/settings_default.py %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/gdata/apps/adminsettings/__init__.py %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/gdata/apps/adminsettings/service.py %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apps/marketplace_sample/gdata/apps/apps_property_entry.py @@ -977,3 +931,49 @@ %%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/apps %%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/analytics %%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%% +@dirrm %%PYTHON_SITELIBDIR%%/gdata/youtube +@dirrm %%PYTHON_SITELIBDIR%%/gdata/webmastertools +@dirrm %%PYTHON_SITELIBDIR%%/gdata/tlslite/utils +@dirrm %%PYTHON_SITELIBDIR%%/gdata/tlslite/integration +@dirrm %%PYTHON_SITELIBDIR%%/gdata/tlslite +@dirrm %%PYTHON_SITELIBDIR%%/gdata/spreadsheets +@dirrm %%PYTHON_SITELIBDIR%%/gdata/spreadsheet +@dirrm %%PYTHON_SITELIBDIR%%/gdata/sites +@dirrm %%PYTHON_SITELIBDIR%%/gdata/projecthosting +@dirrm %%PYTHON_SITELIBDIR%%/gdata/photos +@dirrm %%PYTHON_SITELIBDIR%%/gdata/opensearch +@dirrm %%PYTHON_SITELIBDIR%%/gdata/oauth +@dirrm %%PYTHON_SITELIBDIR%%/gdata/notebook +@dirrm %%PYTHON_SITELIBDIR%%/gdata/media +@dirrm %%PYTHON_SITELIBDIR%%/gdata/health +@dirrm %%PYTHON_SITELIBDIR%%/gdata/geo +@dirrm %%PYTHON_SITELIBDIR%%/gdata/finance +@dirrm %%PYTHON_SITELIBDIR%%/gdata/exif +@dirrm %%PYTHON_SITELIBDIR%%/gdata/dublincore +@dirrm %%PYTHON_SITELIBDIR%%/gdata/docs +@dirrm %%PYTHON_SITELIBDIR%%/gdata/contentforshopping +@dirrm %%PYTHON_SITELIBDIR%%/gdata/contacts +@dirrm %%PYTHON_SITELIBDIR%%/gdata/codesearch +@dirrm %%PYTHON_SITELIBDIR%%/gdata/calendar_resource +@dirrm %%PYTHON_SITELIBDIR%%/gdata/calendar +@dirrm %%PYTHON_SITELIBDIR%%/gdata/books +@dirrm %%PYTHON_SITELIBDIR%%/gdata/blogger +@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/organization +@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/multidomain +@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/migration +@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/groups +@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/emailsettings +@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/audit +@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps/adminsettings +@dirrm %%PYTHON_SITELIBDIR%%/gdata/apps +@dirrm %%PYTHON_SITELIBDIR%%/gdata/analytics +@dirrm %%PYTHON_SITELIBDIR%%/gdata/alt +@dirrm %%PYTHON_SITELIBDIR%%/gdata/acl +@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto/Util +@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto/PublicKey +@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto/Protocol +@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto/Hash +@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto/Cipher +@dirrm %%PYTHON_SITELIBDIR%%/gdata/Crypto +@dirrm %%PYTHON_SITELIBDIR%%/gdata +@dirrm %%PYTHON_SITELIBDIR%%/atom