summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 662cb784a88ef22b8b152c28e429c18878d96f6a (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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# Maintainer: AndyRTR <andyrtr@archlinux.org>

# Contributor: Gerhard Brauer <gerbra@archlinux.de>
# Contributor: Richard Murri <admin@richardmurri.com>
# Contributor: Markus Opitz <mastero23 at gmail dot com>
# Contributor: Milan Knížek <knizek@volny.cz>

pkgname=x2goserver
pkgver=4.1.0.6
pkgrel=1
pkgdesc="Open source graphical Remote Desktop and terminal server based on NX technology"
arch=('x86_64')
url="https://www.x2go.org/"
license=('GPL2')
# https://code.x2go.org/gitweb?p=x2goserver.git;a=blob;f=x2goserver.spec

# from 4.0.1.20 changelog there could be new deps on bash, xkeyboard-config, perl-cwd-guard

depends=(
         'openssh'
         'nxagent' # FS#67024
         # certain shell script hardcode bash
         'bash'
         # for x2goruncommand - for now
         'bc'
         # for ss in x2gogetfreeport 
        'iproute'
         # for x2goshowblocks
         'lsof'
         # For killall in x2gosuspend-session
         'psmisc'
         # For x2godbadmin
         'pwgen' # in community
         # For printing, file-sharing
         'sshfs'
	 # for /etc/sudoers.d
         'sudo'
         'which'
         # For /etc/X11/Xresources
         'xorg-xinit' 
         'inetutils' # FS#68276
         'xorg-fonts-misc'
         'xorg-xauth'
         'xkeyboard-config'
         'xorg-xwininfo' # FS#38558
         'xorg-setxkbmap' # FS#53345

         # for useradd/groupadd
         'shadow'

         # for filemanager bindings
         'desktop-file-utils'
         'shared-mime-info'
         'xdg-utils'

         # We need a database
         'perl-dbd-sqlite' 

         'perl-capture-tiny'
         'perl-config-simple'
         'perl-file-basedir' # FS#38551
         'perl-file-which' # FS#44125
         'perl-switch'
         'perl-try-tiny' # FS#58226
 #        'perl-file-readbackwards' ?

         'dbus'
)
#makedepends=('man2html' 'perl-extutils-makemaker' 'systemd')
makedepends=('man2html' 'perl-extutils-makemaker' 'systemd' 
             # only needed for file system paths
             'sudo'
)
optdepends=('perl-dbd-pg: Postgres support')
#conflicts=('x2go-agent')
#replaces=('x2go-agent')
#provides=('x2go-agent' 'x2goagent')
options=('emptydirs')
install=x2goserver.install
backup=('etc/x2go/x2goserver.conf'
        'etc/x2go/desktopsharing/settings'
        # from old x2go-agent pkg now provided here
        etc/x2go/{keystrokes.cfg,x2goagent.keyboard,x2goagent.options}
)
# no https due to invalid certificate
source=(https://code.x2go.org/releases/source/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.asc}
       tmpfiles.d
       sysusers.d
       reproducible-man-gzip.patch)
sha256sums=('9c585f683996f0670aad3b118a1d98783ec897ef32add9b4c9e4e63ecf7b7c24'
            'SKIP'
            '548d48925171aeca198494236cfba7232921a25a1c4c81f5d004a734d83d1350'
            '04d429e8d8fe02c8078d75ba63ba57774274df877b2c6ec942621312b7bf9118'
            '2d52a5ca28d5b65a9cc9bd8cdc74d030d7faddb6d727d2df520686934ea125fb')
validpgpkeys=('1AD23D1B8F087A35AB74BDE9F4A7678C9C6B0B2B') # X2go Git Administrator <git-admin@x2go.org>

prepare() {
  cd ${pkgname}-${pkgver}
  # -r option does not exist in Arch linux
  # (However, html man pages do not get installed anyway...)
  for Makefile in $(find . -type f -name Makefile); do
    sed -i 's@(MAN2HTML_BIN) -r @(MAN2HTML_BIN) < @g' $Makefile
    sed -i 's@ \$(MAN2HTML_SRC)/@ < \$(MAN2HTML_SRC)/@g' $Makefile
  done

  # fix some Makefile permission options
  for Makefile in $(find . -type f -name Makefile); do
    sed -i "s:-o root -g root ::g" $Makefile
  done
  # Do not ship xsession - Debian specific
  sed -i -e '/xsession/s/^/#/' Makefile

  # remove timestamp to solve reproducible build
  patch -Np1 -i ../reproducible-man-gzip.patch
}

build() {
  cd ${pkgname}-${pkgver}
  make PREFIX=/usr SBINDIR=/usr/bin DESTDIR="$pkgdir" PERL_INSTALLDIRS=vendor
}

package() {
  cd ${pkgname}-${pkgver}
  make -j1 PREFIX=/usr SBINDIR=/usr/bin DESTDIR="$pkgdir" install

  # systemd files
  install -Dm 644 "$srcdir/${pkgname}-${pkgver}/x2goserver.service" "$pkgdir/usr/lib/systemd/system/x2goserver.service"
  # overwrite upstream systemd tmofile "x /tmp/.x2go-*" with ours
  cat ../tmpfiles.d >> "${pkgdir}"/usr/lib/tmpfiles.d/x2goserver.conf
  install -Dm644 ../sysusers.d "${pkgdir}"/usr/lib/sysusers.d/x2goserver.conf
  
  # load fuse module at system start
  install -dm755 "$pkgdir"/usr/lib/modules-load.d
  echo "fuse" > "$pkgdir"/usr/lib/modules-load.d/x2goserver.conf

  install -dm 755 "${pkgdir}/usr/share/doc/${pkgname}"
  install -m 644 "ChangeLog" "${pkgdir}/usr/share/doc/${pkgname}/"

  # fix permission - see INSTALL file
  chown root:111 "${pkgdir}"/usr/lib/x2go/libx2go-server-db-sqlite3-wrapper
  chmod 2755 "${pkgdir}"/usr/lib/x2go/libx2go-server-db-sqlite3-wrapper
  
  chown root:112 "${pkgdir}"/usr/bin/x2goprint
  chmod 2755 "${pkgdir}"/usr/bin/x2goprint
  
  chmod 750 "${pkgdir}"/etc/sudoers.d
  chmod 0440 "${pkgdir}"/etc/sudoers.d/x2goserver

  # Arch offer logcheck package - http://logcheck.org/
  rm -r "${pkgdir}"/etc/logcheck
}