Doubts about 'bsdtar -m'
Hi, in pkgutils-cross.git, commit 3f0931c4294981d3e3edb8c8ba8e422a4dd3a442 you added the -m flag to the bsdtar call that's used to extract source archives. That flag causes bsdtar to ignore the mtimes contained in the archive. This causes build failures for eg the module-init-tools port: In module-init-tools-3.11.1.tar.bz2, aclocal.m4 is stored after configure. When extracting with -m, aclocal.m4 will have a newer mtime than configure. When you call make, it will realize the time difference and will regenerate the configure script. For me, the newly created configure script then fails horribly. I don't think you should need -m. Can you give an example of what problem it fixed? Regards, Tilman -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?
Hi Tilman, On 05/30/10 22:56, Tilman Sauerbeck wrote:
Hi, in pkgutils-cross.git, commit 3f0931c4294981d3e3edb8c8ba8e422a4dd3a442 you added the -m flag to the bsdtar call that's used to extract source archives. That flag causes bsdtar to ignore the mtimes contained in the archive.
This causes build failures for eg the module-init-tools port: In module-init-tools-3.11.1.tar.bz2, aclocal.m4 is stored after configure. When extracting with -m, aclocal.m4 will have a newer mtime than configure. When you call make, it will realize the time difference and will regenerate the configure script. First many thanks for the report.
modules-init-tools worked fine here but anyways you're right, this kind of situations reminds me to some failed builds which were ok only sometimes and as you said 'make' regenerates the configure script. Sorry for the headaches I could cause.
For me, the newly created configure script then fails horribly. Agree with that. I'll revert this commit.
I don't think you should need -m. Can you give an example of what problem it fixed? With this change I was trying to fix this problem when installing / upgrading a package:
[sepen@safe-env /devel/crux-arm]$ sudo pkgadd-cross -u ports/core-cross-noeabi/wget/wget#1.12-2.pkg.tar.gz pkgadd: could not install etc/: Can't update time for /var/lib/pkg/rejected/etc pkgadd: could not install etc/wgetrc: Can't update time for /var/lib/pkg/rejected/etc/wgetrc pkgadd: could not install usr/: Can't update time for /usr pkgadd: could not install usr/bin/: Can't update time for /usr/bin pkgadd: could not install usr/bin/wget: Can't update time for /usr/bin/wget pkgadd: could not install usr/man/: Can't update time for /usr/man pkgadd: could not install usr/man/man1/: Can't update time for /usr/man/man1 pkgadd: could not install usr/man/man1/wget.1.gz: Can't update time for /usr/man/man1/wget.1.gz This happens to me only in a host centos but finally I could not fix the bug so seems that I introduced a bug instead of solve a fix, :( Do you have an idea about how to solve this problem on some hosts? Best regards, -- Jose V Beneyto | http://sepen.mine.nu/
Jose V Beneyto [2010-05-31 08:44]:
Hi Tilman,
On 05/30/10 22:56, Tilman Sauerbeck wrote:
Hi, in pkgutils-cross.git, commit 3f0931c4294981d3e3edb8c8ba8e422a4dd3a442 you added the -m flag to the bsdtar call that's used to extract source archives. That flag causes bsdtar to ignore the mtimes contained in the archive.
This causes build failures for eg the module-init-tools port: In module-init-tools-3.11.1.tar.bz2, aclocal.m4 is stored after configure. When extracting with -m, aclocal.m4 will have a newer mtime than configure. When you call make, it will realize the time difference and will regenerate the configure script. First many thanks for the report.
modules-init-tools worked fine here but anyways you're right, this kind of situations reminds me to some failed builds which were ok only sometimes and as you said 'make' regenerates the configure script. Sorry for the headaches I could cause.
For me, the newly created configure script then fails horribly. Agree with that. I'll revert this commit.
I don't think you should need -m. Can you give an example of what problem it fixed? With this change I was trying to fix this problem when installing / upgrading a package:
[pkgadd complains about "Can't update time for..."
That error is in pkgadd -- but you patched pkgmk! :-P
This happens to me only in a host centos but finally I could not fix the bug so seems that I introduced a bug instead of solve a fix, :( Do you have an idea about how to solve this problem on some hosts?
No, sorry. Regards, Tilman -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?
Hi again, On 05/31/10 19:21, Tilman Sauerbeck wrote:
Jose V Beneyto [2010-05-31 08:44]:
Hi Tilman,
On 05/30/10 22:56, Tilman Sauerbeck wrote:
Hi, in pkgutils-cross.git, commit 3f0931c4294981d3e3edb8c8ba8e422a4dd3a442 you added the -m flag to the bsdtar call that's used to extract source archives. That flag causes bsdtar to ignore the mtimes contained in the archive.
This causes build failures for eg the module-init-tools port: In module-init-tools-3.11.1.tar.bz2, aclocal.m4 is stored after configure. When extracting with -m, aclocal.m4 will have a newer mtime than configure. When you call make, it will realize the time difference and will regenerate the configure script. First many thanks for the report.
modules-init-tools worked fine here but anyways you're right, this kind of situations reminds me to some failed builds which were ok only sometimes and as you said 'make' regenerates the configure script. Sorry for the headaches I could cause.
For me, the newly created configure script then fails horribly. Agree with that. I'll revert this commit.
I don't think you should need -m. Can you give an example of what problem it fixed? With this change I was trying to fix this problem when installing / upgrading a package:
[pkgadd complains about "Can't update time for..."
That error is in pkgadd -- but you patched pkgmk! :-P Well I remember it now (after revert this changeset). The error for me is similar in both directions (compress/uncompress) with the difference that pkgmk failed!
[sepen@safe-env /devel/crux-arm/ports/core-cross-noeabi/pkg-config]$ fakeroot pkgmk-cross -d -kw -f =======> Building '/devel/crux-arm/ports/core-cross-noeabi/pkg-config/pkg-config#0.23-1.pkg.tar.gz'. bsdtar -p -o -C /devel/crux-arm/ports/core-cross-noeabi/pkg-config/work/src -xf /devel/crux-arm/ports/core-cross-noeabi/pkg-config/pkg-config-0.23.tar.gz pkg-config-0.23/parse.c: Can't update time for pkg-config-0.23/parse.c pkg-config-0.23/ChangeLog: Can't update time for pkg-config-0.23/ChangeLog pkg-config-0.23/NEWS: Can't update time for pkg-config-0.23/NEWS [...] pkg-config-0.23/poptconfig.c: Can't update time for pkg-config-0.23/poptconfig.c pkg-config-0.23/acconfig.h: Can't update time for pkg-config-0.23/acconfig.h bsdtar: Error exit delayed from previous errors. =======> ERROR: Building '/devel/crux-arm/ports/core-cross-noeabi/pkg-config/pkg-config#0.23-1.pkg.tar.gz' failed. No idea about which will be the best way to solve it. I'll try with mouting partitions with noatime, so I don't know really what's happening
This happens to me only in a host centos but finally I could not fix the bug so seems that I introduced a bug instead of solve a fix, :( Do you have an idea about how to solve this problem on some hosts?
No, sorry.
Anyways many thanks, I've no idea about which will be the best way to solve it. I'll try with mouting partitions with noatime, so I don't know really what's happening -- Jose V Beneyto | http://sepen.mine.nu/
Jose V Beneyto [2010-06-02 17:10]:
Well I remember it now (after revert this changeset). The error for me is similar in both directions (compress/uncompress) with the difference that pkgmk failed!
[sepen@safe-env /devel/crux-arm/ports/core-cross-noeabi/pkg-config]$ fakeroot pkgmk-cross -d -kw -f =======> Building '/devel/crux-arm/ports/core-cross-noeabi/pkg-config/pkg-config#0.23-1.pkg.tar.gz'. bsdtar -p -o -C /devel/crux-arm/ports/core-cross-noeabi/pkg-config/work/src -xf /devel/crux-arm/ports/core-cross-noeabi/pkg-config/pkg-config-0.23.tar.gz pkg-config-0.23/parse.c: Can't update time for pkg-config-0.23/parse.c [...]
No idea about which will be the best way to solve it. I'll try with mouting partitions with noatime, so I don't know really what's happening
The error messages comes from libarchive/archive_write_disk.c:1976. To figure what's wrong, we need to know the value of errno at that time. I _guess_ the error message gets printed in tar/read.c:311 -- if you could hack it to also print the value of archive_errno(a) that would help to figure out why the mtime couldn't be set. Regards, Tilman -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?
The error messages comes from libarchive/archive_write_disk.c:1976. To figure what's wrong, we need to know the value of errno at that time.
I_guess_ the error message gets printed in tar/read.c:311 -- if you could hack it to also print the value of archive_errno(a) that would help to figure out why the mtime couldn't be set.
Hi Tilman, On 06/02/10 19:15, Tilman Sauerbeck wrote: thanks a lot, I wrote the patch you told me (attached) and now the message is: ... errno: 38; Can't update time for ... and the error from /usr/include/asm-generic/errno.h says: #define ENOSYS 38 /* Function not implemented */ it means that there is not system call implemented for that? any idea?, does not look good to me Best regards, -- Jose V Beneyto | http://sepen.mine.nu/
I forgot the attachment ;D -- Jose V Beneyto | http://sepen.mine.nu
Jose V Beneyto [2010-06-03 10:28]:
Hi Tilman,
The error messages comes from libarchive/archive_write_disk.c:1976. To figure what's wrong, we need to know the value of errno at that time.
I_guess_ the error message gets printed in tar/read.c:311 -- if you could hack it to also print the value of archive_errno(a) that would help to figure out why the mtime couldn't be set.
On 06/02/10 19:15, Tilman Sauerbeck wrote: thanks a lot, I wrote the patch you told me (attached) and now the message is: ... errno: 38; Can't update time for ...
Interesting. Which of the set_time() functions is used (there are ~5 of them, guarded by ifdefs). Regards, Tilman -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?
participants (2)
-
Jose V Beneyto
-
Tilman Sauerbeck