Subject: [PATCH v3 5/5] gnu: Add tellico.

From: Sughosha <[email-masked]>
Date: Thu, 23 Jan 2025 15:42:24 +0530

* gnu/packages/kde-office.scm (tellico): New variable.

Change-Id: Id923a9d6fd9a4421afa571f8b14f748496834bdb
---
 gnu/packages/kde-office.scm | 112 +++++++++++++++++++++++++++++++++++-
 1 file changed, 110 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/kde-office.scm b/gnu/packages/kde-office.scm
index 96c8318225..ae866cd3c0 100644
--- a/gnu/packages/kde-office.scm
+++ b/gnu/packages/kde-office.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2024 Sughosha <[email-masked]>
+;;; Copyright © 2024, 2025 Sughosha <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,22 +19,29 @@
 (define-module (gnu packages kde-office)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system qt)
   #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages csv)
+  #:use-module (gnu packages cdrom)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages hunspell)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages kde-multimedia)
   #:use-module (gnu packages libreoffice)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages mp3)
+  #:use-module (gnu packages networking)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -42,7 +49,8 @@ (define-module (gnu packages kde-office)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages wm)
-  #:use-module (gnu packages xdisorg))
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xml))
 
 (define-public calligra
   (package
@@ -182,3 +190,103 @@ (define-public ghostwriter
 processor built in, and can integrate with Pandoc, MultiMarkdown, Discount, and
 cmark processors if they are installed.")
     (license license:gpl3+)))
+
+
+(define-public tellico
+  (package
+    (name "tellico")
+    (version "4.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://invent.kde.org/office/tellico")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "0dni1n3caj2wb7kwiv08k2qqbv8swfd7xdil6aiqdvmv6xihycy7"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Fix including QtPrintSupport.
+               '(substitute* (find-files "src" "\\.(h|cpp)$")
+                  (("#include <QPrint") "#include <QtPrintSupport/QPrint")))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'check 'set-home-directory
+                 (lambda _
+                   (setenv "HOME" "/tmp")))
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "dbus-launch" "ctest")))))))
+    (native-inputs
+     (list dbus extra-cmake-modules kdoctools pkg-config))
+    (inputs
+     (list exempi
+           karchive
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kfilemetadata
+           kguiaddons
+           ki18n
+           kiconthemes
+           kio
+           kitemmodels
+           kjobwidgets
+           knewstuff
+           ktextwidgets
+           kwidgetsaddons
+           kxmlgui
+           libcdio
+           libcsv
+           libkcddb
+           libksane
+           libxml2
+           libxslt
+           perl-text-bibtex
+           poppler-qt6
+           qtcharts
+           qtsvg
+           qtwayland
+           qtwebengine
+           solid
+           sonnet
+           taglib
+           yaz))
+    (home-page "https://tellico-project.org/")
+    (synopsis "Collection manager")
+    (description "Tellico is an application for organizing your collections.  It
+provides default templates for books, bibliographies, videos, music, video
+games, coins, stamps, trading cards, comic books, and wines.  It allows you to
+enter your collection in a catalogue database, saving many different properties
+like title, author, etc.
+
+Features:
+
+@itemize
+@item Supports default collections of books, bibliographic entries, videos,
+ music, video games, comic books, coins, stamps, trading cards, wines, board
+ games, and file catalogs.
+@item Supports user-defined custom collections.
+@item Supports any number of user-defined fields, of several different types:
+ text, paragraph, list, checkbox, number, URL, date, images, and combinations.
+@item Handles entries with multiple authors, genres, keywords, etc.
+#item Automatically formats titles and names.
+@item Supports collection searching and view filtering.
+@item Sorts and groups collection by various properties.
+@item Allows customizable entry templates through XSLT.
+@item Imports MODS, BibTeX, RIS, CSV, PDF metadata, and many other formats.
+@item Exports to BibTeX, ONIX, CSV, HTML, and other formats.
+@item Imports information directly from Amazon.com, IMDb, Z39.50 servers,
+ PubMed, SRU servers, CrossRef.org, various other websites, and from external
+ scripts.
+@item Imports CDDB data for cataloging audio CDs.
+@item Scans and imports audio file collections, such as mp3 or ogg.
+@end itemize")
+    (license license:gpl2+)))
-- 
2.47.1