Access to workdir on the build server?

Rainer Müller raimue at macports.org
Wed Feb 10 17:14:51 UTC 2021


Hello Janosch,

thank you for contributing these ports for MacPass!

I think this topic would have been better on the macports-dev@ mailing list, as
it reaches more developers that can help with writing Portfiles.

On 10/02/2021 13.44, Janosch Peters via macports-users wrote:
> I am currently investigating a build failure of the new port keepasskit
> <https://github.com/macports/macports-ports/blob/46050895452a3340a7785618b87a5e00f6b50b75/security/keepasskit/Portfile>.

First of all, this port must be updated with a proper versioning scheme. You
cannot use the git commit hash, because the version must have a defined sort
order. Hashes are "arbitrary" values and with just two hashes, there is no way
to tell which one is newer. This is important as with the current versioning
scheme the port might never show up as outdated. The port would only be upgraded
if the next hash happens to be sorted alphabetically after the current one.

Normally tagged releases should be preferred, but apparently there are no recent
tags that are suitable for MacPass and KeePassKit.

For repositories without tags, a common option would be to use the date of the
commit in YYYYMMDD format. Or if this will return to "normal" version numbers at
some point, start from the last tagged release 2.4.7 and add an increment as a
suffix, such as 2.4.7-snapshotYYYYMMDD or similar.

https://guide.macports.org/#reference.portgroup.github.distfile

To correct this you will also have to increment the 'epoch' of the port, as that
is the only way to ensure the new version number format will upgrade all
existing installation.

> The problem only occurs on the build server, not on my local machine:
> 
> Error: Failed to extract keepasskit: error renaming
> "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_security_keepasskit/keepasskit/work/phc-winner-argon2-b31aa322566a8559403d419b2e9cd3f57957e394"
> to
> "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_security_keepasskit/keepasskit/work/keepasskit-76e6ecda942f9e328efde7883ad75aed7290b632/Argon2":
> no such file or directory
> 
> The full logfile is here:
> https://build.macports.org/builders/ports-11_x86_64-builder/builds/19836/steps/install-port/logs/stdio
> 
> Is there a way to inspect the workdir on the build server? I have a suspicion
> that this is a problem with case-sensitiveness but to be sure I would need to
> inspect the workdir.

Your suspicion is correct, all buildbots run on case-sensitive filesystems.
Direct access is not possible and it is wiped directly after the build as disk
space is a rare resource for this setup.

You can already see it when inspecting the tarball directly:

$ tar tf 76e6ecda942f9e328efde7883ad75aed7290b632.tar.gz
KeePassKit-76e6ecda942f9e328efde7883ad75aed7290b632/
...

I am not sure if there is a canonical way to solve this with the github port
group, but I think it could work to set the worksrcdir with the right
capitalization:

worksrcdir    KeePassKit-${version}

Rainer


More information about the macports-users mailing list