Автор Тема: Документация по gear  (Прочитано 3057 раз)

Оффлайн gBopHuk

  • alt linux team
  • ***
  • Сообщений: 584
  • Simply LInux
    • Email
Документация по gear
« : 06.04.2011 17:29:23 »
Гсопода, есть ли на свете подробная документация по gear? Нашёл только http://www.altlinux.org/Краткое_руководство_по_сборке_пакета

Всё, вроде, сделал так как написано:

- Создал папку bmpanel2
- В неё закинул спек и распакованные исходники
- создал .gear c файлом rules
- Сделал git init, появилась папка .git

Всё это выглядит так
$ ls -al
итого 5
drwxr-xr-x 5 gbophuk gbophuk  152 Мар 14 21:52 .
drwxrwxrwx 6 gbophuk gbophuk  144 Мар 14 21:45 ..
drwxr-xr-x 9 gbophuk gbophuk 1488 Мар 14 21:44 bmpanel2
-rw-rw-rw- 1 gbophuk gbophuk  848 Мар 14 14:23 bmpanel2.spec
drwxr-xr-x 2 gbophuk gbophuk   72 Мар 14 21:45 .gear
drwxr-xr-x 7 gbophuk gbophuk  248 Мар 14 21:52 .git


Но при команде gear-hsh выдаёт:
$ gear-hsh
fatal: Needed a single revision
gear: Invalid commit "HEAD"

Что конкретно значит single revision? Что за "HEAD"? Не понятно  :(
И где бы про всё, про это прочесть?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Re: Документация по gear
« Ответ #1 : 06.04.2011 17:42:50 »
Господа, есть ли на свете подробная документация по gear?
http://altlinux.org/Gear
Цитировать
fatal: Needed a single revision
Хотя бы один коммит в Git сделайте.
Цитировать
И где бы про всё, про это прочесть?
http://www.altlinux.org/Git
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Re: Документация по gear
« Ответ #2 : 06.04.2011 17:44:22 »
Кстати, в разделе «Фиксирование изменений» указанной вами документации есть и git commit -a. :)
Андрей Черепанов (cas@)

Оффлайн gBopHuk

  • alt linux team
  • ***
  • Сообщений: 584
  • Simply LInux
    • Email
Re: Документация по gear
« Ответ #3 : 06.04.2011 21:11:31 »
Как то трудно связать всё воедино.

"Фиксирование изменений
Чтобы зафиксировать все ваши изменения, выполните:
gear-commit -a"

Просто никаких изменений не было сделано

То есть нужно всегда делать коммит, даже если изменений не было?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Re: Документация по gear
« Ответ #4 : 07.04.2011 13:52:44 »
То есть нужно всегда делать коммит, даже если изменений не было?
Читайте целиком. До этого писалось, что нужно сделать spec-файл и .gear/rules. Их и коммитят.
Фактически для Git-репозитория с нуля нужен хотя бы один коммит.
Андрей Черепанов (cas@)

Оффлайн gBopHuk

  • alt linux team
  • ***
  • Сообщений: 584
  • Simply LInux
    • Email
Re: Документация по gear
« Ответ #5 : 19.04.2011 11:26:06 »
Чего-то совсем запутался.

после gear-commit -a
gear-hsh -v

говорит

gear: .gear/rules line 1: tree "bmpanel2" not found in "HEAD"

.gear/rules выглядят вот так
tar.gz : bmpanel2
Вроде понятно что не может найти папку. Если сделать git add . , то в git commit -a пишет
On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   .gear/rules
#       new file:   bmpanel2
#       new file:   bmpanel2.spec

Вот не могу понять где ошибка: либо как-то не так git add делаю, либо gear/rules не так заполняю

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Re: Документация по gear
« Ответ #6 : 19.04.2011 15:37:43 »
gear: .gear/rules line 1: tree "bmpanel2" not found in "HEAD"
Это вы указали подкаталог. Такой подкаталог есть? Если нет, то поставьте .:
tar.gz: .
Цитировать
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   .gear/rules
#       new file:   bmpanel2
#       new file:   bmpanel2.spec
Так сделайте коммит. Если неохота с Vim разбираться, выполните
export EDITOR=mceditбудет проще. Похоже, коммит не зафиксирован.

