Opened 6 years ago

Closed 6 years ago

#55429 closed request (fixed)

qtkeychain

Reported by: Liontooth (David Liontooth) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: Veence (Vincent)
Port: qtkeychain

Description (last modified by ryandesign (Ryan Carsten Schmidt))

qtkeychain is needed by QGIS3.

It's available from https://github.com/frankosterfeld/qtkeychain and builds with a simple

cmake ; make build ; make install

Notes towards a portfile:

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0

name                qtkeychain
version             0.8.0
categories          security
platforms           darwin
license             Modified BSD
maintainers
description         Platform-independent Qt API for storing passwords securely
long_description    QtKeychain is a Qt API to store passwords and other secret data securely. Passwords are stored in the OS X Keychain.

homepage            https://github.com/frankosterfeld/qtkeychain
master_sites        https://github.com/frankosterfeld/qtkeychain

checksums           rmd160  dbfbb8addffacea8475d0439c86ccf1e5551c23d \
                    sha256  6858475f6da20855d22f13b0db9029ca3a91e7a95b22d799f090f1edb910a9d4

depends_build       port:cmake \
                    port:qt5-qttools

depends_lib         port:qt5-qtbase

Change History (6)

comment:1 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Port: qtkeychain added; QGIS3 removed
Version: 2.4.2

Anything that uses Qt5 should probably be using the qt5 or qmake5 portgroup. Qt dependencies are then expressed not by using depends_build or depends_lib but by using qt5.depends_component or qt5.depends_build_component.

Anything that uses cmake should be using the cmake portgroup. This takes care of the cmake dependency and typical flags.

Anything hosted on github should be using the github portgroup. This takes care of homepage, master_sites, livecheck, extraction.

The license field is a space-separated list of licenses; "Modified" is not the name of a valid license. Setting the license correctly is necessary so MacPorts can determine if a port's binary is distributable. It looks like in this case the specific modified BSD license being used is known more commonly as the 3-clause BSD license. In MacPorts, we refer to the 3-clause and 2-clause BSD licenses simply as "BSD".

An empty maintainers line is not valid. Put your obfuscated (host:user) email address if you wish to maintain it, or "nomaintainer" if you do not.

comment:2 Changed 6 years ago by Liontooth (David Liontooth)

I'm guessing here but this portfile works:

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem             1.0
PortGroup              cmake 1.0
PortGroup              github 1.0
PortGroup              qt5 1.0

name                   qtkeychain
version                0.8
categories             security
platforms              darwin
license                BSD
maintainers            nomaintainer
description            Platform-independent Qt API for storing passwords securely
long_description       QtKeychain is a Qt API to store passwords and other secret data securely. Passwords are stored in the OS X Keychain.

github.setup           frankosterfeld qtkeychain ${version} 
distfiles              ${version}.zip

checksums              rmd160  bd836da78724c75a4eb169018b3df6dd32f1f625 \
                       sha256  be986d0f1a24b7eac8eddce94bb820652fcdcf6fb9b590441743a510abcc4739

qt5.depends_component  qtbase qttools

Except for this conflict:

Error: Failed to activate qtkeychain: Image error: /opt/local/libexec/qt5/translations/qtkeychain_de.qm already exists and does not belong to a registered port.  Unable to activate port qtkeychain.

I see there's also /opt/local/libexec/qt5/translations/qtkeychain_ro.qm.

comment:3 Changed 6 years ago by Liontooth (David Liontooth)

comment:4 Changed 6 years ago by Liontooth (David Liontooth)

Upstream comments "The problem is that QT_TRANSLATIONS_DIR is set to /usr/share/qt4/translations (I have a Qt4 installation) and this is not writeable". It's not clear this explains why we get this problem in MacPorts. If I force activation:

# port -f activate qtkeychain
--->  Computing dependencies for qtkeychain
--->  Activating qtkeychain @0.8_0
Warning: File /opt/local/libexec/qt5/translations/qtkeychain_de.qm already exists.  Moving to: /opt/local/libexec/qt5/translations/qtkeychain_de.qm.mp_1512059046.
Warning: File /opt/local/libexec/qt5/translations/qtkeychain_ro.qm already exists.  Moving to: /opt/local/libexec/qt5/translations/qtkeychain_ro.qm.mp_1512059046.
--->  Cleaning qtkeychain

I see the moved files are identical to the new files, but the moved files have a different date. If I then uninstall qtkeychain and reinstall it, the conflict does not recur. I can't explain how this duplication happened, but it does not appear to be caused by qtkeychain.

The new portfile also generates this warning in the log file:

:debug:destroot checking for mtree violations
:warn:destroot violation by /opt/local/mkspecs
:warn:destroot qtkeychain violates the layout of the ports-filesystems!
:warn:destroot Please fix or indicate this misbehavior (if it is intended), it will be an error in future releases!

What's this about?

comment:5 Changed 6 years ago by Liontooth (David Liontooth)

qtkeychain is now in the repository; please close.

comment:6 Changed 6 years ago by Veence (Vincent)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.