aboutsummaryrefslogtreecommitdiff
path: root/guix.scm
blob: 9717135b26db938b134e84a7dcdf9f65b3d7f66f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
;; SPDX-License-Identifier: CC0-1.0

;; Copyright (C) 2022 Wojtek Kosior <koszko@koszko.org>
;;
;; Available under the terms of Creative Commons Zero v1.0 Universal.

;; This file is based on `hydrilla-guix/hydrilla.scm` from Hydrilla&Haketilo
;; repository at ../pydrilla.

(use-modules
 (ice-9 rdelim)
 (ice-9 regex))

;; We're mostly running from Makefile, so it's pretty safe to use `getcwd`.
(define %source-dir (getcwd))

;; The PKG-INFO file is generated when running `python3 -m build -s` or similar.
;; It is also automatically included in the source release tarballs.
(define %website-version
  (if (access? "src/koszko_org_website.egg-info/PKG-INFO" R_OK)
      (let* ((port (open-input-file "src/koszko_org_website.egg-info/PKG-INFO"))
             (process-line
              (lambda (self-ref)
                (let ((match-result
                       (string-match "^Version: (.*)" (read-line port))))
                  (if match-result (match:substring match-result 1)
                      (self-ref self-ref))))))
        (process-line process-line))
      "unknown"))

(define source-tarball-name
  (string-append "koszko_org_website-" %website-version ".tar.gz"))

(use-modules
 (guix packages)
 (guix gexp)
 (guix build-system python)
 ((guix licenses) #:prefix license:)
 (gnu packages python-build)
 (gnu packages python-web)
 (gnu packages python-xyz)
 (gnu packages python-check))

(package
  (name "koszko-org-website")
  (version %website-version)
  (source
   ;; setuptools_scm makes it impossible to build directly from git
   ;; checkout. We instead build from source tarball generated under ./dist/.
   (local-file (string-append %source-dir "/dist/" source-tarball-name)))
  (build-system python-build-system)
  (propagated-inputs
   (list python-flask))
  (native-inputs
    (list python-setuptools-scm
          python-babel
          python-pypa-build
          python-mypy))
  (home-page "https://git.koszko.org/koszko-org-website")
  (synopsis "koszko.org website")
  (description "This is the packaging of the website at https://koszko.org.")
  (license (list license:cc0
                 (license:non-copyleft
                  "file://LICENSES/LicenseRef-Yahoo-BSD-3.txt")
                 (license:x11-style
                  "file://LICENSES/LicenseRef-Normalize-CSS-MIT.txt"))))