Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2024-04-18 22:10:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libzypp (Old) and /work/SRC/openSUSE:Factory/.libzypp.new.26366 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp" Thu Apr 18 22:10:55 2024 rev:490 rq:1168627 version:17.32.4 Changes: -------- --- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes 2024-04-16 20:04:44.902444242 +0200 +++ /work/SRC/openSUSE:Factory/.libzypp.new.26366/libzypp.changes 2024-04-18 22:11:36.855294286 +0200 @@ -1,0 +2,11 @@ +Wed Apr 17 17:07:52 CEST 2024 - m...@suse.de + +- Fix creation of sibling cache dirs with too restrictive mode + (bsc#1222398) + Some install workflows in YAST may lead to too restrictive (0700) + raw cache directories in case of newly created repos. Later + commands running with user privileges may not be able to access + these repos. +- version 17.32.4 (32) + +------------------------------------------------------------------- Old: ---- libzypp-17.32.3.tar.bz2 New: ---- libzypp-17.32.4.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libzypp.spec ++++++ --- /var/tmp/diff_new_pack.CUGffE/_old 2024-04-18 22:11:37.467316777 +0200 +++ /var/tmp/diff_new_pack.CUGffE/_new 2024-04-18 22:11:37.471316925 +0200 @@ -42,7 +42,7 @@ %bcond_with enable_preview_single_rpmtrans_as_default_for_zypper Name: libzypp -Version: 17.32.3 +Version: 17.32.4 Release: 0 License: GPL-2.0-or-later URL: https://github.com/openSUSE/libzypp ++++++ libzypp-17.32.3.tar.bz2 -> libzypp-17.32.4.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.32.3/VERSION.cmake new/libzypp-17.32.4/VERSION.cmake --- old/libzypp-17.32.3/VERSION.cmake 2024-04-11 16:40:07.000000000 +0200 +++ new/libzypp-17.32.4/VERSION.cmake 2024-04-17 17:10:07.000000000 +0200 @@ -61,8 +61,8 @@ SET(LIBZYPP_MAJOR "17") SET(LIBZYPP_COMPATMINOR "32") SET(LIBZYPP_MINOR "32") -SET(LIBZYPP_PATCH "3") +SET(LIBZYPP_PATCH "4") # -# LAST RELEASED: 17.32.3 (32) +# LAST RELEASED: 17.32.4 (32) # (The number in parenthesis is LIBZYPP_COMPATMINOR) #======= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.32.3/package/libzypp.changes new/libzypp-17.32.4/package/libzypp.changes --- old/libzypp-17.32.3/package/libzypp.changes 2024-04-11 16:40:07.000000000 +0200 +++ new/libzypp-17.32.4/package/libzypp.changes 2024-04-17 17:10:07.000000000 +0200 @@ -1,4 +1,15 @@ ------------------------------------------------------------------- +Wed Apr 17 17:07:52 CEST 2024 - m...@suse.de + +- Fix creation of sibling cache dirs with too restrictive mode + (bsc#1222398) + Some install workflows in YAST may lead to too restrictive (0700) + raw cache directories in case of newly created repos. Later + commands running with user privileges may not be able to access + these repos. +- version 17.32.4 (32) + +------------------------------------------------------------------- Thu Apr 11 16:10:46 CEST 2024 - m...@suse.de - Update RepoStatus fromCookieFile according to the files mtime diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.32.3/zypp/ng/repo/refresh.cc new/libzypp-17.32.4/zypp/ng/repo/refresh.cc --- old/libzypp-17.32.3/zypp/ng/repo/refresh.cc 2024-04-15 18:06:46.000000000 +0200 +++ new/libzypp-17.32.4/zypp/ng/repo/refresh.cc 2024-04-17 17:10:07.000000000 +0200 @@ -35,7 +35,7 @@ using zypp::PathInfo; L_DBG("1222398") << "rawCachePath " << PathInfo( rawCachePath ) << std::endl; #endif - zypp::filesystem::TmpDir tmpdir( zypp::filesystem::TmpDir::makeSibling( rawCachePath ) ); + zypp::filesystem::TmpDir tmpdir( zypp::filesystem::TmpDir::makeSibling( rawCachePath, 0755 ) ); #if LEGACY(173205) L_DBG("1222398") << "siblinghPath " << PathInfo( tmpdir.path() ) << std::endl; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.32.3/zypp-core/fs/PathInfo.cc new/libzypp-17.32.4/zypp-core/fs/PathInfo.cc --- old/libzypp-17.32.3/zypp-core/fs/PathInfo.cc 2024-03-14 10:50:10.000000000 +0100 +++ new/libzypp-17.32.4/zypp-core/fs/PathInfo.cc 2024-04-17 17:10:07.000000000 +0200 @@ -1099,6 +1099,9 @@ return logResult( 0 ); } + int chmodApplyUmask( const Pathname & path, mode_t mode ) + { return chmod( path, applyUmaskTo( mode ) ); } + int addmod( const Pathname & path, mode_t mode ) { mode_t omode( PathInfo( path ).st_mode() ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.32.3/zypp-core/fs/PathInfo.h new/libzypp-17.32.4/zypp-core/fs/PathInfo.h --- old/libzypp-17.32.3/zypp-core/fs/PathInfo.h 2024-03-14 10:50:10.000000000 +0100 +++ new/libzypp-17.32.4/zypp-core/fs/PathInfo.h 2024-04-17 17:10:07.000000000 +0200 @@ -730,6 +730,14 @@ int chmod( const Pathname & path, mode_t mode ); /** + * Similar to '::chmod', but \c mode is modified by the process's + * umask in the usual way. + * + * @return 0 on success, errno on failure + **/ + int chmodApplyUmask( const Pathname & path, mode_t mode ); + + /** * Add the \c mode bits to the file given by path. * * @return 0 on success, errno on failure diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.32.3/zypp-core/fs/TmpPath.cc new/libzypp-17.32.4/zypp-core/fs/TmpPath.cc --- old/libzypp-17.32.3/zypp-core/fs/TmpPath.cc 2024-04-03 14:40:08.000000000 +0200 +++ new/libzypp-17.32.4/zypp-core/fs/TmpPath.cc 2024-04-17 17:10:07.000000000 +0200 @@ -194,7 +194,7 @@ // create the temp file Pathname tmpPath = (inParentDir_r + prefix_r).extend( "XXXXXX"); - char * buf = ::strdup( tmpPath.asString().c_str() ); + AutoFREE<char> buf { ::strdup( tmpPath.asString().c_str() ) }; if ( ! buf ) { ERR << "Out of memory" << endl; @@ -206,12 +206,10 @@ { // success; create _impl ::close( tmpFd ); - _impl = RW_pointer<Impl>( new Impl( buf ) ); + _impl = RW_pointer<Impl>( new Impl( Pathname(buf) ) ); } else ERR << "Cant create '" << buf << "' " << ::strerror( errno ) << endl; - - ::free( buf ); } /////////////////////////////////////////////////////////////////// @@ -220,6 +218,9 @@ // METHOD TYPE : TmpFile // TmpFile TmpFile::makeSibling( const Pathname & sibling_r ) + { return makeSibling( sibling_r, -1U ); } + + TmpFile TmpFile::makeSibling( const Pathname & sibling_r, unsigned mode ) { TmpFile ret( sibling_r.dirname(), sibling_r.basename() ); if ( ret ) { @@ -227,6 +228,8 @@ PathInfo p( sibling_r ); if ( p.isFile() ) { ::chmod( ret.path().c_str(), p.st_mode() ); + } else if ( mode != -1U ) { + ::chmod( ret.path().c_str(), applyUmaskTo( mode ) ); } } return ret; @@ -275,7 +278,7 @@ // create the temp dir Pathname tmpPath = (inParentDir_r + prefix_r).extend( "XXXXXX"); - char * buf = ::strdup( tmpPath.asString().c_str() ); + AutoFREE<char> buf { ::strdup( tmpPath.asString().c_str() ) }; if ( ! buf ) { ERR << "Out of memory" << endl; @@ -288,8 +291,6 @@ _impl = RW_pointer<Impl>( new Impl( tmp ) ); else ERR << "Cant create '" << tmpPath << "' " << ::strerror( errno ) << endl; - - ::free( buf ); } /////////////////////////////////////////////////////////////////// @@ -298,6 +299,9 @@ // METHOD TYPE : TmpDir // TmpDir TmpDir::makeSibling( const Pathname & sibling_r ) + { return makeSibling( sibling_r, -1U ); } + + TmpDir TmpDir::makeSibling( const Pathname & sibling_r, unsigned mode ) { TmpDir ret( sibling_r.dirname(), sibling_r.basename() ); if ( ret ) { @@ -305,6 +309,8 @@ PathInfo p( sibling_r ); if ( p.isDir() ) { ::chmod( ret.path().c_str(), p.st_mode() ); + } else if ( mode != -1U ) { + ::chmod( ret.path().c_str(), applyUmaskTo( mode ) ); } } return ret; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-17.32.3/zypp-core/fs/TmpPath.h new/libzypp-17.32.4/zypp-core/fs/TmpPath.h --- old/libzypp-17.32.3/zypp-core/fs/TmpPath.h 2024-03-14 10:50:10.000000000 +0100 +++ new/libzypp-17.32.4/zypp-core/fs/TmpPath.h 2024-04-17 17:10:07.000000000 +0200 @@ -142,6 +142,10 @@ * If \c sibling_r exists, sibling is created using the same mode. */ static TmpFile makeSibling( const Pathname & sibling_r ); + /** \overload If \c sibling_r does not exist, the sibling is created using \c mode, + * modified by the process's umask in the usual way, rather than the default 0700. + */ + static TmpFile makeSibling( const Pathname & sibling_r, unsigned mode ); /** * Create a temporary file and convert it to a automatically @@ -192,6 +196,10 @@ * If \c sibling_r exists, sibling is created using the same mode. */ static TmpDir makeSibling( const Pathname & sibling_r ); + /** \overload If \c sibling_r does not exist, the sibling is created using \c mode, + * modified by the process's umask in the usual way, rather than the default 0700. + */ + static TmpDir makeSibling( const Pathname & sibling_r, unsigned mode ); public: /**