mirror of
https://github.com/CHN-beta/nixpkgs.git
synced 2026-01-11 18:32:23 +08:00
python312Packages.pgpy: fix build (#368110)
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
buildPythonPackage,
|
||||
setuptools,
|
||||
pyasn1,
|
||||
fetchpatch,
|
||||
cryptography,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
@@ -15,7 +16,7 @@ buildPythonPackage rec {
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
format = "pyproject";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SecurityInnovation";
|
||||
@@ -24,24 +25,35 @@ buildPythonPackage rec {
|
||||
hash = "sha256-47YiHNxmjyCOYHHUV3Zyhs3Att9HZtCXYfbN34ooTxU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
build-system = [ setuptools ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
pyasn1
|
||||
cryptography
|
||||
];
|
||||
|
||||
patches = [
|
||||
# https://github.com/SecurityInnovation/PGPy/issues/462
|
||||
./pr-443.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# https://github.com/SecurityInnovation/PGPy/issues/472
|
||||
substituteInPlace tests/test_10_exceptions.py \
|
||||
--replace-fail ", 512" ", 1024" # We need longer test key because pgp deprecated length=512
|
||||
'';
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://github.com/SecurityInnovation/PGPy";
|
||||
description = "Pretty Good Privacy for Python";
|
||||
longDescription = ''
|
||||
PGPy is a Python library for implementing Pretty Good Privacy into Python
|
||||
programs, conforming to the OpenPGP specification per RFC 4880.
|
||||
'';
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [
|
||||
eadwu
|
||||
dotlambda
|
||||
];
|
||||
|
||||
45
pkgs/development/python-modules/pgpy/pr-443.patch
Normal file
45
pkgs/development/python-modules/pgpy/pr-443.patch
Normal file
@@ -0,0 +1,45 @@
|
||||
From 221a1f15a42f3ef76ccafcddf66b7c4ade391bff Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Sat, 11 Feb 2023 12:17:00 -0500
|
||||
Subject: [PATCH] drop use of imghdr
|
||||
|
||||
imghdr is deprecated and will be removed in python 3.13 (see https://peps.python.org/pep-0594/#imghdr)
|
||||
|
||||
The relevant code in imghdr is just:
|
||||
|
||||
```
|
||||
def test_jpeg(h, f):
|
||||
"""JPEG data with JFIF or Exif markers; and raw JPEG"""
|
||||
if h[6:10] in (b'JFIF', b'Exif'):
|
||||
return 'jpeg'
|
||||
elif h[:4] == b'\xff\xd8\xff\xdb':
|
||||
return 'jpeg'
|
||||
```
|
||||
|
||||
So we transplant it directly
|
||||
---
|
||||
pgpy/constants.py | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/pgpy/constants.py b/pgpy/constants.py
|
||||
index 28a4561a..983916d4 100644
|
||||
--- a/pgpy/constants.py
|
||||
+++ b/pgpy/constants.py
|
||||
@@ -2,7 +2,6 @@
|
||||
"""
|
||||
import bz2
|
||||
import hashlib
|
||||
-import imghdr
|
||||
import os
|
||||
import zlib
|
||||
import warnings
|
||||
@@ -429,8 +428,7 @@ class ImageEncoding(IntEnum):
|
||||
|
||||
@classmethod
|
||||
def encodingof(cls, imagebytes):
|
||||
- type = imghdr.what(None, h=imagebytes)
|
||||
- if type == 'jpeg':
|
||||
+ if imagebytes[6:10] in (b'JFIF', b'Exif') or imagebytes[:4] == b'\xff\xd8\xff\xdb':
|
||||
return ImageEncoding.JPEG
|
||||
return ImageEncoding.Unknown # pragma: no cover
|
||||
|
||||
Reference in New Issue
Block a user