From nobody Sun Apr 30 18:43:14 2023 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Q8Zwg2X69z488sP; Sun, 30 Apr 2023 18:43:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Q8Zwg0Qtgz3tBJ; Sun, 30 Apr 2023 18:43:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1682880195; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=smd/dRFFZAWFIQXbFh0dPMTNYdu77+L1nMFlOoBi9Lg=; b=JL4jpE5nGT8rcBvKGdzR7SOO0pGdTgfzRx+rFSlrjLdaQKNH0qDCOF5YiamtaCnWzVwKFN YkN1UCHG+K3UdxnSRBQJW0mphJlDpxG7/FBi2pf7uAFTAztEyBPk9uTeViZEnu0d6YX1Sb XFSeQouIXWPKq+Czorc+hacX/qD6ELBkCgstgTIxewD/OEzgwK9S6vWlEBGc8FJY6RxIuq qBRup27x0jXVUHFLI/t+GFUFTXgYIgMoKFik76I3QhYxzUt6SJzeJAlIKX1LnuKwX9zxHQ MbsXazgX1lKrKiV8bsfh+6jFrvrpQLO9OvtrRaCgOTKmAOK3sXsVpp/97KHQMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1682880195; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=smd/dRFFZAWFIQXbFh0dPMTNYdu77+L1nMFlOoBi9Lg=; b=ZOfA8ThvKCGbv6HClDYxnzIJQWvBNNNn0M/OQ8uG8L9d8ZA0lYgEotyv8U5ZJnAhJRL2eZ U5zWirndehbopoH1Zl9PEdoGLDGpUVqi9JloGeeXzQYPdCs36CCz4Ra/pETW/v7/rkw2q7 5F5Zx6nf9lEYqgRWWRUPHPZUyist3a1bwqylofIf/gf4GlushzK96wnsJfc1tbASsvG8ts m/mdObKCwlrreK09Vf7CV5WYtbc3stx0y61ZoYxdI9Vv/G86A/VtNAc6scradxlWP4Rc+m 0CmtL13B01KuOzurdRdIxeKj30t6k5M7yei8GTLZlJfEDBTpiauE9Igq6H4i8A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1682880195; a=rsa-sha256; cv=none; b=YC5yQgoF+GC85AdeVhPeCSHI1+pUlpr9OMWg4zOmshLrquQc9sEsDj/NX7iJ2iNTpeVDhw 6h8X2fUNOcNsxFemPMWBkK8wFMwWanqoA3IDrR2BvAVT2hodppufe4jnU+7wklbSCSPjCt 10BPSqVQLdZEVhzS6LkQU4yzk4NnBGA6j6+8B2GQvEUB07Mg9ZiqvR+8EDKsrz7qHVRQgW EFs+sjzSY7esL7ZJhAngUyeSZC4WwoMABs2N11SwdCBcKKuDN8uprH//6hQ9ZsXYc6DhoD n9iJS6RvKveJ4pA1LaE5V4hnQWWD8x+MFdcrlL39wpTljJp4g0F4pUnU9sXupg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Q8Zwf6Kr6zZP1; Sun, 30 Apr 2023 18:43:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 33UIhE0p043774; Sun, 30 Apr 2023 18:43:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 33UIhEIg043773; Sun, 30 Apr 2023 18:43:14 GMT (envelope-from git) Date: Sun, 30 Apr 2023 18:43:14 GMT Message-Id: <202304301843.33UIhEIg043773@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Robert Clausecker Subject: git: 4dc6444322ea - main - archivers/py-zipstream-ng: New port: streamable zip file generator List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fuz X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4dc6444322ea7e531a3c2bfbc87911295daff4ec Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by fuz: URL: https://cgit.FreeBSD.org/ports/commit/?id=4dc6444322ea7e531a3c2bfbc87911295daff4ec commit 4dc6444322ea7e531a3c2bfbc87911295daff4ec Author: Jesús Daniel Colmenares Oviedo AuthorDate: 2023-04-10 23:33:30 +0000 Commit: Robert Clausecker CommitDate: 2023-04-30 18:41:44 +0000 archivers/py-zipstream-ng: New port: streamable zip file generator zipstream-ng is a modern and easy to use streamable zip file generator. It can package and stream many files and folders on the fly without needing temporary files or excessive memory. Includes the ability to calculate the total size of the stream before any data is actually added (provided no compression is used). This makes it ideal for use in web applications since the total size can be used to set the `Content-Length` header without having to generate the entire file first. Features: * Generates zip data on the fly as it's requested. * Can calculate the total size of the resulting zip file before generation even begins. * Flexible API: Typical use cases are simple, complicated ones are possible. * Supports zipping data from files, bytes, strings, and any other iterable objects. * Threadsafe: Won't mangle data if multiple threads concurrently add/read data to/from the same stream. * Includes a clone of Python's `http.server` module with zip support added. Try `python -m zipstream.server`. * Automatically uses Zip64 extensions, but only if they are required. * No external dependencies. WWW: https://github.com/pR0Ps/zipstream-ng/ PR: 270750 --- archivers/Makefile | 1 + archivers/py-zipstream-ng/Makefile | 19 +++++++++++++++++++ archivers/py-zipstream-ng/distinfo | 3 +++ archivers/py-zipstream-ng/pkg-descr | 23 +++++++++++++++++++++++ 4 files changed, 46 insertions(+) diff --git a/archivers/Makefile b/archivers/Makefile index 681b33f78d51..f76683b042aa 100644 --- a/archivers/Makefile +++ b/archivers/Makefile @@ -204,6 +204,7 @@ SUBDIR += py-sozipfile SUBDIR += py-warctools SUBDIR += py-xopen + SUBDIR += py-zipstream-ng SUBDIR += py-zopfli SUBDIR += py-zstandard SUBDIR += py-zstd diff --git a/archivers/py-zipstream-ng/Makefile b/archivers/py-zipstream-ng/Makefile new file mode 100644 index 000000000000..51e4dddb1b6e --- /dev/null +++ b/archivers/py-zipstream-ng/Makefile @@ -0,0 +1,19 @@ +PORTNAME= zipstream-ng +DISTVERSION= 1.5.0 +CATEGORIES= archivers python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= DtxdF@disroot.org +COMMENT= Modern and easy to use streamable zip file generator +WWW= https://github.com/pR0Ps/zipstream-ng/ + +LICENSE= LGPL3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-cov>0:devel/py-pytest-cov@${PY_FLAVOR} + +USES= python:3.5+ +USE_PYTHON= autoplist distutils pytest + +.include diff --git a/archivers/py-zipstream-ng/distinfo b/archivers/py-zipstream-ng/distinfo new file mode 100644 index 000000000000..d8566f790f37 --- /dev/null +++ b/archivers/py-zipstream-ng/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1680566521 +SHA256 (zipstream-ng-1.5.0.tar.gz) = ff02b1dac4ef8b4acba70a2c986991e9acd4cfab9c6fa966da9133f0a7015863 +SIZE (zipstream-ng-1.5.0.tar.gz) = 32399 diff --git a/archivers/py-zipstream-ng/pkg-descr b/archivers/py-zipstream-ng/pkg-descr new file mode 100644 index 000000000000..162071cbf7c9 --- /dev/null +++ b/archivers/py-zipstream-ng/pkg-descr @@ -0,0 +1,23 @@ +zipstream-ng is a modern and easy to use streamable zip file +generator. It can package and stream many files and folders on the +fly without needing temporary files or excessive memory. + +Includes the ability to calculate the total size of the stream +before any data is actually added (provided no compression is used). +This makes it ideal for use in web applications since the total +size can be used to set the `Content-Length` header without having +to generate the entire file first. + +Features: + * Generates zip data on the fly as it's requested. + * Can calculate the total size of the resulting zip file before generation even + begins. + * Flexible API: Typical use cases are simple, complicated ones are possible. + * Supports zipping data from files, bytes, strings, and any other iterable + objects. + * Threadsafe: Won't mangle data if multiple threads concurrently add/read data + to/from the same stream. + * Includes a clone of Python's `http.server` module with zip support added. + Try `python -m zipstream.server`. + * Automatically uses Zip64 extensions, but only if they are required. + * No external dependencies.