Package Details: repoctl 0.21-3

Git Clone URL: (read-only, click to copy)
Package Base: repoctl
Description: An AUR helper that also simplifies managing local Pacman repositories
Upstream URL:
Keywords: aur pacman repository
Licenses: MIT
Submitter: cassava
Maintainer: cassava
Last Packager: cassava
Votes: 16
Popularity: 0.41
First Submitted: 2015-07-19 09:04 (UTC)
Last Updated: 2020-09-01 08:49 (UTC)

Latest Comments

yochananmarqos commented on 2020-09-01 15:34 (UTC)

@cassava: What you have now is fine, really. The cleaning before and after is mainly to make sure makepkg -C works even if the build fails.

duffydack commented on 2020-09-01 09:08 (UTC)

Confirm -3 builds fine. Only way I could build -2 was in a chroot (I use aurutils, but makepkg failed also)

cassava commented on 2020-09-01 08:54 (UTC) (edited on 2020-09-01 09:12 (UTC) by cassava)

Hey @johnramsden, thanks for the info. I've updated the PKGBUILD to leave out testing till I find out what the issue is. Could you tell me what the output of file /var/lib/pacman/sync/custom.db is?

cassava commented on 2020-09-01 08:52 (UTC)

@yochananmarqos: The local GOPATH variable is set in the build() function, is that sufficient? Or does it need to be in prepare()? With the settings as they are currently set, wouldn't everything be within the ${srcdir} and therefore a go clean is not necessary?

yochananmarqos commented on 2020-09-01 04:19 (UTC) (edited on 2020-09-01 04:22 (UTC) by yochananmarqos)

@cassava: Thanks. One thing you left out is using a local GOPATH and cleaning up afterward. If it's not set, it clutters the user's home directory. Sometimes ~/go/ cannot be removed without using sudo. If there are leftover files, makepkg -C fails because it can't remove them.

johnramsden commented on 2020-09-01 04:13 (UTC)

I'm getting the following errors when I try to build:

==> Starting check()...
?      [no test files]
? [no test files]
?        [no test files]
--- FAIL: TestReadAllSyncDatabases (0.53s)
    read-db_test.go:61: unexpected error: read database /var/lib/pacman/sync/custom.db: unknown compression codec
    read-db_test.go:81: package 'a' not found in database
read-db_test.go:81: package 'z' not found in database
    read-db_test.go:87: database size mismatch: expected 11239, got 0
FAIL       0.558s
ok  5.951s
ok   2.396s
? [no test files]
?  [no test files]
?       [no test files]
? [no test files]
?      [no test files]
==> ERROR: A failure occurred in check().

cassava commented on 2020-08-31 19:53 (UTC)

Thanks for the heads-up yochananmarqos! I've implemented most of your suggestions after cross-referencing the Go package guidelines. Main deviation is that I use -mod=vendor to prevent the need for downloading all the dependencies a second time.

yochananmarqos commented on 2020-08-31 18:37 (UTC)

Using a local Go cache and updated build for new Go package guidelines:

prepare() {
  export GOPATH="$srcdir/gopath"
  go clean -modcache

build() {
  cd "$pkgname-$pkgver"
  export CGO_CFLAGS="${CFLAGS}"
  export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
  go build -v -o "$pkgname"

  # Generate the completion files
  ./repoctl completion zsh > completion.zsh
  ./repoctl completion bash > completion.bash
  ./repoctl completion fish >

  go clean -modcache

cassava commented on 2020-01-03 21:46 (UTC)

Hey guys, the newest version of repoctl should resolve the problems with Zstd. Sorry about that! (Will investigate it further to prevent such things causing issues in the future, as soon as I find the time. But for now, it should work.)

Also, thanks for the advice yochanmarqos, I'll see if I can implement this soon.

yochananmarqos commented on 2020-01-01 23:53 (UTC) (edited on 2020-07-24 15:41 (UTC) by yochananmarqos)

No need for both ln and mv when it can be done in one command:

prepare() {
  mkdir -p gopath/src/
    ln -rTsf "$pkgname-$pkgver" \

Please use the updated Go package guidelines.

Do not use the !strip option; in fact the binary needs to be stripped of the build path using the -trimpath flags:

build() {
  export GOPATH="$srcdir"
  cd "gopath/src/$pkgname/cmd/$pkgname"
    go build \
        -trimpath \
        -buildmode=pie \
        -ldflags "-extldflags \"${LDFLAGS}\"" \
        -v .

    cd "$srcdir/gopath/src/$pkgname/cmd/repols"
    go build \
        -trimpath \
        -buildmode=pie \
        -ldflags "-extldflags \"${LDFLAGS}\"" \
        -v .

CanalGuada commented on 2019-10-24 14:14 (UTC)

I guess it does not simplify managing local repositories if a repoctl add -m dumps the whole said repositories when "adding" a package with the brand new Zstd archive format.

cassava commented on 2016-04-23 09:49 (UTC)

Hey guys, sorry for the great delay. I've updated the package to 0.14. This release also does not require git to build. Let me know if there are any problems. I will monitor these comments better now.

TrialnError commented on 2016-04-15 10:44 (UTC)

runical: Because the SRCINFO wasn't updated. That is the reason for the mismatch

runical commented on 2015-11-06 22:56 (UTC) (edited on 2015-11-06 22:58 (UTC) by runical)

Is there somebody there? This package needs git to build on a system without git installed (like a clean chroot). Please add it to the builddepends. Also, your PKGBUILD rel does not match the pkgrel the AUR gives. Why?

runical commented on 2015-09-09 19:47 (UTC)

The pkgbuild is missing git as a makedepend. Go uses it to get some libraries I guess.