Add fixed git-http-nginx-location-configuration

Evgeny PisemskySun Mar 16 16:00:08+0300 2025

184908d

Add fixed git-http-nginx-location-configuration

modules/cogd/packages/engineering.scm

55
(define-module (cogd packages engineering))
66
77
(use-modules (guix packages)
8-
             (guix download)
98
             (guix git-download)
109
             (guix gexp)
11-
             (guix build-system python)
1210
             (guix build-system pyproject)
1311
             ((guix licenses) #:prefix license:)
14-
             ((gnu packages engineering) #:prefix guix:)
12+
             (gnu packages engineering)
1513
             (gnu packages check)
1614
             (gnu packages glib)
1715
             (gnu packages gtk)
18-
             (gnu packages image-processing)
19-
             (gnu packages python)
2016
             (gnu packages python-build)
2117
             (gnu packages python-xyz)
2218
             (gnu packages xorg)
23-
             (gnu packages xdisorg)
24-
             (cogd packages python-xyz))
19+
             (gnu packages xdisorg))
2520
26-
(define-public pcb2gcode
27-
  (let ((commit "8c084afd00c6653dfa9cbf24a1dbeeb24f592aa9")
28-
        (revision "0"))
29-
    (package
30-
      (inherit guix:pcb2gcode)
31-
      (source
32-
       (origin
33-
         (method git-fetch)
34-
         (uri (git-reference
35-
               (url "https://github.com/pcb2gcode/pcb2gcode")
36-
               (commit commit)))
37-
         (file-name (git-file-name (package-name guix:pcb2gcode)
38-
                                   (package-version guix:pcb2gcode)))
39-
         (sha256
40-
          (base32
41-
           "19hyzd1601l51bwlv43j8l602nfacbjwqf54m5xsmj50718bcks2")))))))
21+
(re-export pcb2gcode
22+
           bcnc)
4223
4324
(define-public aacircuit
4425
  (let ((commit "18635c846754b6219da1a2ceb8977714f70004d0")

8970
AACircuit written by Andreas Weber in Borland Delphi.  The idea and
9071
GUI layout are also taken from the original.")
9172
      (license license:gpl3+))))
92-
93-
(define-public bcnc
94-
  (package
95-
    (name "bcnc")
96-
    (version "0.9.15")
97-
    (source
98-
     (origin
99-
       (method url-fetch)
100-
       (uri (pypi-uri "bCNC" version))
101-
       (sha256
102-
        (base32 "1wsz5ppgncn992znj9wpkvjkf87m93zb2pdzlas53nnj2j4pz9vw"))
103-
       ;; Comment out opencv-python which cannot be detected because
104-
       ;; the opencv python library lacks necessary metadata files.
105-
       ;; https://github.com/opencv/opencv-python/issues/944
106-
       (modules '((guix build utils)))
107-
       (snippet '(substitute* "setup.py"
108-
                   (("\"opencv-python.*" line)
109-
                    (string-append "# " line))
110-
                   (("\\+.*" line)
111-
                    (string-append "# " line))))))
112-
    (build-system pyproject-build-system)
113-
    ;; Tests require pyautogui which is not packaged yet.
114-
    (arguments
115-
     (list
116-
      #:tests? #f))
117-
    (native-inputs (list python-setuptools python-wheel))
118-
    (inputs (list `(,python "tk")))
119-
    (propagated-inputs (list opencv
120-
                             python-numpy
121-
                             python-pillow
122-
                             python-pyserial
123-
                             python-shxparser
124-
                             python-svgelements))
125-
    (home-page "https://github.com/vlachoudis/bCNC")
126-
    (synopsis "Swiss army knife for all your CNC/g-code needs")
127-
    (description
128-
     "GrblHAL CNC command sender, autoleveler, g-code editor, digitizer, CAM
129-
and swiss army knife for all your CNC needs.  The sender is robust and
130-
fast able to work nicely with old or slow hardware.")
131-
    (license (list license:gpl2+ license:bsd-3 license:expat))))

modules/cogd/packages/python-xyz.scm

44
55
(define-module (cogd packages python-xyz))
66
7-
(use-modules (guix packages)
8-
             (guix download)
9-
             (guix git-download)
10-
             (guix gexp)
11-
             (guix deprecation)
12-
             (guix build-system python)
13-
             (guix build-system pyproject)
14-
             ((guix licenses) #:prefix license:)
15-
             (gnu packages check)
16-
             (gnu packages databases)
17-
             (gnu packages python-build)
7+
(use-modules (guix deprecation)
8+
             (gnu packages engineering)
189
             (gnu packages python-compression)
19-
             (gnu packages python-crypto)
2010
             (gnu packages python-web)
2111
             (gnu packages python-xyz)
22-
             (gnu packages time)
23-
             (gnu packages xdisorg)
24-
             (gnu packages xorg))
12+
             (gnu packages xdisorg))
2513
2614
(re-export python-bresenham
2715
           python-pyclip
28-
           python-pypubsub)
29-
30-
(define-public python-shxparser
31-
  (package
32-
    (name "python-shxparser")
33-
    (version "0.0.2")
34-
    (source
35-
     (origin
36-
       (method url-fetch)
37-
       (uri (pypi-uri "shxparser" version))
38-
       (sha256
39-
        (base32 "0w7j5ywskandp91v74966pw1pvq9d5zrx5gkjcn84xi8wsyf8hc5"))))
40-
    (build-system pyproject-build-system)
41-
    (native-inputs (list python-svgelements python-setuptools python-wheel))
42-
    (home-page "https://github.com/tatarize/shxparser")
43-
    (synopsis "SHX line font parser")
44-
    (description
45-
     "This is a pure python parser for SHX Hershey font files that are an
46-
AutoCad format which can encode single line fonts.  This format is
47-
used for many CNC and laser operations.")
48-
    (license license:expat)))
16+
           python-pypubsub
17+
           python-shxparser
18+
           python-platypush)
4919
5020
(define-deprecated/public-alias python-zipp-3 python-zipp)
5121
5222
(define-deprecated/public-alias python-urllib3-for-platypush python-urllib3)
53-
54-
(define-public python-platypush
55-
  (package
56-
    (name "python-platypush")
57-
    (version "1.3.5")
58-
    (source
59-
     (origin
60-
       (method git-fetch)
61-
       (uri (git-reference
62-
             (url "https://git.platypush.tech/platypush/platypush.git")
63-
             (commit (string-append "v" version))))
64-
       (file-name (git-file-name name version))
65-
       (sha256
66-
        (base32 "1chd60r4misz2i368435yb6hhnm97v8kncjnchxj8mg3mglw9gy0"))))
67-
    (build-system pyproject-build-system)
68-
    (arguments
69-
     (list
70-
      #:phases #~(modify-phases %standard-phases
71-
                   (add-after 'unpack 'relax-requirements
72-
                     (lambda _
73-
                       (substitute* "requirements.txt"
74-
                         (("zipp>=3.19.1")
75-
                          "zipp")
76-
                         (("urllib3>=2.2.2")
77-
                          "urllib3"))))
78-
                   (add-before 'check 'pre-check
79-
                     (lambda _
80-
                       (setenv "HOME" "/tmp"))))))
81-
    (native-inputs (list python-setuptools python-wheel python-pytest redis))
82-
    (propagated-inputs (list python-alembic
83-
                             python-croniter
84-
                             python-docutils
85-
                             python-flask
86-
                             python-marshmallow
87-
                             python-pillow
88-
                             python-pygments
89-
                             python-pyotp
90-
                             python-dateutil
91-
                             python-magic
92-
                             python-pyyaml
93-
                             python-pyzbar
94-
                             python-qrcode
95-
                             python-redis
96-
                             python-requests
97-
                             python-rsa
98-
                             python-sqlalchemy-2
99-
                             python-tornado
100-
                             python-urllib3
101-
                             python-websocket-client
102-
                             python-websockets
103-
                             python-werkzeug
104-
                             python-zeroconf
105-
                             python-zipp))
106-
    (home-page "https://platypush.tech/")
107-
    (synopsis "General-purpose automation framework")
108-
    (description
109-
     "Platypush is a general-purpose and extensible platform for automation
110-
across multiple services and devices with hundreds of supported
111-
integrations.")
112-
    (license license:expat)))

modules/cogd/services/version-control.scm unknown status 1

1+
;;; SPDX-FileCopyrightText: 2025 Evgeny Pisemsky <mail@pisemsky.site>
2+
;;;
3+
;;; SPDX-License-Identifier: GPL-3.0-or-later
4+
5+
(define-module (cogd services version-control))
6+
7+
(use-modules (guix gexp)
8+
             (gnu services version-control)
9+
             (gnu services web))
10+
11+
(export git-http-nginx-location-configuration/fixed)
12+
13+
(define (git-http-backend-gitconfig git-root)
14+
  (plain-file "gitconfig"
15+
              (string-append "[safe]\n\tdirectory = " git-root "/*\n")))
16+
17+
(define git-http-configuration-git-root
18+
  (@@ (gnu services version-control) git-http-configuration-git-root))
19+
20+
(define git-http-nginx-location-configuration/fixed
21+
  (lambda* (#:optional (config (git-http-configuration)))
22+
    (let* ((git-root (git-http-configuration-git-root config))
23+
           (gitconfig (git-http-backend-gitconfig git-root))
24+
           (unfixed (git-http-nginx-location-configuration config)))
25+
      (nginx-location-configuration
26+
       (uri (nginx-location-configuration-uri unfixed))
27+
       (body (cons* (list "fastcgi_param GIT_CONFIG_GLOBAL " gitconfig ";")
28+
                    (nginx-location-configuration-body unfixed)))))))