Opened 12 months ago

Last modified 12 months ago

#68633 new enhancement

qt6 should have small 'development" package / QTDIR not set during install

Reported by: Behinder (behinder) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: qt6 Cc:
Port:

Description

Forgive me ,I don't know what title to give this so let me briefly describe problems. I wanted to try fix the bugs in qbitorrent so reading README I see qt6 is required. Ok but when I want to install qt6 it also try to install lot of qt dependencies including qt6-qtmultimedia which is really unnecessary - after all this is torrent client not multimedia player.

I would say it is developer fault to not clarify dependencies in detail, but anyway it would be nice to have something like qt6base-devel. or is it already packed into qt6-qtbase? I am still accustomed to Ubuntu style -devel packages namespace so lack of such in macports confusing me. Even worse, when I install whole qt6 via macports qbittorrent still cannot find some necessary symbols for CMake - I would say QTDIR variable should be set up during destroot stage but it's not.

So that brought me another problem I have for years when using Macports - correctly handling dependency and revert installation to previous state. When I did port install qt6 beside qt6 it also installed some other dependencies, but some dependencies I already had on my disk. Now, when I want to uninstall qt6 I would like to remove only that dependencies that was added during last install , not every package that is qt6 dependency. I tried various combination with depof rdepof dependentof this dummy names are confusing for me, and no luck.

Change History (2)

comment:1 Changed 12 months ago by ryandesign (Ryan Carsten Schmidt)

MacPorts does not have -devel packages in the way that some Linux distributions have them. Instead, those components are part of the main port. For example, the MacPorts zlib port contains everything that the zlib and zlib-devel packages might contain in such Linux distributions. We have not seen a need for that kind of separation in MacPorts.

MacPorts does have -devel ports that have a different purpose. They install a (usually) newer development version of a port, instead of the (usually) stable version provided by the main port. For example, the cairo-devel port currently contains a newer version of the same software that is in the cairo port.

MacPorts does not set any environment variable for you in your shell. You can edit your shell startup files to set whatever environment variables you wish. (Well, the MacPorts installer will edit your shell startup file to set the PATH environment variable to include the MacPorts path, and some other environment variables in unusual situations, but that's only the MacPorts installer. MacPorts itself will not edit your shell startup files.)

The intended way to clean up unneeded ports is for you use sudo port reclaim (which MacPorts will automatically remind you to run every two weeks). It will offer to uninstall ports you did not request. Ports you request are those you install directly, e.g. if you use sudo port install qt6-qtbase then qt6-qtbase is marked requested and all the dependencies MacPorts needed to install first are not marked requested. You can see the list of ports MacPorts considers requested with port installed requested and similarly the list of ports not considered requested with port installed unrequested. If MacPorts has the wrong idea about what is requested and what is not, and thus makes the wrong suggestions during reclaim, you can correct it using the commands sudo port setrequested someport and sudo port unsetrequested someport where "someport" should be replaced with the port name(s).

If you have other questions about how to use MacPorts, the macports-users mailing list is a better place to get answers than the issue tracker.

Last edited 12 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:2 Changed 12 months ago by jmroot (Joshua Root)

Milestone: MacPorts Future
Note: See TracTickets for help on using tickets.