Bug 1181552 - Dependency issue installing texlive-xurl on a new Tumbleweed system
Summary: Dependency issue installing texlive-xurl on a new Tumbleweed system
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Other (show other bugs)
Version: Current
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Dr. Werner Fink
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 1212571
  Show dependency treegraph
 
Reported: 2021-01-29 09:11 UTC by Johannes Weberhofer
Modified: 2023-08-14 13:34 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Johannes Weberhofer 2021-01-29 09:11:38 UTC
I solved the issue selecting "4", but I think this dependency issue should not occur.


Problem: texlive-xurl-2020.176.0.0.09svn53538-42.4.noarch requires ed, but this requirement cannot be provided
  not installable providers: ed-1.16-2.1.i586[openSUSE-20210121-0]
                   ed-1.16-2.1.x86_64[openSUSE-20210121-0]
 Solution 1: Following actions will be done:
  do not install texlive-xurl-2020.176.0.0.09svn53538-42.4.noarch
  do not install texlive-hyphen-arabic-2020.176.svn54568-42.2.noarch
 Solution 2: Following actions will be done:
  do not install texlive-collection-langarabic-2020.171.svn54405-49.1.noarch
  do not install texlive-gincltex-2020.176.0.0.3svn23835-42.2.noarch
  do not install texlive-svg-2020.176.2.02esvn53389-47.2.noarch
  do not install texlive-fvextra-2020.176.1.4svn49947-42.2.noarch
  do not install texlive-ltablex-2020.176.1.1svn34923-42.2.noarch
  do not install texlive-nowidow-2020.176.1.0svn24066-43.2.noarch
  do not install texlive-hyphen-arabic-2020.176.svn54568-42.2.noarch
  do not install texlive-luacode-2020.176.1.2asvn25193-42.2.noarch
  do not install texlive-luatex-2020.176.svn54610-42.2.noarch
  do not install texlive-xurl-2020.176.0.0.09svn53538-42.4.noarch
 Solution 3: deinstallation of busybox-ed-1.32.1-14.2.noarch
 Solution 4: break texlive-xurl-2020.176.0.0.09svn53538-42.4.noarch by ignoring some of its dependencies
