diff --git a/news/sabnzbd/Makefile b/news/sabnzbd/Makefile index 9821244c0149..1b7cbeb9e167 100644 --- a/news/sabnzbd/Makefile +++ b/news/sabnzbd/Makefile @@ -1,87 +1,86 @@ PORTNAME= sabnzbd -DISTVERSION= 4.0.2 -PORTREVISION= 1 +DISTVERSION= 4.1.0 CATEGORIES= news MASTER_SITES= https://github.com/sabnzbd/sabnzbd/releases/download/${DISTVERSION}/ DISTNAME= SABnzbd-${DISTVERSION}-src MAINTAINER= james@french.id.au COMMENT= Web-interface based binary newsgrabber in python, with nzb support WWW= https://sabnzbd.org/ LICENSE= BSD2CLAUSE BSD3CLAUSE GPLv2+ ISCL MIT PSFL LICENSE_COMB= multi RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cheetah3>=0:devel/py-cheetah3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cherrypy>=8.9.1:www/py-cherrypy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cheroot>=0:www/py-cheroot@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}chardet>=0:textproc/py-chardet@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}configobj>=0:devel/py-configobj@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}feedparser>=6.0.0:textproc/py-feedparser@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}portend>=0:net/py-portend@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sqlite3>=0:databases/py-sqlite3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sabctools>=7.1.0<7.2:news/py-sabctools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}guessit>0:multimedia/py-guessit@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}puremagic>0:sysutils/py-puremagic@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pysocks>0:net/py-pysocks@${PY_FLAVOR} \ par2repair:archivers/par2cmdline \ unrar:archivers/unrar USES= python shebangfix gettext USE_RC_SUBR= sabnzbd SHEBANG_FILES= SABnzbd.py tools/msgfmt.py NO_ARCH= yes SUB_FILES= pkg-message SUB_LIST= PYTHON_CMD=${PYTHON_CMD} WRKSRC= ${WRKDIR}/SABnzbd-${DISTVERSION} USERS= _sabnzbd GROUPS= _sabnzbd PORTDOCS= COPYRIGHT.txt \ INSTALL.txt \ ISSUES.txt \ README.mkd OPTIONS_DEFINE= 7ZIP SSL DOCS NOTIFY2 DBUS PYGOBJECT OPTIONS_DEFAULT= 7ZIP SSL 7ZIP_DESC= Needed for unpacking 7-Zip posts DBUS_DESC= DBUS support for system power management NOTIFY2_DESC= Notify2 support PYGOBJECT_DESC= PyGObject support for system tray icon (requires cairo) 7ZIP_RUN_DEPENDS= 7zz:archivers/7-zip DBUS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dbus>=0:devel/py-dbus@${PY_FLAVOR} NOTIFY2_IMPLIES= DBUS NOTIFY2_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}notify2>=0:devel/py-notify2@${PY_FLAVOR} PYGOBJECT_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gobject3>=3.10.2:devel/py-gobject3@${PY_FLAVOR} SSL_USES= pycryptography:run post-patch: @${REINPLACE_CMD} -e "s:%%DATADIR%%:'${DATADIR}':g" \ ${WRKSRC}/SABnzbd.py # Generate locale files do-build: cd ${WRKSRC} && ${PYTHON_CMD} tools/make_mo.py do-install: ${INSTALL_SCRIPT} ${WRKSRC}/SABnzbd.py ${STAGEDIR}${PREFIX}/bin @${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/sabnzbd cd ${WRKSRC}/sabnzbd && ${COPYTREE_SHARE} \* ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/sabnzbd @${MKDIR} ${STAGEDIR}${DATADIR} .for i in email icons interfaces locale po tools @${MKDIR} ${STAGEDIR}${DATADIR}/${i} cd ${WRKSRC}/${i} && ${COPYTREE_SHARE} \* ${STAGEDIR}${DATADIR}/${i} .endfor post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} .for i in ${PORTDOCS} ${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR} .endfor .include diff --git a/news/sabnzbd/distinfo b/news/sabnzbd/distinfo index 6433ee11ccf8..eb7593029619 100644 --- a/news/sabnzbd/distinfo +++ b/news/sabnzbd/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1688165296 -SHA256 (SABnzbd-4.0.2-src.tar.gz) = 2783f225057031869dff74f7eb191f54f35e8abe60906fcaaa94ab7772166c4e -SIZE (SABnzbd-4.0.2-src.tar.gz) = 5081392 +TIMESTAMP = 1695777660 +SHA256 (SABnzbd-4.1.0-src.tar.gz) = 24cdc711a9a9425b65b53dd5c084f78cc0f6d978c5c712481b7031751d569588 +SIZE (SABnzbd-4.1.0-src.tar.gz) = 5074695 diff --git a/news/sabnzbd/files/patch-sabctools b/news/sabnzbd/files/patch-sabctools deleted file mode 100644 index da0463501ac0..000000000000 --- a/news/sabnzbd/files/patch-sabctools +++ /dev/null @@ -1,116 +0,0 @@ -Obtained from: https://github.com/sabnzbd/sabnzbd/commit/a179f2a895259e49f3679405ad59cac06e0bf2d9 - https://github.com/sabnzbd/sabnzbd/commit/a951361fa639235e9252cd32c5c7264ff0f1a70a - ---- requirements.txt.orig 2023-06-07 19:24:42 UTC -+++ requirements.txt -@@ -1,6 +1,6 @@ - # Main requirements - # Note that not all sub-dependencies are listed, but only ones we know could cause trouble --sabctools==7.0.2 -+sabctools==7.1.1 - cheetah3==3.2.6.post1 - cffi==1.15.1 - pycparser==2.21 ---- sabnzbd/assembler.py.orig 2023-06-07 19:24:42 UTC -+++ sabnzbd/assembler.py -@@ -27,6 +27,7 @@ from threading import Thread - import ctypes - from typing import Tuple, Optional, List - -+import sabctools - import sabnzbd - from sabnzbd.misc import get_all_passwords, match_str - from sabnzbd.filesystem import ( -@@ -160,13 +161,21 @@ class Assembler(Thread): - - @staticmethod - def assemble(nzo: NzbObject, nzf: NzbFile, file_done: bool): -- """Assemble a NZF from its table of articles -- 1) Partial write: write what we have -- 2) Nothing written before: write all -- """ -+ """Assemble a NZF from its table of articles""" - -+ # When a file exists, we cannot use "w+b" -+ if os.path.exists(nzf.filepath): -+ open_mode = "r+b" -+ file_sparse = True -+ else: -+ open_mode = "w+b" -+ file_sparse = False -+ - # We write large article-sized chunks, so we can safely skip the buffering of Python -- with open(nzf.filepath, "ab", buffering=0) as fout: -+ with open(nzf.filepath, open_mode, buffering=0) as fout: -+ # Track position, so we can prevent a seek if writing continuous -+ file_position = 0 -+ - for article in nzf.decodetable: - # Break if deleted during writing - if nzo.status is Status.DELETED: -@@ -178,9 +187,25 @@ class Assembler(Thread): - - # Write all decoded articles - if article.decoded: -+ # On first write try to make the file sparse -+ if not file_sparse and article.file_size is not None and article.file_size > 0: -+ file_sparse = True -+ try: -+ sabctools.sparse(fout, article.file_size) -+ except: -+ logging.debug("Failed to make %s sparse with length %d", nzf.filepath, article.file_size) -+ logging.debug("Traceback: ", exc_info=True) -+ - data = sabnzbd.ArticleCache.load_article(article) - # Could be empty in case nzo was deleted - if data: -+ if article.data_begin is not None: -+ # Seek ahead if needed -+ if article.data_begin != file_position: -+ fout.seek(article.data_begin) -+ file_position = article.data_begin + len(data) -+ else: -+ fout.seek(0, os.SEEK_END) - fout.write(data) - nzf.update_crc32(article.crc32, len(data)) - article.on_disk = True ---- sabnzbd/constants.py.orig 2023-06-07 19:24:42 UTC -+++ sabnzbd/constants.py -@@ -49,7 +49,7 @@ RENAMES_FILE = "__renames__" - ATTRIB_FILE = "SABnzbd_attrib" - REPAIR_REQUEST = "repair-all.sab" - --SABCTOOLS_VERSION_REQUIRED = "7.0.2" -+SABCTOOLS_VERSION_REQUIRED = "7.1.0" - - DB_HISTORY_VERSION = 1 - DB_HISTORY_NAME = "history%s.db" % DB_HISTORY_VERSION ---- sabnzbd/decoder.py.orig 2023-06-07 19:24:42 UTC -+++ sabnzbd/decoder.py -@@ -172,7 +172,7 @@ def decode(article: Article, raw_data: bytearray): - - def decode_yenc(article: Article, data: bytearray) -> bytearray: - # Let SABCTools do all the heavy lifting -- yenc_filename, article.data_begin, article.data_size, crc_correct = sabctools.yenc_decode(data) -+ yenc_filename, article.file_size, article.data_begin, article.data_size, crc_correct = sabctools.yenc_decode(data) - - nzf = article.nzf - # Assume it is yenc ---- sabnzbd/nzbstuff.py.orig 2023-06-07 19:24:42 UTC -+++ sabnzbd/nzbstuff.py -@@ -163,6 +163,7 @@ ArticleSaver = ( - "bytes", - "lowest_partnum", - "decoded", -+ "file_size", - "data_begin", - "data_size", - "on_disk", -@@ -187,6 +188,7 @@ class Article(TryList): - self.fetcher_priority: int = 0 - self.tries: int = 0 # Try count - self.decoded: bool = False -+ self.file_size: Optional[int] = None - self.data_begin: Optional[int] = None - self.data_size: Optional[int] = None - self.on_disk: bool = False diff --git a/news/sabnzbd/files/patch-sabnzbd_newsunpack.py b/news/sabnzbd/files/patch-sabnzbd_newsunpack.py deleted file mode 100644 index 65a739398ad0..000000000000 --- a/news/sabnzbd/files/patch-sabnzbd_newsunpack.py +++ /dev/null @@ -1,11 +0,0 @@ ---- sabnzbd/newsunpack.py.orig 2022-01-28 10:50:34 UTC -+++ sabnzbd/newsunpack.py -@@ -136,6 +136,8 @@ def find_programs(curdir: str): - if not sabnzbd.newsunpack.SEVENZIP_COMMAND: - sabnzbd.newsunpack.SEVENZIP_COMMAND = find_on_path("7za") # 7za = 7z stand-alone executable - if not sabnzbd.newsunpack.SEVENZIP_COMMAND: -+ sabnzbd.newsunpack.SEVENZIP_COMMAND = find_on_path("7zz") -+ if not sabnzbd.newsunpack.SEVENZIP_COMMAND: - sabnzbd.newsunpack.SEVENZIP_COMMAND = find_on_path("7z") - - if not (sabnzbd.WIN32 or sabnzbd.DARWIN): diff --git a/news/sabnzbd/pkg-plist b/news/sabnzbd/pkg-plist index 331b71e6b415..fe81e5ab6dcf 100644 --- a/news/sabnzbd/pkg-plist +++ b/news/sabnzbd/pkg-plist @@ -1,297 +1,299 @@ bin/SABnzbd.py %%PYTHON_SITELIBDIR%%/sabnzbd/__init__.py %%PYTHON_SITELIBDIR%%/sabnzbd/api.py %%PYTHON_SITELIBDIR%%/sabnzbd/articlecache.py %%PYTHON_SITELIBDIR%%/sabnzbd/assembler.py %%PYTHON_SITELIBDIR%%/sabnzbd/bpsmeter.py %%PYTHON_SITELIBDIR%%/sabnzbd/cfg.py %%PYTHON_SITELIBDIR%%/sabnzbd/config.py %%PYTHON_SITELIBDIR%%/sabnzbd/constants.py %%PYTHON_SITELIBDIR%%/sabnzbd/database.py %%PYTHON_SITELIBDIR%%/sabnzbd/decoder.py %%PYTHON_SITELIBDIR%%/sabnzbd/decorators.py %%PYTHON_SITELIBDIR%%/sabnzbd/deobfuscate_filenames.py %%PYTHON_SITELIBDIR%%/sabnzbd/directunpacker.py %%PYTHON_SITELIBDIR%%/sabnzbd/dirscanner.py %%PYTHON_SITELIBDIR%%/sabnzbd/downloader.py %%PYTHON_SITELIBDIR%%/sabnzbd/emailer.py %%PYTHON_SITELIBDIR%%/sabnzbd/encoding.py %%PYTHON_SITELIBDIR%%/sabnzbd/filesystem.py %%PYTHON_SITELIBDIR%%/sabnzbd/getipaddress.py %%PYTHON_SITELIBDIR%%/sabnzbd/interface.py %%PYTHON_SITELIBDIR%%/sabnzbd/lang.py %%PYTHON_SITELIBDIR%%/sabnzbd/misc.py %%PYTHON_SITELIBDIR%%/sabnzbd/newsunpack.py %%PYTHON_SITELIBDIR%%/sabnzbd/newswrapper.py %%PYTHON_SITELIBDIR%%/sabnzbd/notifier.py %%PYTHON_SITELIBDIR%%/sabnzbd/nzbparser.py %%PYTHON_SITELIBDIR%%/sabnzbd/nzbqueue.py %%PYTHON_SITELIBDIR%%/sabnzbd/nzbstuff.py %%PYTHON_SITELIBDIR%%/sabnzbd/osxmenu.py %%PYTHON_SITELIBDIR%%/sabnzbd/panic.py %%PYTHON_SITELIBDIR%%/sabnzbd/par2file.py %%PYTHON_SITELIBDIR%%/sabnzbd/postproc.py %%PYTHON_SITELIBDIR%%/sabnzbd/powersup.py %%PYTHON_SITELIBDIR%%/sabnzbd/rss.py %%PYTHON_SITELIBDIR%%/sabnzbd/sabtray.py %%PYTHON_SITELIBDIR%%/sabnzbd/sabtraylinux.py %%PYTHON_SITELIBDIR%%/sabnzbd/scheduler.py %%PYTHON_SITELIBDIR%%/sabnzbd/skintext.py %%PYTHON_SITELIBDIR%%/sabnzbd/sorting.py %%PYTHON_SITELIBDIR%%/sabnzbd/urlgrabber.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/__init__.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/apireg.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/certgen.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/checkdir.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/diskspeed.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/file_extension.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/getperformance.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/happyeyeballs.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/internetspeed.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/kronos.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/pathbrowser.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/pybonjour.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/pystone.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/rarfile.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/rarvolinfo.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/servertests.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/sleepless.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/ssdp.py %%PYTHON_SITELIBDIR%%/sabnzbd/utils/systrayiconthread.py %%PYTHON_SITELIBDIR%%/sabnzbd/version.py %%PYTHON_SITELIBDIR%%/sabnzbd/zconfig.py %%DATADIR%%/email/badfetch-cs.tmpl %%DATADIR%%/email/badfetch-da.tmpl %%DATADIR%%/email/badfetch-de.tmpl %%DATADIR%%/email/badfetch-en.tmpl %%DATADIR%%/email/badfetch-es.tmpl %%DATADIR%%/email/badfetch-fi.tmpl %%DATADIR%%/email/badfetch-fr.tmpl %%DATADIR%%/email/badfetch-he.tmpl %%DATADIR%%/email/badfetch-nb.tmpl %%DATADIR%%/email/badfetch-nl.tmpl %%DATADIR%%/email/badfetch-pl.tmpl %%DATADIR%%/email/badfetch-pt_BR.tmpl %%DATADIR%%/email/badfetch-ro.tmpl %%DATADIR%%/email/badfetch-ru.tmpl %%DATADIR%%/email/badfetch-sr.tmpl %%DATADIR%%/email/badfetch-sv.tmpl %%DATADIR%%/email/badfetch-zh_CN.tmpl %%DATADIR%%/email/email-cs.tmpl %%DATADIR%%/email/email-da.tmpl %%DATADIR%%/email/email-de.tmpl %%DATADIR%%/email/email-en.tmpl %%DATADIR%%/email/email-es.tmpl %%DATADIR%%/email/email-fi.tmpl %%DATADIR%%/email/email-fr.tmpl %%DATADIR%%/email/email-he.tmpl %%DATADIR%%/email/email-nb.tmpl %%DATADIR%%/email/email-nl.tmpl %%DATADIR%%/email/email-pl.tmpl %%DATADIR%%/email/email-pt_BR.tmpl %%DATADIR%%/email/email-ro.tmpl %%DATADIR%%/email/email-ru.tmpl %%DATADIR%%/email/email-sr.tmpl %%DATADIR%%/email/email-sv.tmpl %%DATADIR%%/email/email-zh_CN.tmpl %%DATADIR%%/email/rss-cs.tmpl %%DATADIR%%/email/rss-da.tmpl %%DATADIR%%/email/rss-de.tmpl %%DATADIR%%/email/rss-en.tmpl %%DATADIR%%/email/rss-es.tmpl %%DATADIR%%/email/rss-fi.tmpl %%DATADIR%%/email/rss-fr.tmpl %%DATADIR%%/email/rss-he.tmpl %%DATADIR%%/email/rss-nb.tmpl %%DATADIR%%/email/rss-nl.tmpl %%DATADIR%%/email/rss-pl.tmpl %%DATADIR%%/email/rss-pt_BR.tmpl %%DATADIR%%/email/rss-ro.tmpl %%DATADIR%%/email/rss-ru.tmpl %%DATADIR%%/email/rss-sr.tmpl %%DATADIR%%/email/rss-sv.tmpl %%DATADIR%%/email/rss-zh_CN.tmpl %%DATADIR%%/icons/logo-arrow.svg %%DATADIR%%/icons/logo-arrow_gray.svg %%DATADIR%%/icons/logo-arrow_green.svg %%DATADIR%%/icons/nzb.ico %%DATADIR%%/icons/sabnzbd.ico %%DATADIR%%/icons/sabnzbd16_32.ico %%DATADIR%%/icons/sabnzbd16_32green.ico %%DATADIR%%/icons/sabnzbd16_32paused.ico %%DATADIR%%/icons/sabnzbd_osx_clicked.tiff %%DATADIR%%/icons/sabnzbd_osx_idle.tiff %%DATADIR%%/icons/sabnzbd_osx_pause.tiff %%DATADIR%%/interfaces/Config/README.txt %%DATADIR%%/interfaces/Config/templates/_inc_footer_uc.tmpl %%DATADIR%%/interfaces/Config/templates/_inc_header_uc.tmpl %%DATADIR%%/interfaces/Config/templates/config.tmpl %%DATADIR%%/interfaces/Config/templates/config_cat.tmpl %%DATADIR%%/interfaces/Config/templates/config_folders.tmpl %%DATADIR%%/interfaces/Config/templates/config_general.tmpl %%DATADIR%%/interfaces/Config/templates/config_notify.tmpl %%DATADIR%%/interfaces/Config/templates/config_rss.tmpl %%DATADIR%%/interfaces/Config/templates/config_scheduling.tmpl %%DATADIR%%/interfaces/Config/templates/config_server.tmpl %%DATADIR%%/interfaces/Config/templates/config_sorting.tmpl %%DATADIR%%/interfaces/Config/templates/config_special.tmpl %%DATADIR%%/interfaces/Config/templates/config_switches.tmpl %%DATADIR%%/interfaces/Config/templates/login/main.tmpl %%DATADIR%%/interfaces/Config/templates/main.tmpl %%DATADIR%%/interfaces/Config/templates/staticcfg/bootstrap/css/bootstrap.min.css %%DATADIR%%/interfaces/Config/templates/staticcfg/bootstrap/fonts/glyphicons-halflings-regular.eot %%DATADIR%%/interfaces/Config/templates/staticcfg/bootstrap/fonts/glyphicons-halflings-regular.svg %%DATADIR%%/interfaces/Config/templates/staticcfg/bootstrap/fonts/glyphicons-halflings-regular.ttf %%DATADIR%%/interfaces/Config/templates/staticcfg/bootstrap/js/bootstrap.min.js +%%DATADIR%%/interfaces/Config/templates/staticcfg/css/Auto.css +%%DATADIR%%/interfaces/Config/templates/staticcfg/css/Night.css %%DATADIR%%/interfaces/Config/templates/staticcfg/css/chartist.min.css %%DATADIR%%/interfaces/Config/templates/staticcfg/css/login.css %%DATADIR%%/interfaces/Config/templates/staticcfg/css/style.css %%DATADIR%%/interfaces/Config/templates/staticcfg/ico/android-192x192.png %%DATADIR%%/interfaces/Config/templates/staticcfg/ico/apple-touch-icon-120x120-precomposed.png %%DATADIR%%/interfaces/Config/templates/staticcfg/ico/apple-touch-icon-152x152-precomposed.png %%DATADIR%%/interfaces/Config/templates/staticcfg/ico/apple-touch-icon-180x180-precomposed.png %%DATADIR%%/interfaces/Config/templates/staticcfg/ico/apple-touch-icon-76x76-precomposed.png %%DATADIR%%/interfaces/Config/templates/staticcfg/ico/favicon.ico %%DATADIR%%/interfaces/Config/templates/staticcfg/ico/faviconpaused.ico %%DATADIR%%/interfaces/Config/templates/staticcfg/ico/safari-pinned-tab.svg %%DATADIR%%/interfaces/Config/templates/staticcfg/images/logo-arrow.svg %%DATADIR%%/interfaces/Config/templates/staticcfg/images/logo-full.svg %%DATADIR%%/interfaces/Config/templates/staticcfg/images/logo-small.svg %%DATADIR%%/interfaces/Config/templates/staticcfg/js/chartist.min.js %%DATADIR%%/interfaces/Config/templates/staticcfg/js/filesize.min.js %%DATADIR%%/interfaces/Config/templates/staticcfg/js/jquery-3.5.1.min.js %%DATADIR%%/interfaces/Config/templates/staticcfg/js/jquery-ui.min.js %%DATADIR%%/interfaces/Config/templates/staticcfg/js/jquery.tablesort.min.js %%DATADIR%%/interfaces/Config/templates/staticcfg/js/script.js %%DATADIR%%/interfaces/Glitter/licenses/LICENSE-Apache.txt %%DATADIR%%/interfaces/Glitter/licenses/LICENSE-CC.txt %%DATADIR%%/interfaces/Glitter/licenses/LICENSE-MIT.txt %%DATADIR%%/interfaces/Glitter/templates/include_history.tmpl %%DATADIR%%/interfaces/Glitter/templates/include_menu.tmpl %%DATADIR%%/interfaces/Glitter/templates/include_messages.tmpl %%DATADIR%%/interfaces/Glitter/templates/include_overlays.tmpl %%DATADIR%%/interfaces/Glitter/templates/include_queue.tmpl %%DATADIR%%/interfaces/Glitter/templates/main.tmpl %%DATADIR%%/interfaces/Glitter/templates/static/bootstrap/css/bootstrap.min.css %%DATADIR%%/interfaces/Glitter/templates/static/bootstrap/fonts/glyphicons-halflings-regular.eot %%DATADIR%%/interfaces/Glitter/templates/static/bootstrap/fonts/glyphicons-halflings-regular.svg %%DATADIR%%/interfaces/Glitter/templates/static/bootstrap/fonts/glyphicons-halflings-regular.ttf %%DATADIR%%/interfaces/Glitter/templates/static/bootstrap/js/bootstrap.min.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/date.min.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/glitter.basic.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/glitter.filelist.pagination.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/glitter.history.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/glitter.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/glitter.main.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/glitter.queue.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/jquery-3.5.1.min.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/jquery-ui.min.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/jquery.hotkeys.min.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/jquery.peity.min.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/knockout-3.5.1.min.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/knockout-extensions.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/moment-2.26.0.min.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/da.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/de.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/es.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/fi.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/fr.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/he.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/nb.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/nl.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/pl.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/pt-br.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/ro.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/ru.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/sr.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/sv.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/momentjs_locale/zh-cn.js %%DATADIR%%/interfaces/Glitter/templates/static/javascripts/search-query-parser.js %%DATADIR%%/interfaces/Glitter/templates/static/stylesheets/colorschemes/Auto.css %%DATADIR%%/interfaces/Glitter/templates/static/stylesheets/colorschemes/Light.css %%DATADIR%%/interfaces/Glitter/templates/static/stylesheets/colorschemes/Night.css %%DATADIR%%/interfaces/Glitter/templates/static/stylesheets/glitter.css %%DATADIR%%/interfaces/Glitter/templates/static/stylesheets/glitter.mobile.css %%DATADIR%%/interfaces/wizard/README.TXT %%DATADIR%%/interfaces/wizard/inc_bottom.tmpl %%DATADIR%%/interfaces/wizard/inc_top.tmpl %%DATADIR%%/interfaces/wizard/index.html %%DATADIR%%/interfaces/wizard/one.html %%DATADIR%%/interfaces/wizard/static/javascript/checkserver.js %%DATADIR%%/interfaces/wizard/static/style.css %%DATADIR%%/interfaces/wizard/two.html %%DATADIR%%/locale/cs/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/da/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/de/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/en/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/es/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/fi/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/fr/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/he/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/nb/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/nl/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/pl/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/pt_BR/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/ro/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/ru/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/sr/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/sv/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/locale/zh_CN/LC_MESSAGES/SABnzbd.mo %%DATADIR%%/po/email/SABemail.pot %%DATADIR%%/po/email/cs.po %%DATADIR%%/po/email/da.po %%DATADIR%%/po/email/de.po %%DATADIR%%/po/email/en.po %%DATADIR%%/po/email/es.po %%DATADIR%%/po/email/fi.po %%DATADIR%%/po/email/fr.po %%DATADIR%%/po/email/he.po %%DATADIR%%/po/email/nb.po %%DATADIR%%/po/email/nl.po %%DATADIR%%/po/email/pl.po %%DATADIR%%/po/email/pt_BR.po %%DATADIR%%/po/email/ro.po %%DATADIR%%/po/email/ru.po %%DATADIR%%/po/email/sr.po %%DATADIR%%/po/email/sv.po %%DATADIR%%/po/email/zh_CN.po %%DATADIR%%/po/main/SABnzbd.pot %%DATADIR%%/po/main/cs.po %%DATADIR%%/po/main/da.po %%DATADIR%%/po/main/de.po %%DATADIR%%/po/main/en.po %%DATADIR%%/po/main/es.po %%DATADIR%%/po/main/fi.po %%DATADIR%%/po/main/fr.po %%DATADIR%%/po/main/he.po %%DATADIR%%/po/main/nb.po %%DATADIR%%/po/main/nl.po %%DATADIR%%/po/main/pl.po %%DATADIR%%/po/main/pt_BR.po %%DATADIR%%/po/main/ro.po %%DATADIR%%/po/main/ru.po %%DATADIR%%/po/main/sr.po %%DATADIR%%/po/main/sv.po %%DATADIR%%/po/main/zh_CN.po %%DATADIR%%/po/nsis/SABnsis.pot %%DATADIR%%/po/nsis/cs.po %%DATADIR%%/po/nsis/da.po %%DATADIR%%/po/nsis/de.po %%DATADIR%%/po/nsis/en.po %%DATADIR%%/po/nsis/es.po %%DATADIR%%/po/nsis/fi.po %%DATADIR%%/po/nsis/fr.po %%DATADIR%%/po/nsis/he.po %%DATADIR%%/po/nsis/nb.po %%DATADIR%%/po/nsis/nl.po %%DATADIR%%/po/nsis/pl.po %%DATADIR%%/po/nsis/pt_BR.po %%DATADIR%%/po/nsis/ro.po %%DATADIR%%/po/nsis/ru.po %%DATADIR%%/po/nsis/sr.po %%DATADIR%%/po/nsis/sv.po %%DATADIR%%/po/nsis/zh_CN.po %%DATADIR%%/tools/extract_pot.py %%DATADIR%%/tools/make_mo.py %%DATADIR%%/tools/msgfmt.py %%DATADIR%%/tools/pygettext.py