Package Details: go-ipfs-git 1:latest-1

Git Clone URL: https://aur.archlinux.org/go-ipfs-git.git (read-only, click to copy)
Package Base: go-ipfs-git
Description: A peer-to-peer hypermedia distribution protocol
Upstream URL: https://github.com/ipfs/go-ipfs
Keywords: cdn go ipfs p2p
Licenses: MIT
Conflicts: go-ipfs
Provides: go-ipfs
Submitter: ianonavy
Maintainer: RubenKelevra
Last Packager: RubenKelevra
Votes: 23
Popularity: 0.000001
First Submitted: 2014-07-23 01:47 (UTC)
Last Updated: 2022-05-14 18:03 (UTC)

Required by (13)

Sources (3)

Pinned Comments

RubenKelevra commented on 2022-05-14 16:13 (UTC) (edited on 2022-05-14 17:36 (UTC) by RubenKelevra)

Here's a list of the changes with 0.13.0rc1.r18.ga72753bad-2:

  • Set ldflags -s and -w (stripping)
  • Enable GOAMD64 with an autodetected CPU feature level (CPU optimizations) for the x86_64 target
  • Add reproducible build patch from upstream (the community package)
  • change the build process, like upstream (the community package)
  • Set CGO_ENABLED to 0

If you need debug/no cpu optimizations/or want CGO_ENABLED not set to 0, just edit the PKGBUILD and set DEBUG to 1.

RubenKelevra commented on 2020-06-12 22:32 (UTC) (edited on 2020-06-13 06:09 (UTC) by RubenKelevra)

I switched from the regular service file to the hardened one, which enables a lot of security features systemd offers.

It will break the mounting feature, but this is already unavailable because the user ipfs is not part of the fuse group (by default).

To avoid crashes if ipfs mount is called, the package is build without this support now.


I've added an install-file which will move the data while updating from /var/lib/ipfs/.ipfs to the more logical /var/lib/ipfs path. The daemon is stopped automatically if necessary. Make sure to start it again.

Latest Comments

RubenKelevra commented on 2022-05-14 16:13 (UTC) (edited on 2022-05-14 17:36 (UTC) by RubenKelevra)

Here's a list of the changes with 0.13.0rc1.r18.ga72753bad-2:

  • Set ldflags -s and -w (stripping)
  • Enable GOAMD64 with an autodetected CPU feature level (CPU optimizations) for the x86_64 target
  • Add reproducible build patch from upstream (the community package)
  • change the build process, like upstream (the community package)
  • Set CGO_ENABLED to 0

If you need debug/no cpu optimizations/or want CGO_ENABLED not set to 0, just edit the PKGBUILD and set DEBUG to 1.

RubenKelevra commented on 2022-04-04 13:07 (UTC)

@rpodgorny do you have an update on this?

RubenKelevra commented on 2020-06-12 22:32 (UTC) (edited on 2020-06-13 06:09 (UTC) by RubenKelevra)

I switched from the regular service file to the hardened one, which enables a lot of security features systemd offers.

It will break the mounting feature, but this is already unavailable because the user ipfs is not part of the fuse group (by default).

To avoid crashes if ipfs mount is called, the package is build without this support now.


I've added an install-file which will move the data while updating from /var/lib/ipfs/.ipfs to the more logical /var/lib/ipfs path. The daemon is stopped automatically if necessary. Make sure to start it again.

RubenKelevra commented on 2020-05-27 12:43 (UTC)

@rpodgorny I like to stick as close to the upstream as possible.

If you like this package to provide a systemd-user file, feel free to open a PR on the upstream git - I'll include it, as soon as it's merged.

rpodgorny commented on 2020-05-27 06:19 (UTC)

it would be nice if this package also provided a systemd-user service file. it would make back and forth migration between go-ipfs and go-ipfs-git much easier (i sometimes need to check something in the git version but most of the time i run the non-git package).

can be taken from here:

https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/go-ipfs

RubenKelevra commented on 2020-05-20 02:31 (UTC)

Needs manual intervention:

You need to update go-ipfs-git before you run your system-update to make the installed version compatible with the official repository again.

RubenKelevra commented on 2020-05-12 01:49 (UTC) (edited on 2020-05-12 07:42 (UTC) by RubenKelevra)

Needs manual intervention:

Switched service/socket files for systemd to the upstream ones.

If your dependent on the files earlier, you need to check the settings and modify the new files with override.confs accordingly.

Make sure there is no ipfs user/group existing before updating.

RubenKelevra commented on 2020-04-27 14:03 (UTC)

I've added a local go-build cache (which doesn't get cleared like before).

There should be no difference in build time, but it allows yay to clean up the build cache for this package and also allows to make clean builds with yay (including a clean build cache).

If you have build IPFS with this package before 0.5.0rc4.r7.g0c57175f0-2 you have already a build cache for IPFS.

You can clean the part ipfs uses - and regain disk space - by running go clean -modcache -r "github.com/ipfs/go-ipfs/cmd/ipfs"

