Сборка пакета нв основе .deb

Есть не понимание процесса сборки и усановки.
В исходном deb пакете есть функции которые выполняются после установки относящиеся к обновлению меню и т.п., а так же создание дополнительных папок и установка на них прав.
1 вопрос.
Нужно делать обновление и генерацию локали с помощью следующих команд: update-menus, update-desktop-database, update-mime-database, gtk-update-icon-cache, locale-gen ru_RU?
2 вопрос.
Нужно создать дополнительную папку и указать на нее права, пробовал это делать в "post_install()", но во время установки ничего не происходит. Никаких ошибок не выводит. Папка создается так:

if [ ! -d /var/bricsys/RenderMaterials ]; then
    mkdir /var/bricsys/RenderMaterials
    chmod 777 /var/bricsys/RenderMaterials
fi
куда копать, как понять в чем проблема?
deb пакет - это НЕ для Arch .... но если очень нужен deb-пакет в Arch, есть иструмент преобазуюший deb-пакет в arch-пакет
aur/debtap 3.5.1-1 [+293 ~4.21]
A script to convert .deb packages to Arch Linux packages, focused on accuracy.
Do not use it to convert packages that already exist on official repositories or can be built from AUR!
Ошибки не исчезают с опытом - они просто умнеют
Это я понимаю, есть BricsCAD официально для Arch пакеты не делает, только RPM и DEB , в AUR только пакеты для EN, FR и CH. хотел сделать для себя RU, ну и заодно понять процесс.
Вот и возникли вопросы, в пакетах для EN нужные папки в системе создают на этапе создания пакета, но это не правильно, т.к. при установке локального собранного заранее пакета они созданы не будут, у FR вообще бред не выполняемый сделан.
Не могу понять почему не создаются папки после установки, почему не срабатывает следующий код (из файла PKGBUILD) и не создает папку?
post_install(){
 if [ ! -d /var/bricsys/RenderMaterials ]; then
    mkdir /var/bricsys/RenderMaterials
    chmod 777 /var/bricsys/RenderMaterials
fi
}
moreglorious
в пакетах для EN нужные папки в системе создают на этапе создания пакета, но это не правильно, т.к. при установке локального собранного заранее пакета они созданы не будут,
Теперь переведи это.
В PKGBUILD прописано создание каталогов, потом эти каталоги переносятся в создаваемый пакет, при установки этого пакета, эти папки буду перенесены в систему.
Что тут не правильного?
https://t.me/arch_linuxru
Посмотрел пакеты, там солянка полная из баш команд а не правильный PKGBUILD...
К тому же нужно вручную скачивать сам deb пакет, первый раз вижу такое. У французской версии даже скачивальщик на питоне написан, круто!)

Покажите ваш уже написанный PKGBUILD, посмотрим, что можно улучшить. Но без deb или rpm пакета это будет сложно сделать.
Мой PKGBUILD (не знаю как спрятать под спойлер или приложить файлом)

pkgname=bricscad-ru
pkgver=24.2.03
pkgrel=1

pkgdesc="BricsCAD - альтернативная DWG САПР №1 в мире предлагает полный набор инструментов для профессиональных пользователей. BricsCAD использует формат чертежей DWG и имеет высокий уровень совместимости с AutoCAD"
arch=("x86_64")
url="https://www.bricsys.com"
license=('Custom:bricscad')

depends=('glibc' 'cairo' 'expat' 'fontconfig' 'gcc-libs' 'libice'
         'libcups' 'freetype2' 'gtk3' 'xcb-util-wm' 'xcb-util-image'
         'xcb-util-keysyms' 'xcb-util-renderutil' 'libxcb')

provides=('bricscad')
conflicts=('bricscad' 'bricscad-fr_fr' 'bricscad-cn')

options=(!strip)

DLAGENTS+=('manual::/usr/bin/echo \ \ Note: Please download the package manually from the official website')
source=("manual://BricsCAD-V${pkgver}-1-ru_RU-amd64.deb")
sha256sums=('f43e5f743616cb122a59aeb26873ffa5c37f6abe22f8327a1b89b36c4f51d696')

prepare() {
    tar -xpf data.tar.xz
}

package() {
    cp -dr --no-preserve=ownership ./usr "${pkgdir}"/
    cp -dr --no-preserve=ownership ./opt "${pkgdir}"/
    cp -dr --no-preserve=ownership ./var "${pkgdir}"/
}

