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

Summary: make dnf case insensitive for package search and installation
Product: [Fedora] Fedora Reporter: Asif Ali Rizvan <fast.rizwaan>
Component: dnfAssignee: rpm-software-management
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: low    
Version: rawhideCC: jmracek, mjuszkie, mluscon, packaging-team-maint, pnemade, rpm-software-management, vmukhame
Target Milestone: ---Keywords: FutureFeature, Triaged, UserExperience
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-29 12:35:22 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

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

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.


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.