LINUX.ORG.RU

Научите делать .eopkg пакеты.

 ,


1

2

Хороший дистрибутив Solus, да пакетов мало. Но никак не могу понять, как делать эти пакеты. Читал темы по ссылкам https://solus-project.com/articles/packaging/ но там всё время что-то с сорцами делается. Хочу взять пакет .deb или .rpm и переделать их в .eopkg. Про зависимости в курсе.

Вот распаковал я deb/rpm пакет. Выкинул все дистро-специфичное, оставил только нужные директории. Как мне простой командой собрать эти директории в .eopkg?

Вроде это надо делать командой ypkg, но не могу понять как(см. по ссылке выше - читал). Еще есть команда eopkg build. Нет странички man eopkg.

Если можно покажите как на примере nano. Я скачал пакет так: eopkg fetch nano. Что бы посмотреть что он из себя представляет. В нём два мета-файла и архив с nano. Вот удалить эти мета-файлы и как сделать опять .eopkg? Понимаю, что нужно писать что-то типа спек-файла. Можно пример на основе вот этого nano - локально распакованных бинарников?



Последнее исправление: ult (всего исправлений: 1)

Спрашивал на канале в ирке, сказали cp * /usr/bin.

Видимо нет пока ничего для решения задачи. В этом проблема маргинальных дистрибутивов, если для всяких убунт можно самому нагуглить 100500 решений, то для мало известных ничего нет.

Придется оставить Solus до лучших времен.

ult
() автор топика

В https://solus-project.com/articles/packaging/ всё подробно разжевано, да и на тамошнем форуме тебе с удовольствием помогут, там подобные темы подымались уже не раз. Кроме того есть https://dev.solus-project.com/ где куча народа как-раз и занимается сборкой пакетов.

enso ★★★★★
()

Вот распаковал я deb/rpm пакет. Выкинул все дистро-специфичное, оставил только нужные директории. Как мне простой командой собрать эти директории в .eopkg?

https://github.com/solus-project/fpi

FPI is the Foreign Package Installer, an alien-like utility for Solus that converts between package formats. The initial idea is to convert .deb  files into native .eopkg files for installation on Solus.

Оно?

Samsky
()
Ответ на: комментарий от Deleted

что из себя представляет этот eopkg?

Вот содержимое пакета nano-2.8.6-77-1-x86_64.eopkg:

.
├── files.xml
├── install.tar.xz
└── metadata.xml

files.xml это большой список всех файлов. Вот начало его:

<Files>
    <File>
        <Path>usr/bin/nano</Path>
        <Type>executable</Type>
        <Size>225440</Size>
        <Uid>0</Uid>
        <Gid>0</Gid>
        <Mode>0755</Mode>
        <Hash>c2825442e237a63fe8d63598cb0b54745c54d28b</Hash>
    </File>
    <File>
        <Path>usr/bin/rnano</Path>
        <Type>executable</Type>
        <Size>4</Size>
        <Uid>0</Uid>
        <Gid>0</Gid>
        <Mode>0777</Mode>
        <Hash>e6efbd8aed7a6a63e6ec49365245a32bdc913b43</Hash>
    </File>
    <File>
        <Path>usr/share/defaults/nano/nanorc</Path>
        <Type>data</Type>
        <Size>9379</Size>
        <Uid>0</Uid>
        <Gid>0</Gid>
        <Mode>0644</Mode>
        <Hash>b84c13c8aa5a20901949caf427eee82b52844150</Hash>
    </File>

metadata.xml это описание. Вот начало его:

<PISI>
    <Source>
        <Name>nano</Name>
        <Packager>
            <Name>Ikey Doherty</Name>
            <Email>ikey@solus-project.com</Email>
        </Packager>
    </Source>
    <Package>
        <Name>nano</Name>
        <Summary xml:lang="en">Small, friendly text editor inspired by Pico</Summary>
        <Description xml:lang="en">GNU nano is an easy-to-use text editor originally designed as a replacement for Pico, the ncurses-based editor from the non-free mailer package Pine (itself now available under the Apache License as Alpine).
