LINUX.ORG.RU

Создал ebuild, как его теперь добавить в дерево portage?

 , ,


1

1

Написал ebuild, скопировал /usr/portage к себе в хомяк, добавил туда этот ebuild, прогнал repoman full и сделал repoman -dx commit. Что делать дальше? Как отправить свои изменения? Нагуглить не получается.

Ответ на: комментарий от panter_dsd

виликий хачуха.. простофиля

Deleted
()

В багзиллу закинь.

anonymous
()

Что делать дальше?

Узнать, как нормальный оверлей держать без копии всего дерева портажа.

Просто отправь version bump для пакета в багзиллу генты.

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

Велосипед != нормальный репорт, хочешь велосипедить - ради бога, зачем тянуть ещё одну сущность в дерево.

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

Почему тогда в дереве есть paludis и стопиццот текстовых редакторов и медиаплееров? Велосипеды ведь!

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

Угу, как предлагали выше, создать реквест version-bump и закинуть туда ebuild один из вариантов, если всё хорошо, то его примут.

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

он ответил, что «муч фаста ворк»

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

eclean distfiles у меня отрабатывает больше чем за 30 минут, моя реализация отрабатывает меньше чем за минуту (идет просадка только на IO).

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

Почему сразу поржать? Вот, захотелось принести пользу любимому дистрибутиву. Или ты так, потроллить?

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

Там по-умолчанию ничего не удаляется. Чтобы удалить файлы надо ключ --rm заюзать. Нормальное описание запуска на неделе добавлю.

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

А он у тебя из твоего ebuild поставился? У меня чего-то не хочет (из локального оверлея). Пишет, что-то про то, что рабочую директорию создать перед установкой не может. Но сначала попробую систему полностью обновить,а то полгода это не делал :)

grem ★★★★★
()
Ответ на: комментарий от grem
eix dfclean
[I] app-portage/dfclean [1]
     Available versions:  (~)0.2.2.0 {PYTHON_TARGETS="python3_4 python3_5 python3_6"}
     Installed versions:  0.2.2.0(08:53:58 PM 03/07/2017)(PYTHON_TARGETS="python3_5 python3_6 -python3_4")
     Homepage:            https://gitlab.com/panter_dsd/distfilescleaner
     Description:         Clean up old distfiles in Gentoo

panter_dsd ★★★★
() автор топика
Ответ на: комментарий от panter_dsd
# emerge -av dfclean

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ~] dev-python/humanize-0.5.1::gentoo  PYTHON_TARGETS="python2_7 python3_4 -python3_5" 0 KiB
[ebuild  N    ~] app-portage/dfclean-0.2.2.0::local  PYTHON_TARGETS="python3_4 -python3_5 -python3_6" 0 KiB

Total: 2 packages (2 new), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No] y

>>> Verifying ebuild manifests

>>> Emerging (1 of 2) dev-python/humanize-0.5.1::gentoo
 * humanize-0.5.1.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ...                                                  [ ok ]

...

>>> Emerging (2 of 2) app-portage/dfclean-0.2.2.0::local
 * dfclean-0.2.2.0.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ...                                                 [ ok ]
>>> Unpacking source...
>>> Unpacking dfclean-0.2.2.0.tar.gz to /var/tmp/portage/app-portage/dfclean-0.2.2.0/work
>>> Source unpacked in /var/tmp/portage/app-portage/dfclean-0.2.2.0/work
 * ERROR: app-portage/dfclean-0.2.2.0::local failed (prepare phase):
 *   The source directory '/var/tmp/portage/app-portage/dfclean-0.2.2.0/work/dfclean-0.2.2.0' doesn't exist
 * 
 * Call stack:
 *            ebuild.sh, line  767:  Called __ebuild_main 'prepare'
 *   phase-functions.sh, line 1007:  Called __dyn_prepare
 *   phase-functions.sh, line  371:  Called die
 * The specific snippet of code:
 *              die "The source directory '${S}' doesn't exist"
 * 
 * If you need support, post the output of `emerge --info '=app-portage/dfclean-0.2.2.0::local'`,
 * the complete build log and the output of `emerge -pqv '=app-portage/dfclean-0.2.2.0::local'`.
 * The complete build log is located at '/var/tmp/portage/app-portage/dfclean-0.2.2.0/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/app-portage/dfclean-0.2.2.0/temp/environment'.
 * Working directory: '/var/tmp/portage/app-portage/dfclean-0.2.2.0/homedir'
 * S: '/var/tmp/portage/app-portage/dfclean-0.2.2.0/work/dfclean-0.2.2.0'

