Сборка пакетов-расширений для TeXLive — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Creation)
 
м
Строка 47: Строка 47:
 
  %setup -c -a0 -a1 -a2
 
  %setup -c -a0 -a1 -a2
  
секция '''%build''' отсутствует, а '''%install''' сводится к копированию директорий, содержащихся внутри архивов (за исключением директории tlpkg), в %{buildroot}%{_texmfdistdir} (которую надо предварительно создать):
+
секция '''%build''' отсутствует, а '''%install''' сводится к копированию директорий, содержащихся внутри архивов (за исключением директории {{File|tlpkg}}), в {{File| %{buildroot}%{_texmfdistdir} }} (которую надо предварительно создать):
  
%install
+
s %install
 
  mkdir -p %{buildroot}%{_texmfdistdir}
 
  mkdir -p %{buildroot}%{_texmfdistdir}
 
  cp -fpar fonts tex doc source %{buildroot}%{_texmfdistdir}
 
  cp -fpar fonts tex doc source %{buildroot}%{_texmfdistdir}
Строка 63: Строка 63:
 
  %doc %{_texmfdistdir}/doc/latex/<TEXPKG>
 
  %doc %{_texmfdistdir}/doc/latex/<TEXPKG>
  
Подготовив spec-файл и скачав архивы с исходным кодом, необходимо убедиться в возможности собрать пакет с помощью "rpmbuild -bb". Если проблем нет - то собираем src.rpm (rpmbuild -bs) и создаем из него проект в своем репозитории на ABF.
+
Подготовив spec-файл и скачав архивы с исходным кодом, необходимо убедиться в возможности собрать пакет с помощью {{Cmd|rpmbuild -bb}}. Если проблем нет - то собираем src.rpm ({{Cmd|rpmbuild -bs}}) и создаем из него проект в своем репозитории на ABF.
  
 
Примеры texlive пакетов:
 
Примеры texlive пакетов:
https://abf.io/import/texlive-mpgraphics
+
* https://abf.io/import/texlive-mpgraphics
https://abf.io/import/texlive-mceinleger
+
* https://abf.io/import/texlive-mceinleger
https://abf.io/import/texlive-makecmds
+
* https://abf.io/import/texlive-makecmds
  
 
(смотрите ветку rosa2019.1)
 
(смотрите ветку rosa2019.1)
  
 
[[Категория:Практика студентов]]
 
[[Категория:Практика студентов]]

Версия 19:50, 11 октября 2019

TeX - система компьютерной вёрстки, широко используемая по всему миру.

В Linux в настоящее время активно используется реализация от проекта texlive, которая включает в себя не просто основные инстурменты верстки, но и множество дополнений и расширений (дополнительных шрифтов, пакетов с поддержкой разлицных языков, шаблонов диссертаций и презентаций и так далее).

В РОСЕ каждое такое дополнение оформляется как отдельный RPM-пакет.

Рассмотрим процесс упаковки расширения с названием TEXPKG в пакет texlive-<TEXPKG>

Сначала проверяем, что страничка пакета доступна по адресу http://www.ctan.org/tex-archive/macros/latex/contrib/<TEXPKG>. Эта ссылка должна быть прописана в URL spec-файла. Со странички проекта берем Summary (не более 80 симполов), лицензию (тэг License) и описание (для секции %description). Если есть версия - берем ее со странички, если нет - используем в качестве версии дату, когда вы скачали исходники, в формате ГГГГММДД (например, 20191231).

Далее ищем в директории http://mirrors.ctan.org/systems/texlive/tlnet/archive/ файл <TEXPKG>.tar.xz. Там же могут находиться файлы <TEXPKG>.doc.tar.xz и <TEXPKG>.source.tar.xz - если есть, их тоже берем.

Их надо прописать в качестве Sources:

Source0:        http://mirrors.ctan.org/systems/texlive/tlnet/archive/<TEXPKG>.tar.xz
Source1:        http://mirrors.ctan.org/systems/texlive/tlnet/archive/<TEXPKG>.doc.tar.xz
Source2:        http://mirrors.ctan.org/systems/texlive/tlnet/archive/<TEXPKG>.source.tar.xz

Внутри ахивов обязательно есть папки tlpkg/tlpobj - в них лежат файлы с информацией о пакете. Если вдруг на страничке пакета не оказалось каких-то данных (версии, описания и тому подобного), то поищите их здесь. Здесь же могут быть прописаны зависимости пакета от других пакетов texlive (со словом depend) - из надо обязательно указать как Requires в spec-файле.

Например, если в tlpkg/tlpobj/<TEXPKG> есть запись

depend babel-belarusian

то в spec-файле должна присутсвовать соответсвующая зависимоcть

Requires: texlive-babel-belarusian

Значение тэга Group для пакетов texlive - всегда Publishing.

Как правило, пакеты являются арзитектурно-независимыми, поэтому надо дабавить в spec-файл запись

BuildArch: noarch

(если пакет является архитектурно-зависимым, то rpmbuild его не соберет с соответсующей ошибкой - тогда BuildArch надо убрать).

Всем texlive-пакетам необходимо прописать сборочную зависимость (BuildRequires) от texlive-tlpkg. Этот же пакет надо указать как предустановочную зависимость ("Requires(pre)"). В качестве пост-установочной зависимости post-скрипта ("Requires(post)") надо указать texlive-kpathsea.

Для большинства пакетов, секция %prep сводится к распаковке архивов, например:

%setup -c -a0 -a1 -a2

секция %build отсутствует, а %install сводится к копированию директорий, содержащихся внутри архивов (за исключением директории tlpkg), в  %{buildroot}%{_texmfdistdir} (которую надо предварительно создать):

s %install

mkdir -p %{buildroot}%{_texmfdistdir}
cp -fpar fonts tex doc source %{buildroot}%{_texmfdistdir}

(проследите, чтобы скопированы были все директории из архивов, кроме tlpkg)

Эти же директории достаточно указать в секции %files, пометив sources и doc как документацию:

%files
%{_texmfdistdir}/tex/latex/<TEXPKG>
%{_texmfdistdir}/fonts/latex/<TEXPKG>
%doc %{_texmfdistdir}/source/latex/<TEXPKG>
%doc %{_texmfdistdir}/doc/latex/<TEXPKG>

Подготовив spec-файл и скачав архивы с исходным кодом, необходимо убедиться в возможности собрать пакет с помощью rpmbuild -bb. Если проблем нет - то собираем src.rpm (rpmbuild -bs) и создаем из него проект в своем репозитории на ABF.

Примеры texlive пакетов:

(смотрите ветку rosa2019.1)