From: Thorsten Wilms <t_w_@freenet.de>
To: guix-devel@gnu.org
Subject: Re: QtCreator Packaging
Date: Thu, 11 Oct 2018 10:41:42 +0200 [thread overview]
Message-ID: <ec302ef6-9e4e-9e9b-c622-4c3ee8d7c75b@freenet.de> (raw)
In-Reply-To: <871s8xxk8y.fsf@posteo.net>
On 2018-10-11 04:58, Brett Gilio wrote:
> I am beginning my attempt to package QtCreator.
> Here is the current package definition:
> http://ix.io/1oTH
>
> Here is the kill ring for the build:
> http://ix.io/1oTJ
Hi, I'm rather ... new to this myself. That said, the critical line
seems to be:
/gnu/store/rbrandv7anzjxqkr40d7fkanzssslk4b-bash-minimal-4.4.19/bin/bash:
./configure: No such file or directory
Looking at
https://wiki.qt.io/Building_Qt_Creator_from_Git,
qmake is used instead of a ./configure. Here I thought `(build-system
gnu-build-system)` would be the wrong choice, but
https://www.gnu.org/software/guix/manual/en/html_node/Build-Systems.html
doesn't mention qmake or anything that strikes me as Qt-specific.
In the guix source tree, /gnu/packages: `grep -B 10 -A 10 qmake *` lists
some candidates with context to look at. A full package definition
picked out from there:
---
(define-public ghostwriter
(package
(name "ghostwriter")
(version "1.6.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wereturtle/ghostwriter.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0251563zy0q69fzfacvalpx43y15cshb0bhshyd4w37061gh1c12"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("qttools" ,qttools))) ;for lrelease
(inputs
`(("hunspell" ,hunspell)
("qtbase" ,qtbase)
("qtmultimedia" ,qtmultimedia)
("qtsvg" ,qtsvg)
("qtwebkit" ,qtwebkit)))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(invoke "qmake" (string-append "PREFIX=" out)))))
(add-after 'configure 'create-translations
(lambda _
;; `lrelease` will not overwrite, so delete existing .qm files
(for-each delete-file (find-files "translations" ".*\\.qm"))
(apply invoke "lrelease" (find-files "translations"
".*\\.ts"))))
;; Ensure that icons are found at runtime.
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/ghostwriter")
`("QT_PLUGIN_PATH" ":" prefix
,(map (lambda (label)
(string-append (assoc-ref inputs label)
"/lib/qt5/plugins/"))
'("qtsvg" "qtmultimedia"))))))))))
(home-page "https://wereturtle.github.io/ghostwriter/")
(synopsis "Write without distractions")
(description
"@code{ghostwriter} provides a relaxing, distraction-free writing
environment with Markdown markup.")
(license license:gpl3+))) ;icons/* under CC-BY-SA3
---
So the current pattern for building with qmake is to use `(build-system
gnu-build-system)` with modify-phases to replace configure. How that
replacement looks exactly varies between packages.
I'm surprised that python-pyqt has
(native-inputs `(("qtbase" ,qtbase))) ; for qmake
but other packages that replace configure do not.
--
Thorsten Wilms
thorwil's design for free software:
http://thorwil.wordpress.com/
prev parent reply other threads:[~2018-10-11 8:44 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-11 2:58 QtCreator Packaging Brett Gilio
2018-10-11 7:11 ` Mikhail Kryshen
2018-10-11 8:41 ` Thorsten Wilms [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ec302ef6-9e4e-9e9b-c622-4c3ee8d7c75b@freenet.de \
--to=t_w_@freenet.de \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).