taotieren 发表于 2022-12-5 09:30

【开源编程语言 HVML】Arch Linux 下对 xguipro (hvml)进行打包

# xguipro 发行版

Arch 及其衍生版安装 (https://aur.archlinux.org/pkg/xguipro) 方式

```bash
yay -S xguipro-gtk3
# or
yay -S xguipro-gtk4
```

PKGBUILD 源码

```bash
# Maintainer: taotieren <admin@taotieren.com>

pkgbase=xguipro
pkgname=(xguipro-gtk3 xguipro-gtk4)
pkgver=0.6.1
pkgrel=3
pkgdesc="xGUI (the X Graphics User Interface) Pro is a modern, cross-platform, and advanced HVML renderer which is based on tailored WebKit."
arch=('x86_64' 'aarch64' 'mips64' 'powerpc' 'powerpc64le')
url="https://github.com/HVML/xGUI-Pro"
license=('LGPL-3.0')
groups=('hvml-git')
provides=(${pkgbase}'xGUI-Pro')
conflicts=(${pkgbase})
replaces=()
depends=('glib2' 'gperf' 'enchant')
makedepends=('git' 'cmake' 'ninja' 'ccache' 'gcc' 'python' 'libxml2' 'ruby' 'curl' 'openssl' 'sqlite' 'pkgconf' 'zlib' 'icu' 'webkit2gtk-hvml' 'patch')
optdepends=('purc: The prime HVML interpreter for C Language.'
            'purc-midnight-commander: A generic HVML renderer in text mode for development and debugging.'
            'webkit2gtk-hvml: Web content engine for GTK (HVML)')
backup=()
options=()
install=
source=("${pkgbase}-${pkgver}.tar.gz::${url}/archive/refs/tags/ver-${pkgver}.tar.gz"
      "fix-ver-0.6.1.patch")
sha256sums=('bf24d4aa9110d2e7b674256ea89a359ef87c9f0d44aefeb9457ac732a281836a'
            '62638afcf82751985ee8faff07a820bd60b1b80a1475e820f63cbd1d3e0b814a')

prepare() {
    cd "${srcdir}/xGUI-Pro-ver-${pkgver}/"
    patch -p1 < ../fix-ver-0.6.1.patch
}

package_xguipro-gtk3() {
    pkgdesc+=" (gtk3)"
    depends+=('gtk3' 'libsoup')
    conflicts=(${pkgbase})

    cd "${srcdir}/xGUI-Pro-ver-${pkgver}/"

# CMake build
#   cmake -DCMAKE_BUILD_TYPE=Release \
#         -DPORT=GTK \
#         -DCMAKE_INSTALL_PREFIX=/usr \
#         -DCMAKE_INSTALL_LIBDIR=lib \
#         -DCMAKE_INSTALL_LIBEXECDIR=lib \
#         -DENABLE_GAMEPAD=OFF \
#         -DENABLE_INTROSPECTION=OFF \
#         -DUSE_SOUP2=ON \
#         -DUSE_WPE_RENDERER=OFF \
#         -DUSE_LCMS=OFF \
#         -B build-gtk3 \

#   cmake --build build-gtk3
# Ninja build
    cmake -DCMAKE_BUILD_TYPE=Release \
      -DPORT=GTK \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_INSTALL_LIBDIR=lib \
      -DCMAKE_INSTALL_LIBEXECDIR=lib \
      -DENABLE_GAMEPAD=OFF \
      -DENABLE_INTROSPECTION=OFF \
      -DUSE_SOUP2=ON \
      -DUSE_WPE_RENDERER=OFF \
      -DUSE_LCMS=OFF \
      -B build-gtk3 \
      -G Ninja

    ninja -C build-gtk3
# make install
#   make -C "${srcdir}"/xGUI-Pro-ver-${pkgver}/build-gtk3 install DESTDIR="${pkgdir}"

# ninja install
    DESTDIR="${pkgdir}" ninja -C "${srcdir}"/xGUI-Pro-ver-${pkgver}/build-gtk3 install
}

package_xguipro-gtk4() {
    pkgdesc+=" (gtk4)"
    depends+=('gtk4' 'libsoup3')
    conflicts=(${pkgbase})

    cd "${srcdir}/xGUI-Pro-ver-${pkgver}/"

# CMake build
#   cmake -DCMAKE_BUILD_TYPE=Release \
#         -DPORT=GTK \
#         -DCMAKE_INSTALL_PREFIX=/usr \
#         -DCMAKE_INSTALL_LIBDIR=lib \
#         -DCMAKE_INSTALL_LIBEXECDIR=lib \
#         -DENABLE_GAMEPAD=OFF \
#         -DENABLE_INTROSPECTION=OFF \
#         -DUSE_SOUP3=ON \
#         -DUSE_WPE_RENDERER=OFF \
#         -DUSE_LCMS=OFF \
#         -B build-gtk4 \

#   cmake --build build-gtk4

# Ninja build
    cmake -DCMAKE_BUILD_TYPE=Release \
      -DPORT=GTK \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_INSTALL_LIBDIR=lib \
      -DCMAKE_INSTALL_LIBEXECDIR=lib \
      -DENABLE_GAMEPAD=OFF \
      -DENABLE_INTROSPECTION=OFF \
      -DUSE_SOUP3=ON \
      -DUSE_WPE_RENDERER=OFF \
      -DUSE_LCMS=OFF \
      -B build-gtk4 \
      -G Ninja

    ninja -C build-gtk4
# make install
#   make -C "${srcdir}"/xGUI-Pro-ver-${pkgver}/build-gtk4 install DESTDIR="${pkgdir}"

# ninja install
    DESTDIR="${pkgdir}" ninja -C "${srcdir}"/xGUI-Pro-ver-${pkgver}/build-gtk4 install
}
```


# xguipro 开发版

Arch 及其衍生版安装 (https://aur.archlinux.org/pkgbase/xguipro-git) 方式

```bash
yay -S xguipro-gtk3-git
# or
yay -S xguipro-gtk4-git
```

PKGBUILD 源码

```bash
# Maintainer: taotieren <admin@taotieren.com>

pkgbase=xguipro-git
pkgname=(xguipro-gtk3-git xguipro-gtk4-git)
pkgver=0.6.1.r5.gcb2ca06
pkgrel=2
pkgdesc="xGUI (the X Graphics User Interface) Pro is a modern, cross-platform, and advanced HVML renderer which is based on tailored WebKit."
arch=('x86_64' 'aarch64' 'mips64' 'powerpc' 'powerpc64le')
url="https://github.com/HVML/xGUI-Pro"
license=('LGPL-3.0')
groups=('hvml-git')
provides=(${pkgbase%-git}'xGUI-Pro')
conflicts=(${pkgbase%-git})
replaces=()
depends=('glib2' 'gperf' 'enchant')
makedepends=('git' 'cmake' 'ninja' 'ccache' 'gcc' 'python' 'libxml2' 'ruby' 'curl' 'openssl' 'sqlite' 'pkgconf' 'zlib' 'icu' 'webkit2gtk-hvml')
optdepends=('purc: The prime HVML interpreter for C Language.'
            'purc-midnight-commander: A generic HVML renderer in text mode for development and debugging.'
            'webkit2gtk-hvml: Web content engine for GTK (HVML)')
backup=()
options=('!strip')
install=
source=("${pkgbase%-git}::git+${url}.git")
sha256sums=('SKIP')

pkgver() {
    cd "${srcdir}/${pkgbase%-git}/"
#   git describe --long --tags | sed 's/ver.//g;s/\([^-]*-g\)/r\1/;s/-/./g'
    git describe --always --tags | sed 's/ver.//g;s/\([^-]*-g\)/r\1/;s/-/./g'
}

package_xguipro-gtk3-git() {
    pkgdesc+=" (gtk3)"
    depends+=('gtk3' 'libsoup')
    conflicts=(${pkgbase%-git})

    cd "${srcdir}/${pkgbase%-git}"

# CMake build
#   cmake -DCMAKE_BUILD_TYPE=Release \
#         -DPORT=GTK \
#         -DCMAKE_INSTALL_PREFIX=/usr \
#         -DCMAKE_INSTALL_LIBDIR=lib \
#         -DCMAKE_INSTALL_LIBEXECDIR=lib \
#         -DENABLE_GAMEPAD=OFF \
#         -DENABLE_INTROSPECTION=OFF \
#         -DUSE_SOUP2=ON \
#         -DUSE_WPE_RENDERER=OFF \
#         -DUSE_LCMS=OFF \
#         -B build-gtk3 \

#   cmake --build build-gtk3

# Ninja build
    cmake -DCMAKE_BUILD_TYPE=Release \
      -DPORT=GTK \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_INSTALL_LIBDIR=lib \
      -DCMAKE_INSTALL_LIBEXECDIR=lib \
      -DENABLE_GAMEPAD=OFF \
      -DENABLE_INTROSPECTION=OFF \
      -DUSE_SOUP2=ON \
      -DUSE_WPE_RENDERER=OFF \
      -DUSE_LCMS=OFF \
      -B build-gtk3 \
      -G Ninja

    ninja -C build-gtk3

# make install
#   make -C "${srcdir}"/${pkgbase%-git}/build install DESTDIR="${pkgdir}"

# ninja install
    DESTDIR="${pkgdir}" ninja -C "${srcdir}"/${pkgbase%-git}/build-gtk3 install
}

package_xguipro-gtk4-git() {
    pkgdesc+=" (gtk4)"
    depends+=('gtk4' 'libsoup3')
    conflicts=(${pkgbase%-git})

    cd "${srcdir}/${pkgbase%-git}"

# CMake build
#   cmake -DCMAKE_BUILD_TYPE=Release \
#         -DPORT=GTK \
#         -DCMAKE_INSTALL_PREFIX=/usr \
#         -DCMAKE_INSTALL_LIBDIR=lib \
#         -DCMAKE_INSTALL_LIBEXECDIR=lib \
#         -DENABLE_GAMEPAD=OFF \
#         -DENABLE_INTROSPECTION=OFF \
#         -DUSE_SOUP3=ON \
#         -DUSE_WPE_RENDERER=OFF \
#         -DUSE_LCMS=OFF \
#         -B build-gtk4 \

#   cmake --build build-gtk4

# Ninja build
    cmake -DCMAKE_BUILD_TYPE=Release \
      -DPORT=GTK \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_INSTALL_LIBDIR=lib \
      -DCMAKE_INSTALL_LIBEXECDIR=lib \
      -DENABLE_GAMEPAD=OFF \
      -DENABLE_INTROSPECTION=OFF \
      -DUSE_SOUP3=ON \
      -DUSE_WPE_RENDERER=OFF \
      -DUSE_LCMS=OFF \
      -B build-gtk4 \
      -G Ninja

    ninja -C build-gtk4

# make install
#   make -C "${srcdir}"/${pkgbase%-git}/build install DESTDIR="${pkgdir}"

# ninja install
    DESTDIR="${pkgdir}" ninja -C "${srcdir}"/${pkgbase%-git}/build-gtk4 install
}
```

tk345497747 发表于 2022-12-5 09:50

多谢分享!!!!!!!!
页: [1]
查看完整版本: 【开源编程语言 HVML】Arch Linux 下对 xguipro (hvml)进行打包