Name: shiru Version: 6.4.2 Release: 2%{?dist} Summary: Shiru - The ultimate torrent-based anime player. License: GPL-3.0-or-later URL: https://github.com/RockinChaos/Shiru Source0: shiru-6.4.2.tar.gz Packager: Yashwanth Rathakrishnan Vendor: RockinChaos Requires: gtk3, libnotify, nss, libXScrnSaver, libXtst, xdg-utils, at-spi2-core, libuuid, libsecret Suggests: libappindicator-gtk3 BuildArch: x86_64 %global debug_package %{nil} %description Shiru - Allows you to stream anime in real-time with no waiting for downloads, combining the advantages of high-speed torrents, great video quality, and fast releases — all without ads or tracking. %prep %setup #verbose output # %setup -q %install rm -rf %{buildroot} mkdir -p %{buildroot} cp -a opt %{buildroot}/opt cp -a usr %{buildroot}/usr ls -lR %{buildroot} %check %files /opt/Shiru/* /usr/share/applications/shiru.desktop /usr/share/icons/hicolor/512x512/apps/shiru.png %doc /usr/share/doc/shiru/changelog.gz %license LICENSE %post if type update-alternatives >/dev/null 2>&1; then # Remove previous link if it doesn't use update-alternatives if [ -L '/usr/bin/shiru' ] && [ -e '/usr/bin/shiru' ] && [ "$(readlink '/usr/bin/shiru')" != '/etc/alternatives/shiru' ]; then rm -f '/usr/bin/shiru' fi update-alternatives --install '/usr/bin/shiru' 'shiru' '/opt/Shiru/shiru' 100 || ln -sf '/opt/Shiru/shiru' '/usr/bin/shiru' else ln -sf '/opt/Shiru/shiru' '/usr/bin/shiru' fi # Check if user namespaces are supported by the kernel and working with a quick test: if ! { [[ -L /proc/self/ns/user ]] && unshare --user true; }; then # Use SUID chrome-sandbox only on systems without user namespaces: chmod 4755 '/opt/Shiru/chrome-sandbox' || true else chmod 0755 '/opt/Shiru/chrome-sandbox' || true fi if hash update-mime-database 2>/dev/null; then update-mime-database /usr/share/mime || true fi if hash update-desktop-database 2>/dev/null; then update-desktop-database /usr/share/applications || true fi %postun # Delete the link to the binary if command -v update-alternatives >/dev/null 2>&1; then update-alternatives --remove shiru "%{_bindir}/shiru" || true else rm -f "%{_bindir}/shiru" fi %changelog * Mon Dec 08 2025 Yashwanth Rathakrishnan 6.4.2-2 - fix: episode is not defined - fix: episode card end gradient - fix: section settings scaling - chore: update deps - fix: torrent unloading - Fixes errors with unloading torrents. - chore: improve nyaa rss - Manually replaces .torrent URLs by manually constructing the magnet from their given hash. Nyaa has been very slow lately so this helps speed things up. - feat: overhaul history navigation with sidebar support - Complete rewrite of the navigation/history system to unify back/forward behavior. - Adds full desktop support through clickable sidebar buttons. - Parent page/view restoration now ensures consistent UX without unexpected closures. - Fixes bad navigation behavior on Android with anime details view changes. - feat: macOS x64 codecs - The universal build now supports codecs on x64 and arm64. - feat: show cached torrents in modal - The torrent modal will now show the respective cached torrents for the series while offline and regardless of the results returned by any extensions. - Adds copy magnet button to torrent details. - feat: show my anime - Alt-clicking (right click or tap and hold) the hide my anime button in the search will now show only your anime. - Useful for only showing your anime on the airing schedule page. - feat: new app icon - A big thanks to Ashtaka on Discord for designing the icon and logo. - feat: torrent provider filtering - You can now add preferred torrent providers; these are considered equally for your best result. - The torrent order and preferred audio language will be prioritized over the preferred provider. - feat: expandable lists on Android - Adds a toggle to enable or disable expandable lists. Lists default to scrolling. - feat: preset themes - Adds the Default (AMOLED) theme. - Buttons, inputs, and toggles are now all properly reactive. - Fixes color issues with the Default (Dark) theme and many transparency issues. - Improves accessibility with tooltips on icon-only buttons. - feat: Spanish (Latin American) subtitle language - fix: showing media when changing torrents - When changing torrents, we should show the new torrents info while it is loading, or nothing at all if it wasn't previously resolved. Helps prevent confusion on seeing the previous torrents file name. - Also should now buffer more. - fix: subbed progress check - Fixes an edge case for when preferred dubs are enabled and a dubbed series finishes airing. This edge case resulted in the dub getting removed from the dubbed releases feed. - fix: handle missing subtitle style blocks - The subtitle parser occasionally received headers without any style blocks, causing the track to not appear at all. - fix: dub schedule error handling - Now properly uses cache as fallback data when queries fail. - fix: resolver failed fallback - Fixes the secondary resolving check, allowing the detected media to be properly mapped. - Fixes the fallback for when all resolving attempts failed. Now properly sets as failed and attempts to get the detected season and episode. - fix: allow changing episode - Allows the episode to be set or changed if the media failed to resolve and there isn't any media currently set. - fix: aggressive title matching - Fixes certain series not being labeled Dual Audio. - fix: show multi-header release in episode list - Multi-Header releases like "May I Ask for One Final Thing?" will now show properly in the Episode List. - Dubs are also now considered for this, overriding any sub dates, as a dubbed episode wouldn't release before the sub. - fix: zero episode air date - Fixes "Dusk Beyond the End of the World" showing 1 episode ahead as already released due to the presence of the zero episode. - Fixes detecting the description of zero episodes. - fix: zero episode behavior - Torrent details now properly show zero episodes. - The previous episode button is now visible in the player when playing episode 1. - Clicking the watch button now plays the correct episode. - fix: showing duplicate or array resolution - Torrent cards were showing duplicate resolutions or multiple, but didn't get their own badge. - fix: Android drag scroll - Prevents interactable touch elements from triggering drag scroll. - fix: infinite scroll - Search page scrolling is now more consistent. - If you scroll to the bottom before the current batch query loads, it will automatically load the next batch after the current batch resolves. - fix: get hash preference - When checking for existing torrents in the cache, there is now a priority of which hash to fetch if multiple downloaded torrents exist for a series. - fix: check file progress - Streamed download should respect file progress not the entire torrent, this causes issues with batches. - fix: error looping when restoring progress - It was possible for the video to get stuck in an error state due to the video progress being saved at the corrupted segment. This fix resets the video time and progress to the beginning. - fix: more chapter edge cases - This round of chapter edge cases covers overlapping chapters, slicing out ones that overlap between two valid chapters. Also ensuring that the first chapter starts at 0. - fix: auto file select on rss feeds - Fixed RSS feeds incorrectly prompting for torrent selection when Auto-File Select was disabled. - fix: subtitles missing cjk glyphs - Noto Sans will now be used as the default font for subtitles whenever there are missing glyphs in the provided subtitle attachments. - fix: exclude trailers - Fixes trailers incorrectly being in the playable files list. - fix: focus preview cards - Improves the expected reactivity of preview cards, whether they should be shown or not, based on certain events.. - fix: don't always verify OVA match - Verification when resolving OVA media will now fail if the file name is missing OVA or if the file name has OVA and the media is not an OVA. - fix: missing NCED and NCOP - Can't filter these out unless it's actually specified as an anime_type. - fix: start at the lowest unwatched id - Lowest unwatched was previously determined based on the format of the series, which would result in weird issues like OVA being before the main series. - We now get the lowest media id as ids are typically sequential. - fix: preserve episode and season when failing to resolve - Ensure files that initially failed to resolve keep their known episode and season values instead of relying on torrent name parsing, preventing misdetections like "1080p" as an episode number. - fix: failing to detect playable episodes - Series that are releasing but do not have an air date for the next episode would end up failing to detect how many episodes have already aired. - fix: check media status - Check if the media is marked as finished before stating X episode hasn't released. - fix: show episodes for movies - If a movie has multiple episodes, they will now be detailed rather than listing each as "Movie". - fix: replace timestamp-like chapter names - Better to use a placeholder than a confusing timestamp. - fix: resolving My Gift Lvl 9999 Unlimited Gacha - Resolves issues with release groups using the Mugen Gacha synonym. - fix: resolving Mr. Ginpachi's Zany Class - Was primarily an issue with subbed release groups using an incorrect Romaji title. - fix: resolving Mobile Suit Zeta Gundam - Some release groups used Z instead of Zeta for shorthand. - fix: verified series marked as failed - Fixes the verification button not removing the failed tag from the series until the app is restarted. - Fixes the verification button being missing when it shouldn't be. - Fixes undefined values in the episode field. - fix: missing subtitles - Primarily fixes missing subtitles from release groups like Yameii. - fix: external player autoplay - Fixes external player autoplay not functioning when loading a file or switching episodes. - Fixes external player reopening when clicking to play the episode before autoplay is triggered. - fix: file manager sorting and reactivity - Files in the file manager will now be properly grouped by series, sorted by season, and episode number. - Files that had their series change will immediately be reflected in the File Manager without having to re-open it. - fix: episode list scaling and summary - Fixes issues on Android where lines were partially cropped due to exceeding the summary size. - Summary is now properly limited to the max lines denoted by ellipsis. - fix: Android hover buttons - Buttons that change state when hovering on desktop should not be highlighted after clicking them on Android. Now they are properly deselected after performing the button action. - fix: airing series triggering section update - Series that are airing have a countdown to the episode, which would cause the section to update when they didn't need to after a new query was completed. - All unnecessary keys have been removed from media data to prevent section updates. - fix: indefinite dub delays - Dubbed series that have production suspended but have the sub finished will now properly show Dub production as suspended. - fix: stale schedule data - Fixes a very rare edge case that would result in the episode feeds or schedule not updating, resulting in stale data as the manifest is saved. - fix: incorrect regex - Resulted in torrent cards showing incorrect tags. - fix: janky overlay check - Each time a file is loaded to the player any active overlays were closed. - fix: dual audio torrent results - The exact audio type will now be the highlighted best result instead of Dual Audio. Dual Audio will only be used as a fallback if the exact audio type isn't found. - English Dub terms will now be properly filtered out if there is no English Dub for the series. - Adds Chinese Audio term and preferred audio type. - Fixes incorrectly detecting Chinese Dub as an English Dub. - fix: incorrectly detecting dual track as dual audio - Dual Track typically doesn't refer to multiple audio tracks and causes accuracy issues if we assume it does. - fix: filter media title before term mapping - Some media titles resulted in incorrect term mapping. - Example: Synduality Noir was detected as Dual Audio because it has Dual in the title name. Filtering the titles out before mapping the terms results in higher accuracy. - fix: implement OAV filtering - Fixes resolving series that include OAV in their title. - fix: restoring exact view and rss state - When navigating pages with an open view or rss, these were incorrectly saved as being closed in the history. - fix: mouse button history navigation - fix: resolving Ranma 1/2 season 2 - fix: resolving My Hero Academia FINAL SEASON - fix: Android dragging home sections - fix: ui reactivity - fix: miniplayer scaling - fix: fade in/out animations - fix: webpack warnings - fix: undefined media in file manager - fix: focusing hidden elements - fix: episode card title truncation - fix: don't prompt unresolved media - fix: detecting episode number in title - fix: modal overflow - fix: only child preview card - fix: duplicate genres in query - fix: description regex - fix: desktop menu spacing - fix: No Group preferred provider - fix: list editor z-index - fix: drag scroll response - fix: touch reactivity - fix: home section dragging - fix: extension updating - fix: updating torrent details - fix: changelog fallback error - chore: improve WebTorrent stability - Introduces better cleanup and hash checking for existing torrents. - Changed torrent debug behavior, separated the torrent worker debug from WebTorrent debug. - chore: better extension error handling - Fixes local extension testing using the path. - Now a lot harder for extensions to break. - chore: brighten amoled skeletons - It was extremely hard to see when the screen brightness was low on mobile. - chore: hide toasts when fullscreen - Hides toasts while in full screen to avoid breaking immersion. - chore: bump to electron v39.1.2 - Fixes a lot of Linux issues, including the native title bar. - Improves overall app stability. - Removed release group exclusions from desktop. - chore: rework trailers - Fixes an edge case with trailers not functioning unless the cache is cleared. - Preview Card banner and trailer are now 16:9 ratio. - chore: add log reset button - When debugging, you can now reset the log file between different tests. - The current settings are now logged when enabling debugging. - chore: deprecate flags - Unfortunately, Chromium has disabled Windows-like smooth scrolling, so we can no longer rely on these for scroll behavior. - chore: implement batch guesses - If the detected hash for a series doesn't have an associated episode (unplayed batch), assume it is very likely accurate as the desired series. - chore: show buffering when unplayable - Instead of viewing a black screen wondering why nothing is happening, it will now be evident by the buffering until playback is fully ready. - chore: improve torrent card terms - Adds some missing terms and improves the cleaning of the displayed file name. - chore: rework progress sorting - Sorting by 'Your Progress' will now sort by distance to completion rather than by how many episodes you watched. - chore: improve zero episode management - Fixes edge cases with zero episodes affecting the file manager. - Zero episodes will now be displayed, and allow the episode number to be changed. - A series with more than 1 episode but the file is missing its episode number will automatically show the episode number as zero so it can be changed. - Changing a series that has a zero episode will change the target file if it's a zero episode without modifying the others. - chore: show series when not actively watching - Series will be shown on both subbed and dubbed feeds when they are not actively being watched. - chore: offline improvements - Allows for offline searches for already seen media. - Hides missing media from recommendations and relations. - Fixes errors being thrown, will now show the nothing found message. - Improves the accuracy of offline detection, which prevents constantly spamming Cloudflare. - Adds 404 images for missing banners, covers, episodes, and other icons. - chore: improve miniplayer - Adds a border to the miniplayer to improve visibility. - Fixed miniplayer scaling; the miniplayer now scales as a ratio to the size of the app window to prevent crowding. - Fixes a lot of miscellaneous miniplayer bugs on Android. - chore: improve outage detection - Fixes a majority of issues when the Anilist API is down. Functionality will now be similar to offline mode. - You will be able to search, view, play, load torrents, resolve media, and view the schedule for any series you have previously "seen". - Anything you haven't seen will be hidden and fail to resolve. - chore: rework following - The following section has been removed, as it was taking up too much space for providing nearly zero info. - User icons will be shown that when hovered or focused will show the user's profile and their current series stats. - chore: add safe area to cards - Added a safe area to notification and file manager cards behind the buttons/inputs on the card itself to prevent unintentional clicks to the card itself on Android. - chore: hide fast-forward and rewind - Now properly hides these buttons when using an external player. - chore: add torrent button to episode list - Each episode card in the episode list under the anime details will now show a quick preview icon of the torrent status. This helps quickly identify pre-downloaded episodes. - chore: fuzzy subtitle match - Subtitles will be checked from the track name if not found in the track language. - chore: improve share and open buttons - Adds individual MyAnimeList and Anilist buttons to click to share or alt-click to open the webpage. - chore: fix incorrect batch search - Batch searches were returning cached results that didn't respect the Adult Content setting. - chore: update checking should respect notification settings - chore: improve torrent card terms - chore: better credits regex - chore: silence extension update rate limit errors - chore: bump to node v22.20 - chore: update deps - chore: hide focus elements - chore: better audio label order - chore: better small-screen notifications - chore: tweak dim grays -