>>> Failed to emerge app-portage/dfclean-0.2.2.0, Log file:

>>>  '/var/tmp/portage/app-portage/dfclean-0.2.2.0/temp/build.log'

 * GNU info directory index is up-to-date.

Но потом я понял, что это потому, что я скачал нужный tar.gz вручную и переименовал, а внутри он всё с тем же страшным именем был, в одноимённую директорию с которым и распаковался.

Но после установки случилось вот что:

$ dfclean 
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.4/dfclean", line 3, in <module>
    from dfcleanlib import clean
  File "/usr/lib64/python3.4/site-packages/dfcleanlib/__init__.py", line 1, in <module>
    from dfcleanlib.dfclean import clean
  File "/usr/lib64/python3.4/site-packages/dfcleanlib/dfclean.py", line 7, in <module>
    from typing import Generator, Tuple
ImportError: No module named 'typing'

Попробую поискать откуда взять этот модуль typing.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 3)
Ответ на: комментарий от grem

Блин, на 3.4 я не проверил. Извиняюсь. 3.5 имеется?

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

Да не, просто в python3.5 идёт уже typing, я его поставил через pip install typing и заработал скрипт

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

По результатам работы:

# time eclean-dist -p
 * Building file list for distfiles cleaning...
 * Here are the distfiles that would be deleted:
 [    8.4 M ] ImageMagick-6.9.6-6.tar.xz
 [   54.4 M ] VBoxGuestAdditions_4.3.38.iso
 [   31.7 M ] breeze-5.8.3.tar.xz
 [   49.3 M ] firefox-45.4.0esr.tar.bz2
 [   21.3 M ] icu4c-57_1-src.tgz
 [   72.7 M ] jre-8u112-linux-i586.tar.gz
 [   70.2 M ] jre-8u112-linux-x64.tar.gz
 [   80.8 K ] kactivitymanagerd-5.8.3.tar.xz
 [  474.7 K ] kde-cli-tools-5.8.3.tar.xz
 [  146.5 K ] kde-gtk-config-5.8.3.tar.xz
 [   34.0 K ] kdecoration-5.8.3.tar.xz
 [   11.1 M ] kdelibs-4.14.24.tar.xz
 [    1.2 M ] kinfocenter-5.8.3.tar.xz
 [  105.6 K ] kscreenlocker-5.8.3.tar.xz
 [  476.3 K ] ksysguard-5.8.3.tar.xz
 [    3.8 M ] kwin-5.8.3.tar.xz
 [   41.7 K ] libkdcraw-16.04.3.tar.xz
 [   90.7 K ] libkscreen-5.8.3.tar.xz
 [  558.1 K ] libksysguard-5.8.3.tar.xz
 [   43.6 K ] libmpack-1.0.2.tar.gz
 [  639.3 K ] libpng-1.2.56.tar.xz
 [    1.8 M ] libtasn1-4.8.tar.gz
 [   53.1 K ] milou-5.8.3.tar.xz
 [    5.4 M ] openldap-2.4.43.tgz
 [    4.3 M ] oxygen-5.8.3.tar.xz
 [    6.1 M ] plasma-desktop-5.8.3.tar.xz
 [   49.5 K ] plasma-integration-5.8.3.tar.xz
 [    6.6 M ] plasma-workspace-5.8.3.tar.xz
 [   39.9 K ] polkit-kde-agent-1-5.8.3.tar.xz
 [  348.0 K ] powerdevil-5.8.3.tar.xz
 [    1.4 M ] qd-2.3.14.tar.gz
 [  383.5 K ] ru.xpi
 [   47.8 K ] sddm-kcm-5.8.3.tar.xz
 [  154.3 K ] systemsettings-5.8.3.tar.xz
 ===========
 [  353.4 M ] Total space from 34 files would be freed in the distfiles directory