RubenKelevra commented on 2020-04-25 18:43 (UTC) (edited on 2020-04-25 18:44 (UTC) by RubenKelevra)

Make sure to upgrade this package with something like

yay -Syu go go-ipfs-git

This will replace go-pie with go BEFORE you build this package, instead of afterward. This version doesn't require go-pie anymore.

RubenKelevra commented on 2020-04-10 21:49 (UTC)

@mohe thanks, overlooked that (got go-pie on my ignore list).

I've already pushed a new version yesterday :)

mohe commented on 2020-04-09 17:28 (UTC) (edited on 2020-04-09 17:28 (UTC) by mohe)

Thanks for fixing! Btw, go-pie 1.14.2 just got released!

RubenKelevra commented on 2020-04-09 06:39 (UTC) (edited on 2020-04-09 06:40 (UTC) by RubenKelevra)

@mohe I've fixed the PKGBUILD, thanks for the report.

As explained before, the default git to pkgver() from the wiki, which @redfish quoted doesn't work here.

mohe commented on 2020-04-07 16:33 (UTC) (edited on 2020-04-07 16:34 (UTC) by mohe)

==> ERROR: pkgver is not allowed to contain colons, forward slashes, hyphens or whitespace.
==> ERROR: pkgver() generated an invalid version: 0.5.0-rc1.r0.g1a2c88baa

I can't build this package because the package version contains a hyphens which is invalid. Please use @redfish's pkgver()

pkgver() {
  cd "$srcdir/$_pkgname"
  git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}

which is also officially recommended at https://wiki.archlinux.org/index.php/VCS_package_guidelines#Git (rewritten a bit)

RubenKelevra commented on 2020-04-05 10:48 (UTC) (edited on 2020-04-18 11:16 (UTC) by RubenKelevra)

This package forces a minimal go-version of 1.14.2. All 1.14 versions below are affected by concurrency issues which leads to instabilities and lockups.

If you need to run an older version, you need to downgrade go-pie to the not affected go-version 1.13.8.

You can download the older version of go-pie from the archive:

https://archive.archlinux.org/packages/g/go-pie/

More info:

https://github.com/golang/go/issues/38119

RubenKelevra commented on 2020-03-27 15:04 (UTC)

@redfish thanks for the hint, but this would break the conventions for aur packages on this repo (to show the latest stable, plus changes, plus commit-id) - since the tags are not in the main branch on this repo.

The old workaround to use jq to identify the current version is outdated, I replaced it with a simple grep, but this would lead to 0.5.0-dev as version string, which would also break conventions.

That's why the version detection is a bit more complicated now, but should somewhat reliably fetch the latest rc/stable tag and identify the commits since this tag was released on the main branch (hopefully).

02m commented on 2019-07-21 10:21 (UTC) (edited on 2019-07-21 10:27 (UTC) by 02m)

Build fails with:

==> Starting pkgver()... jq: error: Could not open file package.json: No such file or directory ==> ERROR: pkgver is not allowed to be empty. ==> ERROR: pkgver() generated an invalid version: Error making: go-ipfs-git

Replacing pkgver() function with the suggestion from @redfish works like a charm.

redfish commented on 2019-06-08 17:42 (UTC)

There isn't a need to parse the version from the source files, because the releases are tagged, so best to go with the standard format (0.4.21.r54.gc7dc3c33e):

pkgver() {
  cd "$srcdir/$_pkgname"
  git describe --long --tags |  sed -e 's/^v//' -e 's/\([^-]*-g\)/r\1/;s/-/./g'
}

FallenSnow commented on 2019-05-27 03:30 (UTC)

jq version acquisition is failing since go-ipfs now stores the version in version.go.

The LICENSE file has also been split into LICENSE-MIT and LICENSE-APACHE.

zbiko commented on 2017-12-18 01:45 (UTC) (edited on 2017-12-18 01:45 (UTC) by zbiko)

==> Leaving fakeroot environment.
==> Finished making: go-ipfs-git 0.4.14dev.r141.gce22b83f2-1 (Sun Dec 17 17:09:31 PST 2017)
==> Cleaning up...
:: Installing go-ipfs-git package(s)...
:: go-ipfs-git package(s) failed to install.
:: ensure package version does not mismatch between .SRCINFO and PKGBUILD
:: ensure package name has a VCS suffix if this is a devel package
:: go is now an orphan package
:: jq is now an orphan package

Kubuxu commented on 2016-05-09 10:54 (UTC)