Comment 1 Dr. Werner Fink 2021-02-10 07:43:53 UTC
(In reply to Johannes Weberhofer from comment #0)
> I solved the issue selecting "4", but I think this dependency issue should
> not occur.
> 
> 
> Problem: texlive-xurl-2020.176.0.0.09svn53538-42.4.noarch requires ed, but
> this requirement cannot be provided
>   not installable providers: ed-1.16-2.1.i586[openSUSE-20210121-0]
>                    ed-1.16-2.1.x86_64[openSUSE-20210121-0]

Why is ed not installable on your system?  This is a common UNIX tools.

This is the correct solution

> Solution 3: deinstallation of busybox-ed-1.32.1-14.2.noarch

... maybe busybox-ed should use update-alternatives

beside this *all* texlive packages do require common UNIX tools

 Requires(posttrans): coreutils
 Requires(posttrans): ed
 Requires(posttrans): findutils
 Requires(posttrans): grep
 Requires(posttrans): sed

don't know if busybox-ed aka the ed builtin of busybox is as powerful as the GNU ed
Comment 2 Thorsten Kukuk 2021-02-10 08:17:20 UTC
(In reply to Johannes Weberhofer from comment #0)
> I solved the issue selecting "4", but I think this dependency issue should
> not occur.

If you install something later, dependency issues are unavoidable in some cases. 

(In reply to Dr. Werner Fink from comment #1)

> This is the correct solution
> 
> > Solution 3: deinstallation of busybox-ed-1.32.1-14.2.noarch
> 
> ... maybe busybox-ed should use update-alternatives

No, update-alternatives is a nightmare, no solution. If you have conflicting packages, a conflict is the correct way.
And it is easy solveable during later installation by solving the conflict.

> beside this *all* texlive packages do require common UNIX tools

No, common GNU tools, not UNIX. If you only need the POSIX/UNIX variant and not the GNU extensions, /usr/bin/ed as requires is good enough. If you need the GNU extensions, "ed" as requires is correct.

> don't know if busybox-ed aka the ed builtin of busybox is as powerful as the
> GNU ed

It's a POSIX conform implementation, no GNU enhanced version.
But I don't know why busybox-ed got installed in the first place.
Comment 3 Dr. Werner Fink 2021-02-10 08:37:59 UTC
(In reply to Thorsten Kukuk from comment #2)

> 
> No, common GNU tools, not UNIX. If you only need the POSIX/UNIX variant and
> not the GNU extensions, /usr/bin/ed as requires is good enough. If you need
> the GNU extensions, "ed" as requires is correct.

I've no problem to replace 

 Requires(posttrans): ed
 Requires(posttrans): grep
 Requires(posttrans): sed

with

 Requires(posttrans): /usr/bin/ed
 Requires(posttrans): /usr/bin/grep
 Requires(posttrans): /usr/bin/sed

and rerun my spec file generator script ... but how to do this with

 Requires(posttrans): coreutils
 Requires(posttrans): findutils

there is no '||' to use busybox-coreutils and busybox-findutils ... maybe I should pick a common tool like /usr/bin/rm resp. /usr/bin/find

> 
> > don't know if busybox-ed aka the ed builtin of busybox is as powerful as the
> > GNU ed
> 
> It's a POSIX conform implementation, no GNU enhanced version.

The tools are mainly used in /usr/share/texmf/texconfig/update which is a bash script

> But I don't know why busybox-ed got installed in the first place.

That can only answer the reporter here ...  Johannes?
Comment 4 Johannes Weberhofer 2021-02-10 09:50:56 UTC
> > But I don't know why busybox-ed got installed in the first place.
> 
> That can only answer the reporter here ...  Johannes?

I have seen several issues regarding busybox when installing packages on a new tumbleweed computer in the last days. Unfortunately I didn't note them. It would possible make sense to highlight on the developer mailinglist which software has been/should be replaced by busybox versions.

Thank you for digging into that issues.
Comment 5 Thorsten Kukuk 2021-02-10 11:05:32 UTC
(In reply to Dr. Werner Fink from comment #3)
> (In reply to Thorsten Kukuk from comment #2)
> 
> > 
> > No, common GNU tools, not UNIX. If you only need the POSIX/UNIX variant and
> > not the GNU extensions, /usr/bin/ed as requires is good enough. If you need
> > the GNU extensions, "ed" as requires is correct.
> 
> I've no problem to replace 
> 
>  Requires(posttrans): ed
>  Requires(posttrans): grep
>  Requires(posttrans): sed
> 
> with
> 
>  Requires(posttrans): /usr/bin/ed
>  Requires(posttrans): /usr/bin/grep
>  Requires(posttrans): /usr/bin/sed

Please make sure that you use only POSIX compatible commands.

> and rerun my spec file generator script ... but how to do this with
> 
>  Requires(posttrans): coreutils
>  Requires(posttrans): findutils
> 
> there is no '||' to use busybox-coreutils and busybox-findutils ... maybe I
> should pick a common tool like /usr/bin/rm resp. /usr/bin/find

Keep coreutils and findutils. There is no way on plain Tumbleweed or MicroOS to replace them with the busybox variant, we use far too many GNU extensions. We use them only for containers.
Of course, if you are sure you don't use any GNU extension, you can use the new RPM boolean format. But don't ask me how his has too look like. Must be something like Requires: (coreutils or busybox-coreutils)
Comment 6 Thorsten Kukuk 2021-02-10 11:07:47 UTC
(In reply to Johannes Weberhofer from comment #4)

> I have seen several issues regarding busybox when installing packages on a
> new tumbleweed computer in the last days.

The solver prefers the first he found, and busybox-ed comes before ed.
If I find time I need to dig out which of the busybox variants get installed and why, none of my Tumbleweed systems have busybox-* packages installed.