Github messages for voidlinux
 help / color / mirror / Atom feed
From: krab <krab@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: [ISSUE] Better package split for qt5-sql and sql plugins
Date: Sun, 02 Jan 2022 00:17:00 +0100	[thread overview]
Message-ID: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-34803@inbox.vuxu.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 2530 bytes --]

New issue by krab on void-packages repository

https://github.com/void-linux/void-packages/issues/34803

Description:
<!-- Don't request update of package. We have a script for that. https://alpha.de.repo.voidlinux.org/void-updates/void-updates.txt . However, a quality pull request may help. -->
### System

* xuname:  
  `Void 5.15.11-xanmod1_1 x86_64 GenuineIntel notuptodate rrFFF`
* package:  
  `qt5-sql-5.15.3+20211001_1`

I'm building a local package for qt5 software that uses qt5sql-sqlite plugin in it sources. So currently I have to specify all qt5-sql plugins like `qt5-plugin-sqlite` etc. in `template` file to make package. Because if you look at `Qt5SqlConfig.cmake` file, it uses `GLOB` CMake function: 
```
    # In Qt 5.15 the glob pattern was relaxed to also catch plugins not literally named Plugin.
    # Define QT5_STRICT_PLUGIN_GLOB or ModuleName_STRICT_PLUGIN_GLOB to revert to old behavior.
    if (QT5_STRICT_PLUGIN_GLOB OR Qt5Sql_STRICT_PLUGIN_GLOB)
        file(GLOB pluginTargets "${CMAKE_CURRENT_LIST_DIR}/Qt5Sql_*Plugin.cmake")
    else()
        file(GLOB pluginTargets "${CMAKE_CURRENT_LIST_DIR}/Qt5Sql_*.cmake")
    endif()
```
So it's trying to find every single `.so` file from `Qt5Sql_Q***DriverPlugin.cmake` file. But they don't exist, they separated into packages like `qt5-plugin-sqlite` etc. and configuration fails with:
```
macro(_qt5_Sql_check_file_exists file)
    if(NOT EXISTS "${file}" )
        message(FATAL_ERROR "The imported target \"Qt5::Sql\" references the file
   \"${file}\"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   \"${CMAKE_CURRENT_LIST_FILE}\"
but not all the files it references.
")
    endif()
endmacro()
```
The solution I'm suggesting is: 
- [ ] Move `Qt5SqlConfig.cmake Qt5SqlConfigVersion.cmake` from `/usr/lib/cmake/Qt5Sql/`  (`qt5-sql` package) into `qt5-sql-devel` package.
- [ ] Move all `Qt5Sql_QMYSQLDriverPlugin.cmake Qt5Sql_QODBCDriverPlugin.cmake Qt5Sql_QPSQLDriverPlugin.cmake Qt5Sql_QSQLiteDriverPlugin.cmake Qt5Sql_QTDSDriverPlugin.cmake` from `qt5-sql` package into new subpackages 
for example:  `qt5-plugin-sqlite-devel` etc.

That way to build software, we can specify single `qt5-plugin-sqlite-devel` as `makedepends` and `qt5-plugin-sqlite` as `depends` and don't list all of qt5sql plugins in template.

             reply	other threads:[~2022-01-01 23:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-01 23:17 krab [this message]
2022-01-01 23:25 ` krab
2022-06-20  2:14 ` github-actions
2022-07-04  2:15 ` [ISSUE] [CLOSED] " github-actions

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-34803@inbox.vuxu.org \
    --to=krab@users.noreply.github.com \
    --cc=ml@inbox.vuxu.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.
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 NNTP newsgroup(s).