* [Buildroot] [PATCH v2 1/1] package/python-web2py: bump to version 3.0.11
@ 2025-01-24 21:13 James Hilliard
2025-01-25 16:04 ` Julien Olivain
0 siblings, 1 reply; 2+ messages in thread
From: James Hilliard @ 2025-01-24 21:13 UTC (permalink / raw)
To: buildroot; +Cc: Angelo Compagnucci, James Hilliard
Drop patch which is now upstream.
License file renamed without content changes.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v1 -> v2:
- fix license file name
---
.../0001-fix-regexen-and-classname.patch | 294 ------------------
package/python-web2py/python-web2py.hash | 4 +-
package/python-web2py/python-web2py.mk | 4 +-
3 files changed, 4 insertions(+), 298 deletions(-)
delete mode 100644 package/python-web2py/0001-fix-regexen-and-classname.patch
diff --git a/package/python-web2py/0001-fix-regexen-and-classname.patch b/package/python-web2py/0001-fix-regexen-and-classname.patch
deleted file mode 100644
index f134c3d31b..0000000000
--- a/package/python-web2py/0001-fix-regexen-and-classname.patch
+++ /dev/null
@@ -1,294 +0,0 @@
-From ad5cbbfdfacdcd3b4663e91a638de022d6e20477 Mon Sep 17 00:00:00 2001
-From: eevelweezel <eevel.weezel@gmail.com>
-Date: Mon, 6 Nov 2023 00:17:20 -0600
-Subject: [PATCH] fix regexen and classname
-
-Upstream: https://github.com/web2py/web2py/commit/ad5cbbfdfacdcd3b4663e91a638de022d6e20477
-[yann.morin.1998@free.fr: backport from upstream]
-Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
-
----
- applications/admin/controllers/default.py | 64 +++++++++++------------
- gluon/compileapp.py | 4 +-
- gluon/contrib/appconfig.py | 2 +-
- 3 files changed, 35 insertions(+), 35 deletions(-)
-
-diff --git a/applications/admin/controllers/default.py b/applications/admin/controllers/default.py
-index 88697267..c53a3a76 100644
---- a/applications/admin/controllers/default.py
-+++ b/applications/admin/controllers/default.py
-@@ -85,7 +85,7 @@ def safe_open(a, b):
- return tmp()
-
- a_for_check = os.path.abspath(os.path.normpath(a))
--
-+
- web2py_apps_root = os.path.abspath(up(request.folder))
- web2py_deposit_root = os.path.join(up(web2py_apps_root), 'deposit')
-
-@@ -230,7 +230,7 @@ def site():
- class IS_VALID_APPNAME(object):
-
- def __call__(self, value):
-- if not re.compile('^\w+$').match(value):
-+ if not re.compile(r'^\w+$').match(value):
- return (value, T('Invalid application name'))
- if not request.vars.overwrite and \
- os.path.exists(os.path.join(apath(r=request), value)):
-@@ -321,7 +321,7 @@ def site():
- session.flash = T(msg, dict(appname=form_update.vars.name))
- redirect(URL(r=request))
-
-- regex = re.compile('^\w+$')
-+ regex = re.compile(r'^\w+$')
-
- if is_manager():
- apps = [a for a in os.listdir(apath(r=request)) if regex.match(a) and
-@@ -341,7 +341,7 @@ def site():
- def report_progress(app):
- import datetime
- progress_file = os.path.join(apath(app, r=request), 'progress.log')
-- regex = re.compile('\[(.*?)\][^\:]+\:\s+(\-?\d+)')
-+ regex = re.compile(r'\[(.*?)\][^\:]+\:\s+(\-?\d+)')
- if not os.path.exists(progress_file):
- return []
- matches = regex.findall(open(progress_file, 'r').read())
-@@ -609,7 +609,7 @@ def test():
- if len(request.args) > 1:
- file = request.args[1]
- else:
-- file = '.*\.py'
-+ file = r'.*\.py'
-
- controllers = listdir(
- apath('%s/controllers/' % app, r=request), file + '$')
-@@ -869,12 +869,12 @@ def todolist():
- app_path = apath('%(app)s' % {'app': app}, r=request)
- dirs = ['models', 'controllers', 'modules', 'private']
-
-- def listfiles(app, dir, regexp='.*\.py$'):
-+ def listfiles(app, dir, regexp=r'.*\.py$'):
- files = sorted(listdir(apath('%(app)s/%(dir)s/' % {'app': app, 'dir': dir}, r=request), regexp))
- files = [x.replace(os.path.sep, '/') for x in files if not x.endswith('.bak')]
- return files
-
-- pattern = '#\s*(todo)+\s+(.*)'
-+ pattern = r'#\s*(todo)+\s+(.*)'
- regex = re.compile(pattern, re.IGNORECASE)
-
- output = []
-@@ -1126,7 +1126,7 @@ def design():
- redirect(URL('site'))
-
- # Get all models
-- models = listdir(apath('%s/models/' % app, r=request), '.*\.py$')
-+ models = listdir(apath('%s/models/' % app, r=request), r'.*\.py$')
- models = [x.replace('\\', '/') for x in models]
- defines = {}
- for m in models:
-@@ -1136,7 +1136,7 @@ def design():
-
- # Get all controllers
- controllers = sorted(
-- listdir(apath('%s/controllers/' % app, r=request), '.*\.py$'))
-+ listdir(apath('%s/controllers/' % app, r=request), r'.*\.py$'))
- controllers = [x.replace('\\', '/') for x in controllers]
- functions = {}
- for c in controllers:
-@@ -1149,7 +1149,7 @@ def design():
-
- # Get all views
- views = sorted(
-- listdir(apath('%s/views/' % app, r=request), '[\w/\-]+(\.\w+)+$'))
-+ listdir(apath('%s/views/' % app, r=request), r'[\w/\-]+(\.\w+)+$'))
- views = [x.replace('\\', '/') for x in views if not x.endswith('.bak')]
- extend = {}
- include = {}
-@@ -1164,17 +1164,17 @@ def design():
- include[c] = [i[1] for i in items]
-
- # Get all modules
-- modules = listdir(apath('%s/modules/' % app, r=request), '.*\.py$')
-+ modules = listdir(apath('%s/modules/' % app, r=request), r'.*\.py$')
- modules = modules = [x.replace('\\', '/') for x in modules]
- modules.sort()
-
- # Get all private files
-- privates = listdir(apath('%s/private/' % app, r=request), '[^\.#].*')
-+ privates = listdir(apath('%s/private/' % app, r=request), r'[^\.#].*')
- privates = [x.replace('\\', '/') for x in privates]
- privates.sort()
-
- # Get all static files
-- statics = listdir(apath('%s/static/' % app, r=request), '[^\.#].*',
-+ statics = listdir(apath('%s/static/' % app, r=request), r'[^\.#].*',
- maxnum=MAXNFILES)
- statics = [x.replace(os.path.sep, '/') for x in statics]
- statics.sort()
-@@ -1267,7 +1267,7 @@ def plugin():
- redirect(URL('site'))
-
- # Get all models
-- models = listdir(apath('%s/models/' % app, r=request), '.*\.py$')
-+ models = listdir(apath('%s/models/' % app, r=request), r'.*\.py$')
- models = [x.replace('\\', '/') for x in models]
- defines = {}
- for m in models:
-@@ -1277,7 +1277,7 @@ def plugin():
-
- # Get all controllers
- controllers = sorted(
-- listdir(apath('%s/controllers/' % app, r=request), '.*\.py$'))
-+ listdir(apath('%s/controllers/' % app, r=request), r'.*\.py$'))
- controllers = [x.replace('\\', '/') for x in controllers]
- functions = {}
- for c in controllers:
-@@ -1290,7 +1290,7 @@ def plugin():
-
- # Get all views
- views = sorted(
-- listdir(apath('%s/views/' % app, r=request), '[\w/\-]+\.\w+$'))
-+ listdir(apath('%s/views/' % app, r=request), r'[\w/\-]+\.\w+$'))
- views = [x.replace('\\', '/') for x in views]
- extend = {}
- include = {}
-@@ -1304,17 +1304,17 @@ def plugin():
- include[c] = [i[1] for i in items]
-
- # Get all modules
-- modules = listdir(apath('%s/modules/' % app, r=request), '.*\.py$')
-+ modules = listdir(apath('%s/modules/' % app, r=request), r'.*\.py$')
- modules = modules = [x.replace('\\', '/') for x in modules]
- modules.sort()
-
- # Get all private files
-- privates = listdir(apath('%s/private/' % app, r=request), '[^\.#].*')
-+ privates = listdir(apath('%s/private/' % app, r=request), r'[^\.#].*')
- privates = [x.replace('\\', '/') for x in privates]
- privates.sort()
-
- # Get all static files
-- statics = listdir(apath('%s/static/' % app, r=request), '[^\.#].*',
-+ statics = listdir(apath('%s/static/' % app, r=request), r'[^\.#].*',
- maxnum=MAXNFILES)
- statics = [x.replace(os.path.sep, '/') for x in statics]
- statics.sort()
-@@ -1331,7 +1331,7 @@ def plugin():
- safe_write(crontab, '#crontab')
-
- def filter_plugins(items):
-- regex = re.compile('^plugin_' + plugin + '(/.*|\..*)?$')
-+ regex = re.compile(r'^plugin_' + plugin + r'(/.*|\..*)?$')
- return [item for item in items if item and regex.match(item)]
-
- return dict(app=app,
-@@ -1363,14 +1363,14 @@ def create_file():
- request.vars.location += request.vars.dir + '/'
- app = get_app(name=request.vars.location.split('/')[0])
- path = apath(request.vars.location, r=request)
-- filename = re.sub('[^\w./-]+', '_', request.vars.filename)
-+ filename = re.sub(r'[^\w./-]+', '_', request.vars.filename)
- if path[-7:] == '/rules/':
- # Handle plural rules files
- if len(filename) == 0:
- raise SyntaxError
- if not filename[-3:] == '.py':
- filename += '.py'
-- lang = re.match('^plural_rules-(.*)\.py$', filename).group(1)
-+ lang = re.match(r'^plural_rules-(.*)\.py$', filename).group(1)
- langinfo = read_possible_languages(apath(app, r=request))[lang]
- text = dedent("""
- #!/usr/bin/env python
-@@ -1518,7 +1518,7 @@ def create_file():
- redirect(request.vars.sender + anchor)
-
-
--def listfiles(app, dir, regexp='.*\.py$'):
-+def listfiles(app, dir, regexp=r'.*\.py$'):
- files = sorted(
- listdir(apath('%(app)s/%(dir)s/' % {'app': app, 'dir': dir}, r=request), regexp))
- files = [x.replace('\\', '/') for x in files if not x.endswith('.bak')]
-@@ -1533,12 +1533,12 @@ def editfile(path, file, vars={}, app=None):
-
- def files_menu():
- app = request.vars.app or 'welcome'
-- dirs = [{'name': 'models', 'reg': '.*\.py$'},
-- {'name': 'controllers', 'reg': '.*\.py$'},
-- {'name': 'views', 'reg': '[\w/\-]+(\.\w+)+$'},
-- {'name': 'modules', 'reg': '.*\.py$'},
-- {'name': 'static', 'reg': '[^\.#].*'},
-- {'name': 'private', 'reg': '.*\.py$'}]
-+ dirs = [{'name': 'models', 'reg': r'.*\.py$'},
-+ {'name': 'controllers', 'reg': r'.*\.py$'},
-+ {'name': 'views', 'reg': r'[\w/\-]+(\.\w+)+$'},
-+ {'name': 'modules', 'reg': r'.*\.py$'},
-+ {'name': 'static', 'reg': r'[^\.#].*'},
-+ {'name': 'private', 'reg': r'.*\.py$'}]
- result_files = []
- for dir in dirs:
- result_files.append(TAG[''](LI(dir['name'], _class="nav-header component", _onclick="collapse('" + dir['name'] + "_files');"),
-@@ -1559,7 +1559,7 @@ def upload_file():
- path = apath(request.vars.location, r=request)
-
- if request.vars.filename:
-- filename = re.sub('[^\w\./]+', '_', request.vars.filename)
-+ filename = re.sub(r'[^\w\./]+', '_', request.vars.filename)
- else:
- filename = os.path.split(request.vars.file.filename)[-1]
-
-@@ -1628,7 +1628,7 @@ def errors():
-
- hash2error = dict()
-
-- for fn in listdir(errors_path, '^[a-fA-F0-9.\-]+$'):
-+ for fn in listdir(errors_path, r'^[a-fA-F0-9.\-]+$'):
- fullpath = os.path.join(errors_path, fn)
- if not os.path.isfile(fullpath):
- continue
-@@ -1727,7 +1727,7 @@ def errors():
- func = lambda p: os.stat(apath('%s/errors/%s' %
- (app, p), r=request)).st_mtime
- tickets = sorted(
-- listdir(apath('%s/errors/' % app, r=request), '^\w.*'),
-+ listdir(apath('%s/errors/' % app, r=request), r'^\w.*'),
- key=func,
- reverse=True)
-
-diff --git a/gluon/compileapp.py b/gluon/compileapp.py
-index 45fa8a0e..be0446e1 100644
---- a/gluon/compileapp.py
-+++ b/gluon/compileapp.py
-@@ -14,7 +14,7 @@ Note:
-
- import copy
- import fnmatch
--import imp
-+from importlib import import_module
- import marshal
- import os
- import py_compile
-@@ -345,7 +345,7 @@ def local_import_aux(name, reload_force=False, app="welcome"):
- """
- items = name.replace("/", ".")
- name = "applications.%s.modules.%s" % (app, items)
-- module = __import__(name)
-+ module = import_module(name)
- for item in name.split(".")[1:]:
- module = getattr(module, item)
- if reload_force:
-diff --git a/gluon/contrib/appconfig.py b/gluon/contrib/appconfig.py
-index 1160e08a..2bf81841 100644
---- a/gluon/contrib/appconfig.py
-+++ b/gluon/contrib/appconfig.py
-@@ -120,7 +120,7 @@ class AppConfigLoader(object):
- self.read_config()
-
- def read_config_ini(self):
-- config = configparser.SafeConfigParser()
-+ config = configparser.RawConfigParser()
- config.read(self.file)
- settings = {}
- for section in config.sections():
---
-2.45.1
-
diff --git a/package/python-web2py/python-web2py.hash b/package/python-web2py/python-web2py.hash
index ce3896a1ad..8d4ae3df28 100644
--- a/package/python-web2py/python-web2py.hash
+++ b/package/python-web2py/python-web2py.hash
@@ -1,3 +1,3 @@
# sha256 locally computed
-sha256 2221840e4ef2c1e3810017921b2a72f2d5d1f888ca1f771cf7263bfead60570c python-web2py-2.27.1.tar.gz
-sha256 2aae96826184a492bc799add49aed7b29036e7aba2d2294fb65053bd30fe55fe LICENSE
+sha256 52b3e2bc1ab300e2546bfa12cb2d836607853f3c74cd86e777ea57d493458224 python-web2py-3.0.11.tar.gz
+sha256 2aae96826184a492bc799add49aed7b29036e7aba2d2294fb65053bd30fe55fe LICENSE.web2py.txt
diff --git a/package/python-web2py/python-web2py.mk b/package/python-web2py/python-web2py.mk
index ed10333f53..6cab12c20c 100644
--- a/package/python-web2py/python-web2py.mk
+++ b/package/python-web2py/python-web2py.mk
@@ -4,10 +4,10 @@
#
################################################################################
-PYTHON_WEB2PY_VERSION = 2.27.1
+PYTHON_WEB2PY_VERSION = 3.0.11
PYTHON_WEB2PY_SITE = $(call github,web2py,web2py,v$(PYTHON_WEB2PY_VERSION))
PYTHON_WEB2PY_LICENSE = LGPL-3.0
-PYTHON_WEB2PY_LICENSE_FILES = LICENSE
+PYTHON_WEB2PY_LICENSE_FILES = LICENSE.web2py.txt
PYTHON_WEB2PY_CPE_ID_VENDOR = web2py
PYTHON_WEB2PY_CPE_ID_PRODUCT = web2py
PYTHON_WEB2PY_DEPENDENCIES = host-python3 python3 \
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [Buildroot] [PATCH v2 1/1] package/python-web2py: bump to version 3.0.11
2025-01-24 21:13 [Buildroot] [PATCH v2 1/1] package/python-web2py: bump to version 3.0.11 James Hilliard
@ 2025-01-25 16:04 ` Julien Olivain
0 siblings, 0 replies; 2+ messages in thread
From: Julien Olivain @ 2025-01-25 16:04 UTC (permalink / raw)
To: James Hilliard; +Cc: buildroot, Angelo Compagnucci
Hi James,
Thank you for the patch.
On 24/01/2025 22:13, James Hilliard wrote:
> Drop patch which is now upstream.
>
> License file renamed without content changes.
>
> Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Trying to build the package with this patch is failing for me,
with output:
>>> python-web2py 3.0.11 Building
/buildroot/output/host/bin/python -c 'import os;
os.chdir("/buildroot/output/build/python-web2py-3.0.11"); from
gluon.main import save_password; save_password("web2py",8000)'
Traceback (most recent call last):
File
"/buildroot/output/build/python-web2py-3.0.11/gluon/__init__.py", line
143, in import_packages
sys.modules[package] = builtins.__import__(package)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'rocket3'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File
"/buildroot/output/build/python-web2py-3.0.11/gluon/__init__.py", line
148, in <module>
import_packages()
File
"/buildroot/output/build/python-web2py-3.0.11/gluon/__init__.py", line
145, in import_packages
raise RuntimeError(MESSAGE % package)
RuntimeError: web2py depends on rocket3, which apparently you have
not installed.
Probably you cloned the repository using git without '--recursive'
To fix this, please run (from inside your web2py folder):
git submodule update --init --recursive
You can also download a complete copy from http://www.web2py.com.
Can you have a look, please?
Best regards,
Julien.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-01-25 16:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-24 21:13 [Buildroot] [PATCH v2 1/1] package/python-web2py: bump to version 3.0.11 James Hilliard
2025-01-25 16:04 ` Julien Olivain
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.