From c63dc811bdf235bacebe4d266df75c79c20d9b94 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Sat, 8 Jun 2024 01:28:29 +0200 Subject: [PATCH 01/15] 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 02/15] 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 03/15] 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 04/15] 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 05/15] 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 06/15] 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 07/15] 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 08/15] 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 09/15] 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 10/15] 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 11/15] 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 12/15] 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 13/15] 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 14/15] 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 15/15] 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", + ], +)