Repo-add error "is not a package file, skipping" on .sig files

I create Manjaro spins and for them I have a repository for packages.
I create the packages with

makepkg --sign --key "my key here"

My real gpgkey id is in place of “my key here”` It makes the package and a .sig file.

I place both files in a folder, and use the following command

repo-add sbk-repo.db.tar.gz *.pkg.tar.* -s

The problem is that running repo-add command gives an error.

==> Adding package 'silver-cursor-1-0-any.pkg.tar.xz'
  -> Adding package signature...
  -> Computing checksums...
  -> Creating 'desc' db entry...
  -> Creating 'files' db entry...
==> ERROR: 'silver-cursor-1-0-any.pkg.tar.xz.sig' is not a package file, skipping

According to the Arch repo-add page “If a matching “.sig” file is found alongside a package file, the signature will automatically be embedded into the database.” But the errors stop the database from being created.

I have searched high and low online for info in the error. Sadly after hours of looking and reading I havent figured it out.
Thanks in advance for any help. Sorry if this is in the wrong place on the forum. I likely would have posted someplace in the development section, but I am unable to create a topic there.
If you would like to test it with the files they are in my repo. Here is a link to them.


here the signature has been added:


is causing by:

So would be better to add it like this:

repo-add sbk-repo.db.tar.gz -s

As I see signatures are added automatically.

1 Like

Someone missed merging a pacnew file. :wink: We’ve been using .pkg.tar.zst for quite awhile now.

You can add your key to makepkg.conf with the GPGKEY variable so you don’t have to do that every time. See makepkg - ArchWiki

Thank you both for for the response.

Now I see that it has been added, but the problem is that it didnt create the database files. I tried
repo-add sbk-repo.db.tar.gz -s

But I get this

[jim@jim-ga78lmtusb3 test]$ repo-add sbk-repo.db.tar.gz -s
==> Creating updated database file 'sbk-repo.db.tar.gz'
==> WARNING: No packages remain, creating empty database.
==> Signing database 'sbk-repo.db.tar.gz'...
  -> Created signature file 'sbk-repo.db.tar.gz.sig'
==> WARNING: No packages remain, creating empty database.
==> Signing database 'sbk-repo.files.tar.gz'...
  -> Created signature file 'sbk-repo.files.tar.gz.sig'
[jim@jim-ga78lmtusb3 test]$

It creates the database files, but they are empty.

I did try

repo-add sbk-repo.db.tar.gz silver-cursor-1-0-any.pkg.tar.xz -s

It worked! But the reason *.pkg.tar.* is in the command is I have 144 packages. I used the admittedly old silver cursor package as a test package in a test directory to try and make it simple for solving this issue. The question now is can I somehow run this command on a folder full of packages and not have it pickup the sig files as files to process.

As a work around I tee’d a ls into a txt file of the directory without sig files and then used that as a replacement for *.pkg.tar.* in the command after replacing the sig files. It worked.

The silver-cursor package is very old. I was just using it as a test file in a test folder to work through this problem without having 143 other packages to process.

I know I can add the key to makepkg.conf but I long ago changed the timeout on the passphrase to 8 hours since its a computer in my house that no one else has access to and its off when I am not home. Once every 8 hours isnt that bad.