sgidevnet / sgug-rse

Silicon Graphics User Group RPM Software Environment
GNU General Public License v3.0
60 stars 20 forks source link

tdnf does not work if PWD is /usr/sgug/bin #197

Closed LaurentChardon closed 2 years ago

LaurentChardon commented 2 years ago

tdnf seems not to work if the current directory is /usr/sgug/bin.

$ cd 
$ echo $PWD
/usr/people/laurent
$ sudo tdnf search tdnf
tdnf : dnf/yum equivalent using C libs
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf : dnf/yum equivalent using C libs
tdnf-automatic : tdnf - automated upgrades
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf-devel : A Library providing C API for tdnf
tdnf-plugin-repogpgcheck : tdnf plugin providign gpg verification for repository metadata
tdnf-python : python bindings for tdnf
$ cd /usr/sgug/bin/
$ sudo tdnf search tdnf
Error(1622) : Invalid argument

I'm in sgugshell and I don't have . in my $PATH. I'm using 0.0.7 beta.

LaurentChardon commented 2 years ago

If someone else can confirm that they see the problem in their install, I'll volunteer to have a look at the source code.

unxmaal commented 2 years ago

Confirmed

[sgugshell root@fuel bin]#  tdnf search tdnf
Refreshing metadata for: 'Sgugrse 0.0.7beta - IP35'
Refreshing metadata for: 'SGI.SH SGUG RSE 0.0.7 Moneypenny MIPS3'
Error(1622) : Invalid argument         2042907   100%
[sgugshell root@fuel bin]# cd
[sgugshell root@fuel /]# cd /root
[sgugshell root@fuel root]#  tdnf search tdnf
tdnf : dnf/yum equivalent using C libs
tdnf-automatic : tdnf - automated upgrades
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf-devel : A Library providing C API for tdnf
tdnf-plugin-repogpgcheck : tdnf plugin providign gpg verification for repository metadata
tdnf-python : python bindings for tdnf
tdnf : dnf/yum equivalent using C libs
tdnf-automatic : tdnf - automated upgrades
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf-devel : A Library providing C API for tdnf
tdnf-plugin-repogpgcheck : tdnf plugin providign gpg verification for repository metadata
tdnf-python : python bindings for tdnf
tdnf : dnf/yum equivalent using C libs
tdnf : dnf/yum equivalent using C libs
tdnf : dnf/yum equivalent using C libs
tdnf-automatic : tdnf - automated upgrades
tdnf-automatic : tdnf - automated upgrades
tdnf-automatic : tdnf - automated upgrades
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf-devel : A Library providing C API for tdnf
tdnf-devel : A Library providing C API for tdnf
tdnf-devel : A Library providing C API for tdnf
tdnf-plugin-repogpgcheck : tdnf plugin providign gpg verification for repository metadata
tdnf-plugin-repogpgcheck : tdnf plugin providign gpg verification for repository metadata
tdnf-plugin-repogpgcheck : tdnf plugin providign gpg verification for repository metadata
tdnf-python : python bindings for tdnf
tdnf-python : python bindings for tdnf
tdnf-python : python bindings for tdnf
unxmaal commented 2 years ago

However

[sgugshell root@fuel root]#  tdnf search 'tdnf'
tdnf : dnf/yum equivalent using C libs
tdnf-automatic : tdnf - automated upgrades
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf-devel : A Library providing C API for tdnf
tdnf-plugin-repogpgcheck : tdnf plugin providign gpg verification for repository metadata
tdnf-python : python bindings for tdnf
tdnf : dnf/yum equivalent using C libs
tdnf-automatic : tdnf - automated upgrades
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf-devel : A Library providing C API for tdnf
tdnf-plugin-repogpgcheck : tdnf plugin providign gpg verification for repository metadata
tdnf-python : python bindings for tdnf
tdnf : dnf/yum equivalent using C libs
tdnf : dnf/yum equivalent using C libs
tdnf : dnf/yum equivalent using C libs
tdnf-automatic : tdnf - automated upgrades
tdnf-automatic : tdnf - automated upgrades
tdnf-automatic : tdnf - automated upgrades
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf-cli-libs : Library providing cli libs for tdnf like clients
tdnf-devel : A Library providing C API for tdnf
tdnf-devel : A Library providing C API for tdnf
tdnf-devel : A Library providing C API for tdnf
tdnf-plugin-repogpgcheck : tdnf plugin providign gpg verification for repository metadata
tdnf-plugin-repogpgcheck : tdnf plugin providign gpg verification for repository metadata
tdnf-plugin-repogpgcheck : tdnf plugin providign gpg verification for repository metadata
tdnf-python : python bindings for tdnf
tdnf-python : python bindings for tdnf
tdnf-python : python bindings for tdnf
LaurentChardon commented 2 years ago

@unxmaal, you might not have been where you thought you were for your test with the quotes, as your prompt indicates that you're in root, presumably /root, and not /usr/sgug/bin. For me, the quotes test did not change the behaviour. Thanks for having tested it. I'll have a look at the source code.

LaurentChardon commented 2 years ago

This behaviour is as designed upstream. If a file exists in the current directory with the package name, tdnf will abort. For example:

[sgugshell root@octane ~]# touch anyName
[sgugshell root@octane ~]# tdnf search anyName
Error(1622) : Invalid argument

Unfortunately it also behaves this way with valid package names:

[sgugshell root@octane ~]# touch gcc
[sgugshell root@octane ~]# tdnf search gcc    
Error(1622) : Invalid argument

I'm not sure what this test for a file or symlink is supposed to protect, as the code has practically no comments at all. I will open a bug report in the tdnf github. This should be fixed upstream.