[{"builderName":"gtar-solaris10-i386","builds":[],"properties":[["scheduler","schedule-gtar-solaris10-i386","Scheduler"]],"source":{"branch":"master","changes":[{"at":"Fri 03 Jul 2026 11:58:18","branch":"master","category":"gtar","codebase":"","comments":"Avoid acl_ prefix for functions\nThe acl.h header from libacl uses acl_ prefix for its functions. Avoid\ndefining functions with the same name in order to protect its namespace.","files":[{"name":"src/xattrs.c"}],"number":273834,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"08c3fc2e9337094aff01a511170fd35fdb8f1ee3","revision":"08c3fc2e9337094aff01a511170fd35fdb8f1ee3","revlink":"","when":1783072698,"who":"Pavel Cahyna <pcahyna@redhat.com>"}],"codebase":"","hasPatch":false,"project":"gtar","repository":"git://git.savannah.gnu.org/tar.git","revision":"08c3fc2e9337094aff01a511170fd35fdb8f1ee3"},"submittedAt":1783067021},{"builderName":"gtar-solaris10-i386","builds":[],"properties":[["scheduler","schedule-gtar-solaris10-i386","Scheduler"]],"source":{"branch":"master","changes":[{"at":"Tue 21 Jul 2026 21:49:04","branch":"master","category":"gtar","codebase":"","comments":"Check if the dumpdir read from the archive is well-formed before using it.\n* src/common.h (dumpdir_ok): New proto.\n* src/incremen.c (dumpdir_ok): Take size as the second argument.\nVerify if the last byte is 0 and the dumpdir contains 0 or more\nnul-terminated strings.\n(get_gnu_dumpdir): Check if the obtained dumpdir is ok. Clear the\nis_dumpdir flag if it is not.\n* src/xheader.c (dumpdir_decoder) Verify if the obtained dumpdir is\nok.","files":[{"name":"src/common.h"},{"name":"src/incremen.c"},{"name":"src/xheader.c"}],"number":275385,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"87819f9f0a6c2d546c7936123fce5eecb6e6f149","revision":"87819f9f0a6c2d546c7936123fce5eecb6e6f149","revlink":"","when":1784663344,"who":"Sergey Poznyakoff <gray@gnu.org>"}],"codebase":"","hasPatch":false,"project":"gtar","repository":"git://git.savannah.gnu.org/tar.git","revision":"87819f9f0a6c2d546c7936123fce5eecb6e6f149"},"submittedAt":1784657655},{"builderName":"gtar-solaris10-i386","builds":[],"properties":[["scheduler","schedule-gtar-solaris10-i386","Scheduler"]],"source":{"branch":"master","changes":[{"at":"Thu 23 Jul 2026 08:00:22","branch":"master","category":"gtar","codebase":"","comments":"Update paxutils","files":[{"name":"paxutils"}],"number":275568,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"5a225f25c5f414aaebe2f9fa5572f2cdfb7e1177","revision":"5a225f25c5f414aaebe2f9fa5572f2cdfb7e1177","revlink":"","when":1784786422,"who":"Sergey Poznyakoff <gray@gnu.org>"}],"codebase":"","hasPatch":false,"project":"gtar","repository":"git://git.savannah.gnu.org/tar.git","revision":"5a225f25c5f414aaebe2f9fa5572f2cdfb7e1177"},"submittedAt":1784780652},{"builderName":"gtar-solaris10-i386","builds":[],"properties":[["scheduler","schedule-gtar-solaris10-i386","Scheduler"]],"source":{"branch":"master","changes":[{"at":"Thu 23 Jul 2026 09:52:03","branch":"master","category":"gtar","codebase":"","comments":"Assume directory members have size=0.\nSince commit b8d8a61b, tar started honoring size field in headers\nof the directory archive members when listing and extracting. That\ndoesn't seem right: although GNU tar always stores 0 for such members,\nthere are other tar implementation that don't. As a result, GNU tar\nskips the actual directory contents when listing or extracting archives\ncreated by such implementations.\n\nThis commit fixes that by assuming that size is 0 for directory archive\nmembers.\n\n* src/list.c (member_is_dir): Restore function.\n(skim_member): Don't apply skim_file to directory members.\n* tests/skipdir.at: Fix expectations.","files":[{"name":"src/list.c"},{"name":"tests/skipdir.at"}],"number":275576,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"19a3a73e8c48bd3c59cbea9b5ed6780fc6836c6d","revision":"19a3a73e8c48bd3c59cbea9b5ed6780fc6836c6d","revlink":"","when":1784793123,"who":"Sergey Poznyakoff <gray@gnu.org>"}],"codebase":"","hasPatch":false,"project":"gtar","repository":"git://git.savannah.gnu.org/tar.git","revision":"19a3a73e8c48bd3c59cbea9b5ed6780fc6836c6d"},"submittedAt":1784787238},{"builderName":"gtar-solaris10-i386","builds":[],"properties":[["scheduler","schedule-gtar-solaris10-i386","Scheduler"]],"source":{"branch":"master","changes":[{"at":"Sat 25 Jul 2026 16:10:11","branch":"master","category":"gtar","codebase":"","comments":"Fix --set-mtime-command.\nThis fixes a bug introduced by 281e03ec6.\n\n* src/system.c (sys_exec_setmtime_script): Increase buflen by\nvalue of nread.","files":[{"name":"src/system.c"}],"number":275820,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"e407e6e7ddf61b84d5a0fabb2546a1efd96a512c","revision":"e407e6e7ddf61b84d5a0fabb2546a1efd96a512c","revlink":"","when":1784988611,"who":"Sergey Poznyakoff <gray@gnu.org>"}],"codebase":"","hasPatch":false,"project":"gtar","repository":"git://git.savannah.gnu.org/tar.git","revision":"e407e6e7ddf61b84d5a0fabb2546a1efd96a512c"},"submittedAt":1784983438},{"builderName":"gtar-solaris10-i386","builds":[],"properties":[["scheduler","schedule-gtar-solaris10-i386","Scheduler"]],"source":{"branch":"master","changes":[{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Draft patch for openat2 changes vs --one-top-level\nThe patch leverages the existing -C code. In order to do that, every\nentry in the wd[] table gets another companion entry in the table that\nrepresents the --one-top-level directory. There is one additional field\nin each entry that allows skipping the companion entries if they are not\ndesired.\n\nThe actual directory is created lazily by chdir_do() if needed, as you\nrequested, to avoid empty \"a/foo\" after --one-top-level=foo -C a -C b.\n\nThe patch \"by the way\" fixes also extraction of hardlinks with\n--one-top-level which currently is broken in the typical case (the\ntransform is not applied to the target, so the hardlink is wrong).\n\nThe patch does not yet handle the --show-transformed case with\n--one-top-level that you discussed in another subthread. As a result, two\ntests now fail (onetop02.at and onetop04.at). I suppose that this would\nbe quite easy to fix.\n\nAnother issue that I am aware of is that I am not sure whether to call\nrepair_delayed_set_stat and/or delay_set_stat on the newly created\ndirectories like extract_dir() does (the whole delay_set code is abit\nmysterious to me).\n\nUse of --create together with --one-top-level should probably be\nforbidden, as unlink.c uses wd[] in a way that will likely break in the\npresence of companion entries (the chdir_do call in\nflush_deferred_unlinks).\n\nShow the one-top-level arg as a transformation","files":[{"name":"src/common.h"},{"name":"src/extract.c"},{"name":"src/list.c"},{"name":"src/misc.c"},{"name":"src/names.c"},{"name":"src/tar.c"},{"name":"src/unlink.c"},{"name":"src/update.c"}],"number":276520,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"1b91f5f66f8e6c490eef0fdee50f652cfe155844","revision":"1b91f5f66f8e6c490eef0fdee50f652cfe155844","revlink":"","when":1785391966,"who":"Pavel Cahyna <pcahyna@redhat.com>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Revert \"tar: incremental 'X' follows --one-top-level\"\nThis reverts commit 79d61af0e118a9368425729f624a66e1065be61e.","files":[{"name":"src/incremen.c"}],"number":276521,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"3903b37673dc025c51e6ea2a53a22318e1b48f46","revision":"3903b37673dc025c51e6ea2a53a22318e1b48f46","revlink":"","when":1785391966,"who":"Pavel Cahyna <pcahyna@redhat.com>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Add tests for cyclic renames\nUsing options to extract to a subdirectory: one test with -C,\nanother with --one-top-level.","files":[{"name":"tests/Makefile.am"},{"name":"tests/rename08.at"},{"name":"tests/rename09.at"},{"name":"tests/testsuite.at"}],"number":276522,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"b17665b2c0548c77b6cd8d2d5b61e4c4fcc4f770","revision":"b17665b2c0548c77b6cd8d2d5b61e4c4fcc4f770","revlink":"","when":1785391966,"who":"Pavel Cahyna <pcahyna@redhat.com>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Eliminate redundant chdir_do\nIf one-top-level is not provided, chdir_do is a no-op.","files":[{"name":"src/extract.c"}],"number":276523,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"325b899214ac13519153318e66c889a31c15342d","revision":"325b899214ac13519153318e66c889a31c15342d","revlink":"","when":1785391966,"who":"Pavel Cahyna <pcahyna@redhat.com>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Get rid of create_dir\nIt turns out that make_directories can do what we need (create all\ndirectories in a path) if we append a dummy \".\" component, as it creates\ndirectories up to and excluding the last component of the path.\n\nAlso, do not avoid using delay_set_stat on the newly created\ndirectories. This matches the rest of the code and avoids potentially\nleaving the newly-created directories with too open permissions.\nThis requires some workarounds to cope with\napply_nonancestor_delayed_set_stat and mark_metadata_set problems: do it\nas in the rest of the code - apply the stats before proceeding with\nextraction of anything else.","files":[{"name":"src/common.h"},{"name":"src/extract.c"},{"name":"src/misc.c"}],"number":276524,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"1980e032afe60c5fe0e5df573457885ece4e69d5","revision":"1980e032afe60c5fe0e5df573457885ece4e69d5","revlink":"","when":1785391966,"who":"Pavel Cahyna <pcahyna@redhat.com>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Add comment about deducing --one-top-level name","files":[{"name":"src/tar.c"}],"number":276525,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"e335e2c8b102f83b63ffd373f0b88401da3ebe6c","revision":"e335e2c8b102f83b63ffd373f0b88401da3ebe6c","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Go back to simpler chdir_arg API\n* src/misc.c (add_wd, ensure_wd): New functions, replacing ...\n(grow_wd): .. this function, for clarity.  All uses changed.\n(chdir_arg): Omit 2nd arg, to keep callers simpler.\nAll uses changed.  Instead of being recursive, be iterative;\nthis is part of the simplification.","files":[{"name":"src/common.h"},{"name":"src/misc.c"},{"name":"src/names.c"}],"number":276526,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"0ec9f0ebf6c52d3e0a71b39ef45043f5ff8e27a7","revision":"0ec9f0ebf6c52d3e0a71b39ef45043f5ff8e27a7","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Improve --keep-directory-symlink performance\n* src/extract.c (is_directory_link): Remove; no longer needed.\n(extract_dir): If --keep-directory-symlink, avoid the need\nto call issymlinkat if either --dereference is not specified,\nor if the plain stat fails.  This saves a syscall, simplifies\nthe code a bit, and should simplify future changes.","files":[{"name":"src/extract.c"}],"number":276527,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"d405469bf4786b358990e2a4c02e619b318666f7","revision":"d405469bf4786b358990e2a4c02e619b318666f7","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Simplify make_directories API\n* src/extract.c (make_directories): Return a 3-way int rather than\nan int (actually a bool) and another optional bool via a pointer.\nAll callers changed.  In comment, make it clearer what the\nreturn value means.  Also, improve behavior in a small way: when\nissuing a diagnostic on MS-Windows-like systems, use the original\ndirectory name rather than translating '\\\\' to '/'.","files":[{"name":"src/common.h"},{"name":"src/extract.c"},{"name":"src/misc.c"}],"number":276528,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"4dc85c626fb9dcc1ccacf0c1ab7c0e9f2163c06f","revision":"4dc85c626fb9dcc1ccacf0c1ab7c0e9f2163c06f","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Avoid need to append \"/.\" for make_directories\n* src/extract.c (make_directories): New arg JUST_PARENT.\nAll callers changed.\n* src/misc.c (struct wd.name, add_wd, chdir_arg):\nUse char *, not char const *, to let make_directories\ntemporarily alter slashes.  All uses changed.\n(chdir_do): Do not create a new name with trailing \"/.\"\nbecause make_directories no longer needs this.","files":[{"name":"src/common.h"},{"name":"src/extract.c"},{"name":"src/misc.c"},{"name":"src/names.c"}],"number":276529,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"b7704c8d989cbc63d681bc7d3a59764f1adb4e99","revision":"b7704c8d989cbc63d681bc7d3a59764f1adb4e99","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Improve dir checking in make_directories\nPrefer faccessat to fstatat for dir checking.\nAlso, don\u2019t bother doing either check if caller\nis about to check the rough equivalent anyway.\n* src/extract.c (make_directories): Now static.\n2nd arg is now a three-way flag.  All uses changed.\nUse faccessat instead of fstatat, to avoid EOVERFLOW issues.\n(create_dir): New function, for use outside this module.\nExternal caller changed.\n(maybe_recoverable): Set *INTERDIR_MADE if make_directories\nsaid we made the parent.","files":[{"name":"src/common.h"},{"name":"src/extract.c"},{"name":"src/misc.c"}],"number":276530,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"bad45bee3e4bda479b792162dc73a7817d5664d1","revision":"bad45bee3e4bda479b792162dc73a7817d5664d1","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Remove struct wd.one_top_level\nThis merely refactors.\n* src/misc.c: Don\u2019t include assert.h.\n(struct wd.one_top_level): Remove.  All uses changed to say that\nit\u2019s a one_top_level directory iff its index is odd and\none_top_level_dir is nonnull.  This simplifies the code and\nremoves the need for a couple of \u2018assert\u2019s.  This code\nuses ~+X instead of ~X to pacify gcc -Wbool-operation.","files":[{"name":"src/misc.c"}],"number":276531,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"ffe45511365321b3b2ba6f141f8a4c029931ca49","revision":"ffe45511365321b3b2ba6f141f8a4c029931ca49","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Save a syscall in trivial extract_dir\n* src/extract.c (trivial_base_name): New function.\n(extract_dir): Use it.","files":[{"name":"src/extract.c"}],"number":276532,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"25d8b4b1ac58b86ba7bf2db17da41399516d6db6","revision":"25d8b4b1ac58b86ba7bf2db17da41399516d6db6","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"Save work if one_top_level_dir is absolute\n* src/misc.c (chdir_arg): Optimize --one-top-level=X where X is an\nabsolute file name.","files":[{"name":"src/misc.c"}],"number":276533,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"05f21fe936b27382e667b5400d986d4dbd112ef1","revision":"05f21fe936b27382e667b5400d986d4dbd112ef1","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"--one-top-level clarifications\nBring back documentation for --one-top-level absolute file names,\nand clarify its behavior.  Allow --one-top-level only with\n-x, -d, -t.\n* src/misc.c (chdir_do): Do not pass -1 to openat.  Simplify now\nthat open_searchdir_how no longer has RESOLVE_BENEATH when\none_top_level_dir is absolute.  Fix errno confusion in messages.\n* src/tar.c (decode_options): Allow --one-top-level only with -x,\n-d, and -t.  Do not use RESOLVE_BENEATH if --one-top-level=/foo is\nused; this simplifies chdir_do.","files":[{"name":"NEWS"},{"name":"doc/tar.texi"},{"name":"src/misc.c"},{"name":"src/tar.c"}],"number":276534,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"941f62b24db232c58a41a0a621e08451f7f97ed8","revision":"941f62b24db232c58a41a0a621e08451f7f97ed8","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"tar: open directories more efficiently\nWithout this patch, tar would open the parent of a directory\nfor search, then open the directory itself for search.\nIt's more efficient to just open the directory for search.\n* src/create.c (create_archive, restore_parent_fd, chdir_do):\nUse open_searchdir instead of opening by hand.\n* src/misc.c (chdir_do): Use fdbase_opendir and fdbase_close\ninstead of openat and close, so that the fd is cached properly.\n(chdirable): New function.\n(fdbase_clear): Use it to avoid closing chdirable FDs.\n(fdbase_close): New function.\n(open_subdir): New arg OFLAGS.  All callers changed.\n(fdbase_opendir): New arg CHILD_OFLAGS.  All callers changed.\nPrefer AT_FDCWD for absolute file names, so that we need not\nworry about chdir_fd == BADFD in that case.\nDo not allow empty file names.\nWhen replacing an old directory, do not close its fd if it\nis chdirable.\n(open_searchdir): New function.\n* src/tar.c (decode_options): Do not worry about one_top_level_dir\nand IS_ABSOLUTE_FILE_NAME (one_top_level_dir), as fdbase_opendir\nnow prefers AT_FDCWD for absolute file names.\n(tar_stat_close): Use fdbase_close instead of close,\nso that the fd is cached properly.","files":[{"name":"src/common.h"},{"name":"src/create.c"},{"name":"src/misc.c"},{"name":"src/tar.c"}],"number":276535,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"e54e505a929c37d1f842ebb2516fb807b8254699","revision":"e54e505a929c37d1f842ebb2516fb807b8254699","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"},{"at":"Thu 30 Jul 2026 08:12:46","branch":"master","category":"gtar","codebase":"","comments":"tar: reuse FD when extracting hard links\n* src/extract.c (rename_directory): Redo to accommodate\nnew semantics of fdbase1, and to use fds more intelligently.\n* src/misc.c (fdbase_opendir): If ALTERNATE, it is now OK to use,\nthough not update, the main cache.  This makes it possible for the\ncaller to do linkat (N, \"A\", N, \"B\") instead of the\nlinkat (N, \"A\", N + 1, \"B\") it previously did, and this\nsaves some open and close calls on directories.","files":[{"name":"src/extract.c"},{"name":"src/misc.c"}],"number":276536,"project":"gtar","properties":[],"repository":"git://git.savannah.gnu.org/tar.git","rev":"9371d36cc707a099e6867199f18bbaa7795b6150","revision":"9371d36cc707a099e6867199f18bbaa7795b6150","revlink":"","when":1785391966,"who":"Paul Eggert <eggert@cs.ucla.edu>"}],"codebase":"","hasPatch":false,"project":"gtar","repository":"git://git.savannah.gnu.org/tar.git","revision":"9371d36cc707a099e6867199f18bbaa7795b6150"},"submittedAt":1785386415}]