LINUX.ORG.RU

12
Всего сообщений: 136

portage и go.mod

А есть какой тулз для генерации ebuild или типа того из файла go.mod? Для CPAN вроде что-то было похожее. Надо нагенерировать ebuild'ов из портянки

require (
        cloud.google.com/go v0.34.0
        github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 // indirect
        github.com/aws/aws-sdk-go v1.16.17
        github.com/bitly/go-simplejson v0.5.0 // indirect
        github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect
....

но такой объем тащить - сдохнуть можно.

 ,

macumazan ()

Установка плагина для GCC в Gentoo — нужно исправить ebuild или CMakeLists.txt?

Во время установки ebuild получаю предупреждение:

>>> Install odb-9999 into /var/tmp/portage/dev-util/odb-9999/image category dev-util
>>> Working in BUILD_DIR: "/var/tmp/portage/dev-util/odb-9999/work/odb-9999_build"
[0/1] Install the project...
-- Install configuration: "Gentoo"
-- Installing: /var/tmp/portage/dev-util/odb-9999/image/usr/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/plugin/libodb.so
-- Installing: /var/tmp/portage/dev-util/odb-9999/image/usr/bin/odb
>>> Completed installing odb-9999 into /var/tmp/portage/dev-util/odb-9999/image

 * Final size of build directory: 21196 KiB (20.6 MiB)
 * Final size of installed tree:   4632 KiB ( 4.5 MiB)

 * The ebuild is installing to one or more unexpected paths:
 * 
 *   /usr/usr
 * 
 * Please fix the ebuild to use correct FHS/Gentoo policy paths.

Вот в этом файле дважды встречается каталог usr:

/var/tmp/portage/dev-util/odb-9999/image/usr/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/plugin/libodb.so

В CMakeLists.txt определяется каталог с плагинами для GCC таким образом:

execute_process (COMMAND ${CMAKE_CXX_COMPILER} "-print-file-name=plugin"
    OUTPUT_VARIABLE GCC_PLUGIN_DIR
    OUTPUT_STRIP_TRAILING_WHITESPACE
)
Пример значения переменной CMAKE_CXX_COMPILER:
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/plugin

И вот так идёт установка плагина в CMakeLists.txt:

install (TARGETS odb
    LIBRARY
        DESTINATION ${CMAKE_INSTALL_PREFIX}/${GCC_PLUGIN_DIR}
)
Так как нет других идей как определить путь к плагинам GCC, то в результате получаю абсолютный путь с /usr в начале. И добавляю ${CMAKE_INSTALL_PREFIX}, чтобы не использовать жестко закодированный абсолютный путь.

Теперь возникает вопрос: для того, чтобы исправить установку с помощью portage, мне нужно обработать эту ситуацию в ebuild или поменять логику в CMakeLists.txt?

 , , , ,

Pravorskyi ()

Как правильно создать ebuild с версией «2.5.0-b.9»?

Есть библиотека, промежуточные тестовые версии которой выглядят как «2.5.0-b.9». Как правильно именовать ebuild с такой версией, и потом распарсить в EAPI 7?

Трудность именно в суффиксе. Я так понял, в суффиксе не могут быть точки? Нужно разделить «b» и «9», чтобы потом при формировании URL можно было между ними поставить точку. Если записать просто «b9», то неочевидно, как это можно надёжно парсить, нет гарантий, что потом не будет версии «2.5.0-b2.9». Если нет лучшего решения, то придётся записать «b9» вместе и потом вытаскивать отдельно числа, отдельно буквы. Можно внутри ебилда держать отдельную переменную с нужным суффиксом, но хардкод тоже не хочется делать.

Пробовал:

odb-2.5.0-b.9.ebuild
odb-2.5.0_pre_b.9.ebuild
odb-2.5.0_pre_b_9.ebuild

 ,

Pravorskyi ()

«Усыновление» заброшенного open-source проекта

Дано: небольшая утилита по имени extundelete, коя в природе встречается в единственной версии, имеется в portage, и самое главное - падает с sigsegv. Судя по mailing-list и трекеру на SF, автор на программу давным-давно положил и даже не обновлял ее под новые версии e2fsprogs. Скажем, для собственных нужд я ликвидировал указанные выше недостатки, и теперь хочу предложить свои исправления в гентовский пакет и по возможности майнтейнить его дальше. Обязан ли я искать автора и уведомлять его о своем желании? Ни имени, ни мыла автора я не знаю - их нет ни в профиле SF, ни на домашней страничке. Метаинформация в ебилде отсылает меня все в тот же мертвый трекер.

 , , ,

Makhno ()

fluent-bit

Пилю сабж для https://github.com/fluent/fluent-bit/ .

Застрял на

 * QA Notice: make jobserver unavailable:
 * 
 *      make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
Files matching a file type that is not allowed:
   lib/libfluent-bit.so
 * ERROR: net-misc/fluent-bit-0.14.2::aytpo failed:
 *   multilib-strict check failed!
 * 
 * Call stack:
 *   misc-functions.sh, line 666:  Called install_qa_check
 *   misc-functions.sh, line 217:  Called source 'install_symlink_html_docs'
 *   80multilib-strict, line  46:  Called multilib_strict_check
 *   80multilib-strict, line  42:  Called die
 * The specific snippet of code:
 *              [[ ${abort} == yes ]] && die "multilib-strict check failed!"

# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6

inherit cmake-utils multilib

DESCRIPTION="Multi-platform log processor and forwarder"
HOMEPAGE="https://fluentbit.io/"
SRC_URI="https://fluentbit.io/releases/0.14/${P}.tar.gz"

LICENSE=""
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="exapmles"

DEPEND=""
RDEPEND="${DEPEND}"

#src_unpack() {
#       unpack ${A}
#      #epatch "${FILESDIR}"/libpath.patch
#        cd "${S}/include"
#        epatch "${FILESDIR}"/include.patch
#
#}

#PATCHES=( "${FILESDIR}/libpath.patch" )

src_configure() {
#      MAKEOPTS+=" -j16"
        local mycmakeargs=(
                -DCMAKE_INSTALL_PREFIX=/
                -DBUILD_SHARED_LIBS=ON
                -DLIB=$(get_libdir)
#              -DCMAKE_LIBRARY_PATH="/usr/$(get_libdir)/${PN}"
        )
        cmake-utils_src_configure
}

Подозреваю, надо что-то поменять в районе 20 строки тут https://github.com/fluent/fluent-bit/blob/master/CMakeLists.txt Но силы меня покинули. Кто чем поможет?

 ,

macumazan ()

Модули к ядру, устанавливаемые как .ebuild-ы

Есть, к примеру, zfs собираемая как модуль ядра. Но распространяться она с ядром вместе не может.

Я посмотрел на gpo.zugaina.org и не нашел её там, нашел только в виде fuse.

Ещё такая же история была раньше с aufs (сейчас как там я не знаю).

Почему же, почему не сделают ебилдов для модулей ядра?

 , ,

Einstok_Fair ()

Написать ебилд для catfish

На ЛОРе пару дней назад была новость, что вышел новый Catfish 1.4.6. В дереве портажа до сих пор 1.2.2. Вот ссылка на открытый баг: https://bugs.gentoo.org/570568 Хочется написать-таки ебилд для новой версии, но я в этом полный профан. Мои знания ограничиваются обычной установкой и настройкой генты, я не знаю ни одного языка программирования и не могу написать ничего сложнее сортировки пузырьком на паскале. Поэтому я ищу кого-нибудь, кому было бы не жалко потратить немного времени и вместе написать новый ебилд.

 ,

sgasgar23 ()

configure: error: Cannot find libacl header files

# ebuild cfengine-3.10.4.ebuild digest clean  configure 
checking acl.h usability... no
checking acl.h presence... no
checking for acl.h... no
configure: error: Cannot find libacl header files
environment, line 2642:  Called econf '--enable-fhs' '--docdir=/usr/share/doc/cfengine-3.10.4' '--with-workdir=/var/cfengine' '--with-libacl=/usr/include' '--with-pcre'

Есть файлы
/usr/include/acl/libacl.h
/usr/include/sys/acl.h
/usr/include/acl/libacl.h

Это --with-libacl=/usr/include я сам нахардкодил, но оно тоже не помогает.

В configure.ac есть такое

AC_CHECK_HEADERS([acl.h sys/acl.h acl/libacl.h],
      [libacl_header_found=yes],
Далее уже не тяну. Куда копнуть?

 ,

macumazan ()

Не хватает use-флага

Какое-то время назад мне понадобилось конвертировать большое количество видео и я задумался как сделать это побыстрее. Решил попробовать декодировать и кодировать средствами видеокарты(по причине наличия довольно мощной карточки от nvidia).

И если с декодированием на карточке, с помощью vdpau, проблем особо не возникло, то с кодированием оказалось не всё так просто.

Для кодирования на видяхе нужно использовать cuda, а если точнее, то отдельный «модуль»?? с названием cuvid. И вот тут я очень долго долбался с ffmpeg. Оказалось что для кодирования нужно было собрать его(ffmpeg) с опциями --enable-cuda и --enable-cuvid, которых в ебилде нет ни под каким соусом.

Я конечно скопировал ебилд локально и добавил их, но ведь это мои локальные решения. Которые ещё надо из ебилда в ебилд носить при смене версий.

Вот и решил поднять вопрос и узнать у знающих людей по какой причине такая вроде необходимая возможность не включена в виде use-флага? И если просто по недосмотру, то куда писать в спортлото?

cast Pinkbyte

 , ,

Loki13 ()

gentoo, ebuild, $PATH и бинарники

написал как-смог быдло-ebuild

# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI="6"
DESCRIPTION="DePbo tools for Linux consists of a shared library and a set of command line tools"
HOMEPAGE="https://community.bistudio.com/wiki/Mikero_Tools"
SRC_URI="https://armaservices.maverick-applications.com/Products/MikerosDosTools/DownloadFree.aspx?download=${P}-linux-64bit.tgz -> ${P}-linux-64bit.tgz"
KEYWORDS="amd64"
SLOT="0"

src_install() {
	dodoc doc/*/* *.txt
	into /opt/depbo-tools
	dobin bin/*
	dolib.so lib/*
	doenvd ${FILESDIR}/99-depbo-tools
}
$ cat /etc/env.d/99-depbo-tools
PATH="/opt/depbo-tools/bin"
LDPATH="/opt/depbo-tools/lib64"
но почему gentoo так странно себя ведет? что упустил?
$ whereis makepbo
makepbo: /opt/depbo-tools/bin/makepbo
$ makepbo
bash: makepbo: команда не найдена

 ,

Deleted ()

ebuild для vala-panel-appmenu-xfce4

Видел тут многие хвастались что собирали ее, скиньте рабочий ебилд пожалуйста, думаю он многим кому еще пригодится.

Я пробовал модифицировать устаревший из овера lxde-gtk3, но видимо моих знаний не достаточно. Дернул настройки сборки арчевского PKG-билда, в итоге получал 2 сценария, это либо глобалменю работает только для хромиума, либо апплет не собирается вообще. Зависимости ставил вручную, все, которые просил cmake из гитхаба при ручной сборке.

 , , , ,

d-7 ()

Логика portage при обновлении сторонних ядерных модулей

Предположим был установлен =sys-kernel/vanilla-sources-3.2.96::gentoo и x11-drivers/nvidia-drivers или net-wireless/broadcom-sta любой из них и версия любая на выбор. Затем ядро обновили, к примеру, до =sys-kernel/vanilla-sources-4.14.9::gentoo, собрали новое ядро и пересобрали x11-drivers/nvidia-drivers, net-wireless/broadcom-sta под него.

Внимание вопрос - после проделанных выше манипуляций под какую именно версию ядра (старую, новую или под обе?) остались рабочие блобы nvidia, broadcom?

 , ,

init_6 ()

ebuild без setup.py

есть один zip архив в нем нужная библиотека (хочется странного^W перенести её в site-packages).

Как по уму написать ебилд?

Думаю

S=«${WORKDIR}/нужная_директория»

и запатчить в ней setup.py уже.

Как это по человечески замутить? pip не предлагать

 , ,

deity ()

Gentoo. Удалить файлы после unmerge.

выработал такую строчку

 pkg_postrm() {
 rm -r /usr/share/blender/*/scripts/addons/"${P}"
}
это работает при удалении пакета

/usr/share/blender/*/scripts/addons/«${P}» действительно исчезает

но

это работает и при переутановке, /usr/share/blender/*/scripts/addons/«${P}» исчезает

есть идеи как это сделать именно в ебилде? без скриптов

т.е. мне нужно чтоб pkg_postrm работал только для удаления, и не нарботал для переустановки

https://github.com/brothermechanic/cg/blob/master/media-blender/booltron/bool...

 , , ,

brothermechanic ()

packages.gentoo.org дублируются пакеты

Давно уже заметил, что на сайте packages.gentoo.org у некоторых пакетов информация дублируется - несколько пунктов с одной и той-же версией. Это что, какой-то баг?

Скриншот

 , ,

watsoon ()

XnViewMP 0.87 (ebuild для Gentoo)

7 сентября 2017 года вышел сабж (и как самостоятельное приложение XnConvert для конвертрования). Так как многие уже здесь жаловались, что kipi-plugins превратились в нечто бесполезное, потянув за собой gwenview, то я не выдержал и подправил существующие в оверлеях ebuild-файлы, чтобы они наконец-то были в каком-то виде «рабочими». Надеюсь, что это скорее так, чем нет. По крайней мере, теперь оба приложения у меня запускаются после установки как со встроенными библиотеками, так и с внешними.

Тэг gentoo добавлен по той, причине, что прошу желающих дополнительно потестить ebuild'ы. Как смог, я это уже сделал. При использовании внешних библиотек для проигрывания медиа-контента наличие библиотеки libpulse.so мне не понадобилось, но вот со встроенными, он её требует, поэтому и пришлось добавить дополнительную зависимость от pulseaudio/apulse.

XnViewMP

XnConvert

Pinkbyte, можешь подсказать, как подправить первый ebuild, чтобы в зависимости от платформы создавался симлинк на libpulse.so из соответствующих платформе каталогов?

И как всё-таки лучше поступить, когда приложение может захотеть в рантайме плагины gstreamer, но и без них работает? Не запихивать же в зависимости все gst-plugins-*? Я пока ограничился elog сообщением, что пользователю нужно будет их доустановить нужные ему.

 , , , ,

grem ()

Установка prelink в gentoo

При установке prelink в gentoo с помощью команды

emerge --ask prelink
выдает ошибки в конце установки:
make: *** [Makefile:336: all] Ошибка 2
 * ERROR: sys-devel/prelink-20130503::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=sys-devel/prelink-20130503::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-devel/prelink-20130503::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/sys-devel/prelink-20130503/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-devel/prelink-20130503/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-devel/prelink-20130503/work/prelink'
 * S: '/var/tmp/portage/sys-devel/prelink-20130503/work/prelink'

>>> Failed to emerge sys-devel/prelink-20130503, Log file:

>>>  '/var/tmp/portage/sys-devel/prelink-20130503/temp/build.log'

 * Messages for package sys-devel/prelink-20130503:

 * ERROR: sys-devel/prelink-20130503::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=sys-devel/prelink-20130503::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-devel/prelink-20130503::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/sys-devel/prelink-20130503/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-devel/prelink-20130503/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-devel/prelink-20130503/work/prelink'
 * S: '/var/tmp/portage/sys-devel/prelink-20130503/work/prelink' 
Объясните пожалуйста в чем проблема? Binutils, gcc и glibc установил.

 , ,

Obito ()

Нужна помощь в редактировании ebuild'а для ODB

Привет, ЛОР!

Есть официальный ebuild для C++ ORM — ODB, точнее, для одного из компонентов — libodb.

https://git.btbn.de/gitweb/odb-overlay.git/blob_plain/HEAD:/dev-db/libodb/lib...

Хочу его портировать на EAPI 6, с планами отправить патчи в апстрим и, по возможности, добавить его основное дерево Gentoo.

Знаю, что autotools-utils забанен в EAPI 6.

Ок, а какой eclass в EAPI 6 отвечает за IUSE doc и static-libs?

В чём смысл строки --docdir="${T}", если в каталоге /var/tmp/portage/dev-cpp/libodb-2.4.0/temp никакой документации я не обнаружил?

UPDATE

grep -r static-libs /usr/portage/eclass
Ничего интересного, кроме toolchain-binutils.eclass и autotools-utils.eclass не нашёл, но autotools-utils.eclass забанили в EAPI 6, а toolchain-binutils.eclass никакой другой eclass вроде не инклудит.

 ,

Pravorskyi ()

как написать live 9999 ebuild если zip без номера версии?

как узнать время упаковки zip или tar.gz?

 , ,

Deleted ()

Gentoo ebuild. autotools & ant

Пытаюсь запилить собственный ебилд, т.к. sleuthkit в портажах староват.

В общем такой вот ebuild:

EAPI=5

inherit autotools-utils java-pkg-opt-2 java-ant-2

DESCRIPTION="A collection of file system and media management forensic analysis tools"
HOMEPAGE="http://www.sleuthkit.org/sleuthkit/"
SRC_URI="https://github.com/sleuthkit/sleuthkit/archive/release-4.4.2.zip"

LICENSE="GPL-2 IBM"
SLOT="0/10" # subslot = major soname version
KEYWORDS="~amd64 ~hppa ~ppc ~x86"
IUSE="aff ewf static-libs java"

COMMON_DEPEND="dev-db/sqlite:3
        ewf? ( app-forensics/libewf )
        aff? ( app-forensics/afflib )"

DEPEND="${COMMON_DEPEND}
        java? ( virtual/jdk )"

RDEPEND="${COMMON_DEPEND}
        dev-perl/Date-Manip"

DOCS=( NEWS.txt README.txt )

PATCHES=(
        "${FILESDIR}"/${PN}-4.4.2-tools-shared-libs.patch
)

src_unpack() {
        unpack ${A}
        mv "${WORKDIR}/sleuthkit-release-4.4.2" "${S}"
}

src_prepare() {
        AUTOTOOLS_AUTORECONF=1
        AUTOTOOLS_IN_SOURCE_BUILD=1
        autotools-utils_src_prepare
}

src_configure() {
        local myeconfargs=(
                $(use_with aff afflib)
                $(use_with ewf libewf)
                $(use_enable java)
        )
        autotools-utils_src_configure
}

src_compile() {
        einfo "src_compile()"
        autotools-utils_src_compile
        
        EANT_BUILD_XML="bindings/java/build.xml"
        use java && eant -f "${EANT_BUILD_XML}" dist
}


Если пытаюсь собрать с «USE=java», то получаю следующий отлуп:
$ USE=java ebuild sleuthkit-4.4.2.ebuild compile
 * release-4.4.2.zip SHA256 SHA512 WHIRLPOOL size ;-) ...                                                                                             [ ok ]
!!! ERROR: Couldnt find a VM dep
 * Unable to determine VM for building from dependencies:
NV_DEPEND: dev-db/sqlite:3
        ewf? ( app-forensics/libewf )
        aff? ( app-forensics/afflib )
        java? ( virtual/jdk ) >=app-portage/elt-patches-20170317 java? ( >=dev-java/java-config-2.2.0-r3  ) java? (  >=dev-java/ant-core-1.8.2:0
           
           
           >=dev-java/javatoolkit-0.3.0-r2 )
 * ERROR: app-forensics/sleuthkit-4.4.2::my-overlay failed (setup phase):
 *   Failed to determine VM for building.
 * 
 * Call stack:
 *               ebuild.sh, line  115:  Called pkg_setup
 *               ebuild.sh, line  348:  Called java-pkg-opt-2_pkg_setup
 *   java-pkg-opt-2.eclass, line   37:  Called java-pkg_init
 *     java-utils-2.eclass, line 2194:  Called java-pkg_switch-vm
 *     java-utils-2.eclass, line 2656:  Called die
 * The specific snippet of code:
 *                                      die "Failed to determine VM for building."
 * 
 * If you need support, post the output of `emerge --info '=app-forensics/sleuthkit-4.4.2::my-overlay'`,
 * the complete build log and the output of `emerge -pqv '=app-forensics/sleuthkit-4.4.2::my-overlay'`.
!!! When you file a bug report, please include the following information:
GENTOO_VM=  CLASSPATH="" JAVA_HOME=""
JAVACFLAGS="" COMPILER=""
and of course, the output of emerge --info =sleuthkit-4.4.2



Т.е. на этапе pkg_setup() почему-то не может найти JVM, хотя она есть.
$ eselect java-vm show
Current system-vm
  oracle-jdk-bin-1.8
Current user-vm
  (unset)
$ javac -version
javac 1.8.0_131


У меня такое ощущение, что autotools-utils и java-pkg-opt-2 не дружат между собой. Кто-нибудь с подобным сталкивался?

UPD:
Вылечилось прописыванием зависимости '( >=virtual/jdk-1.8.0 )'
Проблема как оказалось в 'depend-java-query', а autotools-utils с java-pkg-opt-2 тут не причём.

$ depend-java-query -v 'virtual/jdk'
!!! ERROR: Couldnt find a VM dep
$ depend-java-query -v '>=virtual/jdk-1.8.0'
oracle-jdk-bin-1.8

 ,

WatchCat ()