OpenRGB Slackbuild: Как сконфигурировать сборку?

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Аватара пользователя
UnixNoob
Сообщения: 982
ОС: Slackware

OpenRGB Slackbuild: Как сконфигурировать сборку?

Сообщение UnixNoob »

Понадобилось мне в Slackware отключить подсветку у видеокарты, нашел утилиту, но под Slackware её нет. Решил попробовать написать Slackbuild.
Собрал и установил в каталог по инструкции от автора OpenRGB:

Код: Выделить всё

Compiling

Install build dependencies

sudo apt install git build-essential qtcreator qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libusb-1.0-0-dev libhidapi-dev pkgconf libmbedtls-dev


git clone https://gitlab.com/CalcProgrammer1/OpenRGB

cd OpenRGB
qmake OpenRGB.pro
make -j$(nproc)
You can then run the application from the compile directory with ./openrgb or install with make install

You will also need to install the latest UDEV rules.
Получил такую вот картину:

Код: Выделить всё

/tmp/package-openrgb
└── usr
    ├── bin
    │   └── openrgb
    ├── lib
    │   └── udev
    │       └── rules.d
    │           └── 60-openrgb.rules
    └── share
        ├── applications
        │   └── OpenRGB.desktop
        ├── icons
        │   └── hicolor
        │       └── 128x128
        │           └── apps
        │               └── OpenRGB.png
        └── metainfo
            └── org.openrgb.OpenRGB.metainfo.xml
Но не совсем понимаю как мне это сконфигурировать похожим образом для сборки Slackbuild'ом:

Код: Выделить всё

Configure and Compile Sources

# Set configure options
# If your app is written in C++, you'll also need to add a line for CXXFLAGS
CFLAGS="$SLKCFLAGS" \
  ./configure \
  --prefix=/usr \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --with-perl=/usr/bin/perl \
  --enable-eps \
  --enable-gif \
  --enable-png \
  --build=$ARCH-slackware-linux \
  --host=$ARCH-slackware-linux 

# compile the source, but exit if anything goes wrong
make || exit
 
# Install everything into the package directory, but exit if anything goes wrong
make install DESTDIR=$PKG || exit

В Makefile надо смотреть? А откуда взять актуальные имена переменных для каталогов?

Код: Выделить всё

CC            = gcc
CXX           = g++
DEFINES       = -DVERSION_STRING=\""0.81\"" -DBUILDDATE_STRING=\""Sun, 15 Jan 2023 18:31:42 +0300\"" -DGIT_COMMIT_ID=\""915ecefd161a38552e48c9ec51eac37562c574d2\"" -DGIT_COMMIT_DATE=\""2023-01-14 03:26:22 +0000\"" -DGIT_BRANCH=\""master\"" -DUSE_HID_USAGE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB
CFLAGS        = -pipe -O2 -O2 -fPIC -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES)
CXXFLAGS      = -pipe -Wno-implicit-fallthrough -O2 -O2 -fPIC -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES)
DESTDIR не работал, подошел ключ INSTALL_ROOT
Udev в slackware я так понимаю надо помещать в /etc/udev/rules.d?
И еще я не понял с зависимостями:

Код: Выделить всё

qtcreator qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools 
это все обязательно или оно может идти в одном пакете. У меня установлен только пакет

Код: Выделить всё

qt5-5.15.3_20220318_e507d3e5-x86_64-1_slack15.0
qt5-webkit-5.212.0_alpha4-x86_64-7
Но при сборке он не ругался на qt...
«Хорошо сформулированная проблема — наполовину решенная проблема».Чарлз Кеттеринг
Спасибо сказали:
Аватара пользователя
Zer0
Сообщения: 447
ОС: Void, Slackware

Re: OpenRGB Slackbuild: Как сконфигурировать сборку?

Сообщение Zer0 »

Если не удастся собрать из слакбилда, можно попробовать через flatpak: OpenRGB
Последний раз редактировалось Zer0 17.01.2023 08:10, всего редактировалось 1 раз.
Memento mori ... сделай бэкап.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19763
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: OpenRGB Slackbuild: Как сконфигурировать сборку?

Сообщение Bizdelnick »

UnixNoob писал:
15.01.2023 19:12
Но не совсем понимаю как мне это сконфигурировать похожим образом для сборки Slackbuild'ом
configure заменяется на qmake, остальное в целом аналогично.
UnixNoob писал:
15.01.2023 19:12
это все обязательно или оно может идти в одном пакете
qtcreator точно не нужен, остальное может и в одном пакете лежать, в принципе.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 982
ОС: Slackware

Re: OpenRGB Slackbuild: Как сконфигурировать сборку?

Сообщение UnixNoob »

Собрал я это добро.

Код: Выделить всё

#!/bin/bash

# Slackware build script for openrgb

# Copyright 2023 UnixNoob.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Set initial variables:
cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=openrgb
SRCNAM=OpenRGB-release
VERSION=${VERSION:-0.8}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
UDEV_DIR=etc/udev/rules.d

# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
 case "$( uname -m )" in
   i?86) ARCH=i486 ;;
   arm*) ARCH=arm ;;
   # Unless $ARCH is already set, use uname -m for all other archs:
      *) ARCH=$( uname -m ) ;;
 esac
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

 rm -rf $PKG
 mkdir -p $TMP $PKG $OUTPUT
 cd $TMP || exit 1
 rm -rf $SRCNAM-$VERSION
 tar -xvf $CWD/$SRCNAM-$VERSION.tar.gz || exit 1
 cd $SRCNAM\_$VERSION || exit 1
 chown -R root:root .
 find -L . \
  \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
   -o -perm 511 \) -exec chmod 755 {} \; -o \
  \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
   -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
 
 qmake-qt5 \
     QMAKE_CFLAGS+="$SLKCFLAGS" \
     QMAKE_CXXFLAGS+="$SLKCFLAGS" \
     OpenRGB.pro
 make
 make install INSTALL_ROOT=$PKG
 mkdir -p $PKG/$UDEV_DIR
 cp $PKG/usr/lib/udev/rules.d/60-openrgb.rules $PKG/$UDEV_DIR
 rm -fR $PKG/usr/lib
 mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
 cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $TMP/$SRCNAM\_$VERSION/LICENSE > $PKG/usr/doc/$PRGNAM-$VERSION/LICENSE

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
Там еще модуль ядра i2c-dev включать надо. Иронично, но она меняет цвета нормально, но не выключает подсветку видеокарты, т.е режимы цветов срабатывают нормально, а именно выключение - нет.
На мышке/материнке для интереса проверил, там все выключается. В Windows оно выключается и на видеокарте.
В трекере там конечно завал, и похожие проблемы описаны.
«Хорошо сформулированная проблема — наполовину решенная проблема».Чарлз Кеттеринг
Спасибо сказали: