New comment by sug0 on void-packages repository
https://github.com/void-linux/void-packages/pull/40919#issuecomment-1356485181
Comment:
@sgn I've written a couple of patches that remove the need to package `fs-repo-migrations`:
I've updated the `go-ipfs` template. the diff against this PR is:
diff against this PR
```patch
diff --git a/srcpkgs/go-ipfs/files/README.voidlinux b/srcpkgs/go-ipfs/files/README.voidlinux
new file mode 100644
index 00000000..3840b85d
--- /dev/null
+++ b/srcpkgs/go-ipfs/files/README.voidlinux
@@ -0,0 +1,3 @@
+To migrate between repository versions, install `ipfs-migrate-repo`. This
+package provides the same functionality as `fs-repo-migrations`, but will
+work with `musl` targets, while `fs-repo-migrations` might not.
diff --git a/srcpkgs/go-ipfs/template b/srcpkgs/go-ipfs/template
index 316f1d36..1cd14657 100644
--- a/srcpkgs/go-ipfs/template
+++ b/srcpkgs/go-ipfs/template
@@ -6,7 +6,6 @@ build_style=go
go_import_path="github.com/ipfs/kubo"
go_package="${go_import_path}/cmd/ipfs ${go_import_path}/cmd/ipfswatch"
hostmakedepends="git"
-depends="fs-repo-migrations>=1.7.1"
short_desc="Global versioned P2P merkle DAG file system - kubo"
maintainer="Christopher Brannon "
license="MIT, Apache-2.0"
@@ -29,5 +28,6 @@ post_install() {
vlicense LICENSE-MIT
vdoc README.md
vdoc CHANGELOG.md
+ vdoc "${FILESDIR}/README.voidlinux"
vsv ipfs
}
```
now for the new packages, which replace `fs-repo-migrations`:
fs-repo-11-to-12
```patch
From afe3ade012b0172a4b33244064628dcab50dd62a Mon Sep 17 00:00:00 2001
From: Tiago Carvalho
Date: Sat, 17 Dec 2022 21:28:06 +0000
Subject: [PATCH] New package: fs-repo-11-to-12-1.0.2_1
---
.../0001-fs-repo-11-to-12-no-qtls-init.patch | 31 +++++++++++++++++++
srcpkgs/fs-repo-11-to-12/template | 22 +++++++++++++
2 files changed, 53 insertions(+)
create mode 100644 srcpkgs/fs-repo-11-to-12/patches/0001-fs-repo-11-to-12-no-qtls-init.patch
create mode 100644 srcpkgs/fs-repo-11-to-12/template
diff --git a/srcpkgs/fs-repo-11-to-12/patches/0001-fs-repo-11-to-12-no-qtls-init.patch b/srcpkgs/fs-repo-11-to-12/patches/0001-fs-repo-11-to-12-no-qtls-init.patch
new file mode 100644
index 00000000..f21ca95d
--- /dev/null
+++ b/srcpkgs/fs-repo-11-to-12/patches/0001-fs-repo-11-to-12-no-qtls-init.patch
@@ -0,0 +1,31 @@
+diff --git a/fs-repo-11-to-12/vendor/github.com/marten-seemann/qtls-go1-15/unsafe.go b/fs-repo-11-to-12/vendor/github.com/marten-seemann/qtls-go1-15/unsafe.go
+index 1bf13d8..94aa684 100644
+--- a/fs-repo-11-to-12/vendor/github.com/marten-seemann/qtls-go1-15/unsafe.go
++++ b/fs-repo-11-to-12/vendor/github.com/marten-seemann/qtls-go1-15/unsafe.go
+@@ -1,26 +1,10 @@
+ package qtls
+
+ import (
+- "crypto/tls"
+ "reflect"
+ "unsafe"
+ )
+
+-func init() {
+- if !structsEqual(&tls.ConnectionState{}, &connectionState{}) {
+- panic("qtls.ConnectionState doesn't match")
+- }
+- if !structsEqual(&tls.ClientSessionState{}, &clientSessionState{}) {
+- panic("qtls.ClientSessionState doesn't match")
+- }
+- if !structsEqual(&tls.Config{}, &config{}) {
+- panic("qtls.Config doesn't match")
+- }
+- if !structsEqual(&tls.ClientHelloInfo{}, &clientHelloInfo{}) {
+- panic("qtls.ClientHelloInfo doesn't match")
+- }
+-}
+-
+ func toConnectionState(c connectionState) ConnectionState {
+ return *(*ConnectionState)(unsafe.Pointer(&c))
+ }
diff --git a/srcpkgs/fs-repo-11-to-12/template b/srcpkgs/fs-repo-11-to-12/template
new file mode 100644
index 00000000..93ff060b
--- /dev/null
+++ b/srcpkgs/fs-repo-11-to-12/template
@@ -0,0 +1,22 @@
+# Template file for 'fs-repo-11-to-12'
+pkgname=fs-repo-11-to-12
+version=1.0.2
+revision=1
+_tag=${pkgname}/v${version}
+build_style=go
+wrksrc="fs-repo-migrations-${pkgname}-v${version}"
+build_wrksrc="${pkgname}"
+go_import_path="github.com/ipfs/fs-repo-migrations/fs-repo-11-to-12"
+short_desc="Tool to upgrade an IPFS repository from version 11 to 12"
+maintainer="Orphaned "
+license="MIT"
+homepage="https://github.com/ipfs/fs-repo-migrations"
+distfiles="https://github.com/ipfs/fs-repo-migrations/archive/${_tag}.tar.gz"
+checksum=e6d6320e280f3118873dfb194b68681fa2747b7893d99831fa6fa2bbb67ebd71
+
+# fix: collect2: fatal error: cannot find 'ld'
+export LDFLAGS="-fuse-ld=bfd"
+
+post_install() {
+ vlicense ../LICENSE
+}
--
2.39.0
```
fs-repo-12-to-13
```patch
From e37a435c6467187dac7c931ccba51aaace9e29d5 Mon Sep 17 00:00:00 2001
From: Tiago Carvalho
Date: Sat, 17 Dec 2022 21:34:38 +0000
Subject: [PATCH] New package: fs-repo-12-to-13-1.0.0_1
---
srcpkgs/fs-repo-12-to-13/template | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 srcpkgs/fs-repo-12-to-13/template
diff --git a/srcpkgs/fs-repo-12-to-13/template b/srcpkgs/fs-repo-12-to-13/template
new file mode 100644
index 00000000..331b8dd8
--- /dev/null
+++ b/srcpkgs/fs-repo-12-to-13/template
@@ -0,0 +1,22 @@
+# Template file for 'fs-repo-12-to-13'
+pkgname=fs-repo-12-to-13
+version=1.0.0
+revision=1
+_tag=${pkgname}/v${version}
+build_style=go
+wrksrc="fs-repo-migrations-${pkgname}-v${version}"
+build_wrksrc="${pkgname}"
+go_import_path="github.com/ipfs/fs-repo-migrations/fs-repo-12-to-13"
+short_desc="Tool to upgrade an IPFS repository from version 12 to 13"
+maintainer="Orphaned "
+license="MIT"
+homepage="https://github.com/ipfs/fs-repo-migrations"
+distfiles="https://github.com/ipfs/fs-repo-migrations/archive/${_tag}.tar.gz"
+checksum=454b32a86efc410d6edfef20726b36472c1d8f11abc60f2f0722d6fa8d65f94b
+
+# fix: collect2: fatal error: cannot find 'ld'
+export LDFLAGS="-fuse-ld=bfd"
+
+post_install() {
+ vlicense ../LICENSE
+}
--
2.39.0
```
ipfs-migrate-repo
```patch
From 1341ce00d9b3b0c8a0be4e72371f8eb9a7165699 Mon Sep 17 00:00:00 2001
From: Tiago Carvalho
Date: Sat, 17 Dec 2022 21:43:42 +0000
Subject: [PATCH] New package: ipfs-migrate-repo-13-1.0.0_1
---
srcpkgs/ipfs-migrate-repo/template | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
create mode 100644 srcpkgs/ipfs-migrate-repo/template
diff --git a/srcpkgs/ipfs-migrate-repo/template b/srcpkgs/ipfs-migrate-repo/template
new file mode 100644
index 00000000..768e3737
--- /dev/null
+++ b/srcpkgs/ipfs-migrate-repo/template
@@ -0,0 +1,16 @@
+# Template file for 'ipfs-migrate-repo'
+pkgname=ipfs-migrate-repo
+version=1.0.0
+revision=1
+short_desc="Tool to upgrade an IPFS repository to newer versions"
+depends="fs-repo-11-to-12 fs-repo-12-to-13"
+maintainer="Orphaned "
+license="GPL-2.0-or-later"
+homepage="https://github.com/sug0/ipfs-migrate-repo"
+distfiles="https://github.com/sug0/ipfs-migrate-repo/archive/v${version}.tar.gz"
+checksum=6c2d2e709646b3a615a5a94fce70df5fb0df9742ba7818f5f942f22dd62a48de
+
+do_install() {
+ vdoc README.md
+ vbin ipfs-migrate-repo
+}
--
2.39.0
```
unfortunately, `armv7l-musl` is segfaulting with `fs-repo-11-to-12`, but for some reason `fs-repo-12-to-13` works fine...