LINUX.ORG.RU

5
Всего сообщений: 56

Появился скрипт для изменения макроса %mkrel

В продолжение сегодняшней темы - А маинтейнеры ваших дистрибутивов запретили использовать дистрибутивные суффиксы для имён неофициальных пакетов? - таки запилил сабжевый скрипт - http://saahriktu.org/mageia-hacker/2019-09-05-1 .

С его помощью я уже перепилил свои .src.rpm пакеты (новый выбранный мной суффикс - «saahriktu_for_mageya7»).

Проверить можно так:

$ rpm -E "%{mkrel 1}"
1.saahriktu_for_mageya7

UPD. Прошлый вариант суффикса получился длинноват, да. Поэтому путём «μαγεία -> 魔法 -> maho» был перевыбран другой суффикс - «maho7».

 ,

saahriktu ()

Помогите исправить скрипт

У меня есть сборка Firefox 52 ESR для SLES 11, теперь надо сделать Firefox 60 ESR. Он хочет RUST, который хочет LLVM.

Вот проблемный кусочек SPEC-файла LLVM 5:

%if %{with lldb_python}
# Python: fix binary libraries location.
liblldb=$(basename $(readlink -e %{buildroot}%{_libdir}/liblldb.so))
ln -vsf "../../../${liblldb}" %{buildroot}%{python_sitearch}/lldb/_lldb.so
ln -vsf "../../${liblldb}"    %{buildroot}%{python_sitearch}/_lldb.so
%endif

Вот что мне выдаёт выдаёт сборка:

