Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package opi for openSUSE:Factory checked in at 2022-01-24 23:10:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/opi (Old) and /work/SRC/openSUSE:Factory/.opi.new.1938 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opi" Mon Jan 24 23:10:03 2022 rev:26 rq:948388 version:2.4.3 Changes: -------- --- /work/SRC/openSUSE:Factory/opi/opi.changes 2021-10-25 15:18:49.785728016 +0200 +++ /work/SRC/openSUSE:Factory/.opi.new.1938/opi.changes 2022-01-24 23:10:38.126494930 +0100 @@ -1,0 +2,6 @@ +Mon Jan 24 12:01:47 UTC 2022 - Dominik Heidler <dheid...@suse.de> + +- Version 2.4.3 +- Fix for tumbleweed based MicroOS + +------------------------------------------------------------------- Old: ---- opi-2.4.2.tar.gz New: ---- opi-2.4.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ opi.spec ++++++ --- /var/tmp/diff_new_pack.QI60r6/_old 2022-01-24 23:10:40.134481206 +0100 +++ /var/tmp/diff_new_pack.QI60r6/_new 2022-01-24 23:10:40.138481179 +0100 @@ -1,7 +1,7 @@ # # spec file for package opi # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: opi -Version: 2.4.2 +Version: 2.4.3 Release: 0 Summary: OBS Package Installer (CLI) License: GPL-3.0-only ++++++ opi-2.4.2.tar.gz -> opi-2.4.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/CHANGELOG.md new/opi-2.4.3/CHANGELOG.md --- old/opi-2.4.2/CHANGELOG.md 2021-10-25 10:23:31.000000000 +0200 +++ new/opi-2.4.3/CHANGELOG.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,243 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [Unreleased] - -## [2.4.2] - 2021-10-25 - -## Changed - -- Switched to opensuse provided opi proxy - -## [2.4.1] - 2021-10-11 - -## Changed - -- Don't expect output to be a tty - -## [2.4.0] - 2021-10-11 - -## Added - -- Scroll results if they not fit on the screen -- Plugin for atom editor - -## [2.3.0] - 2021-06-06 - -### Changed - -- Fixed gpgcheck entry in `add_repo()` -- Allowed using multiple query keywords that are combined using AND - -### Added - -- Plugin for sublime text -- Plugin for yandex-disk - -## [2.2.0] - 2021-08-20 - -### Added - -- Plugin for MEGA -- Plugin for Edge Beta -- Argument parser with option for reverse output order - -## [2.1.1] - 2021-08-10 - -### Added - -- Plugin for Brave Browser [#60](https://github.com/openSUSE/opi/pull/60) - -## [2.1.0] - 2021-07-05 - -### Added - -- Support for dnf backend [#58](https://github.com/openSUSE/opi/pull/58) - -### Changed - -- Deduplicated packman repo creation code - -## [2.0.0] - 2021-05-03 - -### Added - -- [Automated tests](https://github.com/openSUSE/opi/actions) -- Extensible Plugin interface for plugins (eg. [this one](https://github.com/openSUSE/opi/blob/master/opi/plugins/vivaldi.py)) -- Added plugins for chrome, dotnet, edge, teams, packman, plex, skype, slack, teamviewer, vivaldi, vscode, vscodium, zoom - -### Changed - -- Rewrote the complete tool in python3 - -## [0.10.0] - 2021-01-17 - -### Added - -- Microsoft Teams installer [#34](https://github.com/openSUSE/opi/pulls/34) -- Warning for personal repository [#35](https://github.com/openSUSE/opi/pulls/35) - -## [0.9.0] - 2020-10-03 - -### Added - -- Help (-h, --help) and version (-v, --version) option - -### Changed - -- Filter out -devel, -docs and -lang packages [#30](https://github.com/openSUSE/opi/pulls/30) -- Don't show i586 packages on x86_64 system - -## [0.8.3] - 2020-07-25 - -### Fixed - -- ffmpeg/libav packages due to Packman update - -## [0.8.2] - 2020-05-16 - -### Fixed - -- Ghost process on XML parsing failure [#27](https://github.com/openSUSE/opi/pulls/27) - -## [0.8.1] - 2020-04-03 - -### Fixed - -- OBS limit error when searching php, test, etc. - -## [0.8.0] - -### Changed - -- Type number `0` to exit [#26](https://github.com/openSUSE/opi/pulls/26) - -## [0.7.1] - -### Fixed - -- Missing `use File::Temp;` [#24](https://github.com/openSUSE/opi/issues/24) - -## [0.7.0] - -### Changed - -- Force repo URL to HTTPS [#22](https://github.com/openSUSE/opi/issues/22) - -### Fixed - -- Ctrl + C handling of spinner - -## [0.6.0] - -### Added - -- Search spinner [#21](https://github.com/openSUSE/opi/issues/21) - -### Fixed - -- Packman repo doesn't have *.repo file [#19](https://github.com/openSUSE/opi/issues/19) -- Long version numbers are cutted [#17](https://github.com/openSUSE/opi/issues/17) - -## [0.5.2] - -### Fixed - -- Trim "NAME" and "VERSION" string [#13](https://github.com/openSUSE/opi/issues/13) - -## [0.5.1] - -### Fixed - -- Fix dependency not found issue [#11](https://github.com/openSUSE/opi/issues/11) - -## [0.5.0] - -### Added - -- API proxy server to prevent hard-coded passwords in the script [#4](https://github.com/openSUSE/opi/issues/4) - -## [0.4.0] - -### Added - -- PMBS (Packman Build Service) support [#5](https://github.com/openSUSE/opi/issues/5) - -## [0.3.2] - -### Fixed - -- `opi opi` cannot find `opi` [#9](https://github.com/openSUSE/opi/issues/9) - -## [0.3.1] - -### Fixed - -- Remove quotes from version number. So Leap and SLE can search packages. - -## [0.3.0] - -### Added - -- Support SLE [#8](https://github.com/openSUSE/opi/issues/8) - -### Changed - -- Better print column alignment - -## [0.2.0] - -### Added - -- Install Packman Codecs with `opi packman` or `opi codecs` [#6](https://github.com/openSUSE/opi/issues/6) -- Install Skype with `opi skype` [#6](https://github.com/openSUSE/opi/issues/6) -- Install VS Code with `opi vs code` [#6](https://github.com/openSUSE/opi/issues/6) - -## [0.1.2] - -### Fixed - -- Fixed lost of "noarch" packages [#3](https://github.com/openSUSE/opi/issues/3) -- Be able to search with dashes in keywords [#2](https://github.com/openSUSE/opi/issues/2) - -## [0.1.1] - -### Fixed - -- Removed XML dump which may cause problems. - -## [0.1.0] - -### Added - -- Search packages from OBS -- List properly sorted search result -- Use different colors for official, experimental and personal projects -- Choose package and install -- Keep or remove repository after installation - -[Unreleased]: https://github.com/openSUSE/opi/compare/v0.10.0...HEAD -[0.10.0]: https://github.com/openSUSE/opi/compare/v0.9.0...v0.10.0 -[0.9.0]: https://github.com/openSUSE/opi/compare/v0.8.3...v0.9.0 -[0.8.3]: https://github.com/openSUSE/opi/compare/v0.8.2...v0.8.3 -[0.8.2]: https://github.com/openSUSE/opi/compare/v0.8.1...v0.8.2 -[0.8.1]: https://github.com/openSUSE/opi/compare/v0.8.0...v0.8.1 -[0.8.0]: https://github.com/openSUSE/opi/compare/v0.7.1...v0.8.0 -[0.7.1]: https://github.com/openSUSE/opi/compare/v0.7.0...v0.7.1 -[0.7.0]: https://github.com/openSUSE/opi/compare/v0.6.0...v0.7.0 -[0.6.0]: https://github.com/openSUSE/opi/compare/v0.5.2...v0.6.0 -[0.5.2]: https://github.com/openSUSE/opi/compare/v0.5.1...v0.5.2 -[0.5.1]: https://github.com/openSUSE/opi/compare/v0.5.0...v0.5.1 -[0.5.0]: https://github.com/openSUSE/opi/compare/v0.4.0...v0.5.0 -[0.4.0]: https://github.com/openSUSE/opi/compare/v0.3.2...v0.4.0 -[0.3.2]: https://github.com/openSUSE/opi/compare/v0.3.1...v0.3.2 -[0.3.1]: https://github.com/openSUSE/opi/compare/v0.3.0...v0.3.1 -[0.3.0]: https://github.com/openSUSE/opi/compare/v0.2.0...v0.3.0 -[0.2.0]: https://github.com/openSUSE/opi/compare/v0.1.2...v0.2.0 -[0.1.2]: https://github.com/openSUSE/opi/compare/v0.1.1...v0.1.2 -[0.1.1]: https://github.com/openSUSE/opi/compare/v0.1.0...v0.1.1 -[0.1.0]: https://github.com/openSUSE/opi/releases/tag/v0.1.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/bin/opi new/opi-2.4.3/bin/opi --- old/opi-2.4.2/bin/opi 2021-10-25 10:23:31.000000000 +0200 +++ new/opi-2.4.3/bin/opi 2022-01-24 12:31:27.000000000 +0100 @@ -54,7 +54,6 @@ If multiple query arguments are provided only results matching all of them are returned. ''')) ap.add_argument('-v', '--version', action='version', version=('opi version ' + __version__)) - ap.add_argument('-r', '--reversed-output', action='store_true', help='print the search results in reverse') args = ap.parse_args() @@ -74,23 +73,15 @@ sys.exit() binary_names = opi.get_binary_names(binaries) - # Print package name options - package_name_list = opi.get_package_name_list(binary_names, reverse=args.reversed_output) - - # Select a package name option - selected_name_num = opi.ask_number(1, len(binary_names), text=package_name_list) - selected_name = binary_names[selected_name_num-1] + # Print and select a package name option + selected_name = opi.ask_for_option(binary_names) print("You have selected package name: %s" % selected_name) - binary_options = opi.get_binaries_by_name(selected_name, binaries) - # Print binary package options - opi.print_binary_options(binary_options) + binary_options = opi.get_binaries_by_name(selected_name, binaries) - # Select a binary package option - selected_binary_num = opi.ask_number(1, len(binary_options)) - selected_binary = binary_options[selected_binary_num-1] - print("You have selected binary package: ", end='') - opi.print_binary_option(selected_binary) + # Print and select a binary package option + selected_binary = opi.ask_for_option(binary_options, option_filter=opi.format_binary_option, disable_pager=True) + print("You have selected binary package: %s" % opi.format_binary_option(selected_binary, table=False)) if opi.is_personal_project(selected_binary['project']): print(opi.colored( "BE CAREFUL! The package is from a personal repository and NOT reviewed by others.\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/opi/__init__.py new/opi-2.4.3/opi/__init__.py --- old/opi-2.4.2/opi/__init__.py 2021-10-25 10:23:31.000000000 +0200 +++ new/opi-2.4.3/opi/__init__.py 2022-01-24 12:31:27.000000000 +0100 @@ -3,6 +3,7 @@ import subprocess import re import tempfile +import math import requests import lxml.etree @@ -50,7 +51,7 @@ os_release[key] = value name = os_release['NAME'] version = os_release.get('VERSION') # VERSION is not set for TW - if name == 'openSUSE Tumbleweed': + if name == 'openSUSE Tumbleweed' or name == 'openSUSE MicroOS': project = 'openSUSE:Factory' elif name == 'openSUSE Leap': project = 'openSUSE:Leap:' + version @@ -296,33 +297,49 @@ answer = input(q) or default_answer return answer.strip().lower() == 'y' -def ask_number(min_num, max_num, question="Pick a number (0 to quit):", text=None): +def ask_for_option(options, question="Pick a number (0 to quit):", option_filter=lambda a: a, disable_pager=False): """ - Ask the user for a number to pick with defined min and max. + Ask the user for a number to pick in order to select an option. Exit if the number is 0. - Specify the number with question. - If text is defined, this string will be shown above the prompt. - If needed, a pager will be used. + Specify the number with question and the corresponding option will be returned. + Via option_filter a callback function to format option entries can be supplied, + but this doesn't work with the pager. + If needed, a pager will be used, unless disable_pager is True. """ - if text: - text_len_lines = len(text.split('\n')) - if not sys.stdout.isatty() or text_len_lines < (os.get_terminal_size().lines-1): - # no pager needed - print(text) - input_string = input(question + ' ') - else: - input_string = pager.ask_number_with_pager(text, question) - else: + + padding_len = math.floor(math.log(len(options), 10)) + i = 1 + numbered_options = [] + terminal_width = os.get_terminal_size().columns-1 if sys.stdout.isatty() else 0 + for option in options: + number = "%%%id. " % (padding_len+1) % i + numbered_option = number + option_filter(option) + if terminal_width and not disable_pager: + # break too long lines: + # if pager is disabled this might mean that we get terminal sequences here + # which might get broken by some spaces and newlines. + # also too long lines are not fatal outside of the pager + while len(numbered_option) > terminal_width: + numbered_options.append(numbered_option[:terminal_width]) + numbered_option = ' '*len(number) + numbered_option[terminal_width:] + numbered_options.append(numbered_option) + i += 1 + text = '\n'.join(numbered_options) + if not sys.stdout.isatty() or len(numbered_options) < (os.get_terminal_size().lines-1) or disable_pager: + # no pager needed + print(text) input_string = input(question + ' ') + else: + input_string = pager.ask_number_with_pager(text, question) input_string = input_string.strip() or '0' num = int(input_string) if input_string.isdecimal() else -1 if num == 0: sys.exit() - elif num >= min_num and num <= max_num: - return num + elif not (num >= 1 and num <= len(options)): + return ask_for_option(options, question, option_filter, disable_pager) else: - return ask_number(min_num, max_num, question, text) + return options[num-1] def ask_keep_repo(repo): if not ask_yes_or_no('Do you want to keep the repo "%s"?' % repo, 'y'): @@ -331,23 +348,7 @@ if get_backend() == BackendConstants.dnf: subprocess.call(['sudo', 'rm', '/etc/zypp/repos.d/' + repo + '.repo']) -def get_package_name_list(package_names, reverse=False): - package_list = [] - i = 1 - for package_name in package_names: - package_list.append("%2d. %s" % (i, package_name)) - i += 1 - if reverse: - package_list.reverse() - return '\n'.join(package_list) - -def print_binary_options(binaries): - i = 1 - for binary in binaries: - print_binary_option(binary, i) - i += 1 - -def print_binary_option(binary, number=None): +def format_binary_option(binary, table=True): if is_official_project(binary['project']): color = 'green' symbol = '+' @@ -364,7 +365,7 @@ colored_name = colored('%s %s' % (project[0:39], symbol), color) - if number: - print('%2d. %-50s | %-25s | %s' % (number, colored_name, binary['version'][0:25], binary['arch'])) + if table: + return '%-50s | %-25s | %s' % (colored_name, binary['version'][0:25], binary['arch']) else: - print('%s | %s | %s' % (colored_name, binary['version'], binary['arch'])) + return '%s | %s | %s' % (colored_name, binary['version'], binary['arch']) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/opi/plugins/chrome.py new/opi-2.4.3/opi/plugins/chrome.py --- old/opi-2.4.2/opi/plugins/chrome.py 2021-10-25 10:23:31.000000000 +0200 +++ new/opi-2.4.3/opi/plugins/chrome.py 2022-01-24 12:31:27.000000000 +0100 @@ -12,6 +12,13 @@ if not opi.ask_yes_or_no("Do you want to install Chrome from Google repository?", 'y'): return + print("Which version do you want to install?") + option = opi.ask_for_option(options=[ + 'google-chrome-stable', + 'google-chrome-beta', + 'google-chrome-unstable', + ]) + opi.add_repo( filename = 'google-chrome', name = 'google-chrome', @@ -19,5 +26,10 @@ gpgkey = 'https://dl.google.com/linux/linux_signing_key.pub' ) - opi.install_packages(['google-chrome-stable']) + # prevent post install script from messing with our repos + defaults_file = option.replace('-stable', '') + subprocess.call(['sudo', 'rm', '-f', '/etc/default/%s' % defaults_file]) + subprocess.call(['sudo', 'touch', '/etc/default/%s' % defaults_file]) + + opi.install_packages([option]) opi.ask_keep_repo('google-chrome') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/opi/plugins/ms_edge.py new/opi-2.4.3/opi/plugins/ms_edge.py --- old/opi-2.4.2/opi/plugins/ms_edge.py 1970-01-01 01:00:00.000000000 +0100 +++ new/opi-2.4.3/opi/plugins/ms_edge.py 2022-01-24 12:31:27.000000000 +0100 @@ -0,0 +1,37 @@ +import opi +import subprocess +import textwrap + +from opi.plugins import BasePlugin + +class MSEdge(BasePlugin): + main_query = "msedge" + description = "Microsoft Edge" + queries = ('microsoft-edge', 'msedge', 'edge') + + @classmethod + def run(cls, query): + if not opi.ask_yes_or_no("Do you want to install Microsoft Edge from Microsoft repository?", 'y'): + return + + print("Which version do you want to install?") + option = opi.ask_for_option(options=[ + 'microsoft-edge-stable', + 'microsoft-edge-beta', + 'microsoft-edge-dev', + ]) + + opi.add_repo( + filename = 'microsoft-edge', + name = 'Microsoft Edge', + url = 'https://packages.microsoft.com/yumrepos/edge', + gpgkey = 'https://packages.microsoft.com/keys/microsoft.asc' + ) + + # prevent post install script from messing with our repos + defaults_file = option.replace('-stable', '') + subprocess.call(['sudo', 'rm', '-f', '/etc/default/%s' % defaults_file]) + subprocess.call(['sudo', 'touch', '/etc/default/%s' % defaults_file]) + + opi.install_packages([option]) + opi.ask_keep_repo('microsoft-edge') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/opi/plugins/ms_edge_beta.py new/opi-2.4.3/opi/plugins/ms_edge_beta.py --- old/opi-2.4.2/opi/plugins/ms_edge_beta.py 2021-10-25 10:23:31.000000000 +0200 +++ new/opi-2.4.3/opi/plugins/ms_edge_beta.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,28 +0,0 @@ -import opi -import subprocess - -from opi.plugins import BasePlugin - -class MSEdgeBeta(BasePlugin): - main_query = "msedge-beta" - description = "Microsoft Edge Beta" - queries = ('microsoft-edge-beta', 'msedge-beta', 'edge-beta') - - @classmethod - def run(cls, query): - if not opi.ask_yes_or_no("Do you want to install Microsoft Edge Beta from Microsoft repository?", 'y'): - return - - opi.add_repo( - filename = 'microsoft-edge', - name = 'Microsoft Edge', - url = 'https://packages.microsoft.com/yumrepos/edge', - gpgkey = 'https://packages.microsoft.com/keys/microsoft.asc' - ) - - # prevent post install script from messing with our repos - subprocess.call(['sudo', 'rm', '-f', '/etc/default/microsoft-edge-beta']) - subprocess.call(['sudo', 'touch', '/etc/default/microsoft-edge-beta']) - - opi.install_packages(['microsoft-edge-beta']) - opi.ask_keep_repo('microsoft-edge') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/opi/plugins/ms_edge_dev.py new/opi-2.4.3/opi/plugins/ms_edge_dev.py --- old/opi-2.4.2/opi/plugins/ms_edge_dev.py 2021-10-25 10:23:31.000000000 +0200 +++ new/opi-2.4.3/opi/plugins/ms_edge_dev.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,28 +0,0 @@ -import opi -import subprocess - -from opi.plugins import BasePlugin - -class MSEdgeDev(BasePlugin): - main_query = "msedge-dev" - description = "Microsoft Edge Dev" - queries = ('microsoft-edge-dev', 'msedge-dev', 'edge-dev') - - @classmethod - def run(cls, query): - if not opi.ask_yes_or_no("Do you want to install Microsoft Edge Dev from Microsoft repository?", 'y'): - return - - opi.add_repo( - filename = 'microsoft-edge', - name = 'Microsoft Edge', - url = 'https://packages.microsoft.com/yumrepos/edge', - gpgkey = 'https://packages.microsoft.com/keys/microsoft.asc' - ) - - # prevent post install script from messing with our repos - subprocess.call(['sudo', 'rm', '-f', '/etc/default/microsoft-edge-dev']) - subprocess.call(['sudo', 'touch', '/etc/default/microsoft-edge-dev']) - - opi.install_packages(['microsoft-edge-dev']) - opi.ask_keep_repo('microsoft-edge') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/opi/plugins/vivaldi.py new/opi-2.4.3/opi/plugins/vivaldi.py --- old/opi-2.4.2/opi/plugins/vivaldi.py 2021-10-25 10:23:31.000000000 +0200 +++ new/opi-2.4.3/opi/plugins/vivaldi.py 2022-01-24 12:31:27.000000000 +0100 @@ -12,6 +12,11 @@ if not opi.ask_yes_or_no("Do you want to install Vivaldi from Vivaldi repository?", 'y'): return + option = opi.ask_for_option(options=[ + 'vivaldi-stable', + 'vivaldi-snapshot', + ]) + opi.add_repo( filename = 'vivaldi', name = 'vivaldi', @@ -19,5 +24,5 @@ gpgkey = 'https://repo.vivaldi.com/archive/linux_signing_key.pub' ) - opi.install_packages(['vivaldi-stable']) + opi.install_packages([option]) opi.ask_keep_repo('vivaldi') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/opi/plugins/vs_code.py new/opi-2.4.3/opi/plugins/vs_code.py --- old/opi-2.4.2/opi/plugins/vs_code.py 2021-10-25 10:23:31.000000000 +0200 +++ new/opi-2.4.3/opi/plugins/vs_code.py 2022-01-24 12:31:27.000000000 +0100 @@ -12,6 +12,12 @@ if not opi.ask_yes_or_no("Do you want to install VS Code from Microsoft repository?", 'y'): return + option = opi.ask_for_option(options=[ + 'code', + 'code-exploration', + 'code-insiders', + ]) + opi.add_repo( filename = 'vscode', name = 'Visual Studio Code', @@ -19,5 +25,5 @@ gpgkey = 'https://packages.microsoft.com/keys/microsoft.asc' ) - opi.install_packages(['code']) + opi.install_packages([option]) opi.ask_keep_repo('vscode') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/opi/version.py new/opi-2.4.3/opi/version.py --- old/opi-2.4.2/opi/version.py 2021-10-25 10:23:31.000000000 +0200 +++ new/opi-2.4.3/opi/version.py 2022-01-24 12:31:27.000000000 +0100 @@ -1 +1 @@ -__version__ = '2.4.2' +__version__ = '2.4.3' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/opi.changes new/opi-2.4.3/opi.changes --- old/opi-2.4.2/opi.changes 1970-01-01 01:00:00.000000000 +0100 +++ new/opi-2.4.3/opi.changes 2022-01-24 12:31:27.000000000 +0100 @@ -0,0 +1,296 @@ +------------------------------------------------------------------- +Mon Jan 24 11:23:50 UTC 2022 - Dominik Heidler <dheid...@suse.de> + +- Version 2.4.3 +- Fix for tumbleweed based MicroOS + +------------------------------------------------------------------- + +- Version 2.4.2 - 2021-10-25 + +## Changed + +- Switched to opensuse provided opi proxy + +------------------------------------------------------------------- + +- Version 2.4.1 - 2021-10-11 + +## Changed + +- Don't expect output to be a tty + +------------------------------------------------------------------- + +- Version 2.4.0 - 2021-10-11 + +## Added + +- Scroll results if they not fit on the screen +- Plugin for atom editor + +------------------------------------------------------------------- + +# Version 2.3.0 - 2021-06-06 + +### Changed + +- Fixed gpgcheck entry in `add_repo()` +- Allowed using multiple query keywords that are combined using AND + +### Added + +- Plugin for sublime text +- Plugin for yandex-disk + +------------------------------------------------------------------- + +- Version 2.2.0 - 2021-08-20 + +### Added + +- Plugin for MEGA +- Plugin for Edge Beta +- Argument parser with option for reverse output order + +------------------------------------------------------------------- + +- Version 2.1.1 - 2021-08-10 + +### Added + +- Plugin for Brave Browser [#60](https://github.com/openSUSE/opi/pull/60) + +------------------------------------------------------------------- + +- Version 2.1.0 - 2021-07-05 + +### Added + +- Support for dnf backend [#58](https://github.com/openSUSE/opi/pull/58) + +### Changed + +- Deduplicated packman repo creation code + +------------------------------------------------------------------- + +- Version 2.0.0 - 2021-05-03 + +### Added + +- [Automated tests](https://github.com/openSUSE/opi/actions) +- Extensible Plugin interface for plugins (eg. [this one](https://github.com/openSUSE/opi/blob/master/opi/plugins/vivaldi.py)) +- Added plugins for chrome, dotnet, edge, teams, packman, plex, skype, slack, teamviewer, vivaldi, vscode, vscodium, zoom + +### Changed + +- Rewrote the complete tool in python3 + +------------------------------------------------------------------- + +- Version 0.10.0 - 2021-01-17 + +### Added + +- Microsoft Teams installer [#34](https://github.com/openSUSE/opi/pulls/34) +- Warning for personal repository [#35](https://github.com/openSUSE/opi/pulls/35) + +------------------------------------------------------------------- + +- Version 0.9.0 - 2020-10-03 + +### Added + +- Help (-h, --help) and version (-v, --version) option + +### Changed + +- Filter out -devel, -docs and -lang packages [#30](https://github.com/openSUSE/opi/pulls/30) +- Don't show i586 packages on x86_64 system + +------------------------------------------------------------------- + +- Version 0.8.3 - 2020-07-25 + +### Fixed + +- ffmpeg/libav packages due to Packman update + +------------------------------------------------------------------- + +- Version 0.8.2 - 2020-05-16 + +### Fixed + +- Ghost process on XML parsing failure [#27](https://github.com/openSUSE/opi/pulls/27) + +------------------------------------------------------------------- + +- Version 0.8.1 - 2020-04-03 + +### Fixed + +- OBS limit error when searching php, test, etc. + +------------------------------------------------------------------- + +- Version 0.8.0 + +### Changed + +- Type number `0` to exit [#26](https://github.com/openSUSE/opi/pulls/26) + +------------------------------------------------------------------- + +- Version 0.7.1 + +### Fixed + +- Missing `use File::Temp;` [#24](https://github.com/openSUSE/opi/issues/24) + +------------------------------------------------------------------- + +- Version 0.7.0 + +### Changed + +- Force repo URL to HTTPS [#22](https://github.com/openSUSE/opi/issues/22) + +### Fixed + +- Ctrl + C handling of spinner + +------------------------------------------------------------------- + +- Version 0.6.0 + +### Added + +- Search spinner [#21](https://github.com/openSUSE/opi/issues/21) + +### Fixed + +- Packman repo doesn't have *.repo file [#19](https://github.com/openSUSE/opi/issues/19) +- Long version numbers are cutted [#17](https://github.com/openSUSE/opi/issues/17) + +------------------------------------------------------------------- + +- Version 0.5.2 + +### Fixed + +- Trim "NAME" and "VERSION" string [#13](https://github.com/openSUSE/opi/issues/13) + +------------------------------------------------------------------- + +- Version 0.5.1 + +### Fixed + +- Fix dependency not found issue [#11](https://github.com/openSUSE/opi/issues/11) + +------------------------------------------------------------------- + +- Version 0.5.0 + +### Added + +- API proxy server to prevent hard-coded passwords in the script [#4](https://github.com/openSUSE/opi/issues/4) + +------------------------------------------------------------------- + +- Version 0.4.0 + +### Added + +- PMBS (Packman Build Service) support [#5](https://github.com/openSUSE/opi/issues/5) + +------------------------------------------------------------------- + +- Version 0.3.2 + +### Fixed + +- `opi opi` cannot find `opi` [#9](https://github.com/openSUSE/opi/issues/9) + +------------------------------------------------------------------- + +- Version 0.3.1 + +### Fixed + +- Remove quotes from version number. So Leap and SLE can search packages. + +------------------------------------------------------------------- + +- Version 0.3.0 + +### Added + +- Support SLE [#8](https://github.com/openSUSE/opi/issues/8) + +### Changed + +- Better print column alignment + +------------------------------------------------------------------- + +- Version 0.2.0 + +### Added + +- Install Packman Codecs with `opi packman` or `opi codecs` [#6](https://github.com/openSUSE/opi/issues/6) +- Install Skype with `opi skype` [#6](https://github.com/openSUSE/opi/issues/6) +- Install VS Code with `opi vs code` [#6](https://github.com/openSUSE/opi/issues/6) + +------------------------------------------------------------------- + +- Version 0.1.2 + +### Fixed + +- Fixed lost of "noarch" packages [#3](https://github.com/openSUSE/opi/issues/3) +- Be able to search with dashes in keywords [#2](https://github.com/openSUSE/opi/issues/2) + +------------------------------------------------------------------- + +- Version 0.1.1 + +### Fixed + +- Removed XML dump which may cause problems. + +------------------------------------------------------------------- + +- Version 0.1.0 + +### Added + +- Search packages from OBS +- List properly sorted search result +- Use different colors for official, experimental and personal projects +- Choose package and install +- Keep or remove repository after installation + +[Unreleased]: https://github.com/openSUSE/opi/compare/v0.10.0...HEAD +[0.10.0]: https://github.com/openSUSE/opi/compare/v0.9.0...v0.10.0 +[0.9.0]: https://github.com/openSUSE/opi/compare/v0.8.3...v0.9.0 +[0.8.3]: https://github.com/openSUSE/opi/compare/v0.8.2...v0.8.3 +[0.8.2]: https://github.com/openSUSE/opi/compare/v0.8.1...v0.8.2 +[0.8.1]: https://github.com/openSUSE/opi/compare/v0.8.0...v0.8.1 +[0.8.0]: https://github.com/openSUSE/opi/compare/v0.7.1...v0.8.0 +[0.7.1]: https://github.com/openSUSE/opi/compare/v0.7.0...v0.7.1 +[0.7.0]: https://github.com/openSUSE/opi/compare/v0.6.0...v0.7.0 +[0.6.0]: https://github.com/openSUSE/opi/compare/v0.5.2...v0.6.0 +[0.5.2]: https://github.com/openSUSE/opi/compare/v0.5.1...v0.5.2 +[0.5.1]: https://github.com/openSUSE/opi/compare/v0.5.0...v0.5.1 +[0.5.0]: https://github.com/openSUSE/opi/compare/v0.4.0...v0.5.0 +[0.4.0]: https://github.com/openSUSE/opi/compare/v0.3.2...v0.4.0 +[0.3.2]: https://github.com/openSUSE/opi/compare/v0.3.1...v0.3.2 +[0.3.1]: https://github.com/openSUSE/opi/compare/v0.3.0...v0.3.1 +[0.3.0]: https://github.com/openSUSE/opi/compare/v0.2.0...v0.3.0 +[0.2.0]: https://github.com/openSUSE/opi/compare/v0.1.2...v0.2.0 +[0.1.2]: https://github.com/openSUSE/opi/compare/v0.1.1...v0.1.2 +[0.1.1]: https://github.com/openSUSE/opi/compare/v0.1.0...v0.1.1 +[0.1.0]: https://github.com/openSUSE/opi/releases/tag/v0.1.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opi-2.4.2/test/03_install_using_plugin.py new/opi-2.4.3/test/03_install_using_plugin.py --- old/opi-2.4.2/test/03_install_using_plugin.py 2021-10-25 10:23:31.000000000 +0200 +++ new/opi-2.4.3/test/03_install_using_plugin.py 2022-01-24 12:31:27.000000000 +0100 @@ -4,7 +4,7 @@ import pexpect import subprocess -c = pexpect.spawn('./bin/opi vivaldi', logfile=sys.stdout.buffer, echo=False) +c = pexpect.spawn('./bin/opi yandex-disk', logfile=sys.stdout.buffer, echo=False) c.expect("Do you want to install") c.sendline('y') @@ -12,7 +12,7 @@ c.expect("Continue") c.sendline('y') -c.expect("Do you want to keep", timeout=800) +c.expect("Do you want to keep", timeout=500) c.sendline('y') c.interact() @@ -20,5 +20,5 @@ c.close() assert c.exitstatus == 0, "Exit code: %i" % c.exitstatus -subprocess.check_call(['rpm', '-qi', 'vivaldi-stable']) -subprocess.check_call('zypper lr | grep vivaldi', shell=True) +subprocess.check_call(['rpm', '-qi', 'yandex-disk']) +subprocess.check_call('zypper lr | grep yandex-disk', shell=True)