Releases: Chistovik92/opendisk
Release list
OpenDisk 0.5.5 — вход через браузер доходит до конца, значок в шторке
Скачать
| Процессор | Windows | macOS | Debian, Ubuntu, Mint, Astra | Fedora, RHEL, RED OS, openSUSE | ALT, Simply Linux | Любой Linux | Android | iPhone, iPad |
|---|---|---|---|---|---|---|---|---|
| x86-64 — Intel, AMD | EXE | DMG | DEB | RPM | RPM | AppImage | APK (универсальный) | |
| ARM64 — Snapdragon, Apple Silicon, телефоны | EXE | DMG | APK | IPA ¹ |
Какой у меня процессор. Windows: «Параметры» → «Система» → «О системе»,
строка «Тип системы». Mac: меню Apple → «Об этом Mac» — «Чип Apple M…» значит
Apple Silicon, «Процессор Intel» — Intel. Телефоны на Android почти все ARM64;
если apk не встал, берите универсальный — он вдвое больше, но подходит любому.
Linux одной командой — скрипт сам определит дистрибутив, возьмёт пакет
именно под него и сверит контрольную сумму:
curl -fsSL https://raw.githubusercontent.com/Chistovik92/opendisk/main/scripts/install.sh | sh¹ Без подписи Apple: ставится через AltStore, SideStore или Sideloadly, подпись
живёт семь дней. Как и чем — docs/IOS.md.
Установщики для Windows, Linux и Android перед выпуском ставятся на настоящие
системы. .dmg и .ipa только собираются — ни Mac, ни iPhone для проверки
у разработчиков нет. Контрольные суммы — в файлах SHA256SUMS-*.
Что нового
Исправление к 0.5.4: вход через браузер на настоящем телефоне обрывался на
последнем шаге. И значок OpenDisk в шторке — сводка по подключениям.
Вход через браузер доходит до конца
На телефоне вход в Яндекс.Диск проходил всё до обмена кода на токен — и
падал на «lookup oauth.yandex.com: no such host».
Сеть внутри приложения исправна: проверка на эмуляторе резолвит имя и читает
файлы по HTTPS. Дело в фоне. Код на токен меняется ровно тогда, когда впереди
вкладка браузера, а OpenDisk свёрнут, — а фоновому приложению многие телефоны
отрезают сеть: экономия трафика, ограничения батареи у производителя.
Проверки на эмуляторе в сеть не ходили и поймать этого не могли.
Теперь на время входа работает служба переднего плана. Приложению с ней
система сеть оставляет.
Значок в шторке со сводкой подключений
Пока есть подключённые облака или идёт вход, в шторке висит значок OpenDisk:
- сколько облаков подключено;
- в развёрнутом виде — по строке на каждое облако: подключено ли и сколько
в нём занято; - идёт ли вход через браузер.
Нажатие на значок возвращает в OpenDisk — в том числе после входа, чего
само приложение из фона сделать не может.
Значок не только для сводки. Подключённое облако система читает через
«Файлы», пока OpenDisk свёрнут, и без службы телефон мог бы отнять сеть и там.
Когда подключений не осталось, значок и служба исчезают.
Разрешение на уведомления теперь спрашивается при первом запуске — раньше
только при подключении облака.
Оформление выпусков
Наверху каждого выпуска — таблица: какой файл под какую систему и процессор,
как понять, какой у вас процессор, и Linux одной командой.
Чего пока нет
- Служба на Android 14 и новее проверена только на сборке: эмулятор в
проверке перед выпуском — Android 10. Если значок не появляется или вход
снова обрывается, напишите, какая у вас версия Android.
OpenDisk 0.5.4 — на телефоне больше не нужно придумывать пароли
Скачать
| Процессор | Windows | macOS | Debian, Ubuntu, Mint, Astra | Fedora, RHEL, RED OS, openSUSE | ALT, Simply Linux | Любой Linux | Android | iPhone, iPad |
|---|---|---|---|---|---|---|---|---|
| x86-64 — Intel, AMD | EXE | DMG | DEB | RPM | RPM | AppImage | APK (универсальный) | |
| ARM64 — Snapdragon, Apple Silicon, телефоны | EXE | DMG | APK | IPA ¹ |
Какой у меня процессор. Windows: «Параметры» → «Система» → «О системе»,
строка «Тип системы». Mac: меню Apple → «Об этом Mac» — «Чип Apple M…» значит
Apple Silicon, «Процессор Intel» — Intel. Телефоны на Android почти все ARM64;
если apk не встал, берите универсальный — он вдвое больше, но подходит любому.
Linux одной командой — скрипт сам определит дистрибутив, возьмёт пакет
именно под него и сверит контрольную сумму:
curl -fsSL https://raw.githubusercontent.com/Chistovik92/opendisk/main/scripts/install.sh | sh¹ Без подписи Apple: ставится через AltStore, SideStore или Sideloadly, подпись
живёт семь дней. Как и чем — docs/IOS.md.
Установщики для Windows, Linux и Android перед выпуском ставятся на настоящие
системы. .dmg и .ipa только собираются — ни Mac, ни iPhone для проверки
у разработчиков нет. Контрольные суммы — в файлах SHA256SUMS-*.
Что нового
Выпуск про то, что на телефоне больше не нужно придумывать пароли.
Вход через браузер на Android и iPhone
Google Диск, Google Фото, OneDrive, Dropbox, Box, pCloud, Яндекс.Диск, Zoho,
HiDrive, Huawei Drive и все остальные сервисы, которые подтверждают доступ
в браузере, теперь добавляются с телефона так же, как на компьютере:
выбрать сервис → выбрать аккаунт → разрешить доступ. Пароль вводить не
нужно, а создавать отдельный «пароль приложения» — тем более.
До 0.5.4 на телефоне было пять сервисов, и все по паролю. Google Диска
не было вовсе.
Как это устроено — коротко, потому что именно здесь всё и держится. rclone
работает внутри приложения, поднимает там же маленький сервер подтверждения
и печатает ссылку входа в свой журнал. Приложение перехватывает журнал и
открывает ссылку: на Android — во вкладке браузера, на iPhone — в окне
входа Apple. Страница сервиса после подтверждения возвращает браузер на этот
сервер — то есть в само приложение, — и rclone получает доступ. Поэтому
ни один сервис не прописан отдельно: как входить, знает rclone, и новые
сервисы в нём сами начнут работать и здесь.
Встроенного окна для входа нет намеренно: Google не пускает на вход из
встроенных браузеров, и правильно — такое окно видит пароль.
На Android после надписи «Success» закройте вкладку браузера — облако
уже в списке. Вернуть вас в приложение само оно не может: открывать свои
окна из фона Android не разрешает.
На iPhone окно входа закроется само.
Полный список сервисов — везде один
Каталог сервисов теперь один на компьютер, Android и iPhone:
- около сорока отобранных сервисов с готовыми адресами и подсказками —
от Google Диска, Proton Drive и MEGA до Cloudflare R2, Selectel,
Yandex Object Storage, Hetzner, Nextcloud и сетевых папок SMB; - и все сервисы, которые знает встроенный rclone, — каждый провайдер S3
отдельной строкой: Alibaba, Tencent, Qiniu, Magalu, OVHcloud, IONOS,
Scaleway, Linode, DigitalOcean и ещё сорок, потому что человек ищет свой
сервис по названию, а не «S3-совместимое хранилище».
Поиск — по названию, стране или другому имени сервиса.
Эта часть списка не устаревает: она строится из самого rclone, и новый
сервис в нём появится здесь без выпуска OpenDisk.
Отмена входа без хвостов
На компьютере «Отмена» во время входа через браузер оставляла два хвоста:
rclone продолжал ждать браузера и держать порт — следующая попытка
упиралась в занятый адрес, — а в списке оставалось облако без доступа,
которое не подключалось, но занимало имя. Теперь rclone будится отказом
по той же ссылке, а недосозданное облако удаляется. На телефонах так же.
Проверено
- каталог сверен с настоящим rclone 1.75.1: каждый бэкенд, провайдер и
поле существуют — опечатку rclone проглотил бы молча. Проверка сразу нашла
одну: тип Google Фото в конфиге —gphotos, а не «google photos»; - на настоящем rclone: запрос создания Google Диска повисает, ссылка
появляется в журнале, отмена по ней будит rclone; - на эмуляторе Android: ссылка входа доходит до приложения через перехват
журнала, отмена работает, в каталоге есть Google Диск, поиск находит
сервисы из полного списка; - iPhone собран без подписи, каталог внутри приложения. Запустить его
по-прежнему не на чем — см. docs/IOS.md.
Чего пока нет
- Сервисы, где rclone спрашивает что-то посреди входа — код двухфакторной
защиты iCloud, личный токен Jottacloud, — есть в полном списке, но
добавление с телефона закончится ошибкой rclone. - Запись в облако с телефона: подключённое облако на Android по-прежнему
только на чтение.
OpenDisk 0.5.3 — телефоны перестали быть просмотрщиками
Скачать
| Процессор | Windows | macOS | Debian, Ubuntu, Mint, Astra | Fedora, RHEL, RED OS, openSUSE | ALT, Simply Linux | Любой Linux | Android | iPhone, iPad |
|---|---|---|---|---|---|---|---|---|
| x86-64 — Intel, AMD | EXE | DMG | DEB | RPM | RPM | AppImage | APK (универсальный) | |
| ARM64 — Snapdragon, Apple Silicon, телефоны | EXE | DMG | APK | IPA ¹ |
Какой у меня процессор. Windows: «Параметры» → «Система» → «О системе»,
строка «Тип системы». Mac: меню Apple → «Об этом Mac» — «Чип Apple M…» значит
Apple Silicon, «Процессор Intel» — Intel. Телефоны на Android почти все ARM64;
если apk не встал, берите универсальный — он вдвое больше, но подходит любому.
Linux одной командой — скрипт сам определит дистрибутив, возьмёт пакет
именно под него и сверит контрольную сумму:
curl -fsSL https://raw.githubusercontent.com/Chistovik92/opendisk/main/scripts/install.sh | sh¹ Без подписи Apple: ставится через AltStore, SideStore или Sideloadly, подпись
живёт семь дней. Как и чем — docs/IOS.md.
Установщики для Windows, Linux и Android перед выпуском ставятся на настоящие
системы. .dmg и .ipa только собираются — ни Mac, ни iPhone для проверки
у разработчиков нет. Контрольные суммы — в файлах SHA256SUMS-*.
Что нового
Выпуск про телефоны: на Android облако перестало жить внутри одного
приложения, на iPhone приложение появилось вообще. И про то, что мешало
пользоваться, — от обрезанных настроек до зависавшего удаления.
Android: облако теперь видно системе
Переключатель напротив облака — и оно появляется в приложении «Файлы» и в
любом окне выбора файла, рядом с памятью телефона. Любая программа, которая
умеет открывать файлы, теперь умеет открывать и файлы из вашего облака.
Пока облако подключено, в шторке висит значок. Это не украшение: система
ходит за файлами и без открытого экрана, и видеть, что приложение работает,
нужно именно там.
Пока только на чтение. Заливка из чужого приложения идёт в фоне, с обрывами
и дозагрузкой, — это отдельная работа, и делать её наполовину нельзя.
Диском с буквой облако на телефоне не станет никогда — ни у нас, ни у
Google Drive, ни у Dropbox: файловые системы монтирует ядро, приложениям
этого не позволено. «Файлы» — официальный и единственный путь, и он пройден.
Добавление облака стало выбором сервиса, как на компьютере: Яндекс.Диск,
Mail.ru, WebDAV, SFTP, FTP — с готовым адресом и предупреждением, что
Яндексу и Mail.ru нужен пароль приложения, а не пароль от аккаунта. Раньше
здесь был список из трёх слов — webdav, sftp, ftp, — и знать, что
Яндекс подключается по WebDAV и по какому адресу, должен был сам человек.
Google Диск, Dropbox и OneDrive по-прежнему не добавляются с телефона: они
подтверждают доступ в браузере, а этот путь должен вернуть человека обратно
в приложение. Теперь об этом сказано прямо в списке сервисов — вместе с
рабочим обходом: добавить их на компьютере и перенести файл rclone.conf.
iPhone: приложение есть, и оно без подписи
В выпуске появился OpenDisk-0.5.3.ipa. Он не подписан сертификатом
Apple — сертификат выдают только участнику платной программы разработчика,
и это не техническая задача.
Неподписанный файл всё же ставится: его подписывает своей учётной записью
тот, кто ставит, — AltStore, SideStore или Sideloadly. Ценой того, что
подпись живёт семь дней, а таких приложений на телефоне может быть не
больше трёх.
Приложение умеет то же, что и на Android, кроме облака в «Файлах»: для этого
нужно расширение, а расширению нужны права, которые Apple выдаёт только
подписанному приложению. Список облаков переносится с компьютера файлом
rclone.conf — через папку OpenDisk в «Файлах».
Чем ставить по шагам, чем отличается Европа от остального мира и что именно
не будет работать — docs/IOS.md.
Windows на ARM вернулась
В 0.5.2 её не выпустили, и причина была не в самой сборке: удаление и
обновление звали приложение убрать за собой и ждали его без конца.
Сборка 0.5.0 для ARM не запускалась вовсе — и установка поверх неё замирала
навсегда, а вылечить это можно было только завершением процесса вручную.
Теперь уборка вызывается с пределом в минуту: зависший лаунчер больше ничего
не вешает — ни на ARM, ни на x64. ARM-сборка снова собирается, и перед
выпуском её ставят, запускают и удаляют на настоящей ARM-машине.
Если у вас стоит 0.5.0 для ARM — просто поставьте 0.5.3 поверх.
Настройки, которые можно прочитать
В 0.5.2 диалог настроек обрезался по нижнему краю: на экране оставалась
включённая галочка без подписи, и понять, что она делает, было нельзя.
(Это было «без ограничения скорости».) Теперь диалог прокручивается и разбит
на разделы.
Заодно переехали две кнопки: «Проверить обновления» и «Удалить
OpenDisk» теперь в настройках, а не в «О приложении». Это единственные
кнопки в окне, которые меняют программу на компьютере, — им не место среди
путей к файлам и лицензий.
И «Настройки приложения» появились в меню трея: приложение живёт
свёрнутым, и путь «показать окно → найти кнопку» был лишним шагом ради
галочки.
На телефонах настройки стали отдельным экраном: оформление, язык, сведения
о приложении.
Тема — из системы, на всех платформах
Светлая или тёмная — как в системе, и переключается вместе с ней, без
перезапуска. Оттуда же берётся цвет выделения: тот, которым система
подсвечивает кнопки. На Android 12 и новее приложение берёт палитру телефона
целиком — ту, что построена от обоев.
Если хочется иначе — в настройках есть выбор: как в системе, светлое,
тёмное.
Мелочи
operations/statиoperations/copyfileв общем клиенте rclone — на них
держится чтение файлов из «Файлов» на Android.- Проверка перед выпуском выросла: теперь она ещё и ставит apk на эмулятор
вместе с проверкой, что подключённое облако действительно становится
корнем для системы.
OpenDisk 0.5.2 — то, что 0.5.0 сломал молча
Скачать
| Процессор | Windows | macOS | Debian, Ubuntu, Mint, Astra | Fedora, RHEL, RED OS, openSUSE | ALT, Simply Linux | Любой Linux | Android | iPhone, iPad |
|---|---|---|---|---|---|---|---|---|
| x86-64 — Intel, AMD | EXE | DMG | DEB | RPM | RPM | AppImage | APK (универсальный) | |
| ARM64 — Snapdragon, Apple Silicon, телефоны | DMG | APK |
Какой у меня процессор. Windows: «Параметры» → «Система» → «О системе»,
строка «Тип системы». Mac: меню Apple → «Об этом Mac» — «Чип Apple M…» значит
Apple Silicon, «Процессор Intel» — Intel. Телефоны на Android почти все ARM64;
если apk не встал, берите универсальный — он вдвое больше, но подходит любому.
Linux одной командой — скрипт сам определит дистрибутив, возьмёт пакет
именно под него и сверит контрольную сумму:
curl -fsSL https://raw.githubusercontent.com/Chistovik92/opendisk/main/scripts/install.sh | sh¹ Без подписи Apple: ставится через AltStore, SideStore или Sideloadly, подпись
живёт семь дней. Как и чем — docs/IOS.md.
Установщики для Windows, Linux и Android перед выпуском ставятся на настоящие
системы. .dmg и .ipa только собираются — ни Mac, ни iPhone для проверки
у разработчиков нет. Контрольные суммы — в файлах SHA256SUMS-*.
Что нового
Выпуск про то, что 0.5.0 сломал молча, — и про проверку, которая больше
такого не пропустит.
Что было сломано
Кнопка «Обновить» на Windows перестала ставить обновление. Она искала
установщик .msi, а с 0.5.0 выпуски выходят в .exe. Кнопка молча
превращалась в ссылку на страницу выпуска. Теперь она берёт .exe и ставит
его сама.
С 0.4.x и 0.5.0 обновитесь один раз вручную: скачайте
.exeотсюда
и запустите поверх — настройки и облака сохранятся. Со следующего выпуска
кнопка снова всё сделает сама.
Удаление изнутри приложения оставляло запись-сироту. После «О приложении
→ Удалить OpenDisk» программа исчезала, а в «Программах и компонентах»
оставалась строка «OpenDisk». Удалялся скрытый MSI внутри установщика, а не
сам установщик. Теперь удаляется целиком. А если удаление не запустилось —
например, не были выданы права, — приложение об этом скажет, а не просто
закроется.
Обновление поверх работающего приложения оставляло хвосты. Установщик
закрывал OpenDisk, но уже после того, как пытался удалить файлы прошлой
версии, — и Windows откладывала их удаление до перезагрузки. После этого
ни удаление, ни следующее обновление не работали, пока компьютер не
перезагрузят. Теперь приложение само по-хорошему отключает диски, гасит
rclone и выходит, а установщик запускается только после этого — и
возвращает приложение, даже если в правах администратора отказали.
Нашла это проверка на настоящей Windows, о которой ниже.
Пакет для ALT и Simply Linux требовал не тот FUSE: libfuse3 — это
только библиотека, а rclone для подключения диска нужна программа
fusermount3 из пакета fuse3. Встроенный rclone в нём был неисполняемым,
а работающая копия приложения при обновлении не закрывалась. Всё исправлено.
Android: пароль при добавлении облака печатался открытым текстом; облако
нельзя было удалить; номер версии для системы навсегда оставался единицей.
Android: обновления теперь встают поверх
С этого выпуска apk подписан постоянным ключом издателя. Раньше каждая сборка
подписывалась случайным отладочным ключом, и Android отказывался ставить новую
версию поверх старой.
Если у вас стоит 0.5.0 — удалите его один раз и поставьте 0.5.2: подписи
у них разные, и поверх Android его не поставит. Облака придётся добавить
заново. Дальше обновления будут вставать поверх, как обычно.
Отпечаток сертификата — чтобы проверить, что apk подписан именно им:
SHA-256: 1F:8E:8C:5D:A1:97:C3:FD:0C:91:42:60:42:CA:AF:02:F7:61:CE:30:B7:77:1D:AC:53:88:54:48:CB:D9:39:9B
Кроме того, приложение теперь на двух языках, как и десктоп: русский и
английский, по языку телефона.
Каждый установщик теперь ставится до выпуска
Все поломки выше объединяет одно: установщики собирались, но никто их не
ставил. Теперь это делает CI, и релиз не публикуется, пока проверка не пройдёт.
- Windows — путь, которым идут люди: старый
.msi0.4.1 →
прошлый.exe→ обновление работающего приложения тем самым сценарием,
который запускает кнопка «Обновить» → новая версия запустилась и подняла
rclone → удаление тем сценарием, который запускает приложение, и после
него нет ни файлов, ни записей в реестре. - Linux — тем самым
install.sh, которым ставят люди, в чистых
Debian 12, Ubuntu 22.04 и 24.04, Fedora 41, openSUSE Leap 15.6 и ALT p10:
выбрал ли скрипт пакет своего дистрибутива, ставится ли он, обновляется ли
с прошлой версии, исполняем ли rclone, поднимается ли приложение. - Android — на эмуляторе, как и раньше.
Windows на ARM в этом выпуске нет
Проверка перед выпуском нашла, что сборка 0.5.0 для ARM не запускалась
вовсе: её лаунчер не доходил даже до уборки за собой. Новая сборка на ARM
запускается, но проверена не целиком — удаление ещё не пройдено, а
обновление поверх 0.5.0 зависает: установщик ждёт, пока старая версия
уберёт за собой, а она не стартует. Выпуск задерживать не стали — ARM
вернётся в 0.5.3.
До тех пор на ARM ставьте OpenDisk-0.5.2-x64.exe: Windows 11 на ARM
запускает x64-программы под эмуляцией. Должно работать, но на ARM это
не проверялось — если попробуете, расскажите.
Если у вас стоит 0.5.0 для ARM и установка поверх неё замерла, завершите
OpenDisk в диспетчере задач — установщик ждёт именно его и после этого
продолжит.
Попутно install.sh научился ставить из скачанных файлов без интернета:
OPENDISK_PACKAGE_DIR=/путь/к/файлам sh install.sh— и обновлять списки пакетов перед установкой: на свежей системе без этого
apt не находил зависимостей.
iOS
По-прежнему нет, и по той же причине: установщик для iPhone обязан быть
подписан сертификатом Apple, а его выдают только участнику платной программы
разработчика.
OpenDisk 0.5.0 — установщик под каждую машину
Выпуск про упаковку: приложение то же, а получить его должно быть одинаково
просто на любой машине. Установщиков стало десять вместо пяти.
Windows: .exe вместо .msi, и отдельно под ARM
OpenDisk-0.5.0-x64.exe— обычные компьютеры;OpenDisk-0.5.0-arm64.exe— ноутбуки на ARM (Snapdragon X и подобные).
MSI не переписан, а убран внутрь exe: вся его логика — закрытие работающего
приложения при обновлении, стабильные идентификаторы компонентов, уборка при
удалении — далась дорого, и менять её ради расширения файла было бы напрасным
риском. Снаружи теперь привычный установщик, который и Windows, и браузеры
встречают спокойнее.
Выбор каталога и галка «запустить после установки» никуда не делись — они
переехали на уровень обёртки.
macOS: два образа вместо одного
OpenDisk-1.5.0-arm64.dmg— Mac на Apple Silicon;OpenDisk-1.5.0-x64.dmg— Mac на Intel.
Раньше собирался ровно один, и какой именно — зависело от того, какой раннер
сегодня достался сборке. Мажорная единица в номере — требование macOS, он не
принимает ноль.
По-прежнему никем не проверялось: Mac у разработчиков нет.
Linux: свой пакет для ALT и Simply Linux
Скрипт установки теперь определяет дистрибутив, а не только пакетный
менеджер, и берёт пакет именно под него:
| Дистрибутив | Файл |
|---|---|
| Debian, Ubuntu, Mint, Astra | opendisk_0.5.0-1_amd64.deb |
| ALT Linux, Simply Linux | opendisk-0.5.0-alt1.x86_64.rpm |
| Fedora, RHEL, Rocky, RED OS, openSUSE | opendisk-0.5.0-1.x86_64.rpm |
| любой другой | OpenDisk-0.5.0-x86_64.AppImage |
ALT — не производная Fedora и не совместим с ней по именам зависимостей:
пакет от jpackage там либо не ставился, либо тянул не то, а выглядело это
как «установщик сломан». Теперь его собирает контейнер самого ALT.
Посмотреть, что выберется на вашей машине, ничего не устанавливая:
curl -fsSL https://raw.githubusercontent.com/Chistovik92/opendisk/main/scripts/install.sh |
OPENDISK_DRY_RUN=1 shВыбор проверяется тестом на файлах /etc/os-release полутора десятков
дистрибутивов: живых ALT, Astra и RED OS для проверки нет и не будет,
а их os-release известен.
Android: приложение, а не только ядро
OpenDisk-0.5.0-arm64.apk— все современные телефоны;OpenDisk-0.5.0-universal.apk— если первый не встал.
Умеет: список облаков с занятым местом, добавление облака логином и паролем
(WebDAV, SFTP, FTP), просмотр содержимого по папкам, ссылку на файл. Всё это
работает на общем с десктопом коде — тот же самый RcloneClient.
Чего нет: диска в системном «Файлы». Для этого нужен DocumentsProvider,
и он в работе. Пока приложение — отдельное окно, а не диск, через который
работают другие программы. Сервисы с подтверждением в браузере (Google Диск,
Dropbox) тоже пока не добавляются.
Приложение подписано отладочным ключом: своего у проекта нет, а
самоподписанный в открытом репозитории — это ключ, который есть у всех.
Android предупредит, что источник неизвестен, — так и должно быть.
iOS
Установщика нет и в этом выпуске быть не может. Причина не техническая: файл,
который ставится на iPhone, обязан быть подписан сертификатом Apple, а его
выдают только участнику платной программы разработчика. Без неё приложение
не поставить даже себе.
Собрано и проверено то, что собрать можно: ядро rclone под iOS — см.
librclone-ios-v1.75.1 на странице релизов.
Заодно
Неполный релиз больше не может уехать наружу: он создаётся черновиком, а
публикует его отдельный шаг после всех сборок сразу и только убедившись, что
установщики есть под каждую платформу и каждую архитектуру. Проверка «есть
хоть один .exe» не годится — упади только ARM-сборка, релиз с одним x64
прошёл бы как полный.
Под капотом подняты Kotlin до 2.1.21 и Compose до 1.8.2: без 1.8 сборки под
Windows ARM не существует в природе.
OpenDisk 0.4.1 — ссылка на файл прямо из приложения
Первая новая возможность за две ветки, а не починка: ссылку на файл теперь
можно получить прямо из приложения, не заходя на сайт сервиса.
Ссылка на файл
У подключённого облака появилась кнопка «Ссылка на файл». Она открывает
выбор файла сразу на диске этого облака; выбрали файл — приложение просит у
сервиса публичный адрес и показывает его. Кнопка «Копировать» кладёт адрес в
буфер обмена.
Ссылку выдаёт сам сервис, а не OpenDisk. По ней файл скачает любой, у кого
она есть, — без аккаунта и без установленных программ.
Ссылку можно отозвать оттуда же, откуда выдали. Сделать файл публичным
легко, и закрыть доступ должно быть так же легко; иначе оставался бы один путь —
идти на сайт сервиса. Файл при этом остаётся на месте, перестаёт работать
только адрес.
Ссылку выдаёт то облако, где файл лежит на самом деле
Приложение раскладывает местный путь на подключённом диске (Z:\Отчёты\март.pdf)
обратно на облако и путь внутри него (яндекс + Отчёты/март.pdf) и обращается
к нужному сервису.
Облако определяется по самому пути, а не по кнопке, с которой начали: если
в диалоге выбора уйти на соседний подключённый диск, ссылка придёт от него.
Иначе получилась бы ссылка на файл, которого в том облаке нет.
Выбрали файл с обычного диска — приложение так и скажет: ссылку может выдать
только то облако, в котором файл хранится.
Кнопки нет там, где ссылок не бывает
Публичные ссылки есть не у всех: у SFTP, FTP и обычного WebDAV их нет в самом
протоколе — в том числе у Яндекс.Диска, подключённого по WebDAV. Умеет ли
бэкенд ссылки, приложение спрашивает у самого rclone, а не берёт из зашитой в
код таблицы, которая устаревала бы молча. Кнопка, которая заведомо привела бы
к отказу, просто не показывается.
Ссылки умеют Яндекс.Диск (родным подключением), Google Диск, Dropbox, OneDrive.
Почему 0.4.1, а не 0.4.0
0.4.0 доехал только до Windows. Новые тесты сверяли сообщение об ошибке с
русской подстрокой, а язык интерфейса берётся из системы: на англоязычных
раннерах Linux и macOS то же самое сообщение приходило по-английски, тесты
падали, и сборка пакетов до выкладывания не доходила — а Windows дошёл и
опубликовал релиз с одним лишь установщиком.
Исправлено и то, и другое: тесты больше не зависят от языка, а релиз теперь
создаётся черновиком и публикуется отдельным шагом только после всех трёх
сборок сразу, с проверкой, что установщики есть под каждую платформу. Упала
хоть одна — релиз останется черновиком и наружу не уйдёт.
Пользуйтесь 0.4.1: в 0.4.0 нет пакетов для Linux и macOS.
Кроме того
Ссылки написаны в общем модуле, поэтому на Android они уже работают —
инструментальные тесты гоняют их через librclone на эмуляторе. Интерфейса на
телефоне пока нет.
Заодно впервые собрано ядро rclone под iOS (.xcframework, устройства и
симулятор). В документации rclone про iOS было сказано, что gomobile «должен
работать», и это никем не проверялось; теперь проверено — собирается.
librclone 1.75.1 для iOS
librclone 1.75.1, собрана gomobile для iOS (arm64) и симулятора.
Это не приложение, а библиотека для сборки iOS-клиента OpenDisk.
SHA-256: 75b4290693f046616945e7567c657824813f85bf2c6f9685c88e627cc61bc771
OpenDisk 0.3.1 — видно, где искать подключённый диск
Исправление по следам жалобы «диск не монтируется, хотя вроде бы включен».
Проверка на живой машине показала, что монтирование работало: диск был на месте
и читался за секунду. Не работало другое — понимание, куда смотреть.
Что было не так
В 0.2.6 диски на Windows стали сетевыми, чтобы медленное облако не
подвешивало проводник. Побочное следствие тогда не было описано: сетевые диски
Windows показывает не среди C: и D:, а отдельным разделом «Сетевые
расположения» ниже. Подпись при этом была yandex (\server) — по ней не
понять ни чей это диск, ни откуда он взялся.
Человек открывает «Этот компьютер», среди дисков ничего не находит и делает
единственно разумный вывод: не смонтировалось.
Что исправлено
Понятное имя. Теперь диск подписан yandex (\OpenDisk). Имя тома задаётся
полным UNC-путём — rclone берёт такой путь как есть, а к простому имени
приписывает свою заглушку \server, откуда та и бралась.
Прямая подсказка в списке облаков. Вместо «подключено к F:» теперь
«подключено к F: — в разделе «Сетевые расположения»».
Выбор вернулся. В настройках облака появилась галка «Показывать обычным
диском, а не сетевым». В 0.2.6 я забрал этот выбор молча, а он не односторонний:
обычный диск привычнее и лежит среди остальных, но Windows начинает его
индексировать и опрашивать при каждом открытии «Этого компьютера» — с медленным
облаком это подвешивает проводник. Обе стороны описаны в подсказке, решает
пользователь.
Заодно подтвердилось
Свой идентификатор приложения Google снимает торможение полностью. Тот же
диск, который в 0.2.6 отдавал список из 65 файлов за 33–49 секунд, теперь
отвечает за 0,7 секунды. Если Google Диск у вас всё ещё медленный —
см. руководство, это решается.
Установка
| Система | Файл |
|---|---|
| Windows 10/11, 64 бита | OpenDisk-0.3.1.msi |
| Debian, Ubuntu и производные | opendisk_0.3.1-1_amd64.deb |
| Fedora, RHEL, openSUSE, ALT | opendisk-0.3.1-1.x86_64.rpm |
| Любой Linux | OpenDisk-0.3.1-x86_64.AppImage |
| macOS | OpenDisk-1.3.1.dmg — не проверялся, Mac у разработчиков нет |
OpenDisk 0.3.0 — приложение запускается само после установки
Минорный выпуск. Приложение теперь запускается после установки и после
обновления — раньше его приходилось открывать вручную, а при обновлении оно
и вовсе исчезало с экрана: установщик закрывал старую копию и не возвращал
новую.
Windows
На последней странице установщика появилась галка «Запустить OpenDisk»,
отмеченная по умолчанию. Работает и при первой установке, и при обновлении.
Обновление изнутри приложения идёт в сокращённом режиме, где последней страницы
нет вовсе, поэтому там запуск делается явно: установщик отрабатывает, и сразу
за ним стартует новая версия.
Linux
Раз пакет теперь сам закрывает приложение ради обновления (это появилось
в 0.2.9), он же его и возвращает: запоминает, чья копия работала и в каком
сеансе, и запускает обратно уже новую.
Сделано по-хорошему, а не наверняка: рабочих сред много, где-то запуск может
не получиться — тогда приложение придётся открыть самому. Сломать обновление
это не может.
Новая дорожная карта
ROADMAP.md
переписан по версиям приложения вместо прежних «этапов». Этапы шли не по
порядку, а версии выходили чаще, чем этапы закрывались, — по такой карте нельзя
было понять, что уже можно поставить.
Теперь: выпущенное разложено по веткам 0.1.x и 0.2.x, дальнейшее — по 0.4–1.0
(диагностика медленного облака, macOS, Android, iOS), и отдельно перечислено то,
чего в карте нет намеренно и почему.
Установка
| Система | Файл |
|---|---|
| Windows 10/11, 64 бита | OpenDisk-0.3.0.msi |
| Debian, Ubuntu и производные | opendisk_0.3.0-1_amd64.deb |
| Fedora, RHEL, openSUSE, ALT | opendisk-0.3.0-1.x86_64.rpm |
| Любой Linux | OpenDisk-0.3.0-x86_64.AppImage |
| macOS | OpenDisk-1.3.0.dmg — не проверялся, Mac у разработчиков нет |
OpenDisk 0.2.9 — rpm наконец собирается правильно
Исправление по жалобе: после установки 0.2.8 поверх 0.2.6 через rpm продолжала
работать 0.2.6 — установщик не выгрузил рабочий процесс.
Так и оказалось, но при разборе пакета нашлось не одно, а три отдельных
нарушения. Каждое проверено на настоящих пакетах.
rclone в rpm был неисполняемым
Встроенный rclone лежал в пакете с правами 644. Для deb это чинилось при
сборке с самого начала, для rpm — никогда. Всё это время на rpm-системах
приложение работало только через запасной путь с копированием бинарника
в кэш пользователя.
После обновления пропадал ярлык
Порядок сценариев у rpm такой (проверено на пробных пакетах):
%pre новой (arg=2) → %post новой (arg=2) → %preun старой (arg=1)
То есть xdg-desktop-menu uninstall из старой версии срабатывал уже после
того, как новая создала ярлык, и стирал его. Теперь ярлык создаётся
в %posttrans — он выполняется последним во всей операции, после всех
%preun, и созданное там переживает удаление старой версии.
Работающая копия не останавливалась
Собственно жалоба. В Linux файлы заменяются и под запущенным процессом,
поэтому старая версия продолжала работать как ни в чём не бывало — с точки
зрения пользователя обновление просто не происходило.
Теперь %pre новой версии гасит её по TERM, ждёт до пятнадцати секунд
и добивает; заодно гасит осиротевший rclone, который держит смонтированные
диски. Проверено сквозняком: пакет ставится, при обновлении процесс с тем же
именем останавливается, пакет остаётся один, rclone исполняемый.
То же сделано для deb — там это preinst новой версии.
Обновление на 0.2.9 ещё придётся закрыть вручную: останавливает процесс
сценарий новой версии, а на вашей машине сейчас стоит старая, без него.
Начиная с 0.2.9 обновления будут закрывать приложение сами.
Инструкция по своему идентификатору Google
В руководстве появился
полный порядок: от создания проекта до ввода в приложение — с отдельным упором
на шаг «добавить себя в тестировщики». Без него Google отвечает
«403: access_denied», и владелец приложения не исключение.
Установка
| Система | Файл |
|---|---|
| Windows 10/11, 64 бита | OpenDisk-0.2.9.msi |
| Debian, Ubuntu и производные | opendisk_0.2.9-1_amd64.deb |
| Fedora, RHEL, openSUSE, ALT | opendisk-0.2.9-1.x86_64.rpm |
| Любой Linux | OpenDisk-0.2.9-x86_64.AppImage |
| macOS | OpenDisk-1.2.9.dmg — не проверялся, Mac у разработчиков нет |