[opensuse-packaging] error on upgrade?
All, I maintain httrack and httrack-3.47.24 installs fine on 12.3 With openSUSE 13.1 it fails: The error is: Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed on file /usr/share/httrack/html: cpio: rename failed - Is a directory It is actually not a directory, it's a symbolic link
ls -l total 32 lrwxrwxrwx 1 root root 28 Aug 29 14:12 html -> ../doc/packages/httrack/html drwxr-xr-x 2 root root 4096 Aug 29 14:12 lang -rw-r--r-- 1 root root 22442 Aug 26 08:51 lang.def -rw-r--r-- 1 root root 159 Aug 26 08:51 lang.indexes
Is a symbolic link from /usr/share/html to /usr/share/doc/packages/httrack/html no longer valid? Greg -- Greg Freemyer -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
El 15/10/13 19:53, Greg Freemyer escribió:
All,
I maintain httrack and httrack-3.47.24 installs fine on 12.3
With openSUSE 13.1 it fails:
The error is: Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed on file /usr/share/httrack/html: cpio: rename failed - Is a directory
It is actually not a directory, it's a symbolic link
ls -l total 32 lrwxrwxrwx 1 root root 28 Aug 29 14:12 html -> ../doc/packages/httrack/html drwxr-xr-x 2 root root 4096 Aug 29 14:12 lang -rw-r--r-- 1 root root 22442 Aug 26 08:51 lang.def -rw-r--r-- 1 root root 159 Aug 26 08:51 lang.indexes
Is a symbolic link from /usr/share/html to /usr/share/doc/packages/httrack/html no longer valid?
Are you using btrfs ? -- "If debugging is the process of removing bugs, then programming must be the process of putting them in." - Edsger Dijkstra -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Oct 15, 2013 at 7:05 PM, Cristian Rodríguez <crrodriguez@opensuse.org> wrote:
El 15/10/13 19:53, Greg Freemyer escribió:
All,
I maintain httrack and httrack-3.47.24 installs fine on 12.3
With openSUSE 13.1 it fails:
The error is: Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed on file /usr/share/httrack/html: cpio: rename failed - Is a directory
It is actually not a directory, it's a symbolic link
ls -l total 32 lrwxrwxrwx 1 root root 28 Aug 29 14:12 html -> ../doc/packages/httrack/html drwxr-xr-x 2 root root 4096 Aug 29 14:12 lang -rw-r--r-- 1 root root 22442 Aug 26 08:51 lang.def -rw-r--r-- 1 root root 159 Aug 26 08:51 lang.indexes
Is a symbolic link from /usr/share/html to /usr/share/doc/packages/httrack/html no longer valid?
Are you using btrfs ?
No, ext4 inside a vmware machine. Greg -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
В Tue, 15 Oct 2013 18:53:21 -0400 Greg Freemyer <greg.freemyer@gmail.com> пишет:
All,
I maintain httrack and httrack-3.47.24 installs fine on 12.3
With openSUSE 13.1 it fails:
The error is: Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed on file /usr/share/httrack/html: cpio: rename failed - Is a directory
It is actually not a directory, it's a symbolic link
RPM is not able to switch between link and directory on update. This is known problem. This must be worked around in pre/post scripts by removing/renaming offending directory before actual content installation and restoring content after.
ls -l total 32 lrwxrwxrwx 1 root root 28 Aug 29 14:12 html -> ../doc/packages/httrack/html drwxr-xr-x 2 root root 4096 Aug 29 14:12 lang -rw-r--r-- 1 root root 22442 Aug 26 08:51 lang.def -rw-r--r-- 1 root root 159 Aug 26 08:51 lang.indexes
Is a symbolic link from /usr/share/html to /usr/share/doc/packages/httrack/html no longer valid?
Greg -- Greg Freemyer
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Hello, On Oct 15 18:53 Greg Freemyer wrote (excerpt):
I maintain httrack and httrack-3.47.24 installs fine on 12.3
With openSUSE 13.1 it fails:
The error is: Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed on file /usr/share/httrack/html: cpio: rename failed - Is a directory
It is actually not a directory, it's a symbolic link
I assume you do a RPM package upgrade and it is a directory in the already installed old version which was changed into a symbolic link in the new version. Such a change is not possible with RPM. If upstream changed a directory into a symbolic link, it is no longer possible to make a sound RPM package and one can no longer do a RPM package upgrade in a reasonabe way. See the "RPM how to change a directory to a link" mail thread at http://lists.opensuse.org/opensuse-packaging/2011-02/msg00034.html If you think using RPM scriptlets could help here, see http://lists.opensuse.org/opensuse-packaging/2011-02/msg00079.html Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH -- Maxfeldstrasse 5 -- 90409 Nuernberg -- Germany HRB 16746 (AG Nuernberg) GF: Jeff Hawn, Jennifer Guild, Felix Imendoerffer -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Wed, Oct 16, 2013 at 3:50 AM, Johannes Meixner <jsmeix@suse.de> wrote:
Hello,
On Oct 15 18:53 Greg Freemyer wrote (excerpt):
I maintain httrack and httrack-3.47.24 installs fine on 12.3
With openSUSE 13.1 it fails:
The error is: Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed on file /usr/share/httrack/html: cpio: rename failed - Is a directory
It is actually not a directory, it's a symbolic link
I assume you do a RPM package upgrade and it is a directory in the already installed old version which was changed into a symbolic link in the new version.
Such a change is not possible with RPM.
If upstream changed a directory into a symbolic link, it is no longer possible to make a sound RPM package and one can no longer do a RPM package upgrade in a reasonabe way.
I don't know that upstream did it. They don't normally control the details of how /usr/share/<package> and /usr/share/doc/packages/<package> are setup. I accepted a SR a couple months ago that introduced the change. <https://build.opensuse.org/request/show/196232> It has a lot of specfile changes so it could be something in there that did it. I'll go back and see if I can undo that part of the SR.
See the "RPM how to change a directory to a link" mail thread at http://lists.opensuse.org/opensuse-packaging/2011-02/msg00034.html
That basically points at <https://bugs.launchpad.net/rpm/+bug/633636/comments/3> which is one ugly solution.
If you think using RPM scriptlets could help here, see http://lists.opensuse.org/opensuse-packaging/2011-02/msg00079.html
That doesn't even include the solution, it just complains about it being really bad. ===== Despite the above, this sure acts like a regression in 13.1 to me. First I want to highlight the httrack upgrade from v3.46.1 in OSS to v3.47.24 in security works in openSUSE 12.3 I just confirmed it again, so I am confident it is true. The similar upgrade from httrack 3.46.1 in security to 3.47.24 in 13.1 OSS does not work in openSUSE 13.1. I tried via both zypper dup and zypper in. Admittedly the source of the RPM for 12.3 is the security repo and the source for 13.1 is the 13.1 OSS repo, but the same tarball/specfile built both of them. Thus, this seems to be a caused by a change in functionality between oS 12.3 and oS 13.1. Anyway: For 12.3 - httrack 3.46.1 from OSS repo: /usr/share/httrack/html is a directory. /usr/share/doc/packages/html does not exist For 12.3 - httrack v3.47.24 from security repo: /usr/share/httrack/html is a symbolic link /usr/share/doc/packages/html is a directory Note again that openSUSE 12.3 allows me to upgrade from 3.46.1 to 3.47.24 and it handles the conversion automatically. If you have 12.3 running, you can confirm it by installing httrack from the main OSS repo, then upgrading it to the httrack in the security repo. It works fine. My 13.1 test VM upgraded from 12.3 still has the httrack 3.46.1 installed because the upgrade to 3.47.24 from the 13.1 OSS repo is failing. In /usr/share/httrack I have remnant symbolic links from my failed upgrade attempts: html;5259bb87 -> ../doc/packages/httrack/html I have attempted the upgrade via both "zypper dup" and "zypper in httrack-3.47.24-2.1.3". Both ways it fails with the same error. There aren't a lot of httrack users out there I don't think, so I could just provide a workaround in bugzilla. The workaround being "zypper rm httrack; zypper in httrack". Greg -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Wed, Oct 16, 2013 at 2:17 PM, Greg Freemyer <greg.freemyer@gmail.com> wrote:
On Wed, Oct 16, 2013 at 3:50 AM, Johannes Meixner <jsmeix@suse.de> wrote:
Hello,
On Oct 15 18:53 Greg Freemyer wrote (excerpt):
I maintain httrack and httrack-3.47.24 installs fine on 12.3
With openSUSE 13.1 it fails:
The error is: Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed on file /usr/share/httrack/html: cpio: rename failed - Is a directory
It is actually not a directory, it's a symbolic link
I assume you do a RPM package upgrade and it is a directory in the already installed old version which was changed into a symbolic link in the new version.
Such a change is not possible with RPM.
If upstream changed a directory into a symbolic link, it is no longer possible to make a sound RPM package and one can no longer do a RPM package upgrade in a reasonabe way.
I don't know that upstream did it. They don't normally control the details of how /usr/share/<package> and /usr/share/doc/packages/<package> are setup.
I accepted a SR a couple months ago that introduced the change. <https://build.opensuse.org/request/show/196232> It has a lot of specfile changes so it could be something in there that did it. I'll go back and see if I can undo that part of the SR.
See the "RPM how to change a directory to a link" mail thread at http://lists.opensuse.org/opensuse-packaging/2011-02/msg00034.html
That basically points at <https://bugs.launchpad.net/rpm/+bug/633636/comments/3> which is one ugly solution.
If you think using RPM scriptlets could help here, see http://lists.opensuse.org/opensuse-packaging/2011-02/msg00079.html
That doesn't even include the solution, it just complains about it being really bad.
=====
Despite the above, this sure acts like a regression in 13.1 to me.
First I want to highlight the httrack upgrade from v3.46.1 in OSS to v3.47.24 in security works in openSUSE 12.3 I just confirmed it again, so I am confident it is true.
The similar upgrade from httrack 3.46.1 in security to 3.47.24 in 13.1 OSS does not work in openSUSE 13.1. I tried via both zypper dup and zypper in.
Admittedly the source of the RPM for 12.3 is the security repo and the source for 13.1 is the 13.1 OSS repo, but the same tarball/specfile built both of them.
Thus, this seems to be a caused by a change in functionality between oS 12.3 and oS 13.1.
Anyway:
For 12.3 - httrack 3.46.1 from OSS repo:
/usr/share/httrack/html is a directory. /usr/share/doc/packages/html does not exist
For 12.3 - httrack v3.47.24 from security repo:
/usr/share/httrack/html is a symbolic link /usr/share/doc/packages/html is a directory
Note again that openSUSE 12.3 allows me to upgrade from 3.46.1 to 3.47.24 and it handles the conversion automatically. If you have 12.3 running, you can confirm it by installing httrack from the main OSS repo, then upgrading it to the httrack in the security repo. It works fine.
My 13.1 test VM upgraded from 12.3 still has the httrack 3.46.1 installed because the upgrade to 3.47.24 from the 13.1 OSS repo is failing.
In /usr/share/httrack I have remnant symbolic links from my failed upgrade attempts:
html;5259bb87 -> ../doc/packages/httrack/html
I have attempted the upgrade via both "zypper dup" and "zypper in httrack-3.47.24-2.1.3". Both ways it fails with the same error.
There aren't a lot of httrack users out there I don't think, so I could just provide a workaround in bugzilla. The workaround being "zypper rm httrack; zypper in httrack".
Greg
If anyone cares: The SR from this summer introduced: %configure \ --disable-static \ --docdir=%{_docdir}/%{name} \ --htmldir=%{_docdir}/%{name}/html Reverting this to: %configure \ --disable-static \ --docdir=%{_docdir}/%{name} \ - --htmldir=%{_docdir}/%{name}/html + --htmldir=%{_datadir}/%{name}/html resolved the issue for users using httrack from 12.3 OSS or 12.3 updates. Any users that upgraded to 3.47.24 for openSUSE 12.3 from the security repo may still hit the bug since 12.3 allowed the upgrade. Those few users may need to uninstall that version and install the version I just pushed to security. Greg -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Dnia środa, 16 października 2013 09:50:20 Johannes Meixner pisze:
Hello,
On Oct 15 18:53 Greg Freemyer wrote (excerpt):
I maintain httrack and httrack-3.47.24 installs fine on 12.3
With openSUSE 13.1 it fails:
The error is: Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed on file /usr/share/httrack/html: cpio: rename failed - Is a directory
It is actually not a directory, it's a symbolic link
I assume you do a RPM package upgrade and it is a directory in the already installed old version which was changed into a symbolic link in the new version.
Such a change is not possible with RPM.
I think you could %pre rmdir, %files %exclude the link and %post ln -s as required. Untestedly, Chris -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
"Křištof Želechovski" <giecrilj@stegny.2a.pl> wrote:
Hello,
On Oct 15 18:53 Greg Freemyer wrote (excerpt):
I maintain httrack and httrack-3.47.24 installs fine on 12.3
With openSUSE 13.1 it fails:
The error is: Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed on file /usr/share/httrack/html: cpio: rename failed
Dnia środa, 16 października 2013 09:50:20 Johannes Meixner pisze: -
Is a directory
It is actually not a directory, it's a symbolic link
I assume you do a RPM package upgrade and it is a directory in the already installed old version which was changed into a symbolic link in the new version.
Such a change is not possible with RPM.
I think you could %pre rmdir, %files %exclude the link and %post ln -s as required.
Untestedly, Chris Thanks Chris.
I changed the specfile to keep the html directory where it was in 12.3 It is already in 13.1 oss, so all is good. Greg -- Sent from my Android phone with K-9 Mail. Please excuse my brevity. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Hello, On Oct 19 16:52 K?ištof Želechovski wrote (excerpt):
Dnia ?roda, 16 pa?dziernika 2013 09:50:20 Johannes Meixner pisze:
I assume you do a RPM package upgrade and it is a directory in the already installed old version which was changed into a symbolic link in the new version.
Such a change is not possible with RPM.
I think you could %pre rmdir, %files %exclude the link and %post ln -s as required.
Did you test it? As far as I know it cannot work because %post runs too early (before the old files are removed) where %post means the %post of the new package because one cannot modify the scriptlets of the old (i.e already installed) package. See "the order in which scripts are executed on a single package upgrade" in /usr/share/doc/packages/rpm/manual/triggers Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH -- Maxfeldstrasse 5 -- 90409 Nuernberg -- Germany HRB 16746 (AG Nuernberg) GF: Jeff Hawn, Jennifer Guild, Felix Imendoerffer
On Wed, 23 Oct 2013 14:25, Johannes Meixner <jsmeix@...> wrote:
Hello,
On Oct 19 16:52 K?ištof Želechovski wrote (excerpt):
Dnia ?roda, 16 pa?dziernika 2013 09:50:20 Johannes Meixner pisze:
I assume you do a RPM package upgrade and it is a directory in the already installed old version which was changed into a symbolic link in the new version.
Such a change is not possible with RPM.
I think you could %pre rmdir, %files %exclude the link and %post ln -s as required.
Did you test it?
As far as I know it cannot work because %post runs too early (before the old files are removed) where %post means the %post of the new package because one cannot modify the scriptlets of the old (i.e already installed) package.
See "the order in which scripts are executed on a single package upgrade" in /usr/share/doc/packages/rpm/manual/triggers
Full spot on! It's a giant trap. Last time I had to do some thing like that, is was moving config files, and they could have been modified: %pre scriptlet { test -L "old-link" && rm "old-link" test -d "old-dir" && mv old-dir new-pos test -d "new-pos" || mkdir "new-pos" ln -s new-pos old-dir-pos } Then the usual things with <file>.rpmnew durin upgrade worked just fine The trick is: ALL steps in %pre, otherwise head, meet desk! - Yamaban.
Dnia środa, 23 października 2013 14:25:27 Johannes Meixner pisze:
See "the order in which scripts are executed on a single package upgrade" in /usr/share/doc/packages/rpm/manual/triggers
Changes submitted for bug 641199 [1] -------- [1] https://bugzilla.novell.com/show_bug.cgi?id=641199 -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (6)
-
Andrey Borzenkov
-
Cristian Rodríguez
-
Greg Freemyer
-
Johannes Meixner
-
Křištof Želechovski
-
Yamaban