From 9a0eeafc7ccc43171bbe12f4725681bc61c5b5c1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 20 Jan 2023 12:40:48 +0000 Subject: [PATCH 01/21] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering From bd6cd6ca5c9732304b8bfadd8d0087ae9c1a0a87 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Thu, 29 Jun 2023 13:33:54 +0200 Subject: [PATCH 02/21] Rebuilt for Python 3.12 From ef93f09bb967322f55a4595debc32a3c2830b2d6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 21 Jul 2023 09:00:20 +0000 Subject: [PATCH 03/21] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering From a07f14cb1ccb7faebebde177d2cbff5f59f94462 Mon Sep 17 00:00:00 2001 From: Michel Lind Date: Tue, 16 Jan 2024 11:22:01 -0600 Subject: [PATCH 04/21] Update to 4.4 (rhbz#1715669) - cleanup unused patches Signed-off-by: Michel Lind --- ...ressor-fix-attributeerror-in-offline.patch | 37 ---- ...compressor-make-compress-run-through.patch | 162 ------------------ django-compressor-use-get_template.patch | 48 ------ python-django-compressor.spec | 2 +- rdep-version.patch | 16 +- sources | 2 +- 6 files changed, 10 insertions(+), 257 deletions(-) delete mode 100644 django-compressor-fix-attributeerror-in-offline.patch delete mode 100644 django-compressor-make-compress-run-through.patch delete mode 100644 django-compressor-use-get_template.patch diff --git a/django-compressor-fix-attributeerror-in-offline.patch b/django-compressor-fix-attributeerror-in-offline.patch deleted file mode 100644 index 75a1dc7..0000000 --- a/django-compressor-fix-attributeerror-in-offline.patch +++ /dev/null @@ -1,37 +0,0 @@ -From ac70fbfb7f8349e5c1150f40bf1d21ba635d0cb8 Mon Sep 17 00:00:00 2001 -From: Chirag Jadwani -Date: Fri, 29 Aug 2014 13:15:35 +0530 -Subject: [PATCH] Fix AttributeError in offline compression - ---- - compressor/offline/django.py | 2 ++ - .../test_block_super_base_compressed/test_compressor_offline.html | 5 +++++ - 2 files changed, 7 insertions(+) - -diff --git a/compressor/offline/django.py b/compressor/offline/django.py -index 3986562..b326093 100644 ---- a/compressor/offline/django.py -+++ b/compressor/offline/django.py -@@ -54,6 +54,8 @@ def remove_block_nodes(nodelist, block_stack, block_context): - if not block_stack: - continue - node = block_context.get_block(block_stack[-1].name) -+ if not node: -+ continue - if isinstance(node, BlockNode): - expanded_block = expand_blocknode(node, block_stack, block_context) - new_nodelist.extend(expanded_block) -diff --git a/compressor/tests/test_templates/test_block_super_base_compressed/test_compressor_offline.html b/compressor/tests/test_templates/test_block_super_base_compressed/test_compressor_offline.html -index 01382ec..10097c1 100644 ---- a/compressor/tests/test_templates/test_block_super_base_compressed/test_compressor_offline.html -+++ b/compressor/tests/test_templates/test_block_super_base_compressed/test_compressor_offline.html -@@ -5,4 +5,9 @@ - -+ {% block orphan %} -+ {{ block.super }} -+ An 'orphan' block that refers to a non-existent super block. -+ Contents of this block are ignored. -+ {% endblock %} - {% endspaceless %}{% endblock %} diff --git a/django-compressor-make-compress-run-through.patch b/django-compressor-make-compress-run-through.patch deleted file mode 100644 index 4252405..0000000 --- a/django-compressor-make-compress-run-through.patch +++ /dev/null @@ -1,162 +0,0 @@ -From 72b33ddbcdc41eb5af42b86329d81d96894a9d10 Mon Sep 17 00:00:00 2001 -From: Carlton Gibson -Date: Tue, 10 Mar 2015 20:04:07 +0100 -Subject: [PATCH] Make `compress` command (at least) run through on 1.8 - -FAILED (failures=15, errors=15, skipped=1) - -AssertionError: 2 != 12 -OfflineGenerationError: ... key "XYZ" missing ... ---- - compressor/management/commands/compress.py | 41 +++++++++++++++++------------- - compressor/offline/django.py | 27 ++++++++++++++------ - 2 files changed, 43 insertions(+), 25 deletions(-) - -diff --git a/compressor/management/commands/compress.py b/compressor/management/commands/compress.py -index 6be215e..0bc436a 100644 ---- a/compressor/management/commands/compress.py -+++ b/compressor/management/commands/compress.py -@@ -5,6 +5,7 @@ - from fnmatch import fnmatch - from optparse import make_option - -+import django - from django.core.management.base import NoArgsCommand, CommandError - import django.template - from django.template import Context -@@ -53,24 +54,30 @@ class Command(NoArgsCommand): - requires_model_validation = False - - def get_loaders(self): -- from django.template.loader import template_source_loaders -- if template_source_loaders is None: -- try: -- from django.template.loader import ( -- find_template as finder_func) -- except ImportError: -- from django.template.loader import ( -- find_template_source as finder_func) # noqa -- try: -- # Force django to calculate template_source_loaders from -- # TEMPLATE_LOADERS settings, by asking to find a dummy template -- source, name = finder_func('test') -- except django.template.TemplateDoesNotExist: -- pass -- # Reload template_source_loaders now that it has been calculated ; -- # it should contain the list of valid, instanciated template loaders -- # to use. -+ if django.VERSION < (1, 8): - from django.template.loader import template_source_loaders -+ if template_source_loaders is None: -+ try: -+ from django.template.loader import ( -+ find_template as finder_func) -+ except ImportError: -+ from django.template.loader import ( -+ find_template_source as finder_func) # noqa -+ try: -+ # Force django to calculate template_source_loaders from -+ # TEMPLATE_LOADERS settings, by asking to find a dummy template -+ source, name = finder_func('test') -+ except django.template.TemplateDoesNotExist: -+ pass -+ # Reload template_source_loaders now that it has been calculated ; -+ # it should contain the list of valid, instanciated template loaders -+ # to use. -+ from django.template.loader import template_source_loaders -+ else: -+ from django.template import engines -+ template_source_loaders = [] -+ for e in engines.all(): -+ template_source_loaders.extend(e.engine.get_template_loaders(e.engine.loaders)) - loaders = [] - # If template loader is CachedTemplateLoader, return the loaders - # that it wraps around. So if we have -diff --git a/compressor/offline/django.py b/compressor/offline/django.py -index b326093..107c6e4 100644 ---- a/compressor/offline/django.py -+++ b/compressor/offline/django.py -@@ -1,6 +1,7 @@ - from __future__ import absolute_import - from copy import copy - -+import django - from django import template - from django.conf import settings - from django.template import Context -@@ -14,7 +15,7 @@ - from compressor.templatetags.compress import CompressorNode - - --def handle_extendsnode(extendsnode, block_context=None): -+def handle_extendsnode(extendsnode, block_context=None, original=None): - """Create a copy of Node tree of a derived template replacing - all blocks tags with the nodes of appropriate blocks. - Also handles {{ block.super }} tags. -@@ -26,6 +27,9 @@ def handle_extendsnode(extendsnode, block_context=None): - block_context.add_blocks(blocks) - - context = Context(settings.COMPRESS_OFFLINE_CONTEXT) -+ if original is not None: -+ context.template = original -+ - compiled_parent = extendsnode.get_parent(context) - parent_nodelist = compiled_parent.nodelist - # If the parent template has an ExtendsNode it is not the root. -@@ -33,7 +37,7 @@ def handle_extendsnode(extendsnode, block_context=None): - # The ExtendsNode has to be the first non-text node. - if not isinstance(node, TextNode): - if isinstance(node, ExtendsNode): -- return handle_extendsnode(node, block_context) -+ return handle_extendsnode(node, block_context, original) - break - # Add blocks of the root template to block context. - blocks = dict((n.name, n) for n in -@@ -95,7 +99,10 @@ def __init__(self, charset): - - def parse(self, template_name): - try: -- return get_template(template_name) -+ if django.VERSION < (1, 8): -+ return get_template(template_name) -+ else: -+ return get_template(template_name).template - except template.TemplateSyntaxError as e: - raise TemplateSyntaxError(str(e)) - except template.TemplateDoesNotExist as e: -@@ -111,15 +118,17 @@ def process_node(self, template, context, node): - pass - - def render_nodelist(self, template, context, node): -+ if django.VERSION >= (1, 8): -+ context.template = template - return node.nodelist.render(context) - - def render_node(self, template, context, node): - return node.render(context, forced=True) - -- def get_nodelist(self, node): -+ def get_nodelist(self, node, original=None): - if isinstance(node, ExtendsNode): - try: -- return handle_extendsnode(node) -+ return handle_extendsnode(node, block_context=None, original=original) - except template.TemplateSyntaxError as e: - raise TemplateSyntaxError(str(e)) - except template.TemplateDoesNotExist as e: -@@ -134,10 +143,12 @@ def get_nodelist(self, node): - nodelist = getattr(node, 'nodelist', []) - return nodelist - -- def walk_nodes(self, node): -- for node in self.get_nodelist(node): -+ def walk_nodes(self, node, original=None): -+ if django.VERSION >= (1, 8) and original is None: -+ original = node -+ for node in self.get_nodelist(node, original): - if isinstance(node, CompressorNode) and node.is_offline_compression_enabled(forced=True): - yield node - else: -- for node in self.walk_nodes(node): -+ for node in self.walk_nodes(node, original): - yield node diff --git a/django-compressor-use-get_template.patch b/django-compressor-use-get_template.patch deleted file mode 100644 index b890d49..0000000 --- a/django-compressor-use-get_template.patch +++ /dev/null @@ -1,48 +0,0 @@ -From c8495264b503a595fbc89e6c8a83a402eff445c6 Mon Sep 17 00:00:00 2001 -From: Mathieu Pillard -Date: Sun, 25 May 2014 14:09:33 +0200 -Subject: [PATCH] Use get_template() when dealing with django templates - ---- - compressor/offline/django.py | 16 +++++++--------- - 1 file changed, 7 insertions(+), 9 deletions(-) - -diff --git a/compressor/offline/django.py b/compressor/offline/django.py -index 6541471..3986562 100644 ---- a/compressor/offline/django.py -+++ b/compressor/offline/django.py -@@ -1,13 +1,12 @@ - from __future__ import absolute_import --import io - from copy import copy - - from django import template - from django.conf import settings --from django.template import Template - from django.template import Context - from django.template.base import Node, VariableNode, TextNode, NodeList - from django.template.defaulttags import IfNode -+from django.template.loader import get_template - from django.template.loader_tags import ExtendsNode, BlockNode, BlockContext - - -@@ -93,13 +92,12 @@ def __init__(self, charset): - self.charset = charset - - def parse(self, template_name): -- with io.open(template_name, mode='rb') as file: -- try: -- return Template(file.read().decode(self.charset)) -- except template.TemplateSyntaxError as e: -- raise TemplateSyntaxError(str(e)) -- except template.TemplateDoesNotExist as e: -- raise TemplateDoesNotExist(str(e)) -+ try: -+ return get_template(template_name) -+ except template.TemplateSyntaxError as e: -+ raise TemplateSyntaxError(str(e)) -+ except template.TemplateDoesNotExist as e: -+ raise TemplateDoesNotExist(str(e)) - - def process_template(self, template, context): - return True diff --git a/python-django-compressor.spec b/python-django-compressor.spec index 22e8813..a36c1d0 100644 --- a/python-django-compressor.spec +++ b/python-django-compressor.spec @@ -8,7 +8,7 @@ parsed and searched for CSS or JS. These styles and scripts are subsequently\ processed with optional, configurable compilers and filters. Name: python-django-compressor -Version: 4.1 +Version: 4.4 Release: %autorelease Summary: Compresses linked and inline JavaScript or CSS into single cached files diff --git a/rdep-version.patch b/rdep-version.patch index 16a9fe2..73e620c 100644 --- a/rdep-version.patch +++ b/rdep-version.patch @@ -1,12 +1,12 @@ ---- a/setup.py 2022-08-17 14:46:30.186903576 +0300 -+++ b/setup.py 2022-08-17 14:46:42.507861281 +0300 -@@ -149,7 +149,7 @@ +--- a/setup.py ++++ b/setup.py +@@ -164,7 +164,7 @@ setup( zip_safe=False, install_requires=[ - 'django-appconf >= 1.0.3', -- 'rcssmin == 1.1.0', -- 'rjsmin == 1.2.0', -+ 'rcssmin >= 1.1.0', -+ 'rjsmin >= 1.2.0', + "django-appconf >= 1.0.3", +- "rcssmin == 1.1.1", +- "rjsmin == 1.2.1", ++ "rcssmin >= 1.1.1", ++ "rjsmin >= 1.2.1", ], ) diff --git a/sources b/sources index f9d77cb..3139d48 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (django-compressor-4.1.tar.gz) = eb1e4fc5d9ada8fb32a1059c87b447735cf0e1c40853b2313b5f7f5d1c9cf3c66d96ebf40a721175db5fe721c44b077bc026270d59e90890e1807125a38a33a1 +SHA512 (django-compressor-4.4.tar.gz) = 4fb0fcb1f11d73a724d4d3161b4964f9b4a5bf6ec674d198756ad262d9983528a605aadde6bb10ef2054e477ac08fbc0397242e8969f47d3710bec6f21215086 From 4ec455047aae9d2ff93fb3ab775ae4a6a7556c97 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 22 Jan 2024 00:46:41 +0000 Subject: [PATCH 05/21] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From f73b71e9e92831b1840f71143e25f469fc73c345 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 26 Jan 2024 03:27:20 +0000 Subject: [PATCH 06/21] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From c63dc811bdf235bacebe4d266df75c79c20d9b94 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Sat, 8 Jun 2024 01:28:29 +0200 Subject: [PATCH 07/21] Rebuilt for Python 3.13 From 78da4b37180ea1b555f4e4133466c94e63fe2ec1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jul 2024 11:02:24 +0000 Subject: [PATCH 08/21] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 35c449bbe33f8e1ca41e8ec9637dd139f3fed7ba Mon Sep 17 00:00:00 2001 From: karolinku Date: Fri, 2 Aug 2024 12:05:49 +0200 Subject: [PATCH 09/21] Replace git source with pypi one There has been discovered that github source differs from pypi one which is causing errors for 4.4 version, i.e. dicovering previous version 4.3 with setupy.py --version. --- .gitignore | 1 + python-django-compressor.spec | 7 ++++--- sources | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 97b6fa0..8e9edb6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /python-django-compressor-*.tar.gz /django-compressor-*.tar.gz +/django_compressor-4.4.tar.gz diff --git a/python-django-compressor.spec b/python-django-compressor.spec index a36c1d0..09c0c1e 100644 --- a/python-django-compressor.spec +++ b/python-django-compressor.spec @@ -1,4 +1,5 @@ %global srcname django-compressor +%global pypi_name django_compressor %global _desc\ Django Compressor combines and compresses linked and inline Javascript\ or CSS in a Django templates into cacheable static files by using the\ @@ -14,7 +15,7 @@ Summary: Compresses linked and inline JavaScript or CSS into single cached files License: MIT URL: https://github.com/django-compressor/django-compressor -Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz +Source0: %{pypi_source django_compressor} Patch0: rdep-version.patch @@ -35,8 +36,8 @@ Obsoletes: python2-%{srcname} < 2.1-6 Obsoletes: python-%{srcname} < 2.1-6 %prep -%autosetup -p1 -n %{srcname}-%{version} - +%autosetup -p1 -n %{pypi_name}-%{version} + %generate_buildrequires %pyproject_buildrequires diff --git a/sources b/sources index 3139d48..2cab061 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (django-compressor-4.4.tar.gz) = 4fb0fcb1f11d73a724d4d3161b4964f9b4a5bf6ec674d198756ad262d9983528a605aadde6bb10ef2054e477ac08fbc0397242e8969f47d3710bec6f21215086 +SHA512 (django_compressor-4.4.tar.gz) = 54a3443f8900aca89534bb792f6e1d7d46ec9cec81c2bb2e019ea2a0e861845805d187748cc12531209be25c3d9f5dd3cd0f019fb9f439c9b1e7ad2a5785c6c8 From 66ec10d2b95cc3b6201afacb051ccf934e3b5a9b Mon Sep 17 00:00:00 2001 From: Michel Lind Date: Fri, 20 Dec 2024 16:28:25 -0600 Subject: [PATCH 10/21] Update to 4.5.1 (resolves: rhbz#2292613) Signed-off-by: Michel Lind --- .gitignore | 1 + python-django-compressor.spec | 2 +- rdep-version.patch | 10 +++++----- sources | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 8e9edb6..19ab6e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /python-django-compressor-*.tar.gz /django-compressor-*.tar.gz /django_compressor-4.4.tar.gz +/django_compressor-4.5.1.tar.gz diff --git a/python-django-compressor.spec b/python-django-compressor.spec index 09c0c1e..5f2e927 100644 --- a/python-django-compressor.spec +++ b/python-django-compressor.spec @@ -9,7 +9,7 @@ parsed and searched for CSS or JS. These styles and scripts are subsequently\ processed with optional, configurable compilers and filters. Name: python-django-compressor -Version: 4.4 +Version: 4.5.1 Release: %autorelease Summary: Compresses linked and inline JavaScript or CSS into single cached files diff --git a/rdep-version.patch b/rdep-version.patch index 73e620c..8a0e5b4 100644 --- a/rdep-version.patch +++ b/rdep-version.patch @@ -1,12 +1,12 @@ --- a/setup.py +++ b/setup.py @@ -164,7 +164,7 @@ setup( - zip_safe=False, install_requires=[ + "Django >= 4.2", "django-appconf >= 1.0.3", -- "rcssmin == 1.1.1", -- "rjsmin == 1.2.1", -+ "rcssmin >= 1.1.1", -+ "rjsmin >= 1.2.1", +- "rcssmin == 1.1.2", +- "rjsmin == 1.2.2", ++ "rcssmin >= 1.1.2", ++ "rjsmin >= 1.2.2", ], ) diff --git a/sources b/sources index 2cab061..153f926 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (django_compressor-4.4.tar.gz) = 54a3443f8900aca89534bb792f6e1d7d46ec9cec81c2bb2e019ea2a0e861845805d187748cc12531209be25c3d9f5dd3cd0f019fb9f439c9b1e7ad2a5785c6c8 +SHA512 (django_compressor-4.5.1.tar.gz) = 696e032de9c6cd39a924e28e98a476f49fc25629ec1f1d446d78e6be93695435a9cf1b3222807dd6644efd19955c2252648105bacc207b2ee5c00a6338e7046a From 8da4cb4feaf06a156faf6b660983d0cda733727f Mon Sep 17 00:00:00 2001 From: Michel Lind Date: Fri, 20 Dec 2024 16:52:55 -0600 Subject: [PATCH 11/21] Fix building with Python 3.14; resolves: rhbz#2322719 Signed-off-by: Michel Lind --- django-compressor-py314-ast.diff | 11 +++++++++++ python-django-compressor.spec | 5 ++++- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 django-compressor-py314-ast.diff diff --git a/django-compressor-py314-ast.diff b/django-compressor-py314-ast.diff new file mode 100644 index 0000000..75d8a43 --- /dev/null +++ b/django-compressor-py314-ast.diff @@ -0,0 +1,11 @@ +--- a/setup.py ++++ b/setup.py +@@ -14,7 +14,7 @@ class VersionFinder(ast.NodeVisitor): + + def visit_Assign(self, node): + if node.targets[0].id == "__version__": +- self.version = node.value.s ++ self.version = node.value.value + + + def read(*parts): diff --git a/python-django-compressor.spec b/python-django-compressor.spec index 5f2e927..1b34fd5 100644 --- a/python-django-compressor.spec +++ b/python-django-compressor.spec @@ -17,7 +17,10 @@ License: MIT URL: https://github.com/django-compressor/django-compressor Source0: %{pypi_source django_compressor} -Patch0: rdep-version.patch +Patch: rdep-version.patch +# Fix for https://github.com/django-compressor/django-compressor/issues/1270 +# https://github.com/django-compressor/django-compressor/pull/1271 +Patch: django-compressor-py314-ast.diff BuildArch: noarch From d38151b86e7b79c441e10650ed63b1e5a8c7d16d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 18 Jan 2025 13:39:33 +0000 Subject: [PATCH 12/21] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From a60ba9a21fbe98cd6639524529da9c18184ab9ad Mon Sep 17 00:00:00 2001 From: Tim Landscheidt Date: Sun, 23 Mar 2025 18:15:48 +0000 Subject: [PATCH 13/21] Fix Obsoletes fields for python3-django-compressor --- python-django-compressor.spec | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/python-django-compressor.spec b/python-django-compressor.spec index 1b34fd5..775e876 100644 --- a/python-django-compressor.spec +++ b/python-django-compressor.spec @@ -31,13 +31,12 @@ BuildRequires: python3-devel %package -n python3-%{srcname} Summary: %{summary} -%description -n python3-%{srcname} -%_desc - # Added in f28 cycle. Obsoletes: python2-%{srcname} < 2.1-6 Obsoletes: python-%{srcname} < 2.1-6 +%description -n python3-%{srcname} %_desc + %prep %autosetup -p1 -n %{pypi_name}-%{version} From 20499935df4d239c0f865e2fdb87d3be86079c8b Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 3 Jun 2025 12:20:58 +0200 Subject: [PATCH 14/21] Rebuilt for Python 3.14 From e8cf3aab29af92161605db1d777e30bb06ba5230 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 07:34:48 +0000 Subject: [PATCH 15/21] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 2c695380716ae88643511d1cbf12cd6cb7b6c5a5 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 13:36:42 +0200 Subject: [PATCH 16/21] Rebuilt for Python 3.14.0rc2 bytecode From a3b82fdbcfefd3f282b9fdb9beede48aaeae0317 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 13:09:36 +0200 Subject: [PATCH 17/21] Rebuilt for Python 3.14.0rc3 bytecode From 1a5548185bfba43986d492de943b06dad703ed16 Mon Sep 17 00:00:00 2001 From: Michel Lind Date: Wed, 10 Dec 2025 22:00:43 +0000 Subject: [PATCH 18/21] Enable Packit [skip changelog] Signed-off-by: Michel Lind --- packit.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 packit.yaml diff --git a/packit.yaml b/packit.yaml new file mode 100644 index 0000000..fdf84eb --- /dev/null +++ b/packit.yaml @@ -0,0 +1,16 @@ +# See the documentation for more information: +# https://packit.dev/docs/configuration/ + +copy_upstream_release_description: false + +jobs: +- job: pull_from_upstream + trigger: release + dist_git_branches: + - fedora-rawhide + +- job: koji_build + trigger: commit + allowed_committers: ['packit'] + dist_git_branches: + - fedora-rawhide From fcfc8dd48490e30a9b45803e241b6b3797a18f1e Mon Sep 17 00:00:00 2001 From: Michel Lind Date: Wed, 10 Dec 2025 22:02:17 +0000 Subject: [PATCH 19/21] Update to 4.6.0 upstream release - Resolves: rhbz#2413786 Commit authored by Packit automation (https://packit.dev/) --- .gitignore | 1 + README.packit | 3 +++ python-django-compressor.spec | 2 +- sources | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 README.packit diff --git a/.gitignore b/.gitignore index 19ab6e1..e5d2aa8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /django-compressor-*.tar.gz /django_compressor-4.4.tar.gz /django_compressor-4.5.1.tar.gz +/django_compressor-4.6.0.tar.gz diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..2511bf4 --- /dev/null +++ b/README.packit @@ -0,0 +1,3 @@ +This repository is maintained by packit. +https://packit.dev/ +The file was generated using packit 1.12.0. diff --git a/python-django-compressor.spec b/python-django-compressor.spec index 775e876..f039f17 100644 --- a/python-django-compressor.spec +++ b/python-django-compressor.spec @@ -9,7 +9,7 @@ parsed and searched for CSS or JS. These styles and scripts are subsequently\ processed with optional, configurable compilers and filters. Name: python-django-compressor -Version: 4.5.1 +Version: 4.6.0 Release: %autorelease Summary: Compresses linked and inline JavaScript or CSS into single cached files diff --git a/sources b/sources index 153f926..dec55a4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (django_compressor-4.5.1.tar.gz) = 696e032de9c6cd39a924e28e98a476f49fc25629ec1f1d446d78e6be93695435a9cf1b3222807dd6644efd19955c2252648105bacc207b2ee5c00a6338e7046a +SHA512 (django_compressor-4.6.0.tar.gz) = 5bb5fc01b3beb022623b6409f710640eb51196349c0268c1d85239ce2c6a8889761c3efb16e9cc4e7b1d6bdd7f3a16ea8abf4ba9083a03500bcd10344457e0a2 From c47467d43f54b873c2abcc1c30938654d325238c Mon Sep 17 00:00:00 2001 From: Michel Lind Date: Wed, 10 Dec 2025 22:45:58 +0000 Subject: [PATCH 20/21] Remove unneeded patches Signed-off-by: Michel Lind --- python-django-compressor.spec | 5 ----- 1 file changed, 5 deletions(-) diff --git a/python-django-compressor.spec b/python-django-compressor.spec index f039f17..16fcfb1 100644 --- a/python-django-compressor.spec +++ b/python-django-compressor.spec @@ -17,11 +17,6 @@ License: MIT URL: https://github.com/django-compressor/django-compressor Source0: %{pypi_source django_compressor} -Patch: rdep-version.patch -# Fix for https://github.com/django-compressor/django-compressor/issues/1270 -# https://github.com/django-compressor/django-compressor/pull/1271 -Patch: django-compressor-py314-ast.diff - BuildArch: noarch BuildRequires: python3-devel From 4088983b633af3a468230b8ddd036885276aca54 Mon Sep 17 00:00:00 2001 From: Michel Lind Date: Thu, 11 Dec 2025 17:14:51 +0000 Subject: [PATCH 21/21] Revert pyproject.toml conversion when building with older setuptools - Drop patches Signed-off-by: Michel Lind --- django-compressor-py314-ast.diff | 11 -- python-django-compressor.spec | 13 +++ rdep-version.patch | 12 --- setup.py | 172 +++++++++++++++++++++++++++++++ 4 files changed, 185 insertions(+), 23 deletions(-) delete mode 100644 django-compressor-py314-ast.diff delete mode 100644 rdep-version.patch create mode 100644 setup.py diff --git a/django-compressor-py314-ast.diff b/django-compressor-py314-ast.diff deleted file mode 100644 index 75d8a43..0000000 --- a/django-compressor-py314-ast.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- a/setup.py -+++ b/setup.py -@@ -14,7 +14,7 @@ class VersionFinder(ast.NodeVisitor): - - def visit_Assign(self, node): - if node.targets[0].id == "__version__": -- self.version = node.value.s -+ self.version = node.value.value - - - def read(*parts): diff --git a/python-django-compressor.spec b/python-django-compressor.spec index 16fcfb1..fa81435 100644 --- a/python-django-compressor.spec +++ b/python-django-compressor.spec @@ -8,6 +8,13 @@ or CSS in a Django templates into cacheable static files by using the\ parsed and searched for CSS or JS. These styles and scripts are subsequently\ processed with optional, configurable compilers and filters. +# setuptools < 77.0.3 +%if (%{defined fedora} && 0%{?fedora} <= 42) || (%{defined rhel} && 0%{?rhel} <= 10) +%bcond old_setuptools 1 +%else +%bcond old_setuptools 0 +%endif + Name: python-django-compressor Version: 4.6.0 Release: %autorelease @@ -16,6 +23,8 @@ Summary: Compresses linked and inline JavaScript or CSS into single cached files License: MIT URL: https://github.com/django-compressor/django-compressor Source0: %{pypi_source django_compressor} +# deleted in 4e543307 - migration to pyproject.toml +Source1: setup.py BuildArch: noarch @@ -34,6 +43,10 @@ Obsoletes: python-%{srcname} < 2.1-6 %prep %autosetup -p1 -n %{pypi_name}-%{version} +%if %{with old_setuptools} +rm pyproject.toml +cp -p %{SOURCE1} setup.py +%endif %generate_buildrequires %pyproject_buildrequires diff --git a/rdep-version.patch b/rdep-version.patch deleted file mode 100644 index 8a0e5b4..0000000 --- a/rdep-version.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/setup.py -+++ b/setup.py -@@ -164,7 +164,7 @@ setup( - install_requires=[ - "Django >= 4.2", - "django-appconf >= 1.0.3", -- "rcssmin == 1.1.2", -- "rjsmin == 1.2.2", -+ "rcssmin >= 1.1.2", -+ "rjsmin >= 1.2.2", - ], - ) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..be846ae --- /dev/null +++ b/setup.py @@ -0,0 +1,172 @@ +import ast +import codecs +import os +import sys +from fnmatch import fnmatchcase +from pathlib import Path + +from setuptools import find_packages, setup + + +class VersionFinder(ast.NodeVisitor): + def __init__(self): + self.version = None + + def visit_Assign(self, node): + if node.targets[0].id == "__version__": + self.version = node.value.value + + +def read(*parts): + filename = os.path.join(os.path.dirname(__file__), *parts) + with codecs.open(filename, encoding="utf-8") as fp: + return fp.read() + + +def find_version(*parts): + finder = VersionFinder() + finder.visit(ast.parse(read(*parts))) + return finder.version + + +# Provided as an attribute, so you can append to these instead +# of replicating them: +standard_exclude = ("*.py", "*.pyc", "*$py.class", "*~", ".*", "*.bak") +standard_exclude_directories = ( + ".*", + "CVS", + "_darcs", + "./build", + "./dist", + "EGG-INFO", + "*.egg-info", +) + + +# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org) +# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php +# Note: you may want to copy this into your setup.py file verbatim, as +# you can't import this from another package, when you don't know if +# that package is installed yet. +def find_package_data( + where=".", + package="", + exclude=standard_exclude, + exclude_directories=standard_exclude_directories, + only_in_packages=True, + show_ignored=False, +): + """ + Return a dictionary suitable for use in ``package_data`` + in a distutils ``setup.py`` file. + + The dictionary looks like:: + + {'package': [files]} + + Where ``files`` is a list of all the files in that package that + don't match anything in ``exclude``. + + If ``only_in_packages`` is true, then top-level directories that + are not packages won't be included (but directories under packages + will). + + Directories matching any pattern in ``exclude_directories`` will + be ignored; by default directories with leading ``.``, ``CVS``, + and ``_darcs`` will be ignored. + + If ``show_ignored`` is true, then all the files that aren't + included in package data are shown on stderr (for debugging + purposes). + + Note patterns use wildcards, or can be exact paths (including + leading ``./``), and all searching is case-insensitive. + """ + + out = {} + stack = [(str(Path(where)), "", package, only_in_packages)] + while stack: + where, prefix, package, only_in_packages = stack.pop(0) + for name in os.listdir(where): + fn = os.path.join(where, name) + if os.path.isdir(fn): + bad_name = False + for pattern in exclude_directories: + if fnmatchcase(name, pattern) or fn.lower() == pattern.lower(): + bad_name = True + if show_ignored: + print( + "Directory %s ignored by pattern %s" % (fn, pattern), + file=sys.stderr, + ) + break + if bad_name: + continue + if os.path.isfile(os.path.join(fn, "__init__.py")) and not prefix: + if not package: + new_package = name + else: + new_package = package + "." + name + stack.append((fn, "", new_package, False)) + else: + stack.append((fn, prefix + name + "/", package, only_in_packages)) + elif package or not only_in_packages: + # is a file + bad_name = False + for pattern in exclude: + if fnmatchcase(name, pattern) or fn.lower() == pattern.lower(): + bad_name = True + if show_ignored: + print( + "File %s ignored by pattern %s" % (fn, pattern), + file=sys.stderr, + ) + break + if bad_name: + continue + out.setdefault(package, []).append(prefix + name) + return out + + +setup( + name="django_compressor", + version=find_version("compressor", "__init__.py"), + url="https://django-compressor.readthedocs.io/en/latest/", + project_urls={ + "Source": "https://github.com/django-compressor/django-compressor", + }, + license="MIT", + description=( + "Compresses linked and inline JavaScript or CSS into single cached files.", + ), + long_description=read("README.rst"), + maintainer="Mathieu Pillard", + packages=find_packages(), + package_data=find_package_data(), + classifiers=[ + "Development Status :: 5 - Production/Stable", + "Framework :: Django", + "Framework :: Django :: 4.2", + "Framework :: Django :: 5.0", + "Framework :: Django :: 5.1", + "Framework :: Django :: 5.2", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Topic :: Internet :: WWW/HTTP", + ], + zip_safe=False, + python_requires=">=3.10", + install_requires=[ + "Django >= 4.2", + "django-appconf >= 1.0.3", + "rcssmin >= 1.2.1", + "rjsmin >= 1.2.4", + ], +)