{"id":24287760,"url":"https://github.com/shundhammer/myrlyn","last_synced_at":"2025-09-25T09:31:17.191Z","repository":{"id":263410786,"uuid":"890293096","full_name":"shundhammer/myrlyn","owner":"shundhammer","description":"The YaST YQPackageSelector as a standalone program","archived":false,"fork":false,"pushed_at":"2025-01-09T14:28:47.000Z","size":3044,"stargazers_count":31,"open_issues_count":16,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-09T14:54:19.924Z","etag":null,"topics":["gui","linux","package-management","qt"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shundhammer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"Contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-18T10:24:25.000Z","updated_at":"2025-01-09T14:28:51.000Z","dependencies_parsed_at":"2024-11-18T12:21:31.452Z","dependency_job_id":"d03e90a6-3be9-456a-aa09-8449c87f8e51","html_url":"https://github.com/shundhammer/myrlyn","commit_stats":null,"previous_names":["shundhammer/yqpkg","shundhammer/myrlyn"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shundhammer%2Fmyrlyn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shundhammer%2Fmyrlyn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shundhammer%2Fmyrlyn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shundhammer%2Fmyrlyn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shundhammer","download_url":"https://codeload.github.com/shundhammer/myrlyn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234172444,"owners_count":18790835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gui","linux","package-management","qt"],"created_at":"2025-01-16T08:33:19.968Z","updated_at":"2025-09-25T09:31:17.172Z","avatar_url":"https://github.com/shundhammer.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Myrlyn Package Manager GUI for Linux\n\n_(Formerly known as YQPkg)_\n\nMyrlyn is a graphical software package and repositories manager.\n\nYou can use it to install, update or remove individual or multiple software\npackages, and to install or remove software patterns (groups of packages) or\npatches.\n\nIt uses _libzypp_ as its backend and Qt 6 as its GUI toolkit.\n\nThis started in the 11/2024 SUSE Hack Week to make the SUSE YaST Qt package\nselector usable as a standalone Qt program without any YaST or Ruby\ndependencies, but it has grown beyond that since then.\n\n[\u003cimg src=\"https://raw.githubusercontent.com/shundhammer/yqpkg/refs/heads/master/src/artwork/Myrlyn-256x256.png\"\u003e](https://raw.githubusercontent.com/shundhammer/yqpkg/refs/heads/master/src/artwork/Myrlyn-256x256.png)\n\n\n## License\n\nGPL V2; see file LICENSE.\n\n\n## Development Status\n\nNot 100% complete yet, but well usable and reliable.\n\n\n## Screenshots\n\n[\u003cimg width=\"500\" src=\"https://github.com/shundhammer/myrlyn/blob/master/screenshots/Myrlyn-10-search-view.png\"\u003e](https://raw.githubusercontent.com/shundhammer/myrlyn/refs/heads/master/screenshots/Myrlyn-10-search-view.png)\n\n\n[\u003cimg width=\"250\" src=\"https://github.com/shundhammer/myrlyn/blob/master/screenshots/Myrlyn-01-init-repos.png\"\u003e](https://raw.githubusercontent.com/shundhammer/myrlyn/refs/heads/master/screenshots/Myrlyn-01-init-repos.png)\n[\u003cimg width=\"250\" src=\"https://github.com/shundhammer/myrlyn/blob/master/screenshots/Myrlyn-11-updates-view.png\"\u003e](https://raw.githubusercontent.com/shundhammer/myrlyn/refs/heads/master/screenshots/Myrlyn-11-updates-view.png)\n[\u003cimg width=\"250\" src=\"https://github.com/shundhammer/myrlyn/blob/master/screenshots/Myrlyn-20-pkg-commit-default.png\"\u003e](https://raw.githubusercontent.com/shundhammer/myrlyn/refs/heads/master/screenshots/Myrlyn-20-pkg-commit-default.png)\n\n[\u003cimg width=\"250\" src=\"https://github.com/shundhammer/myrlyn/blob/master/screenshots/Myrlyn-21-pkg-commit-details-1.png\"\u003e](https://raw.githubusercontent.com/shundhammer/myrlyn/refs/heads/master/screenshots/Myrlyn-21-pkg-commit-details-1.png)\n[\u003cimg width=\"250\" src=\"https://github.com/shundhammer/myrlyn/blob/master/screenshots/Myrlyn-22-pkg-commit-details-2.png\"\u003e](https://raw.githubusercontent.com/shundhammer/myrlyn/refs/heads/master/screenshots/Myrlyn-22-pkg-commit-details-2.png)\n[\u003cimg width=\"250\" src=\"https://github.com/shundhammer/myrlyn/blob/master/screenshots/Myrlyn-30-summary.png\"\u003e](https://raw.githubusercontent.com/shundhammer/myrlyn/refs/heads/master/screenshots/Myrlyn-30-summary.png)\n\n[\u003cimg width=\"250\" src=\"https://github.com/shundhammer/myrlyn/blob/master/screenshots/Myrlyn-40-repo-config.png\"\u003e](https://raw.githubusercontent.com/shundhammer/myrlyn/refs/heads/master/screenshots/Myrlyn-40-repo-config.png)\n[\u003cimg width=\"250\" src=\"https://github.com/shundhammer/myrlyn/blob/master/screenshots/Myrlyn-41-add-community-repo.png\"\u003e](https://raw.githubusercontent.com/shundhammer/myrlyn/refs/heads/master/screenshots/Myrlyn-41-add-community-repo.png)\n\n\n\n## Features\n\n### Features Taken over from YaST\n\n- Repos are automatically refreshed at the start of the program with some\n  visual feedback what is going on.\n\n- Search for packages:\n  - by name, summary, description\n  - by RPM provides and requires\n  - in their file list (installed packages only)\n\n- Package details views:\n  - Package description\n  - Technical details (`rpm -qi`)\n  - Dependencies (RPM provides, requires, recommends, ...)\n  - Versions (installed and available ones from all active repositories)\n  - File list (installed packages only)\n  - Change log (installed packages only)\n\n- Install, update and remove individual or multiple packages\n- Pick a specific package version for installation or update\n- Set a package to \"taboo\" (never install) or \"protected\" (keep the current version)\n- Install and remove patterns\n- Install and remove patches\n- Browse and select packages by repository\n- Browse and select language/locale-specific packages by language/locale\n- Browse and select packages by classification:\n  - Suggested packages\n  - Recommended packages\n  - Orphaned packages\n  - Unneeded packages\n  - Retracted packages\n  - Retracted installed packages\n  - All packages\n\n\n### Reimplemented Features that YaST also has\n\n- Repo configuration:\n  _(See [issue #69](https://github.com/shundhammer/myrlyn/issues/69) for screenshots and more details)_\n\n\n  - List the repos with names, priority, enabled status, auto-refresh status,\n    software service (if configured), URL\n\n  - Change priority, enabled status, auto-refresh status of the selected table\n    item directly below the table\n\n  - Show the URL with and without libzypp variables of the selected table item\n    like $releasever, $arch, $basearch below the table\n\n  - Add a repo with any custom name and URL\n\n  - Add a community repo like Packman, Open H.264, LibDvdCss, nVidia with\n    well-known URLs, using the specific URL for the currently installed\n    distribution / product (Leap 15.x, Tumbleweed, Slowroll, SLE-15 SPx)\n\n  - Edit name and URL of a repo\n\n  - Delete a repo\n\n  - Read-only mode for viewing the repos as a non-root user (not available in\n    YaST)\n\n\n### New Features in Myrlyn (No YaST Counterpart)\n\n- \"Updates\" view that shows packages that could be updated (where a newer\n  version than the installed one is available)\n\n  - Update all packages that can be updated without a dependency problem (the\n    same as `zypper up`)\n\n  - Dist Upgrade (the same as `zypper dup`): Take package splits and renames,\n    pattern updates and more into account and update all packages that can be\n    updated without a dependency problem\n\n- **Read-only mode** for non-root users: You can search packages, view their\n  details, even experiment what would happen if you tried to install or remove\n  them and see the dependency resolver results.\n\n  You can do everything except actually apply any changes.\n\n- During the commit phase (where packages are actually installed, updated or\n  removed), in addition to the large progress bar, there is now also a details\n  view to see which packages are waiting, downloaded, being processed, or\n  finished. If you don't like that, disable the details with just one mouse\n  click to get only the progress bar.\n\n- You can decide during the commit phase whether or not you want to see a\n  summary page as the next step. That summary page exits the program after a\n  selectable countdown (30 seconds by default), but you can go back to the\n  package selector to mark more packages for installation, update or removal.\n\n  It's now very easy to keep working with the package selection and install,\n  update or remove a few packages at a time and then do some more without fear\n  that a lot of work might be lost when you get into a large dependency problem\n  cycle.\n\n\n### Fixes\n\n- Improved performance during startup as well as during package selection.\n\n- Improved visual appearance; we don't need to \"pixel pinch\" anymore with\n  today's screen resolutions, unlike back when the YaST package selector\n  was created.\n\n- The annoying tendency to get too narrow columns in the package list is now\n  fixed. You will find yourself very rarely adjusting the column widths\n  manually.\n\n- The package list is now filled automatically (as it should always have) when\n  appropriate; you don't need to click on the left \"filter\" pane anymore to\n  make that happen. See also\n  [issue #10](https://github.com/shundhammer/myrlyn/issues/10).\n\n- Similar with the details views (bottom right): They are now shown\n  automatically when a package is selected, no matter if manually or\n  programmatically. Previously, you had to click on the automatically selected\n  package again to see anything there. This is also explained in\n  [issue #10](https://github.com/shundhammer/myrlyn/issues/10).\n\n- Reasonable initial window sizes for the main window as well as for the many\n  pop-up dialogs.\n\n- Streamlined keyboard shortcuts for most filter views and the tabs.\n\n- Lots of other small fixes everywhere.\n\n\n## Limitations\n\n- No prompt for CD / DVD change supported. Those days are over;\n  for at least two decades.\n\n\n## Development Progress\n\nSee [issue #1](https://github.com/shundhammer/myrlyn/issues/1).\n\nScroll all the way down for the latest news.\n\n\n## Stability\n\nIt's very stable and usable now.\n\nOf course, since it's still in development, the occasional bug may appear, but\nit should now only be minor ones. See also the\n[open issues](https://github.com/shundhammer/myrlyn/issues)\nin the GitHub issue tracker.\n\nI have been using it exclusively since Christmas 2024 for all my package\noperations, including keeping my Slowroll laptop, my Leap 15.6 desktop PC and\nmy Tumbleweed virtual machine up to date. There was _never_ any real problem,\nespecially not during the commit phase when packages are actually installed,\nupdated or removed.\n\n\n## Ready-Made Packages\n\nOfficial distro packages:\n\n- [myrlyn for openSUSE Tumbleweed](https://software.opensuse.org/download/package?package=myrlyn\u0026project=openSUSE%3AFactory)\n- [myrlyn for openSUSE Slowroll](https://software.opensuse.org//download.html?project=openSUSE%3ASlowroll\u0026package=myrlyn)\n\n\nThe latest version from Git:\n\n- [myrlyn-git for openSUSE Tumbleweed](https://download.opensuse.org/repositories/home:/shundhammer:/myrlyn-git/openSUSE_Tumbleweed/x86_64/)\n- [myrlyn-git for openSUSE Slowroll](https://download.opensuse.org/repositories/home:/shundhammer:/myrlyn-git/openSUSE_Slowroll/x86_64/)\n- [myrlyn-git for Leap 15.6](https://download.opensuse.org/repositories/home:/shundhammer:/myrlyn-git/openSUSE_Leap_15.6_Update_standard/x86_64/)\n\n\n## Motivation: Why?\n\n_Explained in greater detail at the Hack Week 11/2024\n[YQPkg project page](https://hackweek.opensuse.org/24/projects/yqpkg-bringing-the-single-package-selection-back-to-life)_\n\nYaST will be phased out soon in favor of Agama and Cockpit, and then there will\nbe a huge gap between low-level `zypper in` and high-level application\ninstallers of the desktop environments; those know and promote their own\ndesktop's video post-production software, but what about other packages?\n\nHow do you browse through all the existing packages of a large distro like\nTumbleweed or Leap? How do you find software about some specific topic?\n\nHow do you install a different kernel version from a specific repo when your\nnew laptop doesn't want to suspend?\n\nHow do you help a friend who asks you what software openSUSE has to offer for\nhis HAM radio or his music band?\n\nHow do you find language-specific packages for your native Estonian?\n\nRight now, you use YaST sw_single. What if there is no YaST anymore? That's\nwhere this project comes in.\n\n\n## Is this an Official SUSE Project?\n\nNo. Maybe it will become one, though. It started as a one-man project during\nthe SUSE Hack Week in 11/2024, and it's been a mixture of private Open Source\nproject and a SUSE-sponsored one at the same time.\n\nHopefully SUSE will recognize the importance of this and keep sponsoring it.\n\n\n## Build Requirements\n\nYou need at least a C++ and Qt 6 development environment plus CMake and\nlibzypp-devel.\n\n```\nsudo zypper install -t pattern devel_C_C++ devel_qt6\nsudo zypper install cmake libzypp-devel\n```\n\nFor Leap 15.x / SLE-15-SPx also:\n\n```\nsudo zypper in gcc10-c++\n```\n\n(or a higher version; Qt 6 now requires GCC / G++ 10 or later.)\n\n\n## Building\n\n### Tumbleweed, Slowroll, SUSE 16.x\n\n(and all other distros with GCC 10 or later)\n\n```\nmake -f Makefile.repo\ncd build\nmake\n```\n\n### Leap 15.x / SLE-15 SPx\n\n```\nmake -f Makefile.repo leap-15\ncd build\nmake\n```\n\n\n### Installing\n\nAfter building, add\n\n```\nsudo make install\n```\n\n### Cleaning up a Build\n\n```\nrm -rf build\n```\n\n### Starting the Built Executable\n\nFrom the build directory (without `sudo make install`):\n\n```\ncd build\nsrc/myrlyn\n```\n\nAfter `sudo make install`:\n\n```\nmyrlyn\n```\n\n(it's now in `/usr/bin/myrlyn`)\n\n\n## Reference\n\n- Development status and screenshots: [issue #1](https://github.com/shundhammer/myrlyn/issues/1)\n\n- [Original project](https://github.com/libyui/libyui) that this was forked from\n- [2024/11 SUSE Hack Week Project](https://hackweek.opensuse.org/24/projects/yqpkg-bringing-the-single-package-selection-back-to-life)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshundhammer%2Fmyrlyn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshundhammer%2Fmyrlyn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshundhammer%2Fmyrlyn/lists"}