Кстати, git commit -a делает то же, что и git add . и git commit (то есть добавляет все изменённые файлы).
Андрей Черепанов (cas@)

Оффлайн gBopHuk

  • alt linux team
  • ***
  • Сообщений: 584
  • Simply LInux
    • Email
Re: Документация по gear
« Ответ #7 : 19.04.2011 16:12:07 »
Подкаталог то есть такой, вот только его распознаёт как файл. Сейчас собрал другой пакет, там с помощью команды gear-update -c tarfile все каталоги добавились в индекс с лёту. А этот пакет я собираю с git clone --depth=1 git://github.com/nsf/bmpanel2.git, может у них структура немного другая, мож чего подправит надо?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Re: Документация по gear
« Ответ #8 : 19.04.2011 18:26:35 »
этот пакет я собираю с git clone --depth=1 git://github.com/nsf/bmpanel2.git, может у них структура немного другая, мож чего подправит надо?
Конечно, другая!
Если берут из тарболла (tar.gz), то кладут в подкаталог, а выше его размещают .spec и патчи. Если используется апстримовый git, то добавляется .spec, .gear/rules (или .gear-rules) с правилом
tar.gz: . name=bmpanel2 base=bmpanel2В src.rpm во время генерации будет создан тарболл bmpanel2-<version>.tar.gz с подкаталогом bmpanel2
В спеке нужно прописать:
%setup -q -n bmpanel2для правильного определения подкаталога.
« Последнее редактирование: 19.04.2011 18:28:22 от Skull »
Андрей Черепанов (cas@)

Оффлайн gBopHuk

  • alt linux team
  • ***
  • Сообщений: 584
  • Simply LInux
    • Email
Re: Документация по gear
« Ответ #9 : 19.04.2011 22:20:38 »
Вот оно чё, а то я в документациях запутался. То есть спек, gear/rules и исходники должны находиться в одном каталоге?

Оффлайн ToraBora

  • alt linux team
  • ***
  • Сообщений: 125
    • Email
Re: Документация по gear
« Ответ #10 : 19.04.2011 22:51:40 »
Вот оно чё, а то я в документациях запутался. То есть спек, gear/rules и исходники должны находиться в одном каталоге?
Да, документация далеко не идеальная, но учтите, что у многих мейнтейнеров и такой не было во время освоения gear. По-моему, весьма полезно смотреть на устройство gear-репозиториев пакетов на http://git.altlinux.org/ (например http://git.altlinux.org/people/mike/packages/?o=age, зайти в <пакет>.git, потом tree на строчке коммита). Там Вы можете заметить, что есть два варианта - либо один каталог с иходниками + в нем же имя.spec и каталог .gear, либо каталог с именем пакета+имя.spec+.gear раздельно (если репо не на основе апстримового гита). В Вашем случае должны распологаться в одном.

Оффлайн gBopHuk

  • alt linux team
  • ***
  • Сообщений: 584
  • Simply LInux
    • Email
Re: Документация по gear
« Ответ #11 : 19.04.2011 22:59:46 »
Да это я давно заметил, просто пытался в документации найти ответ и понять какой вариант мой. А тут просто для уверенности хотелось услышать утвердительный ответ =))
 tar.gz: . name=bmpanel2 base=bmpanel2
Тут вот прочёл что должен прокатить такой вариант

tar.gz: . name=@name@ base=@name@
где @name@ значение в строке Name в spec файле

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Re: Документация по gear
« Ответ #12 : 20.04.2011 11:57:09 »
Тут вот прочёл что должен прокатить такой вариант
tar.gz: . name=@name@ base=@name@
Да, так тоже будет работать.
Андрей Черепанов (cas@)