Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1364246 - make dnf case insensitive for package search and installation
Summary: make dnf case insensitive for package search and installation
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: rawhide
Hardware: All
OS: Linux
low
unspecified
Target Milestone: ---
Assignee: rpm-software-management
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-08-04 19:52 UTC by Asif Ali Rizvan
Modified: 2017-06-29 12:35 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-06-29 12:35:22 UTC


Attachments (Terms of Use)

Description Asif Ali Rizvan 2016-08-04 19:52:43 UTC
Description of problem: There are many rpm packages which are case sensitive 
like SDL, VirtualBox, mesa-libGLU, Nestopia, and around 5,500 rpm files have partial UPPERCASE names.



$ sudo dnf install sdl
Last metadata expiration check: 0:02:23 ago on Fri Aug  5 01:15:08 2016.
No package sdl available.
Error: Unable to find a match.



$ dnf list|grep -i SDL
SDL.x86_64                            1.2.15-21.fc24             @@commandline  
SDL-devel.x86_64                      1.2.15-21.fc24             @fedora        
SDL2.x86_64                           2.0.4-6.fc24               @updates       
SDL2_ttf.x86_64                       2.0.14-1.fc24              @fedora        
SDL_image.x86_64                      1.2.12-14.fc24             @fedora       

Yeah right, it is SDL. but who will remember that always?

Version-Release number of selected component (if applicable):


How reproducible:
dnf list|grep [A-Z]|wc -l
5589


Steps to Reproduce:
1. dnf list|grep [A-Z]
2. dnf install sdl-devel
3. dnf install virtualbox


Actual results:
dnf should make it case insensitive translation. Else we users are force do to dnf list|grep -i <package name>

Expected results:
dnf should search and install packages case insensitively. Or at least do auto correction or give suggestion to replace sdl with SDL, as we can see for Tab-Completion.

Additional info:
It is annyoing to remember wHeRe and WhIcH pAckAges have uppercase leTTERS, and it make is it even more time consuming to install some basic packages like SDL and virtualbox.

Comment 1 Michal Luscon 2016-08-08 12:19:13 UTC
Dnf search is already case insensitive:

# dnf search networkmanager
NetworkManager-tui.x86_64 : NetworkManager curses-based UI
NetworkManager-wifi.x86_64 : Wifi plugin for NetworkManager
NetworkManager-ssh.x86_64 : NetworkManager VPN plugin for SSH
NetworkManager-pptp.x86_64 : NetworkManager VPN plugin for PPTP
NetworkManager-vpnc.x86_64 : NetworkManager VPN plugin for vpnc
NetworkManager-adsl.x86_64 : ADSL device plugin for NetworkManager
NetworkManager-team.x86_64 : Team device plugin for NetworkManager
NetworkManager-iodine.x86_64 : NetworkManager VPN plugin for iodine
NetworkManager-openvpn.x86_64 : NetworkManager VPN plugin for OpenVPN
libproxy-networkmanager.x86_64 : Plugin for libproxy and networkmanager

And as for the install, we will consider it with regard to other package managers.

Comment 2 Marcin Juszkiewicz 2016-09-07 09:04:07 UTC
10:59 root@puchatek:hrw# LANGUAGE=C dnf list perl*text*charw*                                                                                                  
Last metadata expiration check: 0:04:23 ago on Wed Sep  7 10:56:22 2016.
Installed Packages
perl-Text-CharWidth.x86_64        0.04-27.fc25                  @rawhide

11:00 root@puchatek:hrw# LANGUAGE=C dnf install -y perl*text*charw*                                                                                            
No package perl*text*charw* available.
Error: Unable to find a match.


Awesome.

Comment 3 Jaroslav Mracek 2017-06-29 12:35:22 UTC
I implemented hints in cases where case insensitivity provide a result (this will be implemented in next release - current is dnf-2-5.1-1):

sudo LANGUAGE=C dnf install -y perl*text*charw*
Last metadata expiration check: 0:04:06 ago on Thu 29 Jun 2017 02:06:18 PM CEST.
No package perl*text*charw* available.
  * Maybe you meant: perl-Text-CharWidth
Error: Unable to find a match

I know that it is not exactly what was requested, but at least something. I know that case insensitivity will improve the user experience, and it is fine for outputs like from 'dnf list' commands, but for install command I would prefer to keep behavior like it is. There is no rule that prevents coexistence of rpms like MyNicePackage and mynicepackage and using case insensitivity will disable users possibility to define, what was the requested package. Also the combination case insensitivity with globs can be problematic, because you can receive more hints that you expected. Like if you will use "dnf install perl-t*" now you install 4 packages, but with case insensitivity dnf will try to install about 387 packages. Hope that you understand that.


Note You need to log in before you can comment on or make changes to this bug.