diff options
Diffstat (limited to 'app-admin/webapp-config/files')
10 files changed, 484 insertions, 0 deletions
diff --git a/app-admin/webapp-config/files/webapp-config-1.50.16-absolute-paths.patch b/app-admin/webapp-config/files/webapp-config-1.50.16-absolute-paths.patch new file mode 100644 index 000000000000..c74fff9b2079 --- /dev/null +++ b/app-admin/webapp-config/files/webapp-config-1.50.16-absolute-paths.patch @@ -0,0 +1,42 @@ +Index: webapp-config-1.50.16/WebappConfig/config.py +=================================================================== +--- webapp-config-1.50.16.orig/WebappConfig/config.py ++++ webapp-config-1.50.16/WebappConfig/config.py +@@ -204,6 +204,7 @@ class Config: + pass + + self.__d = { ++ 'allow_absolute' : 'no', + 'config_protect' : wrapper.config_protect, + # Necessary to load the config file + 'my_etcconfig' : '/etc/vhosts/webapp-config', +@@ -870,8 +871,13 @@ class Config: + # + # this makes sure we don't write rubbish into the installs list + +- installpath = self.config.get('USER', 'g_htdocsdir') + '/' + \ +- self.config.get('USER', 'g_installdir') ++ g_installdir = self.config.get('USER', 'g_installdir') ++ ++ if (os.path.isabs(g_installdir) ++ and self.config.get('USER', 'allow_absolute') == 'yes'): ++ installpath = g_installdir ++ else: ++ installpath = self.config.get('USER', 'g_htdocsdir') + '/' + g_installdir + + installpath = re.compile('/+').sub('/', self.__root + installpath) + +Index: webapp-config-1.50.16/config/webapp-config +=================================================================== +--- webapp-config-1.50.16.orig/config/webapp-config ++++ webapp-config-1.50.16/config/webapp-config +@@ -183,6 +183,9 @@ vhost_perms_virtualowned_file="o-w" + + vhost_perms_installdir="0755" + ++# Allow specifying absolute path names using the -d option? ++allow_absolute="no" ++ + + # ======================================================================== + # END OF USER-EDITABLE SETTINGS diff --git a/app-admin/webapp-config/files/webapp-config-1.50.16-apache-move.patch b/app-admin/webapp-config/files/webapp-config-1.50.16-apache-move.patch new file mode 100644 index 000000000000..6f9a30e7a689 --- /dev/null +++ b/app-admin/webapp-config/files/webapp-config-1.50.16-apache-move.patch @@ -0,0 +1,13 @@ +Index: webapp-config-1.50.16/WebappConfig/server.py +=================================================================== +--- webapp-config-1.50.16.orig/WebappConfig/server.py ++++ webapp-config-1.50.16/WebappConfig/server.py +@@ -300,7 +300,7 @@ class Apache(Basic): + + name = 'Apache' + desc = 'supports installation on Apache 1 & 2' +- dep = '>=net-www/apache-1.3' ++ dep = '>=www-servers/apache-1.3' + + def set_server_user(self): + self.vhost_server_uid = get_user('apache') diff --git a/app-admin/webapp-config/files/webapp-config-1.50.16-baselayout2.patch b/app-admin/webapp-config/files/webapp-config-1.50.16-baselayout2.patch new file mode 100644 index 000000000000..24f000413479 --- /dev/null +++ b/app-admin/webapp-config/files/webapp-config-1.50.16-baselayout2.patch @@ -0,0 +1,13 @@ +Index: webapp-config-1.50.16/sbin/webapp-cleaner +=================================================================== +--- webapp-config-1.50.16.orig/sbin/webapp-cleaner ++++ webapp-config-1.50.16/sbin/webapp-cleaner +@@ -11,7 +11,7 @@ CMD="emerge -Cav" + WEBAPP_DIR="/usr/share/webapps" + WEBAPP_CONFIG= + +-[[ -z ${RC_GOT_FUNCTIONS} ]] && source /sbin/functions.sh ++[[ -z ${RC_GOT_FUNCTIONS} ]] && source /lib/gentoo/functions.sh + + function help() { + echo "Remove obsolete and unused versions of web applications" diff --git a/app-admin/webapp-config/files/webapp-config-1.50.16-fix-unicode-tests.patch b/app-admin/webapp-config/files/webapp-config-1.50.16-fix-unicode-tests.patch new file mode 100644 index 000000000000..cad75a2e517f --- /dev/null +++ b/app-admin/webapp-config/files/webapp-config-1.50.16-fix-unicode-tests.patch @@ -0,0 +1,39 @@ +Make strings unicode to fix test failures + +Python enables unicode by default. Various quoted strings used +in tests were not declared as unicode and so caused false failures. +This patch addresses this issue. + +Signed-off-by: Matthew Thode <prometheanfire@gentoo.org> +Signed-off-by: Anthony G. Basile <blueness@gentoo.org> + +diff -rupN webapp-config-1.50.16/WebappConfig.orig/db.py webapp-config-1.50.16/WebappConfig/db.py +--- webapp-config-1.50.16/WebappConfig.orig/db.py 2012-06-17 11:10:15.964264617 -0500 ++++ webapp-config-1.50.16/WebappConfig/db.py 2012-06-17 11:11:05.364265831 -0500 +@@ -186,7 +186,7 @@ class WebappDB(AppHierarchy): + >>> sb = [i[1] for i in b.list_locations().items()] + >>> sb.sort(lambda x,y: cmp(x[0]+x[1],y[0]+y[1])) + >>> sb +- [['gallery', '1.4.4_p6'], ['gallery', '2.0_rc2'], ['horde', '3.0.5'], ['phpldapadmin', '0.9.7_alpha4']] ++ [[u'gallery', u'1.4.4_p6'], [u'gallery', u'2.0_rc2'], [u'horde', u'3.0.5'], [u'phpldapadmin', u'0.9.7_alpha4']] + + >>> c = WebappDB(here + '/tests/testfiles/webapps', + ... package = 'horde', version = '3.0.5') +@@ -572,7 +572,7 @@ class WebappSource(AppHierarchy): + ... 'horde', '3.0.5') + >>> d = a.get_source_directories('htdocs') + >>> [i for i in d if i != '.svn'] +- ['dir1', 'dir2'] ++ [u'dir1', u'dir2'] + ''' + dirs = [] + +@@ -604,7 +604,7 @@ class WebappSource(AppHierarchy): + >>> a = WebappSource(here + '/tests/testfiles/share-webapps', + ... 'horde', '3.0.5') + >>> a.get_source_files('htdocs') +- ['test1', 'test2'] ++ [u'test1', u'test2'] + ''' + + files = [] diff --git a/app-admin/webapp-config/files/webapp-config-1.50.16-htdocs-symlink.patch b/app-admin/webapp-config/files/webapp-config-1.50.16-htdocs-symlink.patch new file mode 100644 index 000000000000..a7421b9b2c21 --- /dev/null +++ b/app-admin/webapp-config/files/webapp-config-1.50.16-htdocs-symlink.patch @@ -0,0 +1,13 @@ +Index: webapp-config-1.50.16/WebappConfig/server.py +=================================================================== +--- webapp-config-1.50.16.orig/WebappConfig/server.py ++++ webapp-config-1.50.16/WebappConfig/server.py +@@ -158,7 +158,7 @@ class Basic: + + # is the installation directory empty? + +- if not os.listdir(self.__destd): ++ if not os.listdir(self.__destd) and os.path.isdir(self.__destd): + if not self.__p: + os.rmdir(self.__destd) + else: diff --git a/app-admin/webapp-config/files/webapp-config-1.50.16-update-servers.patch b/app-admin/webapp-config/files/webapp-config-1.50.16-update-servers.patch new file mode 100644 index 000000000000..f6e7bbd54144 --- /dev/null +++ b/app-admin/webapp-config/files/webapp-config-1.50.16-update-servers.patch @@ -0,0 +1,80 @@ +--- WebappConfig/config.py 2006-12-30 13:38:36.000000000 -0500 ++++ config.py 2009-05-28 12:08:53.000000000 -0400 +@@ -1289,8 +1289,9 @@ + + allowed_servers = {'apache' : WebappConfig.server.Apache, + 'lighttpd' : WebappConfig.server.Lighttpd, +- 'aolserver': WebappConfig.server.Aolserver, +- 'cherokee' : WebappConfig.server.Cherokee} ++ 'cherokee' : WebappConfig.server.Cherokee, ++ 'nginx' : WebappConfig.server.Nginx, ++ 'gatling' : WebappConfig.server.Gatling} + + server = self.config.get('USER', 'vhost_server') + +--- WebappConfig/server.py 2009-05-28 12:06:48.000000000 -0400 ++++ server.py 2009-05-28 12:10:54.000000000 -0400 +@@ -316,16 +316,6 @@ + self.vhost_server_uid = get_user('lighttpd') + self.vhost_server_gid = get_group('lighttpd') + +-class Aolserver(Basic): +- +- name = 'Aolserver' +- desc = 'supports installation on Aolserver' +- dep = 'www-servers/aolserver' +- +- def set_server_user(self): +- self.vhost_server_uid = get_user('aolserver') +- self.vhost_server_gid = get_group('aolserver') +- + class Cherokee(Basic): + + name = 'Cherokee' +@@ -336,9 +326,30 @@ + self.vhost_server_uid = get_user('cherokee') + self.vhost_server_gid = get_group('cherokee') + ++class Nginx(Basic): ++ ++ name = 'Nginx' ++ desc = 'supports installation on Nginx' ++ dep = 'www-servers/nginx' ++ ++ def set_server_user(self): ++ self.vhost_server_uid = get_user('nginx') ++ self.vhost_server_gid = get_group('nginx') ++ ++class Gatling(Basic): ++ ++ name = 'Gatling' ++ desc = 'supports installation on Gatling' ++ dep = 'www-servers/gatling' ++ ++ def set_server_user(self): ++ self.vhost_server_uid = get_user('gatling') ++ self.vhost_server_gid = get_group('gatling') ++ + def listservers(): + + OUT.notice('\n'.join(['apache', +- 'aolserver', + 'lighttpd', +- 'cherokee'])) ++ 'cherokee', ++ 'nginx', ++ 'gatling'])) +--- config/webapp-config 2006-12-30 13:39:13.000000000 -0500 ++++ webapp-config 2009-05-28 12:11:24.000000000 -0400 +@@ -65,9 +65,10 @@ + # your choices are: + # + # apache +-# aolserver + # lighttpd + # cherokee ++# nginx ++# gatling + # + # you can override this setting by using the -s switch to webapp-config + diff --git a/app-admin/webapp-config/files/webapp-config-1.51-fix-indentation.patch b/app-admin/webapp-config/files/webapp-config-1.51-fix-indentation.patch new file mode 100644 index 000000000000..27a11aa83372 --- /dev/null +++ b/app-admin/webapp-config/files/webapp-config-1.51-fix-indentation.patch @@ -0,0 +1,25 @@ +From 1bc28049300625a3b24a632e2aacb5776937c19b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Manuel=20R=C3=BCger?= <mrueg@gentoo.org> +Date: Tue, 6 Aug 2013 03:59:31 +0200 +Subject: [PATCH] WebappConfig/config.py: fix indentation + +--- + WebappConfig/config.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/WebappConfig/config.py b/WebappConfig/config.py +index bf55d1e..bb86a55 100644 +--- a/WebappConfig/config.py ++++ b/WebappConfig/config.py +@@ -962,7 +962,7 @@ class Config: + OUT.die('You need to specify at least the application you' + ' would like to handle!') + else: +- return self.config.get('USER', 'pn') ++ return self.config.get('USER', 'pn') + + def check_version_set(self): + if not self.config.has_option('USER', 'pvr'): +-- +1.8.1.5 + diff --git a/app-admin/webapp-config/files/webapp-config-1.52-nulls-doctest.patch b/app-admin/webapp-config/files/webapp-config-1.52-nulls-doctest.patch new file mode 100644 index 000000000000..97c64a90df25 --- /dev/null +++ b/app-admin/webapp-config/files/webapp-config-1.52-nulls-doctest.patch @@ -0,0 +1,185 @@ +From 5f61d249507c3502c3c76faf3926522e6e63370d Mon Sep 17 00:00:00 2001 +From: Devan Franchini <twitch153@gentoo.org> +Date: Fri, 3 Jan 2014 21:03:00 -0500 +Subject: [PATCH] WebappConfig/{ebuild,content}.py: Nulls doctest code. + +Due to the variable nature of the returning values of the two functions +run_vars() and add(), it is unrealistic to depend on doctest to not +fail. It has been decided that disabling these two doctest codes would +be the best decision to prevent failures that are not detrimental. + +X-Gentoo-Bug: 430010 +X-Gentoo-Bug-URL: https://bugs.gentoo.org/430010 +--- + WebappConfig/content.py | 36 ++++++++++++++++++------------------ + WebappConfig/ebuild.py | 46 +++++++++++++++++++++++----------------------- + 2 files changed, 41 insertions(+), 41 deletions(-) + +diff --git a/WebappConfig/content.py b/WebappConfig/content.py +index 8fe5be9..c635f5a 100644 +--- a/WebappConfig/content.py ++++ b/WebappConfig/content.py +@@ -379,71 +379,71 @@ class Contents: + (and this is important for md5) + relative - 1 for storing a relative filename, 0 otherwise + +- >>> OUT.color_off() +- >>> import os.path +- >>> here = os.path.dirname(os.path.realpath(__file__)) ++ OUT.color_off() ++ import os.path ++ here = os.path.dirname(os.path.realpath(__file__)) + + One for pretending: + +- >>> a = Contents(here + '/tests/testfiles/contents/app/', ++ a = Contents(here + '/tests/testfiles/contents/app/', + ... package = 'test', version = '1.0', + ... pretend = True) + + And this one is for real: + +- >>> b = Contents(here + '/tests/testfiles/contents/app/', ++ b = Contents(here + '/tests/testfiles/contents/app/', + ... package = 'test', version = '1.0') + + Pretend to add a file: + +- >>> a.add('file', 'config-owned', ++ a.add('file', 'config-owned', + ... destination = here + '/tests/testfiles/contents/app/', + ... path = '/test1', relative = True) + * pretending to add: file 1 config-owned "test1" + + Lets not pretend this time: + +- >>> b.add('file', 'config-owned', ++ b.add('file', 'config-owned', + ... destination = here + '/tests/testfiles/contents/app/', + ... path = '/test1', relative = True) +- >>> b.entry(here + '/tests/testfiles/contents/app/test1') #doctest: +ELLIPSIS ++ b.entry(here + '/tests/testfiles/contents/app/test1') #doctest: +ELLIPSIS + 'file 1 config-owned "test1" ... d8e8fca2dc0f896fd7cb4cb0031ba249 ' + + Lets produce an error with a file that does not exist: + +- >>> b.add('file', 'config-owned', ++ b.add('file', 'config-owned', + ... destination = here + '/tests/testfiles/contents/app/', + ... path = '/nothere', relative = True) #doctest: +ELLIPSIS + * Cannot access file .../tests/testfiles/contents/app/nothere to add it as installation content. This should not happen! + + Other file types: + +- >>> b.add('hardlink', 'config-owned', ++ b.add('hardlink', 'config-owned', + ... destination = here + '/tests/testfiles/contents/app/', + ... path = '/test2', relative = True) +- >>> b.entry(here + '/tests/testfiles/contents/app/test2') #doctest: +ELLIPSIS ++ b.entry(here + '/tests/testfiles/contents/app/test2') #doctest: +ELLIPSIS + 'file 1 config-owned "test2" ... d8e8fca2dc0f896fd7cb4cb0031ba249 ' +- >>> b.add('dir', 'default-owned', ++ b.add('dir', 'default-owned', + ... destination = here + '/tests/testfiles/contents/app/', + ... path = '/dir1', relative = True) +- >>> b.entry(here + '/tests/testfiles/contents/app/dir1') #doctest: +ELLIPSIS ++ b.entry(here + '/tests/testfiles/contents/app/dir1') #doctest: +ELLIPSIS + 'dir 1 default-owned "dir1" ... 0 ' +- >>> b.add('dir', 'default-owned', destination = here + '/tests/testfiles/contents/app', ++ b.add('dir', 'default-owned', destination = here + '/tests/testfiles/contents/app', + ... path = '/dir1', + ... relative = False) +- >>> b.entry(here + '/tests/testfiles/contents/app/dir1') #doctest: +ELLIPSIS ++ b.entry(here + '/tests/testfiles/contents/app/dir1') #doctest: +ELLIPSIS + 'dir 0 default-owned ".../tests/testfiles/contents/app/dir1" ... 0 ' + + Q: Is the full link to the target what we want? + A: Yes, since the link will still be ok even if we move the directory. + +- >>> b.add('sym', 'virtual', ++ b.add('sym', 'virtual', + ... destination = here + '/tests/testfiles/contents/app/', + ... path = '/test3', relative = True) +- >>> b.entry(here + '/tests/testfiles/contents/app/test3') #doctest: +ELLIPSIS ++ b.entry(here + '/tests/testfiles/contents/app/test3') #doctest: +ELLIPSIS + 'sym 1 virtual "test3" ... 0 .../tests/testfiles/contents/app/test1' + +- >>> b.db_print() #doctest: +ELLIPSIS ++ b.db_print() #doctest: +ELLIPSIS + file 1 config-owned "test1" ... d8e8fca2dc0f896fd7cb4cb0031ba249 + file 1 config-owned "test2" ... d8e8fca2dc0f896fd7cb4cb0031ba249 + sym 1 virtual "test3" ... 0 .../tests/testfiles/contents/app/test1 +diff --git a/WebappConfig/ebuild.py b/WebappConfig/ebuild.py +index 03c0c57..cc23bec 100644 +--- a/WebappConfig/ebuild.py ++++ b/WebappConfig/ebuild.py +@@ -201,35 +201,35 @@ class Ebuild: + The procedure from above is repeated to set up the default + environment: + +- >>> import WebappConfig.config +- >>> config = WebappConfig.config.Config() +- >>> config.config.set('USER', 'my_htdocsbase', 'htdocs') +- >>> config.config.set('USER', 'pn', 'horde') +- >>> config.config.set('USER', 'pvr', '3.0.5') +- >>> import os.path +- >>> here = os.path.dirname(os.path.realpath(__file__)) +- >>> config.config.set('USER', 'my_approot', here + +- ... '/tests/testfiles/share-webapps') +- >>> my_approot = config.config.get('USER', 'my_approot') +- >>> my_appdir = my_approot + "/horde/3.0.5" +- >>> config.config.set('USER', 'my_appdir', my_appdir) +- >>> config.config.set('USER', 'my_hookscriptsdir', my_appdir + '/hooks') +- >>> config.config.set('USER', 'my_cgibinbase', 'cgi-bin') +- >>> config.config.set('USER', 'my_errorsbase', 'error') +- >>> config.config.set('USER', 'my_iconsbase', 'icons') +- >>> config.config.set('USER', 'my_serverconfigdir', '/'.join([my_appdir,'conf'])) +- >>> config.config.set('USER', 'my_hostrootdir', '/'.join([my_appdir,'hostroot'])) +- >>> config.config.set('USER', 'my_htdocsdir', '/'.join([my_appdir,'htdocs'])) +- >>> config.config.set('USER', 'my_sqlscriptsdir', '/'.join([my_appdir,'sqlscripts'])) ++ "">>> import WebappConfig.config" ++ ">>> config = WebappConfig.config.Config()" ++ ">>> config.config.set('USER', 'my_htdocsbase', 'htdocs')" ++ ">>> config.config.set('USER', 'pn', 'horde')" ++ ">>> config.config.set('USER', 'pvr', '3.0.5')" ++ ">>> import os.path" ++ ">>> here = os.path.dirname(os.path.realpath(__file__))" ++ ">>> config.config.set('USER', 'my_approot', here +" ++ "... '/tests/testfiles/share-webapps')" ++ ">>> my_approot = config.config.get('USER', 'my_approot')" ++ ">>> my_appdir = my_approot + "/horde/3.0.5"" ++ ">>> config.config.set('USER', 'my_appdir', my_appdir)" ++ ">>> config.config.set('USER', 'my_hookscriptsdir', my_appdir + '/hooks')" ++ ">>> config.config.set('USER', 'my_cgibinbase', 'cgi-bin')" ++ ">>> config.config.set('USER', 'my_errorsbase', 'error')" ++ ">>> config.config.set('USER', 'my_iconsbase', 'icons')" ++ ">>> config.config.set('USER', 'my_serverconfigdir', '/'.join([my_appdir,'conf']))" ++ ">>> config.config.set('USER', 'my_hostrootdir', '/'.join([my_appdir,'hostroot']))" ++ ">>> config.config.set('USER', 'my_htdocsdir', '/'.join([my_appdir,'htdocs']))" ++ ">>> config.config.set('USER', 'my_sqlscriptsdir', '/'.join([my_appdir,'sqlscripts']))" + + Time to create the ebuild handler: + +- >>> a = Ebuild(config) ++ ">>> a = Ebuild(config)" + + The dummy post-install file should display all the variables + that are exported here: + +- >>> a.show_postinst() #doctest: +ELLIPSIS ++ ">>> a.show_postinst() #doctest: +ELLIPSIS + <BLANKLINE> + ================================================================= + POST-INSTALL INSTRUCTIONS +@@ -270,7 +270,7 @@ class Ebuild: + PVR: 3.0.5 + <BLANKLINE> + ================================================================= +- <BLANKLINE> ++ <BLANKLINE>" + ''' + + v_root = self.get_config('vhost_root') +-- +1.8.3.2 + diff --git a/app-admin/webapp-config/files/webapp-config-1.53-sources-function.sh-from-lib-gentoo.patch b/app-admin/webapp-config/files/webapp-config-1.53-sources-function.sh-from-lib-gentoo.patch new file mode 100644 index 000000000000..06a924a426be --- /dev/null +++ b/app-admin/webapp-config/files/webapp-config-1.53-sources-function.sh-from-lib-gentoo.patch @@ -0,0 +1,25 @@ +From ff7ba0d89c79584f14a8137d886a656a9af6de5c Mon Sep 17 00:00:00 2001 +From: Devan Franchini <twitch153@gentoo.org> +Date: Sat, 27 Dec 2014 20:43:08 -0500 +Subject: [PATCH] webapp-cleaner: sources function.sh from /lib/gentoo + +--- + sbin/webapp-cleaner | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sbin/webapp-cleaner b/sbin/webapp-cleaner +index bfec623..52e44ac 100755 +--- a/sbin/webapp-cleaner ++++ b/sbin/webapp-cleaner +@@ -13,7 +13,7 @@ CMD="emerge -Cav" + WEBAPP_DIR="/usr/share/webapps" + WEBAPP_CONFIG= + +-[[ -z ${RC_GOT_FUNCTIONS} ]] && source /etc/init.d/functions.sh ++[[ -z ${RC_GOT_FUNCTIONS} ]] && source /lib/gentoo/functions.sh + + function help() { + echo "Remove obsolete and unused versions of web applications" +-- +2.0.5 + diff --git a/app-admin/webapp-config/files/webapp-config-1.54-pvr-check.patch b/app-admin/webapp-config/files/webapp-config-1.54-pvr-check.patch new file mode 100644 index 000000000000..9a35ad70cafb --- /dev/null +++ b/app-admin/webapp-config/files/webapp-config-1.54-pvr-check.patch @@ -0,0 +1,49 @@ +commit 9e251c7574d074e424ea19024f743c754f321979 +Author: Devan Franchini <twitch153@gentoo.org> +Date: Fri Jul 10 21:25:17 2015 -0400 + + config.py: Fixes package version checking regression + + Previously webapp-config would not do any sanity checks when + setting the package version. After adding a sanity check in 1.54 + I made the mistake of not being flexible enough and this caused + a regression that prevented web apps with versions such as + "20140929d"[1] to be installed. This commit fixes that while still + allowing for some sanity checking. + + [1]: https://github.com/gentoo/webapp-config/issues/2 + +diff --git a/WebappConfig/config.py b/WebappConfig/config.py +index 6c915c3..3a176a0 100644 +--- a/WebappConfig/config.py ++++ b/WebappConfig/config.py +@@ -996,17 +996,20 @@ class Config: + OUT.die('Invalid package name') + + if len(args) > 1: +- argsvr = args[1].split('.') +- if len(argsvr) == 1: +- OUT.die('Invalid package version: %(pvr)s' ++ pvr = args[1] ++ has_int = False # A package version should have at least one ++ # numerical value, but we want to allow for ++ # the flexibility of having any alphanumeric ++ # value while checking to make sure it's sane. ++ ++ for char in pvr: ++ if char.isdigit(): ++ has_int = True ++ ++ if not has_int: ++ OUT.die('Invalid package version: "%(pvr)s"' + % {'pvr': args[1]}) + +- pvr = '' +- for i in range(0, len(argsvr)): +- if not i == len(argsvr) - 1: +- pvr += argsvr[i] + '.' +- else: +- pvr += argsvr[i] + self.config.set('USER', 'pvr', pvr) + + if (not options['dir'] and |