...
real    4m36.615s
user    0m23.971s
sys     0m20.088s

# time dfclean

[   21.3 MiB ] /usr/portage/distfiles/icu4c-57_1-src.tgz
[   72.8 MiB ] /usr/portage/distfiles/portage-20170119.tar.bz2
[  154.3 KiB ] /usr/portage/distfiles/systemsettings-5.8.3.tar.xz
[   54.4 MiB ] /usr/portage/distfiles/VBoxGuestAdditions_4.3.38.iso
[   73.3 MiB ] /usr/portage/distfiles/portage-20170307.tar.bz2
[  833 Bytes ] /usr/portage/distfiles/portage-20170307.tar.bz2.gpgsig
[    1.8 MiB ] /usr/portage/distfiles/libtasn1-4.8.tar.gz
[   90.7 KiB ] /usr/portage/distfiles/libkscreen-5.8.3.tar.xz
[   41.7 KiB ] /usr/portage/distfiles/libkdcraw-16.04.3.tar.xz
[    1.4 MiB ] /usr/portage/distfiles/qd-2.3.14.tar.gz
[   59 Bytes ] /usr/portage/distfiles/portage-20170307.tar.bz2.md5sum
[   55 Bytes ] /usr/portage/distfiles/portage-20170307.tar.bz2.umd5sum
[   59 Bytes ] /usr/portage/distfiles/portage-20170119.tar.bz2.md5sum
[  476.3 KiB ] /usr/portage/distfiles/ksysguard-5.8.3.tar.xz
[   47.8 KiB ] /usr/portage/distfiles/sddm-kcm-5.8.3.tar.xz
[   55 Bytes ] /usr/portage/distfiles/portage-20170119.tar.bz2.umd5sum
[    6.6 MiB ] /usr/portage/distfiles/plasma-workspace-5.8.3.tar.xz
[    8.4 MiB ] /usr/portage/distfiles/ImageMagick-6.9.6-6.tar.xz
[   80.8 KiB ] /usr/portage/distfiles/kactivitymanagerd-5.8.3.tar.xz
[    6.1 MiB ] /usr/portage/distfiles/plasma-desktop-5.8.3.tar.xz
[    0 Bytes ] /usr/portage/distfiles/.qtwebkit-opensource-src-5.6.2.tar.xz.portage_lockfile
[   39.9 KiB ] /usr/portage/distfiles/polkit-kde-agent-1-5.8.3.tar.xz
[  474.7 KiB ] /usr/portage/distfiles/kde-cli-tools-5.8.3.tar.xz
[    3.8 MiB ] /usr/portage/distfiles/kwin-5.8.3.tar.xz
[   49.5 KiB ] /usr/portage/distfiles/plasma-integration-5.8.3.tar.xz
[  639.3 KiB ] /usr/portage/distfiles/libpng-1.2.56.tar.xz
[  105.6 KiB ] /usr/portage/distfiles/kscreenlocker-5.8.3.tar.xz
[  383.5 KiB ] /usr/portage/distfiles/ru.xpi
[   53.1 KiB ] /usr/portage/distfiles/milou-5.8.3.tar.xz
[  558.1 KiB ] /usr/portage/distfiles/libksysguard-5.8.3.tar.xz
[    4.3 MiB ] /usr/portage/distfiles/oxygen-5.8.3.tar.xz
[   72.7 MiB ] /usr/portage/distfiles/jre-8u112-linux-i586.tar.gz
[    5.4 MiB ] /usr/portage/distfiles/openldap-2.4.43.tgz
[   43.6 KiB ] /usr/portage/distfiles/libmpack-1.0.2.tar.gz
[  348.0 KiB ] /usr/portage/distfiles/powerdevil-5.8.3.tar.xz
[   49.3 MiB ] /usr/portage/distfiles/firefox-45.4.0esr.tar.bz2
[   34.0 KiB ] /usr/portage/distfiles/kdecoration-5.8.3.tar.xz
[    1.2 MiB ] /usr/portage/distfiles/kinfocenter-5.8.3.tar.xz
[    0 Bytes ] /usr/portage/distfiles/.listing
[   11.1 MiB ] /usr/portage/distfiles/kdelibs-4.14.24.tar.xz
[   31.7 MiB ] /usr/portage/distfiles/breeze-5.8.3.tar.xz
[   70.2 MiB ] /usr/portage/distfiles/jre-8u112-linux-x64.tar.gz
[  146.5 KiB ] /usr/portage/distfiles/kde-gtk-config-5.8.3.tar.xz
========================================================================================================================
[  499.6 MiB ] Total size
[    0 Bytes ] Removed size