</Description>
        <PartOf>system.devel</PartOf>
        <License>GPL-3.0</License>
        <RuntimeDependencies>
            <Dependency releaseFrom="8">ncurses</Dependency>
            <Dependency releaseFrom="45">glibc</Dependency>
            <Dependency releaseFrom="10">file</Dependency>
        </RuntimeDependencies>
        <History>
            <Update release="77">
                <Date>2017-08-08</Date>
                <Version>2.8.6</Version>
                <Comment>Add new syntax highlighting capabilities to nano

 - Dockerfile
 - Apache httpd configs
 - INI files (including `.desktop`)
 - nginx configuration files

install.tar.xz это архив как он есть. Как он будет установлен в системе(часть списка скопировал):

.
└── usr
    ├── bin
    │   ├── nano
    │   └── rnano -> nano
    └── share
        ├── defaults
        │   └── nano
        │       └── nanorc
        ├── doc
        │   └── nano
        │       ├── faq.html
        │       └── nano.html
        ├── info
        │   └── nano.info
        ├── locale
        │   ├── bg
        │   │   └── LC_MESSAGES
        │   │       └── nano.mo
        │   ├── ca
        │   │   └── LC_MESSAGES
        │   │       └── nano.mo

Так вот я и спрашиваю про то создать eopkg пакет. Ведь install.tar.xz легко сделать из deb/rpm.

anonymous
()
Ответ на: комментарий от bormant

Какой makefile? Есть каталог:

.
└── usr
    ├── bin
    │   ├── nano
    │   └── rnano -> nano
    └── share
        ├── defaults
        │   └── nano
        │       └── nanorc
        ├── doc
        │   └── nano
        │       ├── faq.html
        │       └── nano.html
        ├── info
        │   └── nano.info
        ├── locale
        │   ├── bg
        │   │   └── LC_MESSAGES
        │   │       └── nano.mo
        │   ├── ca
        │   │   └── LC_MESSAGES
        │   │       └── nano.mo
Как завернуть это в eopkg пакет?

anonymous
()
Ответ на: комментарий от enso

всё подробно разжевано

Там жуётся про сборку пакетов из сорцов, а мне см. сообщение выше. Или может я не нашел? Тки пальцем где именно?

anonymous
()
Ответ на: комментарий от Samsky

Оно?

Возможно, но попробовать

anonymous
()
Ответ на: комментарий от anonymous

Какой makefile?

Вот этот:
https://solus-project.com/articles/packaging/building-a-package/en/

Setting up common
Next you need to set up common, a set of make scripts that enables you to more easily manage, build, check, and publish packages.
You need to clone the common repository with git sudo eopkg it git by doing git clone https://dev.solus-project.com/source/common.git in the same directory you will have sub-folders for packages you are building.

И далее по тексту...

Или тут читаем, тут не читаем, тут рыбу заворачивали? (q)

bormant ★★★★★
()
Ответ на: комментарий от bormant

Не всё так просто:

Failed to load package: open pspec.xml: no such file or directory
Нужно ручками писать pspec.xml файл. По ссылкам не написано про это.

И не совсем понятно что подразумевается под «package folder» здесь:

This will enable you to call make commands from inside the package folder.

В общем документация не очень у них.

anonymous
()
Ответ на: комментарий от bormant

Твой makefile вызывает solbuild, который https://github.com/solus-project/solbuild

solbuild is a chroot based package build system, used to safely and efficiently build Solus packages from source

from source

source

А мне бинарники упаковать надо. Или про что там пишут?

ult
() автор топика
Ответ на: комментарий от ult

from source
А мне бинарники упаковать надо. Или про что там пишут?

А собранные бинарники на последнем шаге в пакет как по-вашему попадают, автомагически или по рецепту из Makefile-а?

bormant ★★★★★
()

Я понял! Смотрим на страничку установки проприетари https://solus-project.com/articles/software/third-party/en/ Открываем, например, ссылку на спек-файл для установки Sublime https://raw.githubusercontent.com/solus-project/3rd-party/master/programming/... Или вот, тоже но с подсветкой https://github.com/solus-project/3rd-party/blob/master/programming/sublime-te...

В нем видно, что командой eopkg bi скачивается deb-пакет, распаковывается и собирается пакет eopkg. Прочитав этот(и другие) файл, как пример спек-файла, можно по аналогии сделать для любого deb-пакета такой спек и установить в Solus. Естественно следить за зависимостями.

ult
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.