Создать пакет pgn-extract

Я хочу создать пакет для установки последней версии pgn-extract . Я скачал pgn-extract.tgz и распаковал архив. Но я сам не могу думать дальше, потому что у меня нет опыта в концепции создания пакетов.

-1
21.04.2017, 04:37
1 ответ

Самый простой способ (для некоторого значения "самый простой") сделать это - загрузить существующий pgn-extract пакет и использовать его как основу:

  1. загрузить текущий исходник:

    wget ftp://ftp.cs.kent.ac.uk/pub/djb/pgn-extract/pgn-extract.tgz
    
  2. извлечь его:

    tar xf pgn-extract.tgz
    
  3. определить номер версии:

    grep Version pgn-extract/index.html
    

    (Я получил "17-38", поэтому буду использовать его в следующих инструкциях; если у вас более поздняя версия, замените "17" и "38" соответствующим образом)

  4. соедините tarball с ".orig" tarball, который будет ожидаться инструментами сборки Debian:

    ln -s pgn-extract.tgz pgn-extract_17.38.orig.tar.gz
    
  5. скачайте исходный пакет и извлеките его:

    apt-get source pgn-extract
    
  6. скопируйте существующий каталог debian в каталог pgn-extract:

    cd pgn-extract
    cp -a ../pgn-extract-17.21/debian .
    
  7. добавьте запись в журнал изменений для вашей версии, что-то вроде

    dch -v 17.38-0.1 "New upstream release."
    
  8. соберите новый пакет; если здесь возникнут ошибки, исправьте упаковку соответствующим образом и попробуйте снова:

    dpkg-buildpackage -us -uc
    

В моем случае мне нужно было исправить makefile.patch; это проявилось как ошибка исправления кода в начале сборки:

dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building pgn-extract using existing ./pgn-extract_17.38.orig.tar.gz
patching file Makefile
Hunk #1 FAILED at 37.
Hunk #2 succeeded at 48 (offset 1 line).
1 out of 2 hunks FAILED
dpkg-source: info: the patch has fuzz which is not allowed, or is malformed
dpkg-source: info: if patch 'makefile.patch' is correctly applied by quilt, use 'quilt refresh' to update it
dpkg-source: error: LC_ALL=C patch -t -F 0 -N -p1 -u -V never -E -b -B .pc/makefile.patch/ --reject-file=- < pgn-extract.orig.ltAFev/debian/patches/makefile.patch gave error exit status 1
dpkg-buildpackage: error: dpkg-source -b pgn-extract gave error exit status 2

Чтобы исправить это, я поступил следующим образом:

  1. принудительно применил патч:

    export QUILT_PATCHES="debian/patches"
    quilt push -f
    
  2. проверьте отклонения в Makefile.rej и примените их вручную с помощью редактора; с текущей версией pgn-extract это означает:

    1. ищите строку # AIX 3. 2 Пользователям могут понравиться следующие альтернативы

    2. найдите строку чуть выше этой строки, в которой говорится CC=gcc

    3. выше этой строки удалите строку, в которой говорится -O3, и замените \ в конце предыдущей строки на $(CPPFLAGS), так что вся строка будет выглядеть так

       -I/usr/local/lib/ansi-include -std=c99 $(CPPFLAGS)
      
  3. обновите патч:

    quilt refresh
    
  4. запустите сборку снова.

Вы также можете начать с извлечённого исходного пакета Debian и использовать uscan для загрузки и обработки последнего tarball, но я позволю вам исследовать это, если вы заинтересованы.

2
28.01.2020, 05:08

Теги

Похожие вопросы