+ mv /var/tmp/llvm5-5.0.0-build/usr/share/opt-viewer/optrecord.py /var/tmp/llvm5-5.0.0-build/usr/lib64/python2.6/site-packages/optrecord.py
+ mkdir -p /var/tmp/llvm5-5.0.0-build/etc/bash_completion.d
+ mv /var/tmp/llvm5-5.0.0-build/usr/share/clang/bash-autocomplete.sh /var/tmp/llvm5-5.0.0-build/etc/bash_completion.d/clang.sh
+ chmod -x /var/tmp/llvm5-5.0.0-build/etc/bash_completion.d/clang.sh
+ chmod -x /var/tmp/llvm5-5.0.0-build/usr/share/man/man1/scan-build.1
+++ readlink -e /var/tmp/llvm5-5.0.0-build/usr/lib64/liblldb.so
++ basename
basename: missing operand
Try `basename --help' for more information.
+ liblldb=
error: Bad exit status from /var/tmp/rpm-tmp.12942 (%install)

Возможно, старый bash имеет другой синтаксис. Помогите, пожалуйста, исправить

 , ,

ZenitharChampion ()

RPMмизация

Никогда раньше не заморачивался с опакечиванием и тут как говорится понадобилось опять. Собрал rpmку, все отлично, конфиги, директории, все как надо, но почему то после ребута директория /var/run/myapp куда то пропадает и собственно myapp запуститься не может, ибо pid создать негде. При установке rpm директория точно создается. Подскажите, может я что то не так делаю? Может директива какая в .spec нужна особая для /run?

 ,

partyzan ()

OCRFeeder или как собрать пакеты rpm(CentOs7)

Часы гугления особого толка не принесли, так и не смог найти готовый пакет ocrfeeder... а сборка пакета для меня вообще темный лес. Есть ли подробный пошаговый мануал по сборке пакета rpm? Нужен гуй для распознавания текста..

 , , ,

mifi ()

Не собирается wal-g в rpm на copr.fedorainfracloud.org

Пытаюсь собрать wal-g в rpm на copr.fedorainfracloud.org

Вот репо https://github.com/patsevanton/wal-g-rpm

Вот проект https://copr.fedorainfracloud.org/coprs/antonpatsev/wal-g/

Вот лог https://copr-be.cloud.fedoraproject.org/results/antonpatsev/wal-g/epel-7-x86_...

Пытаюсь поменять разные параметры: %setup, BuildRoot.

Из-за чего может быть ошибка?

В Source0: https://github.com/wal-g/wal-g/releases/download/v%{version}/wal-g.linux-amd64.tar.gz нажодится скомпилированный wal-g

 ,

chemtech ()

spec rpm change name

всем привет

скажите плиз

как изменить имя rpm на выходе?

меняю таким образом %define _rpmfilename

все равно использует имя из переменной Name

 , ,

carter ()

Простейший способ сборки RPM-пакета

Возможно ли собрать rpm-пакет без создания всех этих сборочных каталогов и написания спека? Например, у меня уже есть распотрошённый deb и дерево каталогов вида (условно):

usr/bin/foo
usr/share/applications/foo.desktop
usr/share/icons/HiColor/foo.png

Можно как-то обойтись без спека и всех этих прелюдий, как в той же Слаке с её makepkg?

 , ,

meliafaro ()

ocilib - Необходимо: libclntsh.so.12.1 (какой то баг)

Всем привет.
Помогите плиз
Собрал ocilib в rpm пакет при установке пакета выдает

spec файл

..............

%prep
%setup -q
./reconf


%build
#export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/
./configure --with-oracle-headers-path=/usr/include/oracle/12.1/client64 --with-oracle-lib-path=/usr/lib/oracle/12.1/client64/lib
make

%install
#export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/
make install DESTDIR=%{buildroot}
%check
make check

%files
/usr/local/lib

%files devel
/usr/local/include
/usr/local/share
oracle-instantclient12.1
ldconfig -p | grep libclntsh.so.12.1
	libclntsh.so.12.1 (libc6,x86-64) => /usr/lib/oracle/12.1/client64/lib/libclntsh.so.12.1

rpm -q --whatprovides libclntsh.so.12.1
oracle-instantclient12.1-basic-12.1.0.0.0-1.x86_64


сделал:
sudo sh -c "echo /usr/lib/oracle/12.1/client64/lib > \
      /etc/ld.so.conf.d/oracle-instantclient.conf"
  sudo ldconfig

export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib:$LD_LIBRARY_PATH

собирается всё отлично


ldconfig -p | grep libclntsh.so*
	libclntsh.so.12.1 (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1
	libclntsh.so (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libclntsh.so

но при установке rpm пакета

yum install ocilib-4.5.1-1.el7.centos.x86_64.rpm  ocilib-devel-4.5.1-1.el7.centos.x86_64.rpm 
Загружены модули: fastestmirror
Проверка ocilib-4.5.1-1.el7.centos.x86_64.rpm: ocilib-4.5.1-1.el7.centos.x86_64
ocilib-4.5.1-1.el7.centos.x86_64.rpm отмечен для установки
Проверка ocilib-devel-4.5.1-1.el7.centos.x86_64.rpm: ocilib-devel-4.5.1-1.el7.centos.x86_64
ocilib-devel-4.5.1-1.el7.centos.x86_64.rpm отмечен для установки
Разрешение зависимостей
--> Проверка сценария
---> Пакет ocilib.x86_64 0:4.5.1-1.el7.centos помечен для установки
--> Обработка зависимостей: libclntsh.so.12.1()(64bit) пакета: ocilib-4.5.1-1.el7.centos.x86_64
Loading mirror speeds from cached hostfile
 * base: mirror.reconn.ru
 * epel: mirror.yandex.ru
 * extras: mirror.yandex.ru
 * nux-dextop: mirror.li.nux.ro
 * updates: mirror.reconn.ru
---> Пакет ocilib-devel.x86_64 0:4.5.1-1.el7.centos помечен для установки
--> Проверка зависимостей окончена
Ошибка: Пакет: ocilib-4.5.1-1.el7.centos.x86_64 (/ocilib-4.5.1-1.el7.centos.x86_64)
            Необходимо: libclntsh.so.12.1()(64bit)
 Вы можете попробовать --skip-broken чтобы обойти проблему
 Вы можете попробовать запустить: rpm -Va --nofiles --nodigest

 ,

carter ()

Сборка rpm пакета из одного Python скрипта с зависимостями

Хочу установить файл в /usr/bin, но скрипт неизвестно где ожидает найти этот файл. Файл simple-1.0.tar.gz в котором директория simple-1.0 в которой файл simple.py находится в SOURCES

Вопрос: где скрипт ожидает файл simple.py и как ему его указать?

Summary:         Simple python script
License:         MIT
Name:            simple
Version:         1.0
Release:         1%{?dist}
Source0:         %{name}-%{version}.tar.gz
Group:           Application/Multimedia 
BuildRoot:       %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildArch:       noarch
BuildRequires:   python-devel
Requires:        python
Requires:        python-requests

%description
Simple description for simple python script.

%prep
%setup -q

%install
rm -rf $RPM_BUILD_ROOT
install -m 0775 simple.py $RPM_BUILD_ROOT/usr/bin/simple.py

%clean
rm -rf $RPM_BUILD_ROOT

%files
/usr/bin/simple.py

%changelog
* Fri Jul 27 2018 Ycewc Rvdfvf <sdvsdvsdv@ssdvsdvdv.ru>
- test changelog

Это лог

#!/bin/sh

  RPM_SOURCE_DIR="/home/builder/rpmbuild/SOURCES"
  RPM_BUILD_DIR="/home/builder/rpmbuild/BUILD"
  RPM_OPT_FLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables"
  RPM_ARCH="i386"
  RPM_OS="linux"
  export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS
  RPM_DOC_DIR="/usr/share/doc"
  export RPM_DOC_DIR
  RPM_PACKAGE_NAME="simple"
  RPM_PACKAGE_VERSION="1.0"
  RPM_PACKAGE_RELEASE="1.el6"
  export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
  LANG=C
  export LANG
  unset CDPATH DISPLAY ||:
  RPM_BUILD_ROOT="/home/builder/rpmbuild/BUILDROOT/simple-1.0-1.el6.i386"
  export RPM_BUILD_ROOT

  PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/lib/pkgconfig:/usr/share/pkgconfig"
  export PKG_CONFIG_PATH

  set -x
  umask 022
  cd "/home/builder/rpmbuild/BUILD"
    [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "${RPM_BUILD_ROOT}"
    mkdir -p `dirname "$RPM_BUILD_ROOT"`
    mkdir "$RPM_BUILD_ROOT"

cd 'simple-1.0'
LANG=C
export LANG
unset DISPLAY

rm -rf $RPM_BUILD_ROOT
install -m 0775 simple.py $RPM_BUILD_ROOT/usr/bin/simple.py

    /usr/lib/rpm/check-rpaths   /usr/lib/rpm/check-buildroot

    /usr/lib/rpm/redhat/brp-compress 
    /usr/lib/rpm/redhat/brp-strip /usr/bin/strip 
    /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip 
    /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump 
    /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 
    /usr/lib/rpm/redhat/brp-python-hardlink 
    /usr/lib/rpm/redhat/brp-java-repack-jars 

 , , ,

sniper21 ()

Сборка пакета из исходников в opensuse с опциями

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

Конкретно - хочу пересобрать vim со своими опциями. Как это сделать?

Ну и чтоб 2 раза не вставать - как можно получить весь комплект для сборки точно такого же пакета своими силами? Вот, например, firefox - opensuse его знатно патчат, отучают от файловых диалогов GTK, например. А вот я хочу собрать свою версию firefox dev edition с этими же патчами. Как это провернуть?

 , , , ,

ekzotech ()

rpmbuild 64bit

всем привет

как можно указать сборку rpm только под 64бита?

rpmbuild

 ,

carter ()

Сборка модулей python 3 в centos 6

Всем привет! Подскажите пожалуйста, а есть ли какой-то дефолтный, простой и элегантный способ сборки модулей python3 в rpm для centos6 ? Нашёл только pyp2rpm но у меня с ним возникли проблемы ввиду того, что в centos 6 python 3 в epel называется python34 и все пакеты для него тоже, из-за этого получается что-то типа того:

error: Failed build dependencies:
	python3-devel is needed by python-python3-pika-0.9.14-1.el6.noarch
	python3dist(setuptools) is needed by python-python3-pika-0.9.14-1.el6.noarch
	python34dist(setuptools) is needed by python-python3-pika-0.9.14-1.el6.noarch

 , , ,

Grotesque ()

RPM repository mirroring

Всех с новым годом!

Обернул скрипт https://gist.github.com/piotr1212/9135754 для удобного создания зеркал в RPM, в том числе и для тех зеркал, которые для своей работы требуют ключи.

Репозиторий:

https://github.com/patsevanton/rpm-repository-mirroring

В README.md написано кратко как пользоваться.

По сути скрипт это старый добрый скрипт, который является обвязкой надо reposync.

Так, например, сделал репо для google-chrome.

Возможно кому-нибудь пригодится.

 ,

chemtech ()

Centos7 установка rpm пакета

Доброе утро! Может кто сталкивался, при установке пакета squid-helpers-7.3.5.20-1.x86_64 .rpm выдает ошибку

«error: Failed dependecies: squid = 7:3.5.20-1 is needed by squid-helpers-7.3.5.20-1.x86_64».

Не пойму что еще нужно, squid то у меня установлен, версия 3.5.20

 , , ,

mexces ()

Сборка minikube из бинарников в rpm

Всем привет!
Пытаюсь собрать minikube из бинарников в rpm
Вот репо
https://github.com/patsevanton/minikube-rpm

RPM build errors:
File not found: /home/user/rpmbuild/BUILDROOT/minikube-0.23.0-1.fc27.x86_64/home/user/rpmbuild/BUILDROOT/minikube-0.23.0-1.fc27.x86_64/usr/local/bin/minikube-linux-amd64
Хотя spec вроде нормальный. Где может быть ошибка?

 , , ,

chemtech ()

Сборка consul-rpm с помощью Fedora Copr

Всем привет. Подскажите как собрать consul-rpm с помощью Fedora Copr?

Вот есть https://github.com/tomhillable/consul-rpm

Source Type:
Build from a SCM repository
SCM type:
git
Clone URL:
https://github.com/hashicorp/consul.git
Path to .spec file:
https://github.com/tomhillable/consul-rpm/blob/master/SPECS/consul.spec
stderr: error: Unable to open /tmp/tmpe55spa0t/consul/https:/github.com/tomhillable/consul-rpm/blob/master/SPECS/consul.spec: No such file or directory
Could not execute srpm: can't parse specfile


Кто-нибудь работал с Copr? Как вы делали rpm?

UPD: Скорее всего spec файл должен быть в репозитории git. А как сделать если его я spec файла нет в проекте?

 , , , ,

chemtech ()

Установка checkinstall в CentOS 7

Намедни мне тут потребовалось установить checkinstall в CentOS 7 и я обнаружил, что для него нет готовых пакетов, только для CentOS 6, да и то 32-битные.

Установка же через make install дает проблемы с совместимостью 32 и 64 бит: https://serverfault.com/questions/438214/installing-checkinstall-on-x86-64-bit

Но я наткнулся на GitHub-е на следующий проект: https://github.com/q1701/build-checkinstall/tree/master/centos7

Это вроде то, что нужно, и причем свежее: последний коммит неделю назад.

Но в коде сего проекта я нашел упоминание Docker и контейнеров. Какие пакеты и их группы я должен поставить на CentOS 7, чтобы все работало нормально? Включая пакеты и группы для сборки rpm, конечно.

Вот часть кода:

build

#!/bin/sh
IMAGE_NAME="q1701/build-checkinstall-centos7"
STAGE_DIR="./stage"
docker build -t $IMAGE_NAME $STAGE_DIR
run
#!/bin/sh
IMAGE_NAME="q1701/build-checkinstall-centos7"
CONTAINER_NAME="build-checkinstall-centos7"
VOLUME_SHARE_HOST=$(dirname $(readlink -e $0))/share
VOLUME_SHARE_CONTAINER=/mnt/share
VOLUME_SHARE_MODE=rw
docker run -t --env="VOLUME_SHARE_CONTAINER=$VOLUME_SHARE_CONTAINER" -v $VOLUME_SHARE_HOST:$VOLUME_SHARE_CONTAINER:$VOLUME_SHARE_MODE --name $CONTAINER_NAME $IMAGE_NAME

 , , , ,

Vsevolod-linuxoid ()

как rpm устанавливает init-scripts?

Всем привет! Есть приложение на java, оно должно запускаться простой командой:

java -jar appname.jar -some_options 
Собирается оно при помощи sbt, проблема в том, что нужно смастерить нативный rpm пакет для его установки, но простая опция sbt которая собирает rpm пакет не выдает инит скрипт и systemd-юнит, который правильно запускал бы приложение и адекватно реагировал бы на опции. Написать init-script как и юнит для меня не проблема, но я не понимаю, как и куда его засунуть, чтобы rpm-пакет при установке правильно его разворачивал. Система-RHEL 7.2

 , ,

Pyzia ()

Добавить зависимость при сборке mock

Есть src.rpm с неким драйвером, который считает себя kmod и у которого в спеке отсутствует привязка к ядру. На практике при установке в «не свое ядро» он не работает. Я хочу собрать его под все использующиеся у нас ядра и положить в репу.
Можно ли добавить зависимость от ядра на стадии билда mock --rebuild? Или придется рпмку устанавливать в чрут, патчить спек и только потом собирать?

 , ,

Deleted ()

как заставить rpmbuild не удалять и не очищать исходный код

как заставить rpmbuild не удалять и не очищать исходный код ?
например собираю gcc-6.3.1 на опенсусе 42, но собирается он очень долго и может выдать ошибку (как в середине сборки так и в конце)
т.е. мне нужно продолжить сборку rpm пакета после устранения ошибок, а не собирать все заново
а иначе он удаляет, распаковывает, применяет патчи и т.д.

 

x905 ()