;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Nicolas Goaziou ;;; Copyright © 2019 Jesse Gibbons ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages cvassistant) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages qt) #:use-module (gnu packages compression)) (define-public cvassistant (package (name "cvassistant") (version "3.1.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/cvassistant/" "cvassistant-" version "-src.tar.bz2")) (sha256 (base32 "1y2680bazyiwm50gdhdd4982ckbjscrkbw2mngyk7yw708iadvr7")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'remove-donation-banner ;; Remove dialog box with a donation link, as suggested by ;; the INSTALL file. (lambda _ (substitute* "controllers/mainwindow.cpp" (("//(#define NO_DONATION_PROMPT)" _ line) line)) #t)) (add-after 'unpack 'fix-quazip-directory (lambda _ (substitute* "models/resumedocument.h" (("quazip(/quazipfile\\.h)" _ suffix) (string-append "quazip5" suffix))) #t)) (add-after 'fix-quazip-directory 'fix-quazip-link (lambda _ (substitute* "CVAssistant.pro" (("lquazip-qt5") "lquazip5")) #t)) (add-after 'fix-quazip-directory 'fix-install-root (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* "CVAssistant.pro" (("/usr/(bin|share/)" _ suffix) (string-append out "/" suffix))) #t))) (replace 'configure (lambda _ (invoke "qmake")))))) (inputs `(("qtbase" ,qtbase) ("quazip" ,quazip) ("zlib" ,zlib))) (home-page "https://cvassistant.sourceforge.io/") (synopsis "Job application organizer") (description "Whether you're looking for a job or trying to help a friend to find one, CVAssistant is a tool for you. It helps you by preparing resumes and cover letters and organizing your job application process. It: @itemize @item Stores all your skills and experiences. @item Creates resumes tailored for each job you apply. @item Creates cover letters summarized to match each job advertisement. @item Keeps a history of job applications so you are ready when you receive a phone call. @item Writes resumes in your language. All languages are supported! @end itemize") (license license:gpl3+))) >...* guix/records.scm (match-record): Unwrap matched thunked and delayed fields. * tests/records.scm ("match-record, thunked field", "match-record, delayed field"): New tests. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz> (unmatched-parenthesis d 2022-12-27records: match-record supports specifying a different variable name....An example: (match-record obj <my-type> (field1 (field2 custom-var-name) field3) ...) * guix/records.scm (match-record-inner): Add support for the new syntax. * tests/records.scm ("match-record, simple"): Add a simple test case for the new syntax. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Attila Lendvai 2022-12-02records: 'match-record' checks fields at macro-expansion time....This allows 'match-record' to be more efficient (field offsets are computed at compilation time) and to report unknown fields at macro-expansion time. * guix/records.scm (map-fields): New macro. (define-record-type*)[rtd-identifier]: New procedure. Define TYPE as a macro and use a separate identifier for the RTD. (lookup-field, match-record-inner): New macros. (match-record): Rewrite in terms of 'match-error-inner'. * tests/records.scm ("match-record, simple") ("match-record, unknown field"): New tests. * gnu/services/cuirass.scm (cuirass-shepherd-service): Rename 'log-file' local variable to 'main-log-file'. * gnu/services/getmail.scm (serialize-getmail-configuration-file): Move after <getmail-configuration-file> definition. Ludovic Courtès 2022-07-01tests: Add sanitizer test....* tests/records.scm ("define-record-type* & sanitize without default value"): New test. Ludovic Courtès