Contents of /trunk/extras/nxserver-freenx/nxserver-freenx-0.7.3-r9.smage2
Parent Directory | Revision Log
Revision 29241 -
(show annotations)
(download)
Wed May 31 07:50:51 2017 UTC (7 years, 3 months ago) by niro
File size: 9638 byte(s)
Wed May 31 07:50:51 2017 UTC (7 years, 3 months ago) by niro
File size: 9638 byte(s)
auto added: ver bump to 0.7.3-r9
1 | # $Id$ |
2 | |
3 | PNAME="nxserver-freenx" |
4 | PVER="0.7.3" |
5 | PBUILD="r9" |
6 | |
7 | PCAT="net-misc" |
8 | |
9 | DESCRIPTION="A free NX server implementation." |
10 | HOMEPAGE="http://freenx.berlios.de/" |
11 | |
12 | # binutils is only needed for the strings binary! |
13 | DEPEND=">= net-misc/nxcomp-3.5 |
14 | >= net-misc/nxcompsh-3.5 |
15 | >= net-misc/nxcompshad-3.5 |
16 | >= net-misc/nxcompext-3.5 |
17 | >= net-misc/nxlibs-3.5 |
18 | >= net-misc/nxagent-3.5 |
19 | >= net-misc/openssh-6 |
20 | >= dev-util/expect-5.45 |
21 | >= sys-apps/gawk-4 |
22 | >= net-misc/netcat-0.7.1 |
23 | >= net-misc/rdesktop-1 |
24 | >= virtual/vnc-client |
25 | >= x11-apps/sessreg-1 |
26 | >= x11-apps/xauth-1 |
27 | >= x11-apps/xdm-1 |
28 | >= x11-apps/xrdb-1 |
29 | >= x11-apps/xmessage-1 |
30 | >= media-fonts/font-misc-misc-1 |
31 | >= media-fonts/font-cursor-misc-1 |
32 | >= sys-dev/binutils-2.24 |
33 | >= sys-apps/coreutils-8 |
34 | >= sys-apps/util-linux-2.25" |
35 | |
36 | SDEPEND=">= virtual/sed |
37 | >= x11-misc/imake-1 |
38 | >= x11-misc/gccmakedep-1" |
39 | |
40 | PROVIDE="virtual/nxprint |
41 | virtual/nxnode |
42 | virtual/nxserver" |
43 | |
44 | SRCFILE="freenx-server-${PVER}.tar.gz" |
45 | SRCDIR="${BUILDDIR}/freenx-server-${PVER}" |
46 | |
47 | NXWRAPPER_PVER="" |
48 | NXWRAPPER_SRCFILE="nxwrapper2.in" |
49 | NXWRAPPER_SRCDIR="${BUILDDIR}/nxwrapper" |
50 | |
51 | SVC_REV="r2936" |
52 | CHK_REV="r2935" |
53 | |
54 | sminclude mtools systemd |
55 | |
56 | SRC_URI=( |
57 | http://download.berlios.de/freenx/${SRCFILE} |
58 | mirror://${PNAME}/${SRCFILE} |
59 | mirror://${PNAME}/${PNAME}-${PVER}-lp-fixes.patch |
60 | mirror://${PNAME}/${PNAME}-${PVER}-nxredir.patch |
61 | mirror://${PNAME}/${PNAME}-${PVER}-generate-ssh-keys.patch |
62 | mirror://${PNAME}/${PNAME}-${PVER}-nxdialog.patch |
63 | mirror://${PNAME}/${PNAME}-${PVER}-nxipp.patch |
64 | mirror://${PNAME}/${PNAME}-${PVER}-nxpath.patch |
65 | mirror://${PNAME}/${PNAME}-${PVER}-dpi.patch |
66 | mirror://${PNAME}/${PNAME}-${PVER}-agent-version.patch |
67 | mirror://${PNAME}/${PNAME}-${PVER}-prefer-xmessage.patch |
68 | mirror://${PNAME}/${PNAME}-${PVER}-increase-base-ports.patch |
69 | mirror://${PNAME}/${PNAME}-${PVER}-nxprint-warnings.patch |
70 | mirror://${PNAME}/${PNAME}-${PVER}-ignore-system-nxloadconfig.patch |
71 | mirror://${PNAME}/${PNAME}-${PVER}-agent-startup.patch |
72 | mirror://nx/${NXWRAPPER_SRCFILE} |
73 | mirror://${PNAME}/freenx.service-${SVC_REV} |
74 | mirror://${PNAME}/freenx.logrotate |
75 | mirror://${PNAME}/freenx-check-setup.sh-${CHK_REV} |
76 | ) |
77 | |
78 | UP2DATE="updatecmd_berlios freenx freenx-server" |
79 | |
80 | SPECIAL_FUNCTIONS="pkg_setup" |
81 | |
82 | pkg_setup() |
83 | { |
84 | mgroupadd nx |
85 | museradd -o "-g nx -s /usr/$(mlibdir)/nx/bin/nxserver -d /var/lib/nxserver/home" nx |
86 | } |
87 | |
88 | src_prepare() |
89 | { |
90 | munpack ${SRCFILE} || die |
91 | cd ${SRCDIR} |
92 | # upstream patches from launchpad |
93 | mpatch ${PNAME}-${PVER}-lp-fixes.patch || die |
94 | # fix installation of nxredir |
95 | mpatch ${PNAME}-${PVER}-nxredir.patch || die |
96 | # auto generate missing ssh keys |
97 | mpatch ${PNAME}-${PVER}-generate-ssh-keys.patch || die |
98 | # only use dialog when xterm is installed |
99 | mpatch ${PNAME}-${PVER}-nxdialog.patch || die |
100 | # fix ipp handling |
101 | mpatch ${PNAME}-${PVER}-nxipp.patch || die |
102 | # fix path handling with symlinks |
103 | mpatch ${PNAME}-${PVER}-nxpath.patch || die |
104 | # make the default DPI configurable through node.conf |
105 | mpatch ${PNAME}-${PVER}-dpi.patch || die |
106 | # allow agents up to version 3.5 |
107 | mpatch ${PNAME}-${PVER}-agent-version.patch || die |
108 | # prefer xmessage instead of dialog |
109 | mpatch ${PNAME}-${PVER}-prefer-xmessage.patch || die |
110 | # change DISPLAY_BASE to 2000 to avoid conflicts with nasd, cupsd and smbd |
111 | mpatch ${PNAME}-${PVER}-increase-base-ports.patch || die |
112 | # do not read from non-existent dirs to fix warnings |
113 | mpatch ${PNAME}-${PVER}-nxprint-warnings.patch || die |
114 | # do not load systemwide nxloadconfig |
115 | mpatch ${PNAME}-${PVER}-ignore-system-nxloadconfig.patch |
116 | # wait until nxagent has completed startup |
117 | mpatch ${PNAME}-${PVER}-agent-startup.patch || die |
118 | |
119 | # fixup pathes and honor multilib systems |
120 | sed -i "s:/usr/lib:/usr/$(mlibdir):g" nxloadconfig node.conf.sample || die |
121 | sed -i "s:^\(NX_DIR=\).*:\1\"/usr/$(mlibdir)/nx\":" nxloadconfig || die |
122 | sed -i "s:^\(NX_ETC_DIR=\).*:\1\"/etc/nxserver\":" nxloadconfig || die |
123 | sed -i "s:^\(NX_SESS_DIR=\).*:\1\"/var/lib/nxserver/db\":" nxloadconfig || die |
124 | sed -i "s:^\(NX_HOME_DIR=\).*:\1\"/var/lib/nxserver/home\":" nxloadconfig || die |
125 | sed -i "s:^\(#\{,1\}NOMACHINE_NX_HOME_DIR=\).*:\1\"/var/lib/nxserver/home\":" nxloadconfig node.conf.sample || die |
126 | |
127 | # fixed authorized keys file |
128 | sed -i 's:authorized_keys2:authorized_keys:g' nxloadconfig || die |
129 | |
130 | # no more X11R6 |
131 | sed -i 's:/usr/X11R6/bin/xauth:/usr/bin/xauth:g' nxloadconfig || die |
132 | sed -i 's:/usr/X11R6/bin/xmessage:/usr/bin/xmessage:g' nxdialog || die |
133 | |
134 | # fix foomatic path |
135 | sed -i "s:^\(#\{,1\}COMMAND_FOOMATIC=\).*:\1\"/usr/bin/foomatic-ppdfile\":" nxloadconfig node.conf.sample || die |
136 | |
137 | # do not require openssl for md5sum |
138 | sed -i "s:^\(#\{,1\}COMMAND_MD5SUM=\).*:\1\"md5sum\":" nxloadconfig node.conf.sample || die |
139 | |
140 | # fix xkb, font and rgb pathes |
141 | sed -i "s:^\(#\{,1\}AGENT_EXTRA_OPTIONS_X=\).*:\1\"-nolisten tcp -co /usr/share/X11/rgb.txt -fp /usr/share/fonts/misc,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/TTF,/usr/share/fonts/Type1 -xkbdir /usr/share/X11/xkb\":" nxloadconfig node.conf.sample || die |
142 | |
143 | # no more nx-1.4 version |
144 | sed -i "s:^\(#\{,1\}ENABLE_AUTORECONNECT_BEFORE_140=\).*:\1\"0\":" nxloadconfig node.conf.sample || die |
145 | |
146 | # fix so-lib versions and pathes |
147 | sed -i 's:libXcomp.so:libXcomp.so.3:g' nxloadconfig || die |
148 | sed -i 's:libXcompext.so:libXcompext.so.3:g' nxloadconfig || die |
149 | sed -i 's:libXrender.so.1.2:libXrender.so.1.2.2\:$APPLICATION_LIBRARY_PATH/libXcompsh.so.3\:$APPLICATION_LIBRARY_PATH/libXcompshad.so.3:g' nxloadconfig || die |
150 | |
151 | # automatically generate keys |
152 | sed -i "s:^\(AUTOMATIC=\).*:\1\"yes\":" nxsetup || die |
153 | |
154 | # fix path to Xession file |
155 | sed -i "s:^\(#\{,1\}DEFAULT_X_SESSION=\).*:\1\"/usr/$(mlibdir)/X11/xdm/Xsession\":" nxloadconfig node.conf.sample || die |
156 | |
157 | # use 75dpi as default |
158 | sed -i "s:^\(#\{,1\}DEFAULT_XDPI=\).*:\1\"75\":" nxloadconfig node.conf.sample || die |
159 | |
160 | # copy the wrapper |
161 | install -d ${NXWRAPPER_SRCDIR} |
162 | cp ${SOURCEDIR}/${PNAME}/${NXWRAPPER_SRCFILE} ${NXWRAPPER_SRCDIR}/ || die |
163 | } |
164 | |
165 | src_compile() |
166 | { |
167 | cd ${SRCDIR} |
168 | mmake || die |
169 | |
170 | cd ${NXWRAPPER_SRCDIR} |
171 | sed -e "s:@@NXLIBDIR@@:/usr/$(mlibdir)/nx:g" \ |
172 | -e "s:@@NXLOCALLIBDIR@@:/usr/local/$(mlibdir)/nx:g" \ |
173 | ${NXWRAPPER_SRCFILE} > nxwrapper || die |
174 | } |
175 | |
176 | src_install() |
177 | { |
178 | local i |
179 | |
180 | cd ${SRCDIR} |
181 | mmake DESTDIR=${BINDIR} install NX_ETC_DIR=/etc/nxserver || die |
182 | |
183 | # install wrappers for essential binaries |
184 | minstalldir /usr/bin || die |
185 | for i in nxdialog nxkeygen nxnode nxpasswd \ |
186 | nxprint nxredir nxserver nxsetup |
187 | do |
188 | minstallexec ${NXWRAPPER_SRCDIR}/nxwrapper /usr/bin/${i} || die |
189 | done |
190 | # nxloadconfig gets sourced in all scripts, so symlink this file and do *not* wrap it |
191 | mlink /usr/$(mlibdir)/nx/bin/nxloadconfig /usr/bin/nxloadconfig || die |
192 | |
193 | # create needed empty directories and files to ghost-own them |
194 | minstalldir /etc/nxserver || die |
195 | for i in passwords{,.orig} server.id_dsa.pub.key users.id_dsa{,.pub} client.id_dsa.key |
196 | do |
197 | memptyfile /etc/nxserver/${i} || die |
198 | mchmod 0600 /etc/nxserver/${i} || die |
199 | done |
200 | |
201 | # install the default config file |
202 | minstallfile node.conf.sample /etc/nxserver/node.conf || die |
203 | |
204 | minstalldir /var/lib/nxserver/home/.ssh || die |
205 | mchown -R nx.nx /var/lib/nxserver/home || die |
206 | for i in running closed failed |
207 | do |
208 | mkeepdir /var/lib/nxserver/db/${i} || die |
209 | mchmod 0700 /var/lib/nxserver/db/${i} || die |
210 | done |
211 | |
212 | minstallunit freenx.service-${SVC_REV} freenx.service || die |
213 | minstalllog freenx.logrotate freenx || die |
214 | minstallexec -s freenx-check-setup.sh-${CHK_REV} /usr/bin/freenx-check-setup || die |
215 | } |
216 | |
217 | preinstall() |
218 | { |
219 | # block if nomachine nxprint is installed |
220 | if [[ -n $(magequery -n nxprint) ]] |
221 | then |
222 | echo |
223 | echo "You have 'net-misc/nxprint' installed on your system." |
224 | echo |
225 | echo "Both 'net-misc/nxserver-freenx' and 'net-misc/nxprint'" |
226 | echo "cannot be installed at the same time. Please uninstall nxprint first!" |
227 | echo |
228 | die "net-misc/nxprint found." |
229 | fi |
230 | |
231 | # deprecated: |
232 | # # block if nomachine nxnode is installed |
233 | # if [[ -n $(magequery -n nxnode) ]] |
234 | # then |
235 | # echo |
236 | # echo "You have 'net-misc/nxnode' installed on your system." |
237 | # echo |
238 | # echo "Both 'net-misc/nxserver-freenx' and 'net-misc/nxnode'" |
239 | # echo "cannot be installed at the same time. Please uninstall nxnode first!" |
240 | # echo |
241 | # die "net-misc/nxnode found." |
242 | # fi |
243 | |
244 | # deprecated: |
245 | # # block if nx free-edition is installed |
246 | # if [[ -n $(magequery -n nxserver-freeedition) ]] |
247 | # then |
248 | # echo |
249 | # echo "You have 'net-misc/nxserver-freeedition' installed on your system." |
250 | # echo |
251 | # echo "Both 'net-misc/nxserver-freenx' and 'net-misc/nxserver-freeedition'" |
252 | # echo "cannot be installed at the same time. Please uninstall nxserver-freeedition first!" |
253 | # echo |
254 | # die "net-misc/nxserver-freeedition found." |
255 | # fi |
256 | |
257 | pkg_setup |
258 | } |
259 | |
260 | postinstall() |
261 | { |
262 | # autoscramble nx system-user password if none was set |
263 | if [[ -n $(passwd -S nx | grep '[[:space:]][N|L][P| ]') ]] |
264 | then |
265 | usermod -p $(openssl passwd -1 $(mktemp -u | cut -d. -f2)) nx |
266 | fi |
267 | |
268 | if [[ ! -d /var/lib/nxserver/home ]] |
269 | then |
270 | install /var/lib/nxserver/home |
271 | fi |
272 | chown -R nx:root /var/lib/nxserver/home |
273 | chmod 0700 /var/lib/nxserver/home |
274 | |
275 | echo "Running freenx's setup script" |
276 | ${MROOT}/usr/bin/nxsetup --setup-nomachine-key --install |
277 | |
278 | mstartunit freenx.service nxserver |
279 | |
280 | # echo |
281 | # echo "You must run 'nxsetup --setup-nomachine-key --install' to complete the installation." |
282 | # echo "You also need to set a password for the user nx or pam permits ssh logins." |
283 | # echo "To add a NX user run 'nxserver --adduser [username]'" |
284 | # echo "and set a password with 'nxserver --passwd [username]'." |
285 | # echo |
286 | |
287 | echo |
288 | echo "You have to modify your default sshd configuration to accept older ssh-dss keys for freenx." |
289 | echo "Add 'PubkeyAcceptedKeyTypes ssh-dss' to your /etc/ssh/sshd_config and restart sshd." |
290 | echo |
291 | } |
292 | |
293 | postremove() |
294 | { |
295 | mstopunit freenx.service |
296 | } |