all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#74917] [PATCH] gnu: Syncthing: Update to 1.28.1.
@ 2024-12-16 21:12 Leo Famulari
  2024-12-16 21:44 ` Sharlatan Hellseher
  0 siblings, 1 reply; 3+ messages in thread
From: Leo Famulari @ 2024-12-16 21:12 UTC (permalink / raw)
  To: 74917; +Cc: Katherine Cox-Buday, Sharlatan Hellseher

* gnu/packages/syncthing.scm (syncthing): Update to 1.28.1.
[arguments]: Adjust the 'build' and 'install' phases to upstream changes.

Change-Id: Icc7342ce13ffa03df51e4e71faf2e19a0636635f
---
 gnu/packages/syncthing.scm | 113 ++++++++++++++++++-------------------
 1 file changed, 56 insertions(+), 57 deletions(-)

diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 71a1eb3326..345017d80d 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2024 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020-2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
@@ -49,7 +49,7 @@ (define-module (gnu packages syncthing)
 (define-public syncthing
   (package
     (name "syncthing")
-    (version "1.27.2")
+    (version "1.28.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/syncthing/syncthing"
@@ -57,71 +57,70 @@ (define-public syncthing
                                   "/syncthing-source-v" version ".tar.gz"))
               (sha256
                (base32
-                "0g418jyqqik8ds8qcrlnmm2bhwwpbrfgd82fg2jyip4zw1aicqia"))))
+                "16j5w6hdr1x2231hw0zsxm53sw34wxcs4ijjjcnzcg1vz9drjrg9"))))
     (build-system go-build-system)
     ;; The primary Syncthing executable goes to "out", while the auxiliary
     ;; server programs and utility tools go to "utils".  This reduces the size
     ;; of "out" by ~144 MiB.
     (outputs '("out" "utils"))
     (arguments
-     (list #:modules '((srfi srfi-26) ; for cut
-                       (guix build utils)
-                       (guix build go-build-system))
-           #:import-path "github.com/syncthing/syncthing"
-           ;; We don't need to install the source code for end-user applications.
-           #:install-source? #f
-           #:phases
-           #~(modify-phases %standard-phases
-               (add-before 'build 'increase-test-timeout
-                 (lambda _
-                   (substitute* "src/github.com/syncthing/syncthing/build.go"
-                     (("120s") "999s"))))
+     (list
+       #:modules '((srfi srfi-26) ; for cut
+                   (guix build utils)
+                   (guix build go-build-system))
+       #:import-path "github.com/syncthing/syncthing"
+       ;; We don't need to install the source code for end-user applications.
+       #:install-source? #f
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-before 'build 'increase-test-timeout
+             (lambda _
+               (substitute* "src/github.com/syncthing/syncthing/build.go"
+                 (("120s") "999s"))))
 
-               (replace 'build
-                 (lambda _
-                   (with-directory-excursion "src/github.com/syncthing/syncthing"
-                     ;; XXX The only way to build Syncthing without its automatic
-                     ;; updater and to build the utilities is to "build all" and then
-                     ;; "build syncthing" again with -no-upgrade.
-                     ;; https://github.com/syncthing/syncthing/issues/6118
-                     (invoke "go" "run" "build.go")
-                     (delete-file "bin/syncthing")
-                     (invoke "go" "run" "build.go" "-no-upgrade" "build" "syncthing"))))
+           (replace 'build
+             (lambda _
+               (with-directory-excursion "src/github.com/syncthing/syncthing"
+                 ; Build the primary Syncthing executable
+                 (invoke "go" "run" "build.go" "-no-upgrade")
+                 ; Build utilities used to run an independent Syncthing network
+                 (for-each (cut invoke "go" "run" "build.go" "build" <>)
+                           '("stcrashreceiver" "strelaypoolsrv" "stupgrades"
+                             "ursrv")))))
 
-             (replace 'check
-               (lambda* (#:key tests? #:allow-other-keys)
-                 (when tests?
-                   (with-directory-excursion "src/github.com/syncthing/syncthing"
-                     (invoke "go" "run" "build.go" "test")))))
+           (replace 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests?
+                 (with-directory-excursion "src/github.com/syncthing/syncthing"
+                   (invoke "go" "run" "build.go" "test")))))
 
-             (replace 'install
-               (lambda _
-                 (with-directory-excursion "src/github.com/syncthing/syncthing/bin"
-                   (install-file "../syncthing" (string-append #$output "/bin"))
-                   (for-each (cut install-file <> (string-append #$output:utils "/bin/"))
-                             '("stcompdirs" "stcrashreceiver"
-                               "stdisco" "stdiscosrv" "stevents" "stfileinfo"
-                               "stfinddevice" "stfindignored" "stgenfiles"
-                               "strelaypoolsrv" "strelaysrv" "stsigtool"
-                               "stvanity" "stwatchfile" "ursrv")))))
+           (replace 'install
+             (lambda _
+               (with-directory-excursion "src/github.com/syncthing/syncthing/bin"
+                 (install-file "syncthing" (string-append #$output "/bin"))
+                 (for-each (cut install-file <> (string-append #$output:utils "/bin/"))
+                           '("stdiscosrv" "strelaysrv")))
+               (with-directory-excursion "src/github.com/syncthing/syncthing"
+                 (for-each (cut install-file <> (string-append #$output:utils "/bin/"))
+                           '("ursrv" "stupgrades" "strelaypoolsrv" "stcrashreceiver")))))
 
-         (add-after 'install 'install-docs
-           (lambda _
-             (let ((man (string-append #$output "/share/man"))
-                   (man:utils (string-append #$output:utils "/share/man")))
-               ;; Install all the man pages to "out".
-               (for-each
-                (lambda (file)
-                  (install-file file
-                                (string-append man "/man" (string-take-right file 1))))
-                (find-files "src/github.com/syncthing/syncthing/man" "\\.[1-9]"))
-               ;; Copy all the man pages to "utils"
-               (copy-recursively man man:utils)
-               ;; Delete extraneous man pages from "out" and "utils",
-               ;; respectively.
-               (delete-file (string-append man "/man1/stdiscosrv.1"))
-               (delete-file (string-append man "/man1/strelaysrv.1"))
-               (delete-file (string-append man:utils  "/man1/syncthing.1"))))))))
+           (add-after 'install 'install-docs
+             (lambda _
+               (let ((man (string-append #$output "/share/man"))
+                     (man:utils (string-append #$output:utils "/share/man")))
+                 ;; Install all the man pages to "out".
+                 (for-each
+                  (lambda (file)
+                    (install-file file
+                                  (string-append man "/man" (string-take-right file 1))))
+                  (find-files "src/github.com/syncthing/syncthing/man" "\\.[1-9]"))
+                 ;; Copy all the man pages to "utils"
+                 (copy-recursively man man:utils)
+                 ;; Delete extraneous man pages from "out" and "utils",
+                 ;; respectively.
+                 (delete-file (string-append man "/man1/stdiscosrv.1"))
+                 (delete-file (string-append man "/man1/strelaysrv.1"))
+                 (delete-file (string-append man:utils  "/man1/syncthing.1"))))))))
     (synopsis "Decentralized continuous file system synchronization")
     (description "Syncthing is a peer-to-peer file synchronization tool that
 supports a wide variety of computing platforms.  It uses the Block Exchange

base-commit: 93eca69d69355dc37ebcc9193d5af19cbac8071c
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [bug#74917] [PATCH] gnu: Syncthing: Update to 1.28.1.
  2024-12-16 21:12 [bug#74917] [PATCH] gnu: Syncthing: Update to 1.28.1 Leo Famulari
@ 2024-12-16 21:44 ` Sharlatan Hellseher
  2024-12-18 18:41   ` Leo Famulari
  0 siblings, 1 reply; 3+ messages in thread
From: Sharlatan Hellseher @ 2024-12-16 21:44 UTC (permalink / raw)
  To: 74917; +Cc: Leo Famulari

[-- Attachment #1: Type: text/plain, Size: 863 bytes --]


Hi Leo,

I've notice syncthing was build from source without vendor that swap
back to the release tarball containing bundled vendor.

Would it be reasonable to built it completely relaying on the packages
available in Guix, WDYT?

I've got on going work to upgrade and pack missing packages for some
Golang projects which had vendor before and droped it in the latest
release leaving us in a position to pack missing dependencies to have a
newer version.

Having them packed with all dependencies would help others to pack their
lovely package ;-)

grep -c define-public import-*
import-afero:199
import-bitmask:0 (import fail)
import-chezmoi:54
import-containerd:335
import-distribution-distribution:236
import-fq:8
import-kubo:386
import-matterbridge:493
import-prometheus:14
import-restic:232
import-sqls:0 (import fail)
import-syncthing:21

--
Thanks,
Oleg


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [bug#74917] [PATCH] gnu: Syncthing: Update to 1.28.1.
  2024-12-16 21:44 ` Sharlatan Hellseher
