unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
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/

      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).