real    2m14.227s
user    0m3.523s
sys     0m7.420s

В целом списки совпадают, наверное eclean-dist втихоря хочет удалить portage-*, а .lock файлы и .listing не трогает

[ 0 Bytes ] /usr/portage/distfiles/.qtwebkit-opensource-src-5.6.2.tar.xz.portage_lockfile
[ 0 Bytes ] /usr/portage/distfiles/.listing

Можно вывод отключить того, что он парсит? На это время, наверняка, дополнительное тратится. Второй запуск за пару секунд отрабатывает, как и eclean. Он результат где-то хранит? Где eclean хранит, я не нашёл. А вот почему подсчёт свободного места так сильно отличается не знаю.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от grem

А вот почему подсчёт свободного места так сильно отличается не знаю.

совсем забыл про 2 файла portage-* по 74 мб

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

В моем случае ОС кеширует Manifest файлы, поэтому повторный прогон такой быстрый. А вот прогон eclean меня удивил, у меня он отрабатывает за большее время.

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

Прогнал сейчас eclean через strace и получил кучу вот такого:

open("/usr/portage/app-admin/lib_users", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getdents(3, /* 7 entries */, 32768)     = 248
getdents(3, /* 0 entries */, 32768)     = 0
close(3)                                = 0
open("/usr/local/portage/app-admin/lib_users", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/var/lib/layman/calculate/app-admin/lib_users", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/var/lib/layman/distros/app-admin/lib_users", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/var/lib/layman/stuff/app-admin/lib_users", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

Походу, они сначала получают все доступные пакеты, а потом проверяют эти пакеты по всем оверлеям. Затратное дело, при большом обилии оверлеев.

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

У меня eclean когда как отрабатывает, сегодня обычно 5-7 минут (восстанавливал состояние системы), но это в виртуалке. Повторные запуски секунд 8. На самом компе, кажется wd black. В системе только локальный оверлей из 4 пакетов, всего, емнип, не больше 25-30 «метапакетов».

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

А у меня 3 оверлея и одно локальное дерево. Раз каждый пакет проверяется по всем репам, то у меня просадка и получается порядочная. Мой же вариант парсит только имеющиеся манифесты.

Что-то в багзиле молчат. :(

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

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

Файл .listing точно стоит удалять при очистке? Я не обращал внимания, что в нём.

Да кто их знает, рассмотрят или нет. OpenOffice-4.1.3 спустя 5 месяцев подправили ebuild. А ati-drivers хотят удалить из основного дерева, хотя там пока ещё есть нужный xorg и ядро о_О. Ну лежал бы и лежал, не мешает никому, а amdgpu-pro всё равно пока не добавили в основное дерево. Пришлось стащить себе работающий ebuild в закрома.

Возможно, если заявиться как proxy mantainer, то примут быстрее, так как обычно стоит вопрос о поддержке пакета. Да, ещё бы на самом сайте, где проект разместил бы .ebuild. Может в оверлей кто утащит какой, уже неплохо.

RDEPEND=«dev-python/humanize dev-python/typing»

Вот с «dev-python/typing» (в дереве он 3.5.x) я не проверял, т.к. тянул typing через pip. Даже не знаю встанет ли этот на ветку питона 3.4, но можно проверить.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.