@ 2024-12-18 18:41   ` Leo Famulari
  0 siblings, 0 replies; 3+ messages in thread
From: Leo Famulari @ 2024-12-18 18:41 UTC (permalink / raw)
  To: Sharlatan Hellseher; +Cc: 74917

On Mon, Dec 16, 2024 at 09:44:33PM +0000, Sharlatan Hellseher wrote:
> I've notice syncthing was build from source without vendor that swap
> back to the release tarball containing bundled vendor.

Yes, we made that change a while ago.

For me, I decided that I didn't think that "unbundling" the dependencies
was a good use of my time so I stopped doing it.

> Would it be reasonable to built it completely relaying on the packages
> available in Guix, WDYT?

Personally, I don't think it's reasonable.

The GPL says that source code must be available in "the preferred form
of the work for making modifications to it."

https://www.gnu.org/licenses/gpl-3.0.en.html

Syncthing is not GPL, but I think that requirement is a good guideline
for us to follow so that Guix can give the benefits of GNU and the GPL
to our users.

For Go software, the preffered from for editing is a Git tree with
bundled / vendored dependencies at specific Git commits. Not a bunch of
separate trees that the user would have to laboriously re-assemble.

However, if we must unbundle, we could consider creating a new Guix
mechanism to ease the maintenance burden of Go packages: package
variants with parameterized versions.

For example, you have a main package variant of some Go module, call it
go-foo. That looks like a normal Guix package. If a package needs to use
go-foo, it would look like this:

(inputs
 (list (go-foo
         "1.0.0"
	 "cabba6edr1x2231hw0zsxm53sw34wxcs4ijjjcnzcg1vz9drjrg9")))

At least that would be easy for package maintenance.

But I think that using the bundled dependencies for Go packages is the
right thing to do from a GNU perspective. Of course we have to make sure
they are all free software.




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-12-18 18:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-16 21:12 [bug#74917] [PATCH] gnu: Syncthing: Update to 1.28.1 Leo Famulari
2024-12-16 21:44 ` Sharlatan Hellseher
2024-12-18 18:41   ` Leo Famulari

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.