GNU bug report logs - #48514
[PATCH] gnu: Add python-domain-connect-dyndns.

Previous Next

Package: guix-patches;

Reported by: Mekeor Melire <mekeor <at> posteo.de>

Date: Wed, 19 May 2021 02:45:02 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 48514 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#48514; Package guix-patches. (Wed, 19 May 2021 02:45:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mekeor Melire <mekeor <at> posteo.de>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Wed, 19 May 2021 02:45:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Mekeor Melire <mekeor <at> posteo.de>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add python-domain-connect-dyndns.
Date: Wed, 19 May 2021 02:19:17 +0000
[Message part 1 (text/plain, inline)]
Hello Guix!

It's been long time since my last contribution. (Namely, almost 4
years!) But now I got three little package declarations for you, which
can be used to update DNS records of domains from certain
domain-providers. For example, I'm using a well known, pretty common
German domain-provider and found this python-script to be most
comfortable to use. It is based on a new, open standard, called "Domain
Connect", developed, used and supported by many common DNS/domain
providers (see <https://www.domainconnect.org/dns-providers/>). That was
just to argue why I think these packages have a value for the public
(and not just my private self).

See you
Mekeor

[0001-gnu-Add-python-domain-connect-dyndns.patch (text/x-patch, inline)]
From 488d77b3a6542598264ba964a723cf2c7d6e646f Mon Sep 17 00:00:00 2001
From: Mekeor Melire <mekeor <at> posteo.de>
Date: Wed, 19 May 2021 03:45:08 +0200
Subject: [PATCH] gnu: Add python-domain-connect-dyndns.

* gnu/packages/python-web.scm (python-publicsuffixlist, python-domain-connect,
python-domain-connect-dyndns): New variables.
---
 gnu/packages/python-web.scm | 103 ++++++++++++++++++++++++++++++++++++
 1 file changed, 103 insertions(+)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index b7411d21fa..41c8971c8c 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -42,6 +42,7 @@
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul <at> autistici.org>
 ;;; Copyright © 2021 Ekaitz Zarraga <ekaitz <at> elenq.tech>
 ;;; Copyright © 2021 Greg Hogan <code <at> greghogan.com>
+;;; Copyright © 2021 Mekeor Melire <mekeor <at> posteo.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4066,6 +4067,108 @@ List.  Forked from and using the same API as the publicsuffix package.")
 (define-public python2-publicsuffix2
   (package-with-python2 python-publicsuffix2))
 
+(define-public python-publicsuffixlist
+  (package
+    (name "python-publicsuffixlist")
+    (version "0.7.7")
+    (home-page "https://github.com/ko-zu/psl")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit "bff8d6a87b6bd3f6894e9211a9ee3c995ccfdcfc")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "1nzvw6n702y1v1z5b62lv2rnlqjr3hjpal2750sg8s713fxvxlzz"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))
+    (synopsis "Parse the Public Suffix List")
+    (description "Parse and use a given list of public suffix domains.")
+    (license license:mpl2.0)))
+
+(define-public python-domain-connect
+  (package
+    (name "python-domain-connect")
+    (version "0.0.9")
+    (home-page "https://github.com/Domain-Connect/domainconnect_python")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "1xji0svamw961c7zgs1453cw2b9w94mk5qrfvqyb592l6yhmmm62"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'only-single-number-versions
+           (lambda _
+             (substitute* '("setup.py" "requirements.txt")
+               (("(.*)([0-9]+)\\.[0-9]+\\.[0-9]+(.*)" all begin number end)
+                (string-append begin number end "\n"))))))))
+    (propagated-inputs
+     `(("python-cffi" ,python-cffi)
+       ("python-cryptography" ,python-cryptography)
+       ("python-dnspython" ,python-dnspython)
+       ("python-future" ,python-future)
+       ("python-publicsuffix" ,python-publicsuffix)
+       ("python-publicsuffixlist" ,python-publicsuffixlist)
+       ("python-pycparser" ,python-pycparser)
+       ("python-six" ,python-six)))
+    (synopsis "Update DNS record of a domain per Domain Connect standard")
+    (description "This library provides \"Domain Connect\" for Python, which
+can be used to update DNS records of domains.")
+    (license license:expat)))
+
+(define-public python-domain-connect-dyndns
+  (package
+    (name "python-domain-connect-dyndns")
+    (version "0.0.9")
+    (home-page "https://github.com/Domain-Connect/DomainConnectDDNS-Python")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url home-page)
+          (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "024wxhfifl14j8s973lg6ls6s80grf9sm417kd2rpy1a90p89dnk"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'only-single-number-versions
+           (lambda _
+             (substitute* '("setup.py" "requirements.txt")
+               (("(.*)([0-9]+)\\.[0-9]+\\.[0-9]+(.*)" all begin number end)
+                (string-append begin number end "\n"))))))))
+    (propagated-inputs
+     `(("python-certifi" ,python-certifi)
+       ("python-cffi" ,python-cffi)
+       ("python-chardet" ,python-chardet)
+       ("python-cryptography" ,python-cryptography)
+       ("python-dnspython" ,python-dnspython)
+       ("python-domain-connect" ,python-domain-connect)
+       ("python-future" ,python-future)
+       ("python-idna" ,python-idna)
+       ("python-publicsuffix" ,python-publicsuffix)
+       ("python-pycparser" ,python-pycparser)
+       ("python-requests" ,python-requests)
+       ("python-six" ,python-six)
+       ("python-urllib3" ,python-urllib3)
+       ("python-validators" ,python-validators)))
+    (synopsis "Update DNS record of a domain per Domain Connect standard")
+    (description "This package provides a client for the open standard
+\"Domain Connect\" which can be used to update DNS records of domains.")
+    (license license:expat)))
+
 (define-public python-werkzeug
   (package
     (name "python-werkzeug")
-- 
2.30.2


Information forwarded to guix-patches <at> gnu.org:
bug#48514; Package guix-patches. (Sun, 23 May 2021 07:35:01 GMT) Full text and rfc822 format available.

Message #8 received at 48514 <at> debbugs.gnu.org (full text, mbox):

From: Xinglu Chen <public <at> yoctocell.xyz>
To: Mekeor Melire <mekeor <at> posteo.de>, 48514 <at> debbugs.gnu.org
Subject: Re: [bug#48514] [PATCH] gnu: Add python-domain-connect-dyndns.
Date: Sun, 23 May 2021 09:34:01 +0200
[Message part 1 (text/plain, inline)]
On Wed, May 19 2021, Mekeor Melire wrote:

> From 488d77b3a6542598264ba964a723cf2c7d6e646f Mon Sep 17 00:00:00 2001
> From: Mekeor Melire <mekeor <at> posteo.de>
> Date: Wed, 19 May 2021 03:45:08 +0200
> Subject: [PATCH] gnu: Add python-domain-connect-dyndns.
>
> * gnu/packages/python-web.scm (python-publicsuffixlist, python-domain-connect,
> python-domain-connect-dyndns): New variables.

This should be split into three separate commits, you can use the
etc/committer.scm script to automatically create commits for unstaged
changes.

> +(define-public python-publicsuffixlist
> +  (package
> +    (name "python-publicsuffixlist")
> +    (version "0.7.7")
> +    (home-page "https://github.com/ko-zu/psl")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url home-page)
> +                    (commit "bff8d6a87b6bd3f6894e9211a9ee3c995ccfdcfc")))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32 "1nzvw6n702y1v1z5b62lv2rnlqjr3hjpal2750sg8s713fxvxlzz"))))
> +    (build-system python-build-system)
> +    (arguments
> +     `(#:tests? #f))

What’s the reason for disabling the tests?

> +    (synopsis "Parse the Public Suffix List")
> +    (description "Parse and use a given list of public suffix domains.")

The description should contain one or more full sentences.

> +    (license license:mpl2.0)))
> +
> +(define-public python-domain-connect
> +  (package
> +    (name "python-domain-connect")
> +    (version "0.0.9")
> +    (home-page "https://github.com/Domain-Connect/domainconnect_python")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url home-page)
> +                    (commit (string-append "v" version))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32 "1xji0svamw961c7zgs1453cw2b9w94mk5qrfvqyb592l6yhmmm62"))))
> +    (build-system python-build-system)
> +    (arguments
> +     `(#:tests? #f

Same as above (why are tests disabled?).

> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'only-single-number-versions
> +           (lambda _
> +             (substitute* '("setup.py" "requirements.txt")
> +               (("(.*)([0-9]+)\\.[0-9]+\\.[0-9]+(.*)" all begin number end)
> +                (string-append begin number end "\n"))))))))

Is the newline necessary?

> +    (propagated-inputs
> +     `(("python-cffi" ,python-cffi)
> +       ("python-cryptography" ,python-cryptography)
> +       ("python-dnspython" ,python-dnspython)
> +       ("python-future" ,python-future)
> +       ("python-publicsuffix" ,python-publicsuffix)
> +       ("python-publicsuffixlist" ,python-publicsuffixlist)
> +       ("python-pycparser" ,python-pycparser)
> +       ("python-six" ,python-six)))
> +    (synopsis "Update DNS record of a domain per Domain Connect standard")
> +    (description "This library provides \"Domain Connect\" for Python, which
> +can be used to update DNS records of domains.")
> +    (license license:expat)))
> +
> +(define-public python-domain-connect-dyndns
> +  (package
> +    (name "python-domain-connect-dyndns")
> +    (version "0.0.9")
> +    (home-page "https://github.com/Domain-Connect/DomainConnectDDNS-Python")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri
> +        (git-reference
> +         (url home-page)
> +          (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "024wxhfifl14j8s973lg6ls6s80grf9sm417kd2rpy1a90p89dnk"))))
> +    (build-system python-build-system)
> +    (arguments
> +     `(#:tests? #f

Same as the comment for python-domain-connect.

> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'only-single-number-versions
> +           (lambda _
> +             (substitute* '("setup.py" "requirements.txt")
> +               (("(.*)([0-9]+)\\.[0-9]+\\.[0-9]+(.*)" all begin number end)
> +                (string-append begin number end "\n"))))))))

Same as the comment for python-domain-connect.

otherwise LGTM!
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#48514; Package guix-patches. (Tue, 29 Jun 2021 21:12:02 GMT) Full text and rfc822 format available.

Message #11 received at 48514 <at> debbugs.gnu.org (full text, mbox):

From: Mekeor Melire <mekeor <at> posteo.de>
To: Xinglu Chen <public <at> yoctocell.xyz>
Cc: 48514 <at> debbugs.gnu.org
Subject: Re: [bug#48514] [PATCH] gnu: Add python-domain-connect-dyndns.
Date: Tue, 29 Jun 2021 20:43:22 +0000
Hi and thank you for reviewing the patch!

2021-05-23 / 09:34 / public <at> yoctocell.xyz:

> [[PGP Signed Part:Undecided]]
> On Wed, May 19 2021, Mekeor Melire wrote:
>
>> From 488d77b3a6542598264ba964a723cf2c7d6e646f Mon Sep 17 00:00:00 2001
>> From: Mekeor Melire <mekeor <at> posteo.de>
>> Date: Wed, 19 May 2021 03:45:08 +0200
>> Subject: [PATCH] gnu: Add python-domain-connect-dyndns.
>>
>> * gnu/packages/python-web.scm (python-publicsuffixlist, python-domain-connect,
>> python-domain-connect-dyndns): New variables.
>
> This should be split into three separate commits, you can use the
> etc/committer.scm script to automatically create commits for unstaged
> changes.
>
>> +(define-public python-publicsuffixlist
>> +  (package
>> +    (name "python-publicsuffixlist")
>> +    (version "0.7.7")
>> +    (home-page "https://github.com/ko-zu/psl")
>> +    (source (origin
>> +              (method git-fetch)
>> +              (uri (git-reference
>> +                    (url home-page)
>> +                    (commit "bff8d6a87b6bd3f6894e9211a9ee3c995ccfdcfc")))
>> +              (file-name (git-file-name name version))
>> +              (sha256
>> +               (base32 "1nzvw6n702y1v1z5b62lv2rnlqjr3hjpal2750sg8s713fxvxlzz"))))
>> +    (build-system python-build-system)
>> +    (arguments
>> +     `(#:tests? #f))
>
> What’s the reason for disabling the tests?

I tried to get the tests working. But I'm not sure how to fix this
error: "ImportError: Failed to import test module: domainconnect". The
full logs are here: http://ix.io/3rvK

It probably originates in this line:

  https://github.com/Domain-Connect/domainconnect_python/blob/d5a3a2935be36a61985e0a86eab7e2a6098493d5/domainconnect/tests/test_domainConnect.py#L11

If I understand correctly, the package's tests try to import the package
itself (which makes sense). I'm not sure why it does not work though.
Any ideas?

I will get the other change-requests done after fixing the tests.

>> +    (synopsis "Parse the Public Suffix List")
>> +    (description "Parse and use a given list of public suffix domains.")
>
> The description should contain one or more full sentences.
>
>> +    (license license:mpl2.0)))
>> +
>> +(define-public python-domain-connect
>> +  (package
>> +    (name "python-domain-connect")
>> +    (version "0.0.9")
>> +    (home-page "https://github.com/Domain-Connect/domainconnect_python")
>> +    (source (origin
>> +              (method git-fetch)
>> +              (uri (git-reference
>> +                    (url home-page)
>> +                    (commit (string-append "v" version))))
>> +              (file-name (git-file-name name version))
>> +              (sha256
>> +               (base32 "1xji0svamw961c7zgs1453cw2b9w94mk5qrfvqyb592l6yhmmm62"))))
>> +    (build-system python-build-system)
>> +    (arguments
>> +     `(#:tests? #f
>
> Same as above (why are tests disabled?).
>
>> +       #:phases
>> +       (modify-phases %standard-phases
>> +         (add-after 'unpack 'only-single-number-versions
>> +           (lambda _
>> +             (substitute* '("setup.py" "requirements.txt")
>> +               (("(.*)([0-9]+)\\.[0-9]+\\.[0-9]+(.*)" all begin number end)
>> +                (string-append begin number end "\n"))))))))
>
> Is the newline necessary?
>
>> +    (propagated-inputs
>> +     `(("python-cffi" ,python-cffi)
>> +       ("python-cryptography" ,python-cryptography)
>> +       ("python-dnspython" ,python-dnspython)
>> +       ("python-future" ,python-future)
>> +       ("python-publicsuffix" ,python-publicsuffix)
>> +       ("python-publicsuffixlist" ,python-publicsuffixlist)
>> +       ("python-pycparser" ,python-pycparser)
>> +       ("python-six" ,python-six)))
>> +    (synopsis "Update DNS record of a domain per Domain Connect standard")
>> +    (description "This library provides \"Domain Connect\" for Python, which
>> +can be used to update DNS records of domains.")
>> +    (license license:expat)))
>> +
>> +(define-public python-domain-connect-dyndns
>> +  (package
>> +    (name "python-domain-connect-dyndns")
>> +    (version "0.0.9")
>> +    (home-page "https://github.com/Domain-Connect/DomainConnectDDNS-Python")
>> +    (source
>> +     (origin
>> +       (method git-fetch)
>> +       (uri
>> +        (git-reference
>> +         (url home-page)
>> +          (commit (string-append "v" version))))
>> +       (file-name (git-file-name name version))
>> +       (sha256
>> +        (base32 "024wxhfifl14j8s973lg6ls6s80grf9sm417kd2rpy1a90p89dnk"))))
>> +    (build-system python-build-system)
>> +    (arguments
>> +     `(#:tests? #f
>
> Same as the comment for python-domain-connect.
>
>> +       #:phases
>> +       (modify-phases %standard-phases
>> +         (add-after 'unpack 'only-single-number-versions
>> +           (lambda _
>> +             (substitute* '("setup.py" "requirements.txt")
>> +               (("(.*)([0-9]+)\\.[0-9]+\\.[0-9]+(.*)" all begin number end)
>> +                (string-append begin number end "\n"))))))))
>
> Same as the comment for python-domain-connect.
>
> otherwise LGTM!
>
> [[End of PGP Signed Part]]





This bug report was last modified 2 years and 299 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.