about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2026-03-19 00:33:01 +0000
committerArun Isaac2026-03-19 00:33:08 +0000
commit489f79d646a2c701baadc2d5751da779ac4c6a04 (patch)
tree335145d9ec4131024de7268cff13f993974b9ece
parent78ea4a2c7efeeffdbc78cb22ef09998fb8b8ef08 (diff)
downloadmeetfree-489f79d646a2c701baadc2d5751da779ac4c6a04.tar.gz
meetfree-489f79d646a2c701baadc2d5751da779ac4c6a04.tar.lz
meetfree-489f79d646a2c701baadc2d5751da779ac4c6a04.zip
Package for Guix.
Change-Id: Ibc4d3f452e51fcb47b0c054db71393b9430ac023
-rw-r--r--.guix/meetfree-package.scm136
l---------guix.scm1
2 files changed, 137 insertions, 0 deletions
diff --git a/.guix/meetfree-package.scm b/.guix/meetfree-package.scm
new file mode 100644
index 0000000..e623568
--- /dev/null
+++ b/.guix/meetfree-package.scm
@@ -0,0 +1,136 @@
+(define-module (meetfree-package)
+  #:use-module ((gnu packages python-build)
+                #:select (python-flit-core
+                          python-hatch-vcs
+                          python-hatchling
+                          python-pypa-build
+                          python-setuptools))
+  #:use-module ((gnu packages python-web)
+                #:select (python-bottle python-requests))
+  #:use-module ((gnu packages python-xyz)
+                #:select (python-flit python-markdown))
+  #:use-module ((gnu packages time)
+                #:select (python-dateutil python-tzdata))
+  #:use-module ((gnu packages xml) #:select (python-lxml))
+  #:use-module (guix build-system pyproject)
+  #:use-module (guix build-system python)
+  #:use-module (guix download)
+  #:use-module (guix gexp)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils))
+
+(define-public python-feedgen
+  (package
+    (name "python-feedgen")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "feedgen" version))
+       (sha256
+        (base32 "0sjljdip5ffkwphqh49irhprywic9n671hwq56js4mp9np1m3gfr"))))
+    (build-system pyproject-build-system)
+    (arguments
+     ;; TODO: Fix tests.
+     (list #:tests? #f))
+    (propagated-inputs
+     (list python-lxml
+           python-dateutil))
+    (native-inputs
+     (list python-setuptools))
+    (home-page "https://lkiesow.github.io/python-feedgen")
+    (synopsis "Feed Generator (ATOM, RSS, Podcasts)")
+    (description
+     "This module can be used to generate web feeds in both Atom and RSS
+format.  It supports extensions.  For example, it comes with an
+extension to produce podcasts.")
+    (license (list license:bsd-2
+                   license:lgpl3+))))
+
+(define-public python-icalendar
+  (package
+    (name "python-icalendar")
+    (version "7.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "icalendar" version))
+       (sha256
+        (base32 "1plgdlhnij79awxqvlfdfhgq4xaqy9hkgw35sy273f3s1377w0lm"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'remove-tzdata-dependency
+                 (lambda _
+                   ;; Relax tzdata dependency to latest available in
+                   ;; Guix at the moment.
+                   (substitute* "pyproject.toml"
+                     (("\"tzdata>=2025.3\"")
+                      "\"tzdata>=2025.1\"")))))))
+    (propagated-inputs (list python-dateutil
+                             python-tzdata))
+    (native-inputs (list python-hatch-vcs
+                         python-hatchling))
+    (home-page "https://icalendar.readthedocs.io/en/stable/")
+    (synopsis "iCalendar parser and generator")
+    (description "The icalendar package is an RFC 5545 compatible
+parser and generator of iCalendar files.  icalendar can create,
+inspect, and modify calendaring information with Python.  icalendar
+supports multiple timezone implementations, including zoneinfo,
+dateutil.tz, and pytz.")
+    (license license:bsd-3)))
+
+(define-public python-justhtml
+  (package
+    (name "python-justhtml")
+    (version "1.12.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/emilstenstrom/justhtml")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "065iqikxrhwn6f5svlsv3fzpdri49h74ng8gfpsd4hgjknwrwqgn"))))
+    (build-system pyproject-build-system)
+    (native-inputs (list python-pypa-build
+                         python-hatchling))
+    (home-page "https://github.com/emilstenstrom/justhtml")
+    (synopsis "Pure Python HTML5 parser")
+    (description
+     "JustHTML is a pure Python HTML5 parser.  It has a simple API and
+does not require C extensions or system dependencies.")
+    (license license:expat)))
+
+(define-public meetfree
+  (package
+    (name "meetfree")
+    (version "0.1.0")
+    (source (local-file ".."
+                        "meetfree-checkout"
+                        #:recursive? #t
+                        #:select? (or (git-predicate (dirname (current-source-directory)))
+                                      (const #t))))
+    (build-system pyproject-build-system)
+    (propagated-inputs
+     (list python-bottle
+           python-feedgen
+           python-icalendar
+           python-justhtml
+           python-markdown
+           python-requests))
+    (native-inputs
+     (list python-flit-core))
+    (home-page "https://forge.systemreboot.net/meetfree")
+    (synopsis "iCalendar and Atom feeds for meetup.com")
+    (description "meetfree is a bottle web app that serves iCalendar
+and Atom feeds for meetup.com groups.  meetfree fetches data from
+meetup.com using its GraphQL API.  The GraphQL API does not require any
+authentication.")
+    (license license:unlicense)))
+
+meetfree
diff --git a/guix.scm b/guix.scm
new file mode 120000
index 0000000..199adb5
--- /dev/null
+++ b/guix.scm
@@ -0,0 +1 @@
+.guix/meetfree-package.scm
\ No newline at end of file