LinuxForum.Fans
Тема

SBOpkg - переменные

Автор: Wehrmacht_Rover 35 сообщений 9931 просмотров
#374034

"Wehrmacht_Rover" написал:
Ранее поступила информация что так не получится:
Речь была о том, что не получится без правки слакбилдов. Но вы слакбилды правите. Тогда, очевидно, выгоднее править универсальным способом и один раз, чем под каждый проверяемый вариант.

Более перспективным видится несколько иной вариант, поскольку он применяется AlienBob-ом в его слакбилдах по ARM, есть шанс, что этот вариант рано или поздно переедет и в репозитории Slackware и станет стандартным, см. http://alien.slackbook.org/blog/aliens-arm-sources-and-git/ в части /etc/slackbuild/machine.conf, пример: http://www.slackware.com/~alien/slackbuilds/sddm/build/sddm.SlackBuild, собственно идея (по ссылке есть ошибка в использовании $CWD до задания значения):
text
CWD=$(pwd)
if [ -e $CWD/machine.conf ]; then
  . $CWD/machine.conf ]
elif [ -e /etc/slackbuild/machine.conf ]; then
  . /etc/slackbuild/machine.conf ]
else
  # Automatically determine the architecture we're building on:
  MARCH=$( uname -m )
  if [ -z "$ARCH" ]; then
    case "$MARCH" in
      i?86)    export ARCH=i486 ;;
      arm*)    export ARCH=arm ;;
      # Unless $ARCH is already set, use uname -m for all other archs:
      *)       export ARCH=$MARCH ;;
    esac
  fi
  # Set CFLAGS/CXXFLAGS and LIBDIRSUFFIX:
  if [ "$ARCH" = "i486" ]; then
    SLKCFLAGS="-O2 -march=i486 -mtune=i686"
    LIBDIRSUFFIX=""
  elif [ "$ARCH" = "s390" ]; then
    SLKCFLAGS="-O2"
    LIBDIRSUFFIX=""
  elif [ "$ARCH" = "x86_64" ]; then
    SLKCFLAGS="-O2 -fPIC"
    LIBDIRSUFFIX="64"
  elif [ "$ARCH" = "arm" ]; then
    SLKCFLAGS="-O2 -march=armv5te"
    LIBDIRSUFFIX=""
  else
    SLKCFLAGS="-O2"
    LIBDIRSUFFIX=""
  fi
fi

Вот такой вариант мне видится более интересным, чем жёсткое вписывание конкретных опций.

#374097
"bormant" написал:
Но вы слакбилды правите

Как добавить sed'ом в слакбилд блок текста после заданной строки? Я так и не понял как это сделать *SCRATCH* От чтения английских манов мозги пухнут %) :(

#374099

man sed
Zero- or One- address commands
i (insert) -- перед, a (append) -- после, c (change) -- заменить.

Варианты задания адреса см. там же в Addresses.

#374221
"bormant" написал:
переопределить в локальном слакбилде путем правки его текста.

Я правлю локальные слакбилды, но sbopkg их не использует, а берёт с сервера, погань такая!

#374228

Wehrmacht_Rover,
не-а, локальные слакбилды в его понимании -- оканчивающиеся на .local. А если править его дерево, то он при синхронизации (-r), естественно, снова с сервера заберет все изменившееся, то есть, в вашем случае -- вообще всё, выше не зря обращал внимание на:

"bormant" написал:
... и не забывать повторять сие действо после каждой синхронизации ("sbopkg -r")

Правда, синхронизацию можно проводить разумно, только при наличии нужных изменений в http://slackbuilds.org/ChangeLog.txt.

#374229
"bormant" написал:
А если править его дерево, то он при синхронизации (-r), естественно, снова с сервера заберет все изменившееся

Я не делал -r
sbopkg -i program не видит правленные слакбилды, а делает всё по-своему :(

#374255

Wehrmacht_Rover,
значит тем более есть смысл править локальную копию слакбилда. В прошлый раз ошибся именем, локальная копия имеет на хвосте .sbopkg. Либо отложить правленную копию в собственный локальный репозиторий, прописав его в настройках репозиториев sbopkg, или воспользоваться уже имеющимся local/local.

#374349
"bormant" написал:
локальная копия имеет на хвосте .sbopkg

Что-то не нашёл. Есть wine.SlackBuild.build - это она?

#374411

Wehrmacht_Rover,
Нет.
Выходит, плохо объясняю, попробую ещё.
В sbopkg предусмотрено штатное средство модификации слакбилдов и файлов инфо. Если смотреть в интерфейсе, то это в меню пакета пункт Custom. До меню пакета добираемся любым удобным образом: Search или Browse. Правка из того меню приводит к созданию файлов пакет.SlackBuild.sbopkg, пакет.info.sbopkg.

При сборке, если sbopkg видит наличие *.SlackBuild.sbopkg и/или *.info.sbopkg, он спрашивает, использовать модифицированные файлы или оригинальные. Если их туда положить руками, эффект будет тот же самый.

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

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

#374445

Я, как уже не раз говорил, несмотря на очевидную пользу sbopkg, не пользуюсь им, по той причине, что все равно же правлю слакбилды и/или пишу свои, и помощник мне в этом не требуется. Вместо этого, в браузер интегрировал поиск по базе slackbuilds.org, штатными средствами браузера (ПКМ на поле поиска > Создать поиск).

#376648

Вообще говоря хоть какой то прирост от этих игрищ с флагами можно получить только с заменой -O2 на -O3, в частности при пересборке QT по тестам есть прирост порядка 15%, но при такой замене некоторые другие проги просто не будут собираться. Остальное, как сказал bormant, плацебо, но ощущая от него кайф вполне можно поймать глюк уже от косяков gcc. Патрегх, он мудер, ставит флаги, которые будут работать всегда и на всем.
ffast-math это гарантированный геморрой со всем, использующим sqlite, при этом выигрыша там или вообще нет или его в наноскоп надо смотреть :-)

#376690
"SergMarkov" написал:
Остальное, как сказал bormant, плацебо

Акак же сборка под определённый процессор? Разве не будет прироста производительности?

#376691

Может она и будет, но ее можно будет увидеть только в наноскоп :-) Когда-то почти два месяца вечерами потратил на эти флаги с тестами. Основной эффект от -O3, все остальное или вообще не дает прироста или он неразличим, практически на уровне статпогрешности.

#376749
"SergMarkov" написал:
Основной эффект от -O3

Читал, что эта опция сжирает много кеша, по этому старый проц с малениким кешем в 512 кб будет жутко тупить.

#376755
"Wehrmacht_Rover" написал:
эта опция сжирает много кеша

"Сжирает" -- это вряд ли. Скорее всего, речь шла о том, что нередки ситуации, когда оптимизированное по -O2 (размеру) помещается в кеш, а -O3 (по скорости) -- не вмещается, и поэтому промахи за пределы кеша сводят на нет или даже ухудшают общее быстродействие фрагмента кода.

Войдите или зарегистрируйтесь, чтобы ответить.