diff mbox series

[bug#48514] gnu: Add python-domain-connect-dyndns.

Message ID 87bl97lb2y.fsf@posteo.de
State New
Headers show
Series [bug#48514] gnu: Add python-domain-connect-dyndns. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Mekeor Melire May 19, 2021, 2:19 a.m. UTC
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

Comments

Xinglu Chen May 23, 2021, 7:34 a.m. UTC | #1
On Wed, May 19 2021, Mekeor Melire wrote:

> From 488d77b3a6542598264ba964a723cf2c7d6e646f Mon Sep 17 00:00:00 2001
> From: Mekeor Melire <mekeor@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!
Mekeor Melire June 29, 2021, 8:43 p.m. UTC | #2
Hi and thank you for reviewing the patch!

2021-05-23 / 09:34 / public@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@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]]
diff mbox series

Patch

From 488d77b3a6542598264ba964a723cf2c7d6e646f Mon Sep 17 00:00:00 2001
From: Mekeor Melire <mekeor@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@autistici.org>
 ;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2021 Mekeor Melire <mekeor@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