diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-django-thumbnails.spec | 875 | ||||
| -rw-r--r-- | sources | 1 | 
3 files changed, 877 insertions, 0 deletions
@@ -0,0 +1 @@ +/django-thumbnails-0.7.0.tar.gz diff --git a/python-django-thumbnails.spec b/python-django-thumbnails.spec new file mode 100644 index 0000000..b3537f4 --- /dev/null +++ b/python-django-thumbnails.spec @@ -0,0 +1,875 @@ +%global _empty_manifest_terminate_build 0 +Name:		python-django-thumbnails +Version:	0.7.0 +Release:	1 +Summary:	A simple Django app to manage image/photo thumbnails. Supports remote/cloud storage systems like Amazon S3. +License:	MIT +URL:		https://github.com/ui/django-thumbnails +Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/4a/3c/4e49626ba35a3d19e2df98aac96c84f098406888cae3c40259831463afed/django-thumbnails-0.7.0.tar.gz +BuildArch:	noarch + +Requires:	python3-django +Requires:	python3-da-vinci +Requires:	python3-shortuuid +Requires:	python3-pillow +Requires:	python3-redis + +%description +[](https://travis-ci.org/ui/django-thumbnails) + +Design: + +-   Uses Django Storage API +-   Uses flexible meta data store. Uses Redis as metadata store. +-   Supports creating thumbnails in different formats, for example from +    JPG to WEBP to reduce file size + +Supported image formats: + +-   JPG/JPEG +-   GIF +-   PNG +-   WEBP + +## Installation + +-   Add thumbnails to INSTALLED_APPS in settings.py. +-   Run python manage.py migrate to create database metadata backend. + +## Usage + +settings.py: + +```python +THUMBNAILS = { +    'METADATA': { +        'BACKEND': 'thumbnails.backends.metadata.DatabaseBackend', +    }, +    'STORAGE': { +        'BACKEND': 'django.core.files.storage.FileSystemStorage', +        # You can also use Amazon S3 or any other Django storage backends +    } +    'SIZES': { +        'small': { +            'PROCESSORS': [ +                {'PATH': 'thumbnails.processors.resize', 'width': 10, 'height': 10}, +                {'PATH': 'thumbnails.processors.crop', 'width': 80, 'height': 80} +            ], +            'POST_PROCESSORS': [ +                { +                    'PATH': 'thumbnails.post_processors.optimize', +                    'png_command': 'optipng -force -o7 "%(filename)s"', +                    'jpg_command': 'jpegoptim -f --strip-all "%(filename)s"', +                }, +            ], +        }, +        'large': { +            'PROCESSORS': [ +                {'PATH': 'thumbnails.processors.resize', 'width': 20, 'height': 20}, +                {'PATH': 'thumbnails.processors.flip', 'direction': 'horizontal'} +            ], +        }, +        'watermarked': { +            'PROCESSORS': [ +                {'PATH': 'thumbnails.processors.resize', 'width': 20, 'height': 20}, +                # Only supports PNG. File must be of the same size with thumbnail (20 x 20 in this case) +                {'PATH': 'thumbnails.processors.add_watermark', 'watermark_path': 'watermark.png'} +            ], +        } +    } +} +``` + +If you prefer to use Redis as your metadata storage backend (for performance reasons): + +```python +THUMBNAILS = { +    'METADATA': { +        'PREFIX': 'thumbs', +        'BACKEND': 'thumbnails.backends.metadata.RedisBackend', +        'db': 2, +        'port': 6379, +        'host': 'localhost', +    }, +} +``` + +## Image Processors + +`django-thumbnails` comes with a few builtin image processors: + +```python +    # To use the following processors, put the arguments of processors in SIZES definition +    thumbnails.processors.resize(width, height, method) ## `method` can be `stretch`, `fit` or `fill` +    thumbnails.processors.rotate(degrees) +    thumbnails.processors.flip(direction) +    thumbnails.processors.crop(width, height, center) +    thumbnails.processors.add_watermark(watermark_path) +``` + +Processors are applied sequentially in the same order of definition. + + +## Storage Backend + +New in version 0.5.0 is per field, customizable storage backend. If you want specific fields to use +a different storage backend, you can specify it directly when declaring the field. e.g: + +```python +class Food(models.Model): +    image = ImageField(storage=FileSystemStorage(), upload_to='food') +``` + +Storage that is specified on field will be used instead of storage that is specified in the settings. + + +In python: + +```python +from thumbnails.fields import ImageField + +class Food(models.Model): +    image = ImageField() + + +food = Food.objects.latest('id') +food.image.thumbnails.all() +food.image.thumbnails.small  # Generates "small" sized thumbnail +food.image.thumbnails.large  # Generates "large" sized thumbnail +food.image.thumbnails.small.url  # Returns "small" sized thumbnail URL +``` + +And here's how you'd use it in Django's template: + +```python +{{ food.image.thumbnails.small.url }}  # Returns "small" sized thumbnail URL +``` + +Use resize_source_to to resize your image while saving it: + +```python +from thumbnails.fields import ImageField + +class Food(models.Model): +    image = ImageField(resize_source_to="medium") +``` + +Assuming medium is the size that you define in the settings. By passing +medium your saved image will be resized into medium's size + +Use pregenerated_sizes to save your thumbnails into storage backend +while saving it: + +```python +from thumbnails.fields import ImageField + +class Food(models.Model): +    image = ImageField(pregenerated_sizes=["small", "large", "medium") +``` + +When deleting an image, you can opt to retain thumbnails by doing this: +``` python +banner.image.delete(with_thumbnails=False) +``` + + +## Performance + +If you need to fetch multiple thumbnails at once, use the provided `fetch_thumbnails` function +for better performance. `fetch_thumbnails` uses Redis pipeline to retrieve +thumbnail metadata in one go, avoiding multiple round trips to Redis. + +```python +from thumbnails.field import fetch_thumbnails + +food_a = Food.objects.get(id=1) +food_b = Food.objects.get(id=2) + +fetch_thumbnails([food_a.image, food_b.image], ['small', 'large']) +``` + +This way, when we get thumbnails like thumbnail1.size_small or even +thumbnail1.all() we won't query to redis anymore. This feature is +currently only available for Redis metadata Backend. + +## Management Commands + +If you changed your size definition and want to regenerate the +thumbnails, use: + +    python manage.py delete_thumbnails --model=app.Model --size=thumbnail_size_to_delete + +## Running Tests + +To run tests: + +    `which django-admin.py` test thumbnails --settings=thumbnails.tests.settings --pythonpath=. + +## Changelog + +### Version 0.7.0 (2022-01-03) + +* Compatibility with django 4.0. Thanks @yosephbernandus! +* Improved setup.py. Thanks @Le09! + +### Version 0.6.0 (2021-05-28) + +* Added support for watermarking thumbnails. Thanks @marsha97! + +### Version 0.5.0 (2021-05-1) + +* You can now pass in `storage` kwarg into `ImageField` so you can specify different storage backends for different fields. Thanks @marsha97! +* Calling `image.delete(with_thumbnails=True)` will delete original image along with all thumbnails. Thanks @marsha97! + +### Version 0.4.0 (2021-01-08) + +-   Support for Django >= 3.0. Thanks @christianciu! +-   Added `pregenerated_sizes` to ImageField to allow thumbnails to be +    pregenerated on upload. Thanks @marsha97! +-   Thumbnails can be generated in different formats (e.g: JPG source +    image to WEBP thumbnail). Thanks @yosephbernandus! + +### Version 0.3.2 + +-   Fixed another bug in `fetch_thumbnails()` bug. Thanks @marsha97! + +### Version 0.3.1 + +-   Fixed `fetch_thumbnails()` bug. Thanks @marsha97! + +### Version 0.3.0 + +-   Added `fetch_thumbnails()` command to fetch multiple thumbnail +    metadata from Redis. Thanks @marsha97! + +### Version 0.2.2 + +-   Fixed `RedisBackend.get_thumbnail()` bug that may cause excessive +    trips to Redis. Thanks @marsha97! + +### Version 0.2.1 + +-   Add support for Django 1.11, 2.0 and 2.1 + +### Version 0.2.0 + +-   Improves performance on fields that have a large number of +    thumbnails +-   Add support for Django 1.8, 1.9 and 1.10 + +### Version 0.1.3 + +-   Fixes deprecation warning in Django 1.8 + +### Version 0.1.2 + +-   Fixes deprecation warning in Django 1.8 + +### Version 0.1.1 + +-   Use +    [shortuuid](https://github.com/stochastic-technologies/shortuuid) +    instead of uuid4() to be more space efficient + +### Version 0.1.0 + +-   First public release + +As of February 2015, this library is suitable for production use and has +been used for more than a year in [Stamps](http://stamps.co.id), an +Indonesian based CRM/loyalty system. + + + + +%package -n python3-django-thumbnails +Summary:	A simple Django app to manage image/photo thumbnails. Supports remote/cloud storage systems like Amazon S3. +Provides:	python-django-thumbnails +BuildRequires:	python3-devel +BuildRequires:	python3-setuptools +BuildRequires:	python3-pip +%description -n python3-django-thumbnails +[](https://travis-ci.org/ui/django-thumbnails) + +Design: + +-   Uses Django Storage API +-   Uses flexible meta data store. Uses Redis as metadata store. +-   Supports creating thumbnails in different formats, for example from +    JPG to WEBP to reduce file size + +Supported image formats: + +-   JPG/JPEG +-   GIF +-   PNG +-   WEBP + +## Installation + +-   Add thumbnails to INSTALLED_APPS in settings.py. +-   Run python manage.py migrate to create database metadata backend. + +## Usage + +settings.py: + +```python +THUMBNAILS = { +    'METADATA': { +        'BACKEND': 'thumbnails.backends.metadata.DatabaseBackend', +    }, +    'STORAGE': { +        'BACKEND': 'django.core.files.storage.FileSystemStorage', +        # You can also use Amazon S3 or any other Django storage backends +    } +    'SIZES': { +        'small': { +            'PROCESSORS': [ +                {'PATH': 'thumbnails.processors.resize', 'width': 10, 'height': 10}, +                {'PATH': 'thumbnails.processors.crop', 'width': 80, 'height': 80} +            ], +            'POST_PROCESSORS': [ +                { +                    'PATH': 'thumbnails.post_processors.optimize', +                    'png_command': 'optipng -force -o7 "%(filename)s"', +                    'jpg_command': 'jpegoptim -f --strip-all "%(filename)s"', +                }, +            ], +        }, +        'large': { +            'PROCESSORS': [ +                {'PATH': 'thumbnails.processors.resize', 'width': 20, 'height': 20}, +                {'PATH': 'thumbnails.processors.flip', 'direction': 'horizontal'} +            ], +        }, +        'watermarked': { +            'PROCESSORS': [ +                {'PATH': 'thumbnails.processors.resize', 'width': 20, 'height': 20}, +                # Only supports PNG. File must be of the same size with thumbnail (20 x 20 in this case) +                {'PATH': 'thumbnails.processors.add_watermark', 'watermark_path': 'watermark.png'} +            ], +        } +    } +} +``` + +If you prefer to use Redis as your metadata storage backend (for performance reasons): + +```python +THUMBNAILS = { +    'METADATA': { +        'PREFIX': 'thumbs', +        'BACKEND': 'thumbnails.backends.metadata.RedisBackend', +        'db': 2, +        'port': 6379, +        'host': 'localhost', +    }, +} +``` + +## Image Processors + +`django-thumbnails` comes with a few builtin image processors: + +```python +    # To use the following processors, put the arguments of processors in SIZES definition +    thumbnails.processors.resize(width, height, method) ## `method` can be `stretch`, `fit` or `fill` +    thumbnails.processors.rotate(degrees) +    thumbnails.processors.flip(direction) +    thumbnails.processors.crop(width, height, center) +    thumbnails.processors.add_watermark(watermark_path) +``` + +Processors are applied sequentially in the same order of definition. + + +## Storage Backend + +New in version 0.5.0 is per field, customizable storage backend. If you want specific fields to use +a different storage backend, you can specify it directly when declaring the field. e.g: + +```python +class Food(models.Model): +    image = ImageField(storage=FileSystemStorage(), upload_to='food') +``` + +Storage that is specified on field will be used instead of storage that is specified in the settings. + + +In python: + +```python +from thumbnails.fields import ImageField + +class Food(models.Model): +    image = ImageField() + + +food = Food.objects.latest('id') +food.image.thumbnails.all() +food.image.thumbnails.small  # Generates "small" sized thumbnail +food.image.thumbnails.large  # Generates "large" sized thumbnail +food.image.thumbnails.small.url  # Returns "small" sized thumbnail URL +``` + +And here's how you'd use it in Django's template: + +```python +{{ food.image.thumbnails.small.url }}  # Returns "small" sized thumbnail URL +``` + +Use resize_source_to to resize your image while saving it: + +```python +from thumbnails.fields import ImageField + +class Food(models.Model): +    image = ImageField(resize_source_to="medium") +``` + +Assuming medium is the size that you define in the settings. By passing +medium your saved image will be resized into medium's size + +Use pregenerated_sizes to save your thumbnails into storage backend +while saving it: + +```python +from thumbnails.fields import ImageField + +class Food(models.Model): +    image = ImageField(pregenerated_sizes=["small", "large", "medium") +``` + +When deleting an image, you can opt to retain thumbnails by doing this: +``` python +banner.image.delete(with_thumbnails=False) +``` + + +## Performance + +If you need to fetch multiple thumbnails at once, use the provided `fetch_thumbnails` function +for better performance. `fetch_thumbnails` uses Redis pipeline to retrieve +thumbnail metadata in one go, avoiding multiple round trips to Redis. + +```python +from thumbnails.field import fetch_thumbnails + +food_a = Food.objects.get(id=1) +food_b = Food.objects.get(id=2) + +fetch_thumbnails([food_a.image, food_b.image], ['small', 'large']) +``` + +This way, when we get thumbnails like thumbnail1.size_small or even +thumbnail1.all() we won't query to redis anymore. This feature is +currently only available for Redis metadata Backend. + +## Management Commands + +If you changed your size definition and want to regenerate the +thumbnails, use: + +    python manage.py delete_thumbnails --model=app.Model --size=thumbnail_size_to_delete + +## Running Tests + +To run tests: + +    `which django-admin.py` test thumbnails --settings=thumbnails.tests.settings --pythonpath=. + +## Changelog + +### Version 0.7.0 (2022-01-03) + +* Compatibility with django 4.0. Thanks @yosephbernandus! +* Improved setup.py. Thanks @Le09! + +### Version 0.6.0 (2021-05-28) + +* Added support for watermarking thumbnails. Thanks @marsha97! + +### Version 0.5.0 (2021-05-1) + +* You can now pass in `storage` kwarg into `ImageField` so you can specify different storage backends for different fields. Thanks @marsha97! +* Calling `image.delete(with_thumbnails=True)` will delete original image along with all thumbnails. Thanks @marsha97! + +### Version 0.4.0 (2021-01-08) + +-   Support for Django >= 3.0. Thanks @christianciu! +-   Added `pregenerated_sizes` to ImageField to allow thumbnails to be +    pregenerated on upload. Thanks @marsha97! +-   Thumbnails can be generated in different formats (e.g: JPG source +    image to WEBP thumbnail). Thanks @yosephbernandus! + +### Version 0.3.2 + +-   Fixed another bug in `fetch_thumbnails()` bug. Thanks @marsha97! + +### Version 0.3.1 + +-   Fixed `fetch_thumbnails()` bug. Thanks @marsha97! + +### Version 0.3.0 + +-   Added `fetch_thumbnails()` command to fetch multiple thumbnail +    metadata from Redis. Thanks @marsha97! + +### Version 0.2.2 + +-   Fixed `RedisBackend.get_thumbnail()` bug that may cause excessive +    trips to Redis. Thanks @marsha97! + +### Version 0.2.1 + +-   Add support for Django 1.11, 2.0 and 2.1 + +### Version 0.2.0 + +-   Improves performance on fields that have a large number of +    thumbnails +-   Add support for Django 1.8, 1.9 and 1.10 + +### Version 0.1.3 + +-   Fixes deprecation warning in Django 1.8 + +### Version 0.1.2 + +-   Fixes deprecation warning in Django 1.8 + +### Version 0.1.1 + +-   Use +    [shortuuid](https://github.com/stochastic-technologies/shortuuid) +    instead of uuid4() to be more space efficient + +### Version 0.1.0 + +-   First public release + +As of February 2015, this library is suitable for production use and has +been used for more than a year in [Stamps](http://stamps.co.id), an +Indonesian based CRM/loyalty system. + + + + +%package help +Summary:	Development documents and examples for django-thumbnails +Provides:	python3-django-thumbnails-doc +%description help +[](https://travis-ci.org/ui/django-thumbnails) + +Design: + +-   Uses Django Storage API +-   Uses flexible meta data store. Uses Redis as metadata store. +-   Supports creating thumbnails in different formats, for example from +    JPG to WEBP to reduce file size + +Supported image formats: + +-   JPG/JPEG +-   GIF +-   PNG +-   WEBP + +## Installation + +-   Add thumbnails to INSTALLED_APPS in settings.py. +-   Run python manage.py migrate to create database metadata backend. + +## Usage + +settings.py: + +```python +THUMBNAILS = { +    'METADATA': { +        'BACKEND': 'thumbnails.backends.metadata.DatabaseBackend', +    }, +    'STORAGE': { +        'BACKEND': 'django.core.files.storage.FileSystemStorage', +        # You can also use Amazon S3 or any other Django storage backends +    } +    'SIZES': { +        'small': { +            'PROCESSORS': [ +                {'PATH': 'thumbnails.processors.resize', 'width': 10, 'height': 10}, +                {'PATH': 'thumbnails.processors.crop', 'width': 80, 'height': 80} +            ], +            'POST_PROCESSORS': [ +                { +                    'PATH': 'thumbnails.post_processors.optimize', +                    'png_command': 'optipng -force -o7 "%(filename)s"', +                    'jpg_command': 'jpegoptim -f --strip-all "%(filename)s"', +                }, +            ], +        }, +        'large': { +            'PROCESSORS': [ +                {'PATH': 'thumbnails.processors.resize', 'width': 20, 'height': 20}, +                {'PATH': 'thumbnails.processors.flip', 'direction': 'horizontal'} +            ], +        }, +        'watermarked': { +            'PROCESSORS': [ +                {'PATH': 'thumbnails.processors.resize', 'width': 20, 'height': 20}, +                # Only supports PNG. File must be of the same size with thumbnail (20 x 20 in this case) +                {'PATH': 'thumbnails.processors.add_watermark', 'watermark_path': 'watermark.png'} +            ], +        } +    } +} +``` + +If you prefer to use Redis as your metadata storage backend (for performance reasons): + +```python +THUMBNAILS = { +    'METADATA': { +        'PREFIX': 'thumbs', +        'BACKEND': 'thumbnails.backends.metadata.RedisBackend', +        'db': 2, +        'port': 6379, +        'host': 'localhost', +    }, +} +``` + +## Image Processors + +`django-thumbnails` comes with a few builtin image processors: + +```python +    # To use the following processors, put the arguments of processors in SIZES definition +    thumbnails.processors.resize(width, height, method) ## `method` can be `stretch`, `fit` or `fill` +    thumbnails.processors.rotate(degrees) +    thumbnails.processors.flip(direction) +    thumbnails.processors.crop(width, height, center) +    thumbnails.processors.add_watermark(watermark_path) +``` + +Processors are applied sequentially in the same order of definition. + + +## Storage Backend + +New in version 0.5.0 is per field, customizable storage backend. If you want specific fields to use +a different storage backend, you can specify it directly when declaring the field. e.g: + +```python +class Food(models.Model): +    image = ImageField(storage=FileSystemStorage(), upload_to='food') +``` + +Storage that is specified on field will be used instead of storage that is specified in the settings. + + +In python: + +```python +from thumbnails.fields import ImageField + +class Food(models.Model): +    image = ImageField() + + +food = Food.objects.latest('id') +food.image.thumbnails.all() +food.image.thumbnails.small  # Generates "small" sized thumbnail +food.image.thumbnails.large  # Generates "large" sized thumbnail +food.image.thumbnails.small.url  # Returns "small" sized thumbnail URL +``` + +And here's how you'd use it in Django's template: + +```python +{{ food.image.thumbnails.small.url }}  # Returns "small" sized thumbnail URL +``` + +Use resize_source_to to resize your image while saving it: + +```python +from thumbnails.fields import ImageField + +class Food(models.Model): +    image = ImageField(resize_source_to="medium") +``` + +Assuming medium is the size that you define in the settings. By passing +medium your saved image will be resized into medium's size + +Use pregenerated_sizes to save your thumbnails into storage backend +while saving it: + +```python +from thumbnails.fields import ImageField + +class Food(models.Model): +    image = ImageField(pregenerated_sizes=["small", "large", "medium") +``` + +When deleting an image, you can opt to retain thumbnails by doing this: +``` python +banner.image.delete(with_thumbnails=False) +``` + + +## Performance + +If you need to fetch multiple thumbnails at once, use the provided `fetch_thumbnails` function +for better performance. `fetch_thumbnails` uses Redis pipeline to retrieve +thumbnail metadata in one go, avoiding multiple round trips to Redis. + +```python +from thumbnails.field import fetch_thumbnails + +food_a = Food.objects.get(id=1) +food_b = Food.objects.get(id=2) + +fetch_thumbnails([food_a.image, food_b.image], ['small', 'large']) +``` + +This way, when we get thumbnails like thumbnail1.size_small or even +thumbnail1.all() we won't query to redis anymore. This feature is +currently only available for Redis metadata Backend. + +## Management Commands + +If you changed your size definition and want to regenerate the +thumbnails, use: + +    python manage.py delete_thumbnails --model=app.Model --size=thumbnail_size_to_delete + +## Running Tests + +To run tests: + +    `which django-admin.py` test thumbnails --settings=thumbnails.tests.settings --pythonpath=. + +## Changelog + +### Version 0.7.0 (2022-01-03) + +* Compatibility with django 4.0. Thanks @yosephbernandus! +* Improved setup.py. Thanks @Le09! + +### Version 0.6.0 (2021-05-28) + +* Added support for watermarking thumbnails. Thanks @marsha97! + +### Version 0.5.0 (2021-05-1) + +* You can now pass in `storage` kwarg into `ImageField` so you can specify different storage backends for different fields. Thanks @marsha97! +* Calling `image.delete(with_thumbnails=True)` will delete original image along with all thumbnails. Thanks @marsha97! + +### Version 0.4.0 (2021-01-08) + +-   Support for Django >= 3.0. Thanks @christianciu! +-   Added `pregenerated_sizes` to ImageField to allow thumbnails to be +    pregenerated on upload. Thanks @marsha97! +-   Thumbnails can be generated in different formats (e.g: JPG source +    image to WEBP thumbnail). Thanks @yosephbernandus! + +### Version 0.3.2 + +-   Fixed another bug in `fetch_thumbnails()` bug. Thanks @marsha97! + +### Version 0.3.1 + +-   Fixed `fetch_thumbnails()` bug. Thanks @marsha97! + +### Version 0.3.0 + +-   Added `fetch_thumbnails()` command to fetch multiple thumbnail +    metadata from Redis. Thanks @marsha97! + +### Version 0.2.2 + +-   Fixed `RedisBackend.get_thumbnail()` bug that may cause excessive +    trips to Redis. Thanks @marsha97! + +### Version 0.2.1 + +-   Add support for Django 1.11, 2.0 and 2.1 + +### Version 0.2.0 + +-   Improves performance on fields that have a large number of +    thumbnails +-   Add support for Django 1.8, 1.9 and 1.10 + +### Version 0.1.3 + +-   Fixes deprecation warning in Django 1.8 + +### Version 0.1.2 + +-   Fixes deprecation warning in Django 1.8 + +### Version 0.1.1 + +-   Use +    [shortuuid](https://github.com/stochastic-technologies/shortuuid) +    instead of uuid4() to be more space efficient + +### Version 0.1.0 + +-   First public release + +As of February 2015, this library is suitable for production use and has +been used for more than a year in [Stamps](http://stamps.co.id), an +Indonesian based CRM/loyalty system. + + + + +%prep +%autosetup -n django-thumbnails-0.7.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then +	find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then +	find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then +	find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then +	find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then +	find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-django-thumbnails -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.7.0-1 +- Package Spec generated @@ -0,0 +1 @@ +b155a8075b99e5f44d3cc936a433260b  django-thumbnails-0.7.0.tar.gz  | 
