Коротко — можно и можно по‑разному, но главное — сначала проверить лицензию оригинального проекта. Ниже — что делать и как правильно оформить публикацию бинарника + конфигов на GitHub.
1) Проверить лицензию и права
- Найдите в исходном проекте файл LICENSE/ COPYING или информацию на сайте/репо.
- Если лицензия разрешает распространение (MIT/BSD/Apache — обычно да при указании авторства), можно публиковать, указав авторство и приложив лицензию.
- Если GPL/AGPL — при распространении бинаря вы обязаны сделать доступным исходники (или дать письменное предложение); лучше ссылку на исходники и/или упаковать исходники/скрипты сборки.
- Если исходники не имеют лицензии (All rights reserved), то по умолчанию вы не можете перераспространять бинарь без разрешения автора — нужно попросить разрешение.
Не публикуйте ничего, если лицензия запрещает или неясна — сначала спросите автора.
2) Кому назначить репозиторий (Owner)
- Репозиторий создаёте под своей учётной записью или организацией, которой вы управляете. Не указывайте в качестве «owner» оригинального автора — вы не можете так просто присвоить чужой аккаунт.
- Обязательно явно укажите авторство оригинального проекта в README и добавьте ссылку на исходный репозиторий/автора. Пример строки: «This repo contains prebuilt binaries of project X by <имя автора> — source: <ссылка>, licensed under <название лицензии>. Built by <ваше имя> for <архитектура>.»
3) Как структурировать репо и где хранить бинарь
Варианты:
- GitHub Releases (рекомендуется для готовых бинарников)
- Создаёте релиз (Tags → Draft a new release) и прикрепляете бинарные файлы как assets. Удобно для версии/чейнджлога и для пользователей, которые скачивают только готовые файлы.
- Релизы позволяют добавлять подписи и чеки (см. ниже).
- Хранить в репозитории
- Можно положить файлы в папку, напр. /bin или /prebuilt и закоммитить. Но Git плохо подходит для больших/многочисленных двоичных файлов.
- GitHub отбрасывает файлы >100 MB при попытке push — в этом случае используйте Git LFS.
- Git LFS
- Установите git-lfs, закомментируйте шаблоны файлов (.gitattributes), закоммитьте и пушьте как обычно. Подходит для больших бинарей.
4) Технические шаги (пример)
- Создать репозиторий на GitHub (веб-интерфейс).
- Локально:
- mkdir my-prebuilt && cd my-prebuilt
- git init
- echo "Описание и атрибуция" > README.md
- echo "Copyright ..." > NOTICE или LICENSE_COPY
- mkdir bin && cp /path/to/your/binary bin/myprog
- chmod +x bin/myprog # чтобы сохранить executable-бит в git (на Unix)
- git add .
- git commit -m "Add prebuilt myprog for arch X (built from <link-to-src>)"
- git remote add origin git@github.com:you/yourrepo.git
- git push -u origin main
(Если бинарь >100 MB — предварительно подключите git lfs:
git lfs install
git lfs track "bin/*"
git add .gitattributes
)
- Или: не пушить бинарь в ветку, а зайти на GitHub → Releases → Draft a new release → прикрепить бинарь как asset.
5) Что ещё важно добавить в репо
- README: что это за программа, для какой архитектуры, версия, как запускать/устанавливать, откуда взят исходник (ссылка), дата сборки, используемая toolchain/компилятор, команды сборки (если вы их делали).
- LICENSE / NOTICE: включите лицензию оригинального проекта (если требуется) и своё уведомление о перераспространении.
- Шифруйте/подпишите: добавьте SHA256/SHA512 суммы для бинарей и (по возможности) GPG-подпись, чтобы пользователи могли проверить подлинность.
- Конфигурационные файлы и примеры установки (инструкции для OpenWrt: куда класть, команды opkg/scp и т.п.).
- Если вы модифицировали исходники — ясно укажите, что было изменено, и опубликуйте патчи/источники в соответствии с лицензией.
6) Пример формулировки в README (рус.)
- «Этот репозиторий содержит предварительно собранный бинарный файл myprog (архитектура mipsel), собранный из исходников проекта X (ссылка). Исходный проект авторства <имя>, лицензия: <название>. Я (ваше имя) собрал(а) этот бинарник для OpenWrt 19.07. Используйте на свой страх и риск. SHA256: <хеш>. Сборочный скрипт и/или ссылка на исх.: <ссылка>.»
7) Безопасность и доверие
- Публикуйте контрольные суммы и, если можете, подпись GPG. Поясните, на каком устройстве/версиях прошивки тестировали. Укажите известные риски.
Резюме
- Сначала — лицензия. Если OK — создаёте репозиторий под своим аккаунтом, добавляете README + указание авторства, кладёте бинарь в Releases (рекомендуется) или в репо (или в Git LFS при больших файлах), добавляете checksum/инструкции. Не ставьте в качестве владельца оригинального автора; вместо этого явно укажите его авторство и ссылку на исходный проект.
Если хочешь, могу:
- Помочь сформулировать текст README/NOTICE под конкретную лицензию.
- Посмотреть лицензию оригинального репозитория (дай ссылку) и подсказать, что именно нужно сделать, чтобы законно опубликовать бинарь.