Here is a fix that worked for me From 63db4b943736f30e92215421c4f32915914dfcb4 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera <kubuxu@protonmail.ch> Date: Mon, 9 May 2016 12:50:32 +0200 Subject: [PATCH] Fix build in Go 1.6 --- PKGBUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/PKGBUILD b/PKGBUILD index 7fa2229..1c00f85 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -31,6 +31,7 @@ prepare() { build() { # Required for go get export GOPATH="$srcdir" + export GOBIN="$srcdir/bin" export PATH=$PATH:$GOPATH/bin msg2 'Installing dependencies...' -- 2.8.2

edtoml commented on 2016-05-07 13:29 (UTC)

The problem is not the go version. I restored a go 1.5.3 package from my backups, installed it and tried building. Same error.

edtoml commented on 2016-05-06 00:55 (UTC)

redfish queried the ipfs main author on irc and go 1.6.2 should work.

edtoml commented on 2016-05-03 00:27 (UTC)

Also getting make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. make[1]: Entering directory '/tmp/makepkg/go-ipfs-git/src/go-ipfs/cmd/ipfs' go install -ldflags="-X "github.com/ipfs/go-ipfs/repo/config".CurrentCommit=d597f4b" go install: no install location for directory /tmp/makepkg/go-ipfs-git/src/go-ipfs/cmd/ipfs outside GOPATH For more details see: go help gopath Makefile:7: recipe for target 'install' failed It used to work. Ideas anyone?

mythmon commented on 2016-04-29 15:10 (UTC)

When building this package, I get this error: go install -ldflags="-X "github.com/ipfs/go-ipfs/repo/config".CurrentCommit=fed6212" go install: no install location for directory /home/mythmon/src/pkgbuild/go-ipfs-git/src/go-ipfs/cmd/ipfs outside GOPATH For more details see: go help gopath Makefile:7: recipe for target 'install' failed

Freso commented on 2016-04-12 19:36 (UTC)

PSA: New released version is not a reason to flag a -git package as out-of-date. If you install the -git package, its pkgver() function will automatically pull the version from Git. It should only get flagged out of date if it no longer builds or its dependencies have been outdated.

whoami commented on 2016-04-05 12:10 (UTC)

Can u add systemd service file from community/go-ipfs?

jonnor commented on 2016-03-09 12:37 (UTC)

@Ape: The latest tag seems to work. Append #tag=0.4.0-rc2 to the .git in source()

Ape commented on 2016-03-05 06:50 (UTC)

I get this error when building this package: go-ipfs must be built from within your $GOPATH directory. expected '/tmp/go-ipfs-git20988/go-ipfs-git/src/src/github.com/ipfs/go-ipfs' but got '/tmp/go-ipfs-git20988/go-ipfs-git/src/go-ipfs' Makefile:32: recipe for target 'path_check' failed make: *** [path_check] Error 1

Kubuxu commented on 2016-02-26 15:19 (UTC) (edited on 2016-02-26 16:27 (UTC) by Kubuxu)

@Freso You might be interested as I just packaged build tools used by IPFS. See `gx` and `gx-go`. Also there are 0.4.0 tags, see: https://github.com/ipfs/go-ipfs/releases To use sources pulled by `makepkg` do what is done currently. Link them under go build infrastructure. If you don't feel great about handling go, I would be honoured to adopt this package. 0.4.0 release is a big steps for IPFS and the sooner AUR contains release candidate versions the better.

Freso commented on 2016-02-26 12:18 (UTC)

Also seems like upstream's own build instructions are currently broken, so it's not easy to test this.

Freso commented on 2016-02-26 10:47 (UTC)

@bitwave: Using the build instructions as listed on that page is not really suitable for this package, as it will cause the sources to be downloaded twice. I will need to figure out how to do this while using the repository pulled by `makepkg`. @Ape Ask upstream to make 0.4.x tag then and this package will have its $pkgver updated the next time you build it.

bitwave commented on 2016-02-20 11:51 (UTC)

please use the building instructions with go-gx (https://github.com/ipfs/go-ipfs/#build-from-source)

Ape commented on 2016-01-16 18:12 (UTC)

@Stebalien, The version numbering on this package is a bit problematic in other ways, too. IPFS 0.3.x and 0.4.x are mutually incompatible branches. The latest released version and so the latest tag in Git is 0.3.11. Because of this, the package version is based on 0.3.11. However, the package really builds a 0.4.x branch version since 0.4.0 is currently being developed in Git master. 'ipfs version' returns '0.4.0-dev'. I suggest that PKGBUILD is changed so that the package version number contains '0.4' instead of '0.3'. Maybe something like '0.4.0-dev.r###.hash'.

Stebalien commented on 2016-01-13 06:02 (UTC)

The version here is higher than the version of the package that gets built. This causes my aur helper to repeatedly update ipfs.

Stebalien commented on 2016-01-04 19:21 (UTC)

Please move the bash completions to /usr/share/bash-completions/completions. /etc/bash_completions.d is for administrator installed completions.

Kubuxu commented on 2015-12-20 11:11 (UTC)

Could you add IPFS user service file as it is in 'go-ipfs' package?

kseistrup commented on 2015-04-04 07:09 (UTC)

The binary ought to be stripped before installing…

ianonavy commented on 2015-02-27 01:15 (UTC)

Updated to 0.2.1. Fixes the auto-incrementing version number to use the new location for version.go. Also, I moved the binary from /usr/local/bin to /usr/bin to conform to the Arch packaging standards (https://wiki.archlinux.org/index.php/Arch_packaging_standards).

commented on 2014-09-26 04:58 (UTC)

[deleted]