[Bug 773575] New: texlive update takes ages
https://bugzilla.novell.com/show_bug.cgi?id=773575 https://bugzilla.novell.com/show_bug.cgi?id=773575#c0 Summary: texlive update takes ages Classification: openSUSE Product: openSUSE 12.2 Version: Factory Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: Other AssignedTo: werner@suse.com ReportedBy: jslaby@suse.com QAContact: qa-bugs@suse.de Found By: --- Blocker: --- Now that mostly every texlive class is in a separate package, an update of factory takes ages. Every update of RPM is followed by /usr/lib/texmf/texconfig/update in %postconfig. This is evil and should be done only once at the very end I think. Or solved differently so that the update is not so painful. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c1
--- Comment #1 from Jiri Slaby
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c2
Dr. Werner Fink
/var/run/texlive/run-fmtutil /var/run/texlive/run-fmtutil.language /var/run/texlive/run-mktexlsr /var/run/texlive/run-updmap
to handle time consuming texhashes in the /usr/lib/texmf/texconfig/update script. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c
kk zhang
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c4
--- Comment #4 from Michael Andres
But it is in the %posttrans script which should happen once, right?
But zypp uses many small rpm transactions and not a single big one. libzypp-11.8.0 will provide the environment variable $ZYPP_IS_RUNNING, so the texlive scripts can behave differently in this case. * Using the /var/adm/update-scripts mechanism as substitute for %posttrans is possible, but it was not designed for this use, so it lacks efficiency: The scripts need to follow a naming convention to get executed. As it's name needs to start with '<package>-<version>-<release>' of the package which was installed, so the 6000 texlive packages will install 6000 scripts which will all be executed. The script should also be part of the packages filelist (at least as %ghost), so it gets removed together with the package. I'd at least improve libzypp to run identical scripts (e.g same MD5) only once. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c5
Stanislav Brabec
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c6
--- Comment #6 from Stanislav Brabec
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c7
--- Comment #7 from Michael Andres
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c8
--- Comment #8 from Petr Gajdos
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c9
--- Comment #9 from Michael Andres
1. Do zypp expand rpm macros? We do
Those macros are used in the specfile and expanded by rpm at build time. The final package contains just the plain (shell)script; no rpm macros.
2. How zypp will recognize "same" %posttrans script? Would we use some e. g. %posttrans_* macros for this purpose?
"same" would be 'literally the same'. I suppose rpm does it similarly. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c10
--- Comment #10 from Stanislav Brabec
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c11
--- Comment #11 from Michael Andres
IMHO rpm does not recognize literally the same %posttrans scripts. Otherwise comment 0 would never be an issue.
It is an issue because zypp does one rpm call per package. As we have single package transactions, we have more %posttrans invocations than expected.
Yes, "test -n "$ZYPP_IS_RUNNING" && exit 0" should exist, but it should be hidden for packagers somewhere inside the macro.
Yes, but that's a packaging issue ;)
I would prefer zypp not collecting %posttrans scripts, but only scripts created/triggered/ordered by %posttrans scripts.
Package installation should work rpm-only! It's not intended to create a new zypp-only feature here. The solution four you would IMO be to put the logic into some /usr/bin/eval-post-trans-triggers script; to package it; to prerequire it in your packages and to call it from their %posttrans: test -n "$ZYPP_IS_RUNNING" && exit 0 /usr/bin/eval-post-trans-triggers ThIS will work -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c12
--- Comment #12 from Michael Andres
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c13
--- Comment #13 from Stanislav Brabec
It is an issue because zypp does one rpm call per package. As we have single package transactions, we have more %posttrans invocations than expected.
So you say that rpm alone checks %posttrans scripts of packages on a single command line for identity? I never tested it nor looked into the source code. (Well, it does not help for ZYPP anyway, but if it works in this way, the script design should take it in account to take benefit even for rpm-only installation with more packages on the command line (it means not mentioning package name explicitly in the script).)
Package installation should work rpm-only! It's not intended to create a new zypp-only feature here.
The solution four you would IMO be to put the logic into some /usr/bin/eval-post-trans-triggers script; to package it; to prerequire it in your packages and to call it from their %posttrans:
test -n "$ZYPP_IS_RUNNING" && exit 0 /usr/bin/eval-post-trans-triggers
ThIS will work
Yes. And this script should be probably part of rpm, filesystem or any other low level package. (Well, I can imagine Requires: post-trans-triggers in all packages that use it. openSUSE 12.3 will have Provides: pot-trans-triggers in (say) rpm. We could create compatibility package, that would allow to use this feature in older on non-SUSE distros. We did it in past for gconftool scripts and it saved lot of work to packagers, as they did not need %if %suse_version in their scripts in OBS packages.) Now I agree that /usr/lib/zypp/scripts-post is a bad name. So proposing new names: Helper: /usr/bin/(run OR eval)-post-install-triggers Trigger scripts: /usr/lib/post-install-triggers (directory owned by package that owns Trigger stamps: /var/lib/post-install-triggers Note to the more complicated structure $ACTION.d/$PACKAGE: I remember potential user case from past: Several desktop environments did (or do) not support desktop menu specification (it was WindowMaker in past). These environments may need dedicated scripts to be called whenever any desktop file is installed/removed/changed. So the same action may trigger more scripts. The list of packages that need action is not known in time of packaging. That is why I would like to propose to support only two part paths (probably without trailing ".d"), even if most (if not all) these directories will contain only one script. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c14
Michael Andres
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c15
Jan Engelhardt
(In reply to comment #1)
But zypp uses many small rpm transactions and not a single big one.
And why is that? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c16
--- Comment #16 from Michael Schröder
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c17
--- Comment #17 from Michael Andres
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c18
Michael Andres
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c19
Atri Bhattacharya
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c20
Dr. Werner Fink
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c21
--- Comment #21 from Bernhard Wiedemann
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c22
--- Comment #22 from Bernhard Wiedemann
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c23
Dr. Werner Fink
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c24
--- Comment #24 from Atri Bhattacharya
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c25
--- Comment #25 from Dr. Werner Fink
/var/run/texlive/run-mktexlsr
the first branch with `test $1 = 0' is the remove case. In this case the %posttrans scriptlet as well as the zypper update script had already been removed (from rpm data base or the /var/adm/upate-scripts directory). For the second branch, that is the update case, it will work. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c26
--- Comment #26 from Neil Rickert
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c27
Vinzenz Bargsten
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c28
--- Comment #28 from Michael Schröder
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c29
--- Comment #29 from Michael Andres
"ZYPP_IS_RUNNING" workaround does not work with the 12.2 libzypp.
JFYI: Available in libzypp-11.8.0 as oS12.2 update. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c
Swamp Workflow Management
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c30
Dr. Werner Fink
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c31
Swamp Workflow Management
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c32
--- Comment #32 from Michael Schröder
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c33
Swamp Workflow Management
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c
Swamp Workflow Management
https://bugzilla.novell.com/show_bug.cgi?id=773575
https://bugzilla.novell.com/show_bug.cgi?id=773575#c34
--- Comment #34 from Bernhard Wiedemann
participants (1)
-
bugzilla_noreply@novell.com