post_install() {
    if [ ! -d /var/bricsys ]; then
        mkdir /var/bricsys
        chmod 777 ./var/bricsys
    fi

    if [ ! -d /var/bricsys/RenderMaterials ]; then
        mkdir /var/bricsys/RenderMaterials
        chmod 777 /var/bricsys/RenderMaterials
    fi

    if [ ! -d /var/bricsys/RenderMaterials/UserMaterials ]; then
        mkdir /var/bricsys/RenderMaterials/UserMaterials
        chmod 777 /var/bricsys/RenderMaterials/UserMaterials
    fi

    if [ -x "`which update-menus 2>/dev/null`" ]; then
        update-menus
    fi

    if [ -x "`which update-desktop-database 2>/dev/null`" ]; then
        update-desktop-database /usr/share/applications/
    fi

    if [ -x "`which update-mime-database 2>/dev/null`" ]; then
        update-mime-database /usr/share/mime
    fi

    if [ -x "`which gtk-update-icon-cache 2>/dev/null`" ] && [ -x /usr/share/icons/gnome/index.theme ]; then
        gtk-update-icon-cache --force /usr/share/icons/gnome
    fi

    if [ -x "`which locale-gen 2>/dev/null`" ]; then
        locale-gen ru_RU
    fi
}

post_remove() {
    if [ -x "`which update-menus 2>/dev/null`" ]; then update-menus ; fi

    if [ -x "`which update-desktop-database 2>/dev/null`" ]; then update-desktop-database /usr/share/applications/ ; fi

    if [ -x "`which update-mime-database 2>/dev/null`" ]; then update-mime-database /usr/share/mime ; fi

    if [ -x "`which gtk-update-icon-cache 2>/dev/null`" ] && [ -x /usr/share/icons/gnome/index.theme ]; then gtk-update-icon-cache --force /usr/share/icons/gnome ; fi
}
Nebulosa
К тому же нужно вручную скачивать сам deb пакет, первый раз вижу такое
Сплошь и рядом теперь, когда речь идёт о платном/лицензионном софте.
https://t.me/arch_linuxru
Nebulosa
посмотрим, что можно улучшить
Можешь не тратить время, с PKGBUILD от пакета bricscad, всё прекрасно собирается и ставится.
https://t.me/arch_linuxru
moreglorious
Мой PKGBUILD (не знаю как спрятать под спойлер или приложить файлом)

В общем, я бы сделал так. Совершенно непонятно зачем там даются полные права на папку, причём которая находится в /var (так нельзя) а не в /opt например (уже можно).


# Maintainer: William Tang <galaxyking0419@gmail.com>
# Maintainer: ...

pkgname=bricscad-bin-ru
pkgver=24.1.06
pkgrel=1
pkgdesc="CAD Software for People Who Build the Future. Russian version"
arch=(x86_64)
url="https://www.bricsys.com/"
license=('custom:bricscad')
provides=(${pkgname%-bin-ru})
conflicts=(${pkgname%-bin-ru})
depends=(
  alsa-lib
  glu
  libxcrypt-compat
  libxkbfile
  nss
  openmotif
  xcb-util-image
  xcb-util-keysyms
  xcb-util-renderutil
  xcb-util-wm
  webkit2gtk
)
optdepends=('bricscad-communicator>=24: Addtional import/export file format support')

DLAGENTS+=('manual::/usr/bin/echo \ \ Note: Please download the package manually from the official website')
source=("manual://BricsCAD-V${pkgver}-1-ru_RU-amd64.deb")
sha256sums=(57f26cf242a719cec1fa12b558d92c7d27c64f14f43d7a1bd334d3aeb5edfcdb)

options=(!strip)
install=${pkgname%-bin-ru}.install

package() {
  bsdtar -xf "$srcdir"/data.tar.xz -C "$pkgdir"
}

Install файл надо или брать из английской версии или написать самому. Но повторюсь, пока не увижу сам .deb файл больше особо ничего сказать не смогу..
RusWolf
Можешь не тратить время, с PKGBUILD от пакета bricscad, всё прекрасно собирается и ставится.]
Как обычно)

Но и английская версия криво написана, namcap покажет, что-где не так.
 
Зарегистрироваться или войдите чтобы оставить сообщение.