<div class="container">
<h1>Recommended update for osc</h1>
<table class="table table-striped table-bordered">
<tbody>
<tr>
<th>Announcement ID:</th>
<td>SUSE-RU-2025:02255-1</td>
</tr>
<tr>
<th>Release Date:</th>
<td>2025-07-09T07:26:50Z</td>
</tr>
<tr>
<th>Rating:</th>
<td>moderate</td>
</tr>
<tr>
<th>References:</th>
<td>
<ul>
<li style="display: inline;">
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1243722">bsc#1243722</a>
</li>
</ul>
</td>
</tr>
<tr>
<th>Affected Products:</th>
<td>
<ul class="list-group">
<li class="list-group-item">Development Tools Module 15-SP6</li>
<li class="list-group-item">Development Tools Module 15-SP7</li>
<li class="list-group-item">openSUSE Leap 15.6</li>
<li class="list-group-item">SUSE Linux Enterprise Desktop 15 SP6</li>
<li class="list-group-item">SUSE Linux Enterprise Desktop 15 SP7</li>
<li class="list-group-item">SUSE Linux Enterprise Real Time 15 SP6</li>
<li class="list-group-item">SUSE Linux Enterprise Real Time 15 SP7</li>
<li class="list-group-item">SUSE Linux Enterprise Server 15 SP6</li>
<li class="list-group-item">SUSE Linux Enterprise Server 15 SP7</li>
<li class="list-group-item">SUSE Linux Enterprise Server for SAP Applications 15 SP6</li>
<li class="list-group-item">SUSE Linux Enterprise Server for SAP Applications 15 SP7</li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>An update that has one fix can now be installed.</p>
<h2>Description:</h2>
<p>This update for osc fixes the following issues:</p>
<p>osc was updated to 1.17.0:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Rename 'git-obs pr review' to 'git-obs pr review interactive'</li>
<li>Add 'A)approve and schedule for merging' action to 'git obs pr review interactive'</li>
<li>Add 'git-obs pr merge' command</li>
<li>Add 'git-obs pr review accept' and 'git-obs pr review decline' commands</li>
<li>Implement 'git-obs repo list' command</li>
<li>Add '--export' option to 'git-obs pr list' and 'git-obs pr search'</li>
<li>Fix crash during token validation in 'git-obs login {add,update}' when value is not specified</li>
<li>Fix loading shell completions for 'git-obs'</li>
<li>Fix 'git-obs api' by preventing of quoting the URL query part</li>
<li>Add a possibility to override git-obs login entries from env</li>
<li>Validate arguments in 'osc fork' command</li>
<li>Revert "Improve 'updatepacmetafromspec' command to expand rpm spec macros by calling rpmspec to query the data"</li>
<li>Improve 'updatepacmetafromspec' command to expand rpm spec macros by calling queryrecipe to query the data (bsc#1243722)</li>
</ul>
</li>
<li>
<p>Connection:</p>
<ul>
<li>Do not use pipe for ssh-keygen input</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Refactor gitea_api to use objects with properties instead of raw JSON data</li>
<li>Add GiteaModel base class and json_dumps() function that can serialize such objects</li>
<li>Rename 'anonymous' argument in 'gitea_api.Repo.clone()' to 'use_http'</li>
<li>Allow git in git-obs to be switched from SSH to http(s)</li>
<li>Move yaml handling code to osc.util.yaml, add fallback to PyYaml</li>
<li>Fix how types are compared in OscOptions.set_value_from_string()</li>
<li>get_package_results: check for waiting states in all multibuild packages</li>
<li>Extend _buildinfo file lookup to the current directory</li>
<li>Fix git store when .git is a file with "gitdir: <path>" link</li>
<li>Migrate store_* functions to use get_store instead of the original code</li>
</ul>
</li>
<li>
<p>Spec:</p>
<ul>
<li>Modify spec to use PyYAML on SLE15</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.16.0:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Add 'osc rmkpac' subcommand</li>
<li>Add 'osc service precommit' subcommand, for use with git hook</li>
<li>Add '--target-branch' filter option to 'git-obs pr list'</li>
<li>Add '--reviewer' and '--review-state' options to 'git-obs pr list'</li>
<li>Add '--no-draft' filter option to 'git-obs pr list'</li>
<li>Set limit=0 to disable pagination in all relevant git-obs subcommands</li>
<li>Improve help of the 'git-obs login' subcommands</li>
<li>Update 'git-obs login {add,update}' to check the gitea token format</li>
<li>Fix 'osc fork' when <attributes/> in the source project is empty</li>
<li>Fix handling env in tests for 'osc vc'</li>
<li>Fix how GitStore reads project from the parent directory</li>
<li>Fix 'git-obs pr create' with multistring EDITOR</li>
<li>Improve handling exceptions in 'git-obs' command</li>
<li>Improve message in 301: Moved Permanently error in git-obs</li>
<li>Improve git-obs to read credentials from env variables</li>
<li>Remove commas from the list of request IDs in the superseding prompt in 'osc sr'</li>
</ul>
</li>
<li>
<p>Connection:</p>
<ul>
<li>Fix git-obs connection for urllib3 v1 by overriding the default timeout</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Add troubleshooting info to gitea_api.Login.DoesNotExist message</li>
<li>Add 'min_key_length' argument to KeyValueTable to enforce the minimal length of the first column</li>
<li>Fix implicit optionals in type hints to make code PEP 484 compliant</li>
<li>Don't crash when OBS API returns None as request description</li>
<li>Fix TypeError in response_to_exception() in gitea_api</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.15.1:</p>
<ul>
<li>
<p>Library:</p>
<ul>
<li>Revert "Run decode_it also in the other case"</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.15.0:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Improve 'osc fork' to follow the devel package specified in the 'OBS:RejectBranch' attribute</li>
<li>Hotfix 'osc fork' failures of devel project users</li>
<li>Change 'osc fork' to print an error rather than raising an exception</li>
<li>Fix setting parent remote in 'git-obs repo clone'</li>
<li>Extend 'osc build' to read build project from Gitea: <owner>/_ObsPrj, project.build file</li>
<li>Fix 'osc build' when working with sources from git, when .osc is not available</li>
<li>Fix crash in 'osc build --host'</li>
<li>Fix rendering help output by adding the complete docstring of the commands</li>
<li>Add commented git status to the 'git-obs pr create' message</li>
<li>When doing an mr from a working copy check for unchecked modifications</li>
<li>Consolidate working copy modification check dialog into a function</li>
</ul>
</li>
<li>
<p>Connection:</p>
<ul>
<li>Change a debug message to a warning if ssh-keygen is not available</li>
<li>Add explanatory message to ignore the signature auth warning when not using SSH keys for auth</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Implement handling of updateinfo.xml and _modulemd.yaml files</li>
<li>Fix working with _subdirs when detecting packages that are subdirectories in a git project</li>
<li>Fix canonname handling when querying a downloaded package</li>
<li>Add obs_api.Attributes model</li>
<li>Add 'quiet' and 'branch' options to gitea_api.Repo.clone()</li>
<li>Fix GitStore by parsing git urls with obs_api.Git.urlparse()</li>
<li>Add gitea_api.Git.urlparse() for parsing git urls</li>
<li>Change gitea_api.Config.url_to_hostname() to also try matching only a hostname instead of full Gitea URL</li>
<li>Rename get_parser() functions to argparse_manpage_get_parser() to clarify their purpose</li>
<li>Refactor the validity check of cached binaries</li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>Update git-obs-quickstart doc with more detailed info on creating tokens</li>
</ul>
</li>
<li>
<p>Spec:</p>
<ul>
<li>Recommend obs-scm-bridge</li>
<li>Build git-obs man page</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.14.0:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Improve 'osc fork' command to support also forking projects managed in git</li>
<li>Extend 'osc fork' command with '--target-project' and '--target-package' options</li>
<li>Enable shell completion of various 'git-obs' arguments and options</li>
<li>Fix 'git-obs pr create --target-branch'</li>
<li>Fix 'osc fork' crash in print_gitea_settings()</li>
<li>Use -A/--apiurl specified on the command-line even if running from a checkout</li>
<li>Assume openSUSE:Factory if project cannot be determined in 'osc build' command</li>
<li>Change 'osc whatdependson' command to take multiple '-M' options incl. wildcards</li>
<li>Fix diff highlighting</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Set pacsuffix='deb' if binarytype=='deb'</li>
<li>Add scmsync element to meta template</li>
<li>Add missing project_separator substitutions</li>
<li>Fix call os.userexpand() on gitea_api.Config() path argument</li>
<li>Fix adding arguments to the argument parser so they work with argcomplete</li>
<li>Fix MultibuildFlavorResolver to consider an empty flavor during glob match</li>
<li>Fix MultibuildFlavorResolver to work with <package> _multibuild elements</li>
<li>Remove superfluous setting of apiurl from 'osc fork'</li>
<li>Mute mypy errors on field property assignment</li>
<li>Add type hint to XmlModel.XML_TAG</li>
<li>Support new 'X | None' union syntax in field types</li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>Fix 'git-obs login add' command invocation in git-obs-quickstart documentation</li>
</ul>
</li>
<li>
<p>Spec:</p>
<ul>
<li>Recommends: python3-argcomplete for git-obs</li>
</ul>
</li>
<li>
<p>fix the generic provides for %{use_python_pkg}-osc to be
versioned so that one can actually have versioned requires
against that symbol</p>
</li>
<li>
<p>restore python3-osc provides if we are building against the
primary_python version</p>
</li>
<li>
<p>if we have primary_python defined lets use this to get runtime
requires matching the shebang lines</p>
</li>
</ul>
<p>osc was updated to 1.13.0:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Add 'osc fork' command for forking a package with sources managed in Gitea</li>
<li>Add 'git-obs pr review' command</li>
<li>Allow 'git-obs login' subcommands to prompt for Gitea tokens</li>
<li>Fix 'osc checkout' command to support deleted packages incl. revisions</li>
<li>Update 'osc rpmlint' command by adding help message for invoking command in PKG dir</li>
<li>Add '--multibuild-package' option to 'osc rpmlint' command</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Change how git projects and packages are detected</li>
<li>Change show_project_sourceinfo() to split a huge request into many and join the results to workaround GET limitations</li>
<li>Make 'rev' option in ScmsyncObsinfo.from_api() optional</li>
<li>Make GitObsCommand.gitea_{conf,login,conf} properties writable</li>
<li>Fix local building of deb dockerfile</li>
<li>Fix getting scm_url from scmsync_obsinfo that has subdir set</li>
<li>Fix or silence pylint errors</li>
<li>Support 'enabled' field in tokens</li>
<li>Highlight trailing whitespaces in diffs</li>
<li>Fix missing spaces in help string</li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>Add git-obs Quickstart documentation and man page</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.12.1:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Improve 'maintenancerequest' command to inherit description from superseded request</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Tell the build script to disable repos/containers handling for normal builds</li>
<li>Improve detecting git packages, use .osc metadata from project in parent directory</li>
<li>Fix retrieving apiurl from git repositories in get_api_url() in the command-line code</li>
<li>Fix typo in core.binary() that caused text files being detected as binary</li>
<li>Improve core.binary() by always considering data that contains \0 binary</li>
<li>Fix assembling scm_url when scmsync_obsinfo.revision is None</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.12.0:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Add 'git-obs pr' command</li>
<li>Add 'git-obs api' command for making arbitrary API calls</li>
<li>Change 'git-obs' to use owner/repo[#pull] arguments consistently</li>
<li>Change 'git-obs repo clone' command to store ssh command in core.sshCommand git config option</li>
<li>Fix 'request list --interactive' command that wasn't showing request forward prompt when message was part of the state change</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Avoid fetching _scmsync.obsinfo when scmsync url contains 'noobsinfo' query parameter</li>
<li>Fix ssh key priority in 'git-obs repo clone' command</li>
<li>Fix loading config entries with underscores instead of dashes in the keys</li>
<li>Fix detecting binary files</li>
<li>Fix diff highligting</li>
</ul>
</li>
<li>
<p>Connection:</p>
<ul>
<li>Implement retries in 'git-obs'</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.11.1:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Fix 'linkpac' command for projects with a project link</li>
<li>Fix 'linkpac' command by always removing <scmsync> element from target meta</li>
<li>Fix command descriptions in help by moving the import statements under docstring in the do_*() methods</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.11.0:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Add hint how to deal with scmsync-nobranch scenarios</li>
<li>Speed loading commands up</li>
<li>Fix 'log' command to work correctly with --meta --patch options</li>
<li>Document that 'status' command prints unmodified files in verbose output</li>
<li>Hide progressbar.Bar widget after ProgressBar has completed</li>
<li>Avoid printing urlquoted file names in 'getbinaries' command</li>
</ul>
</li>
<li>
<p>Configuration:</p>
<ul>
<li>Mute oscrc permissions warning when there's no password set</li>
</ul>
</li>
<li>
<p>Connection:</p>
<ul>
<li>Save session cookie even if a request fails</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Fix local building in git projects</li>
<li>Extend xml.etree.ElementTree.ParseError output with a snippet of broken XML</li>
<li>Sync ScmsyncObsinfo with obs-scm-bridge</li>
<li>Move running obs_scm_bridge into run_obs_scm_bridge() function</li>
<li>Convert remaining makeurl() query parameters from deprecated string to dict</li>
<li>Add more operators to XPathQuery</li>
<li>Make 'title' and 'description' fields optional in the Package model</li>
<li>Fix progress bar code to support progressbar2</li>
<li>Support LoongArch64 architecture</li>
<li>Mute pylint errors in show_package_disabled_repos() that are false-positives</li>
<li>Fix another bytes/unicode issues in core.link_pac() by replacing ElementTree code with XML models</li>
<li>Fix handling 'lock' field in 'Package' model</li>
<li>Fix handling SimpleFlag model</li>
<li>Extend RequestActionSource with 'repository' attribute</li>
<li>Load most of the modules in commandline.py on-demand</li>
<li>Fix traceback in 'linkpac --disable-build'</li>
</ul>
</li>
<li>
<p>Spec:</p>
<ul>
<li>Add conflict with older versions of obs-service-source_validator to ensure that version compatible with .osc store 2.0 is installed</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.10.1:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Fix crash in 'build' command due to undefined 'build_root' variable</li>
</ul>
</li>
<li>
<p>Spec:</p>
<ul>
<li>Add missing python3-ruamel.yaml BuildRequires</li>
<li>Fix rpmlint error about creating the /usr/libexec/git/obs symlink</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.10.0:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>New git-obs executable with several subcommands</li>
<li>Support parameters on token triggers</li>
<li>Change 'update' command to treat empty '.osc/_in_update/_files' as missing</li>
<li>Change 'checkout' command to allow checkout obs imported sources of scmsync sources</li>
<li>Change 'creq' command to allow specifying source and target repository</li>
<li>Change the help output to determine executable name from the command-line arguments</li>
<li>Add '--no-timestamps' parameter to 'build' command</li>
<li>Fix 'token' command to avoid crash when a wipe token exists</li>
<li>Fix crash in 'results' command by skipping non-status elements in project results</li>
<li>Fix crash in 'build' command when building with --local-package --alternative-project from a locally initialized .osc package</li>
<li>Print buildroot directory when build or chroot finishes</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Add 'gitea_api' module</li>
<li>Support the mkosi build type</li>
<li>Support copy of scmsync packages</li>
<li>Support Dockerfile.* in _multibuild packages</li>
<li>Implement obs_api.Status.data property that returns status data as a dictionary</li>
<li>Implement obs_api.Package.cmd_fork()</li>
<li>Fix meter by setting default of use_pb_fallback to False</li>
<li>Fix store migration from 1.0 to 2.0 when there is a 'sources' file that would conflict with 'sources' directory</li>
<li>Fix revision'd checkout of scmsync package</li>
<li>Refactor code handling _scmsync.obsinfo to obs_api.scmsync_obsinfo.ScmsyncObsinfo class</li>
<li>Store the container annotation in the "containers" directory</li>
</ul>
</li>
<li>
<p>Spec:</p>
<ul>
<li>Install symlink /usr/bin/git-obs to /usr/libexec/git/obs to make git-obs available as a git sub-command</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.9.2:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Fix 'resolved' command to skip subdirectories in package checkouts</li>
<li>Fix 'comment' command to resolve project name</li>
<li>Implement meter.SimpleTextMeter that prints what's being downloaded</li>
</ul>
</li>
<li>
<p>Connection:</p>
<ul>
<li>Use configured 'http_headers' in HTTP requests</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Fix storing _buildinfo and _buildconfig files in .osc rather than among the source files</li>
<li>Use findtext() instead of find().text</li>
</ul>
</li>
<li>
<p>Spec:</p>
<ul>
<li>Recommend python3-zstandard to support opening control.tar.zst</li>
</ul>
</li>
</ul>
<p>osc was updated to 1.9.1::</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Add 'createrequest release' subcommand</li>
<li>Change 'review list' command to omit requests with 'declined' state</li>
<li>Fix <code>osc build --local-package</code></li>
<li>Fix typos</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Fix extraction of the 'ar' archives when they don't contain header with long filenames</li>
<li>Fix iterating through arch_list in core.get_repos_of_project()</li>
<li>Check for None & len() of ET.Element instead of bool() in PackageBase.get_meta_value()</li>
</ul>
</li>
</ul>
<h2>Patch Instructions:</h2>
<p>
To install this SUSE update use the SUSE recommended
installation methods like YaST online_update or "zypper patch".<br/>
Alternatively you can run the command listed for your product:
</p>
<ul class="list-group">
<li class="list-group-item">
openSUSE Leap 15.6
<br/>
<code>zypper in -t patch SUSE-2025-2255=1 openSUSE-SLE-15.6-2025-2255=1</code>
</li>
<li class="list-group-item">
Development Tools Module 15-SP6
<br/>
<code>zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP6-2025-2255=1</code>
</li>
<li class="list-group-item">
Development Tools Module 15-SP7
<br/>
<code>zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP7-2025-2255=1</code>
</li>
</ul>
<h2>Package List:</h2>
<ul>
<li>
openSUSE Leap 15.6 (noarch)
<ul>
<li>osc-1.17.0-150600.15.3.1</li>
</ul>
</li>
<li>
Development Tools Module 15-SP6 (noarch)
<ul>
<li>osc-1.17.0-150600.15.3.1</li>
</ul>
</li>
<li>
Development Tools Module 15-SP7 (noarch)
<ul>
<li>osc-1.17.0-150600.15.3.1</li>
</ul>
</li>
</ul>
<h2>References:</h2>
<ul>
<li>
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1243722">https://bugzilla.suse.com/show_bug.cgi?id=1243722</a>
</li>
</ul>
</div>