Builder gtar-solaris10-sparc Build #318
Results:
Failed shell shell_1 shell_2 shell_3
SourceStamp:
| Project | gtar |
| Repository | git://git.savannah.gnu.org/tar.git |
| Branch | master |
| Revision | 9371d36cc707a099e6867199f18bbaa7795b6150 |
| Got Revision | 9371d36cc707a099e6867199f18bbaa7795b6150 |
| Changes | 17 changes |
BuildSlave:
unstable10sReason:
The SingleBranchScheduler scheduler named 'schedule-gtar-solaris10-sparc' triggered this build
Steps and Logfiles:
Build Properties:
| Name | Value | Source |
|---|---|---|
| branch | master | Build |
| builddir | /export/home/buildbot-unstable10s/slave/gtar-solaris10-sparc | slave |
| buildername | gtar-solaris10-sparc | Builder |
| buildnumber | 318 | Build |
| codebase | Build | |
| got_revision | 9371d36cc707a099e6867199f18bbaa7795b6150 | Git |
| project | gtar | Build |
| repository | git://git.savannah.gnu.org/tar.git | Build |
| revision | 9371d36cc707a099e6867199f18bbaa7795b6150 | Build |
| scheduler | schedule-gtar-solaris10-sparc | Scheduler |
| slavename | unstable10s | BuildSlave |
| workdir | /export/home/buildbot-unstable10s/slave/gtar-solaris10-sparc | slave (deprecated) |
Forced Build Properties:
| Name | Label | Value |
|---|
Responsible Users:
- Paul Eggerteggert@cs.ucla.edu
- Pavel Cahynapcahyna@redhat.com
Timing:
| Start | Thu Jul 30 06:40:17 2026 |
| End | Thu Jul 30 06:45:44 2026 |
| Elapsed | 5 mins, 27 secs |
All Changes:
:
Change #276520
Category gtar Changed by Pavel Cahyna <pcahyna@redhat.com> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision 1b91f5f66f8e6c490eef0fdee50f652cfe155844 Comments
Draft patch for openat2 changes vs --one-top-level The patch leverages the existing -C code. In order to do that, every entry in the wd[] table gets another companion entry in the table that represents the --one-top-level directory. There is one additional field in each entry that allows skipping the companion entries if they are not desired. The actual directory is created lazily by chdir_do() if needed, as you requested, to avoid empty "a/foo" after --one-top-level=foo -C a -C b. The patch "by the way" fixes also extraction of hardlinks with --one-top-level which currently is broken in the typical case (the transform is not applied to the target, so the hardlink is wrong). The patch does not yet handle the --show-transformed case with --one-top-level that you discussed in another subthread. As a result, two tests now fail (onetop02.at and onetop04.at). I suppose that this would be quite easy to fix. Another issue that I am aware of is that I am not sure whether to call repair_delayed_set_stat and/or delay_set_stat on the newly created directories like extract_dir() does (the whole delay_set code is abit mysterious to me). Use of --create together with --one-top-level should probably be forbidden, as unlink.c uses wd[] in a way that will likely break in the presence of companion entries (the chdir_do call in flush_deferred_unlinks). Show the one-top-level arg as a transformation
Changed files
- src/common.h
- src/extract.c
- src/list.c
- src/misc.c
- src/names.c
- src/tar.c
- src/unlink.c
- src/update.c
Change #276521
Category gtar Changed by Pavel Cahyna <pcahyna@redhat.com> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision 3903b37673dc025c51e6ea2a53a22318e1b48f46 Comments
Revert "tar: incremental 'X' follows --one-top-level" This reverts commit 79d61af0e118a9368425729f624a66e1065be61e.
Changed files
- src/incremen.c
Change #276522
Category gtar Changed by Pavel Cahyna <pcahyna@redhat.com> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision b17665b2c0548c77b6cd8d2d5b61e4c4fcc4f770 Comments
Add tests for cyclic renames Using options to extract to a subdirectory: one test with -C, another with --one-top-level.
Changed files
- tests/Makefile.am
- tests/rename08.at
- tests/rename09.at
- tests/testsuite.at
Change #276523
Category gtar Changed by Pavel Cahyna <pcahyna@redhat.com> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision 325b899214ac13519153318e66c889a31c15342d Comments
Eliminate redundant chdir_do If one-top-level is not provided, chdir_do is a no-op.
Changed files
- src/extract.c
Change #276524
Category gtar Changed by Pavel Cahyna <pcahyna@redhat.com> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision 1980e032afe60c5fe0e5df573457885ece4e69d5 Comments
Get rid of create_dir It turns out that make_directories can do what we need (create all directories in a path) if we append a dummy "." component, as it creates directories up to and excluding the last component of the path. Also, do not avoid using delay_set_stat on the newly created directories. This matches the rest of the code and avoids potentially leaving the newly-created directories with too open permissions. This requires some workarounds to cope with apply_nonancestor_delayed_set_stat and mark_metadata_set problems: do it as in the rest of the code - apply the stats before proceeding with extraction of anything else.
Changed files
- src/common.h
- src/extract.c
- src/misc.c
Change #276525
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision e335e2c8b102f83b63ffd373f0b88401da3ebe6c Comments
Add comment about deducing --one-top-level name
Changed files
- src/tar.c
Change #276526
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision 0ec9f0ebf6c52d3e0a71b39ef45043f5ff8e27a7 Comments
Go back to simpler chdir_arg API * src/misc.c (add_wd, ensure_wd): New functions, replacing ... (grow_wd): .. this function, for clarity. All uses changed. (chdir_arg): Omit 2nd arg, to keep callers simpler. All uses changed. Instead of being recursive, be iterative; this is part of the simplification.
Changed files
- src/common.h
- src/misc.c
- src/names.c
Change #276527
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision d405469bf4786b358990e2a4c02e619b318666f7 Comments
Improve --keep-directory-symlink performance * src/extract.c (is_directory_link): Remove; no longer needed. (extract_dir): If --keep-directory-symlink, avoid the need to call issymlinkat if either --dereference is not specified, or if the plain stat fails. This saves a syscall, simplifies the code a bit, and should simplify future changes.
Changed files
- src/extract.c
Change #276528
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision 4dc85c626fb9dcc1ccacf0c1ab7c0e9f2163c06f Comments
Simplify make_directories API * src/extract.c (make_directories): Return a 3-way int rather than an int (actually a bool) and another optional bool via a pointer. All callers changed. In comment, make it clearer what the return value means. Also, improve behavior in a small way: when issuing a diagnostic on MS-Windows-like systems, use the original directory name rather than translating '\\' to '/'.
Changed files
- src/common.h
- src/extract.c
- src/misc.c
Change #276529
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision b7704c8d989cbc63d681bc7d3a59764f1adb4e99 Comments
Avoid need to append "/." for make_directories * src/extract.c (make_directories): New arg JUST_PARENT. All callers changed. * src/misc.c (struct wd.name, add_wd, chdir_arg): Use char *, not char const *, to let make_directories temporarily alter slashes. All uses changed. (chdir_do): Do not create a new name with trailing "/." because make_directories no longer needs this.
Changed files
- src/common.h
- src/extract.c
- src/misc.c
- src/names.c
Change #276530
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision bad45bee3e4bda479b792162dc73a7817d5664d1 Comments
Improve dir checking in make_directories Prefer faccessat to fstatat for dir checking. Also, don’t bother doing either check if caller is about to check the rough equivalent anyway. * src/extract.c (make_directories): Now static. 2nd arg is now a three-way flag. All uses changed. Use faccessat instead of fstatat, to avoid EOVERFLOW issues. (create_dir): New function, for use outside this module. External caller changed. (maybe_recoverable): Set *INTERDIR_MADE if make_directories said we made the parent.
Changed files
- src/common.h
- src/extract.c
- src/misc.c
Change #276531
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision ffe45511365321b3b2ba6f141f8a4c029931ca49 Comments
Remove struct wd.one_top_level This merely refactors. * src/misc.c: Don’t include assert.h. (struct wd.one_top_level): Remove. All uses changed to say that it’s a one_top_level directory iff its index is odd and one_top_level_dir is nonnull. This simplifies the code and removes the need for a couple of ‘assert’s. This code uses ~+X instead of ~X to pacify gcc -Wbool-operation.
Changed files
- src/misc.c
Change #276532
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision 25d8b4b1ac58b86ba7bf2db17da41399516d6db6 Comments
Save a syscall in trivial extract_dir * src/extract.c (trivial_base_name): New function. (extract_dir): Use it.
Changed files
- src/extract.c
Change #276533
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision 05f21fe936b27382e667b5400d986d4dbd112ef1 Comments
Save work if one_top_level_dir is absolute * src/misc.c (chdir_arg): Optimize --one-top-level=X where X is an absolute file name.
Changed files
- src/misc.c
Change #276534
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision 941f62b24db232c58a41a0a621e08451f7f97ed8 Comments
--one-top-level clarifications Bring back documentation for --one-top-level absolute file names, and clarify its behavior. Allow --one-top-level only with -x, -d, -t. * src/misc.c (chdir_do): Do not pass -1 to openat. Simplify now that open_searchdir_how no longer has RESOLVE_BENEATH when one_top_level_dir is absolute. Fix errno confusion in messages. * src/tar.c (decode_options): Allow --one-top-level only with -x, -d, and -t. Do not use RESOLVE_BENEATH if --one-top-level=/foo is used; this simplifies chdir_do.
Changed files
- NEWS
- doc/tar.texi
- src/misc.c
- src/tar.c
Change #276535
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision e54e505a929c37d1f842ebb2516fb807b8254699 Comments
tar: open directories more efficiently Without this patch, tar would open the parent of a directory for search, then open the directory itself for search. It's more efficient to just open the directory for search. * src/create.c (create_archive, restore_parent_fd, chdir_do): Use open_searchdir instead of opening by hand. * src/misc.c (chdir_do): Use fdbase_opendir and fdbase_close instead of openat and close, so that the fd is cached properly. (chdirable): New function. (fdbase_clear): Use it to avoid closing chdirable FDs. (fdbase_close): New function. (open_subdir): New arg OFLAGS. All callers changed. (fdbase_opendir): New arg CHILD_OFLAGS. All callers changed. Prefer AT_FDCWD for absolute file names, so that we need not worry about chdir_fd == BADFD in that case. Do not allow empty file names. When replacing an old directory, do not close its fd if it is chdirable. (open_searchdir): New function. * src/tar.c (decode_options): Do not worry about one_top_level_dir and IS_ABSOLUTE_FILE_NAME (one_top_level_dir), as fdbase_opendir now prefers AT_FDCWD for absolute file names. (tar_stat_close): Use fdbase_close instead of close, so that the fd is cached properly.
Changed files
- src/common.h
- src/create.c
- src/misc.c
- src/tar.c
Change #276536
Category gtar Changed by Paul Eggert <eggert@cs.ucla.edu> Changed at Thu 30 Jul 2026 08:12:46 Repository git://git.savannah.gnu.org/tar.git Project gtar Branch master Revision 9371d36cc707a099e6867199f18bbaa7795b6150 Comments
tar: reuse FD when extracting hard links * src/extract.c (rename_directory): Redo to accommodate new semantics of fdbase1, and to use fds more intelligently. * src/misc.c (fdbase_opendir): If ALTERNATE, it is now OK to use, though not update, the main cache. This makes it possible for the caller to do linkat (N, "A", N, "B") instead of the linkat (N, "A", N + 1, "B") it previously did, and this saves some open and close calls on directories.
Changed files
- src/extract.c
- src/misc.c