aboutsummarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 53e6a580e0fb71b10e643500cad21b56e170f5bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Maintainer: Freddy Potargent <fpotargent at gmail dot com>
# Contributor: Lu Xu <oliver_lew at outlook dot com>

pkgbase=reduce
pkgname=(reduce-common reduce-csl reduce-psl reduce-addons)
pkgdesc="A Portable General-Purpose Computer Algebra System"
pkgver=6860
pkgrel=1
arch=('x86_64')
url="https://reduce-algebra.sourceforge.io/"
license=('BSD-2-Clause' 'LGPL-2.1-only')
depends=('bash' 'fontconfig' 'gcc-libs' 'glibc' 'hicolor-icon-theme' 'libx11'
         'libxcursor' 'libxext' 'libxft' 'libxrandr' 'ncurses' 'zlib')
makedepends=('rsync' 'texlive-fontsrecommended' 'texlive-latex'
             'texlive-latexextra' 'texlive-plaingeneric')
options=('!makeflags' 'strip' 'zipman')

_source_urlbase="https://master.dl.sourceforge.net/project/reduce-algebra/snapshot_2024-08-12"
source=("${_source_urlbase}/Reduce-svn6860-src.tar.gz"
        "fixes.patch"
        "build.patch")
sha256sums=('bf084f096839c1ed06207d56ae8e84d1097dce9f3a95d84adb26c9465a92718d'
            'd630ec524525a38cf744920b185aac95b580eeb6b405a85dfe7dcbe17daa3a1b'
            '4bd5a8c7b4cf77c728a0086c09fa6ab2975756e710dc14381f0ab201ea166833')

CFLAGS+=" -Wno-error=format-security"
CXXFLAGS+=" -Wno-error=format-security"

prepare() {
    echo "$pkgver" >"$srcdir/Reduce-svn${pkgver}-src"/svnversion.txt
    patch -p0 <fixes.patch
    patch -p0 <build.patch
}

build() {
    local SRCDIR="$(readlink -m $srcdir)"
    local BUILDTOPDIR="$SRCDIR/Reduce-svn${pkgver}-src"
    local STAGINGDIR="$SRCDIR/staging"
    local DEBIANDIR="$BUILDTOPDIR/debianbuild/reduce"

    rm -rf "$STAGINGDIR"
    mkdir -p "$STAGINGDIR"

    cd "$DEBIANDIR"
    make -f debian/rules BUILDTOPDIR="${BUILDTOPDIR}" configure
    make -f debian/rules BUILDTOPDIR="${BUILDTOPDIR}" build
    make -f debian/rules BUILDTOPDIR="$BUILDTOPDIR" INSTALLDIR="$STAGINGDIR" install

    for docdir in reduce-common reduce-csl reduce-psl reduce-addons; do
        local docsharedir="$STAGINGDIR/usr/share/doc/$docdir"
        mkdir -p "$docsharedir"
        cp "$DEBIANDIR/debian/changelog" "$DEBIANDIR/debian/copyright" "$docsharedir"
    done
}

_package_filelist() {
    local file="$srcdir/Reduce-svn${pkgver}-src/debianbuild/reduce/debian/$1"

    tar -c -C "$srcdir/staging" --files-from="$file" | tar -x -C "$pkgdir"
}

package_reduce-common() {
    pkgdesc="A Portable General-Purpose Computer Algebra System -- common files"
    arch=('any')
    depends=('bash' 'hicolor-icon-theme')

    _package_filelist reduce-common.install
}

package_reduce-csl() {
    pkgdesc="A Portable General-Purpose Computer Algebra System -- CSL based"
    provides=('reduce')
    depends=('reduce-common' 'bash' 'fontconfig' 'gcc-libs' 'glibc' 'libx11'
             'libxcursor' 'libxext' 'libxft' 'libxrandr' 'ncurses' 'zlib')
    optdepends=('gnuplot: for plotting graphs')

    _package_filelist reduce-csl.install
}

package_reduce-psl() {
    pkgdesc="A Portable General-Purpose Computer Algebra System -- PSL based"
    provides=('reduce')
    depends=('reduce-common' 'bash' 'glibc')
    optdepends=('gnuplot: for plotting graphs')

    _package_filelist reduce-psl.install
}

package_reduce-addons() {
    pkgdesc="A Portable General-Purpose Computer Algebra System -- addons"
    depends=('reduce' 'bash' 'glibc' 'ncurses')

    _package_filelist reduce-addons.install
}