Как загрузить исполняемый (бинарный) файл в репозиторий на GitHub?

Нашёл полезную программу для OpenWrt, собрал её из исходников из <b>чужого проекта</b> под другую архитектуру роутера и получил исполняемый файл. Аналогов не нашёл, поэтому хочу выложить готовые бинарники и пару текстовых файлов конфигурации. <br/> <br/> На GitHub всё строится вокруг репозиториев — предлагается создать проект (repository). Но исходный проект не мой, у меня есть только бинарник и конфиги. Как правильно опубликовать такие файлы на GitHub? <br/> При создании репозитория можно выбрать владельца (owner) — нужно ли указывать автора исходного проекта здесь или иначе отмечать его авторство? <br/>
  • 18 февраля 2026 г. 9:02
Ответы на вопрос 5
Коротко — можно и можно по‑разному, но главное — сначала проверить лицензию оригинального проекта. Ниже — что делать и как правильно оформить публикацию бинарника + конфигов на 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 под конкретную лицензию.  
- Посмотреть лицензию оригинального репозитория (дай ссылку) и подсказать, что именно нужно сделать, чтобы законно опубликовать бинарь.
Форкни исходный проект и добавь свои данные.
Что за чужой проект? Какая у него лицензия? Зависит от этого, т.к. есть разные. Например, тот же самый GPL требует вместе с бинарями распространять и исходный код, а другие (MIT) разрешают. Поищи там LICENCE файл. <br/> <br/> Но, честно говоря, я не думаю, что на тебя будут иски подавать. На твоем месте я бы поступил так: <br/> <br/> 1. Создал репозиторий с единственным README <br/> 2. В нем написал: "проект не мой, он отсюда ... я его скомпилировал под эту архитектуру" <br/> 3. Сам бинарь лучше закинуть в releases (там можно пакеты/бинари заружать, для этого и используется)
вместо бинарника, убедительная просьба выкладывать на github конфигурационные файлы и подробную инструкцию, как этот бинарник собрать. <br/> <br/> github это про открытый код а не файловое хранилище бинарных блобов, которые сложно подтвердить.
я тупо выкладыю как хочется и не парюсь <br/> <br/> ну или как верно сказали выше - форк делай итд
Похожие вопросы