Magellan Linux

Contents of /branches/R11-unstable/extras/nxserver-freenx/nxserver-freenx-0.7.3-r6.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 25683 - (show annotations) (download)
Tue Nov 25 04:09:45 2014 UTC (9 years, 5 months ago) by niro
File size: 8718 byte(s)
-release branches/R11-unstable
1 # $Id$
2
3 PNAME="nxserver-freenx"
4 PVER="0.7.3"
5 PBUILD="r6"
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.43
21 >= sys-apps/gawk-1.3.5
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.18
33 >= sys-apps/coreutils-8
34 >= sys-apps/util-linux-2.23"
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 sminclude mtools systemd
48
49 SRC_URI=(
50 http://download.berlios.de/freenx/${SRCFILE}
51 mirror://${PNAME}/${SRCFILE}
52 mirror://${PNAME}/${PNAME}-${PVER}-lp-fixes.patch
53 mirror://${PNAME}/${PNAME}-${PVER}-nxredir.patch
54 mirror://${PNAME}/${PNAME}-${PVER}-generate-ssh-keys.patch
55 mirror://${PNAME}/${PNAME}-${PVER}-nxdialog.patch
56 mirror://${PNAME}/${PNAME}-${PVER}-nxipp.patch
57 mirror://${PNAME}/${PNAME}-${PVER}-nxpath.patch
58 mirror://${PNAME}/${PNAME}-${PVER}-dpi.patch
59 mirror://${PNAME}/${PNAME}-${PVER}-agent-version.patch
60 mirror://${PNAME}/${PNAME}-${PVER}-prefer-xmessage.patch
61 mirror://${PNAME}/${PNAME}-${PVER}-increase-base-ports.patch
62 mirror://${PNAME}/${PNAME}-${PVER}-nxprint-warnings.patch
63 mirror://${PNAME}/${PNAME}-${PVER}-ignore-system-nxloadconfig.patch
64 mirror://${PNAME}/${PNAME}-${PVER}-agent-startup.patch
65 mirror://${PNAME}/nxclient-wrapper
66 mirror://${PNAME}/freenx.service
67 mirror://${PNAME}/freenx.logrotate
68 mirror://${PNAME}/freenx-check-setup.sh
69 )
70
71 UP2DATE="updatecmd_berlios freenx freenx-server"
72
73 src_prepare()
74 {
75 munpack ${SRCFILE} || die
76 cd ${SRCDIR}
77 # upstream patches from launchpad
78 mpatch ${PNAME}-${PVER}-lp-fixes.patch || die
79 # fix installation of nxredir
80 mpatch ${PNAME}-${PVER}-nxredir.patch || die
81 # auto generate missing ssh keys
82 mpatch ${PNAME}-${PVER}-generate-ssh-keys.patch || die
83 # only use dialog when xterm is installed
84 mpatch ${PNAME}-${PVER}-nxdialog.patch || die
85 # fix ipp handling
86 mpatch ${PNAME}-${PVER}-nxipp.patch || die
87 # fix path handling with symlinks
88 mpatch ${PNAME}-${PVER}-nxpath.patch || die
89 # make the default DPI configurable through node.conf
90 mpatch ${PNAME}-${PVER}-dpi.patch || die
91 # allow agents up to version 3.5
92 mpatch ${PNAME}-${PVER}-agent-version.patch || die
93 # prefer xmessage instead of dialog
94 mpatch ${PNAME}-${PVER}-prefer-xmessage.patch || die
95 # change DISPLAY_BASE to 2000 to avoid conflicts with nasd, cupsd and smbd
96 mpatch ${PNAME}-${PVER}-increase-base-ports.patch || die
97 # do not read from non-existent dirs to fix warnings
98 mpatch ${PNAME}-${PVER}-nxprint-warnings.patch || die
99 # do not load systemwide nxloadconfig
100 mpatch ${PNAME}-${PVER}-ignore-system-nxloadconfig.patch
101 # wait until nxagent has completed startup
102 mpatch ${PNAME}-${PVER}-agent-startup.patch || die
103
104 # fixup pathes and honor multilib systems
105 sed -i "s:/usr/lib:/usr/$(mlibdir):g" nxloadconfig node.conf.sample || die
106 sed -i "s:^\(NX_DIR=\).*:\1\"/usr/NX\":" nxloadconfig || die
107 sed -i "s:^\(NX_ETC_DIR=\).*:\1\"\$NX_DIR/etc\":" nxloadconfig || die
108 sed -i "s:^\(NX_SESS_DIR=\).*:\1\"\$NX_DIR/var/db\":" nxloadconfig || die
109 sed -i "s:^\(NX_HOME_DIR=\).*:\1\"\$NX_DIR/home/nx\":" nxloadconfig || die
110 sed -i "s:^\(#\{,1\}NOMACHINE_NX_HOME_DIR=\).*:\1\"/usr/NX/home/nx\":" nxloadconfig node.conf.sample || die
111
112 # fixed authorized keys file
113 sed -i 's:authorized_keys2:authorized_keys:g' nxloadconfig || die
114
115 # no more X11R6
116 sed -i 's:/usr/X11R6/bin/xauth:/usr/bin/xauth:g' nxloadconfig || die
117 sed -i 's:/usr/X11R6/bin/xmessage:/usr/bin/xmessage:g' nxdialog || die
118
119 # fix foomatic path
120 sed -i "s:^\(#\{,1\}COMMAND_FOOMATIC=\).*:\1\"/usr/bin/foomatic-ppdfile\":" nxloadconfig node.conf.sample || die
121
122 # do not require openssl for md5sum
123 sed -i "s:^\(#\{,1\}COMMAND_MD5SUM=\).*:\1\"md5sum\":" nxloadconfig node.conf.sample || die
124
125 # fix xkb, font and rgb pathes
126 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
127
128 # no more nx-1.4 version
129 sed -i "s:^\(#\{,1\}ENABLE_AUTORECONNECT_BEFORE_140=\).*:\1\"0\":" nxloadconfig node.conf.sample || die
130
131 # fix so-lib versions and pathes
132 sed -i 's:libXcomp.so:libXcomp.so.3:g' nxloadconfig || die
133 sed -i 's:libXcompext.so:libXcompext.so.3:g' nxloadconfig || die
134 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
135
136 # automatically generate keys
137 sed -i "s:^\(AUTOMATIC=\).*:\1\"yes\":" nxsetup || die
138
139 # fix path to Xession file
140 sed -i "s:^\(#\{,1\}DEFAULT_X_SESSION=\).*:\1\"/usr/$(mlibdir)/X11/xdm/Xsession\":" nxloadconfig node.conf.sample || die
141
142 # use 75dpi as default
143 sed -i "s:^\(#\{,1\}DEFAULT_XDPI=\).*:\1\"75\":" nxloadconfig node.conf.sample || die
144 }
145
146 src_compile()
147 {
148 cd ${SRCDIR}
149 mmake || die
150 }
151
152 src_install()
153 {
154 local i
155
156 cd ${SRCDIR}
157 mmake DESTDIR=${BINDIR} install || die
158
159 # install wrappers for essential binaries
160 minstalldir /usr/bin || die
161 for i in nxdialog nxkeygen nxnode nxpasswd \
162 nxprint nxredir nxserver nxsetup
163 do
164 minstallexec -s nxclient-wrapper /usr/bin/${i} || die
165 done
166 # nxloadconfig gets sourced in all scripts, so symlink this file and do *not* wrap it
167 mlink /usr/NX/bin/nxloadconfig /usr/bin/nxloadconfig || die
168
169 # create needed empty directories and files to ghost-own them
170 minstalldir /usr/NX/etc || die
171 for i in passwords{,.orig} server.id_dsa.pub.key users.id_dsa{,.pub} client.id_dsa.key
172 do
173 memptyfile /usr/NX/etc/${i} || die
174 mchmod 0600 /usr/NX/etc/${i} || die
175 done
176
177 # install the default config file
178 minstallfile node.conf.sample /usr/NX/etc/node.conf || die
179
180 minstalldir /usr/NX/home/nx/.ssh || die
181 mchown -R nx.nx /usr/NX/home/nx || die
182 for i in running closed failed
183 do
184 mkeepdir /usr/NX/var/db/${i} || die
185 mchmod 0700 /usr/NX/var/db/${i} || die
186 done
187
188 minstallunit freenx.service || die
189 minstalllog freenx.logrotate freenx || die
190 minstallexec -s freenx-check-setup.sh /usr/NX/bin/freenx-check-setup || die
191 }
192
193 preinstall()
194 {
195 # block if nomachine nxprint is installed
196 if [[ -n $(magequery -n nxprint) ]]
197 then
198 echo
199 echo "You have 'net-misc/nxprint' installed on your system."
200 echo
201 echo "Both 'net-misc/nxserver-freenx' and 'net-misc/nxprint'"
202 echo "cannot be installed at the same time. Please uninstall nxprint first!"
203 echo
204 die "net-misc/nxprint found."
205 fi
206
207 # block if nomachine nxnode is installed
208 if [[ -n $(magequery -n nxnode) ]]
209 then
210 echo
211 echo "You have 'net-misc/nxnode' installed on your system."
212 echo
213 echo "Both 'net-misc/nxserver-freenx' and 'net-misc/nxnode'"
214 echo "cannot be installed at the same time. Please uninstall nxnode first!"
215 echo
216 die "net-misc/nxnode found."
217 fi
218
219 # block if nx free-edition is installed
220 if [[ -n $(magequery -n nxserver-freeedition) ]]
221 then
222 echo
223 echo "You have 'net-misc/nxserver-freeedition' installed on your system."
224 echo
225 echo "Both 'net-misc/nxserver-freenx' and 'net-misc/nxserver-freeedition'"
226 echo "cannot be installed at the same time. Please uninstall nxserver-freeedition first!"
227 echo
228 die "net-misc/nxserver-freeedition found."
229 fi
230
231 ${MLIBDIR}/mgroupadd nx
232 ${MLIBDIR}/museradd -o "-g nx -s /usr/NX/bin/nxserver -d /usr/NX/home/nx" nx
233 }
234
235 postinstall()
236 {
237 # autoscramble nx system-user password if none was set
238 if [[ -n $(passwd -S nx | grep '[[:space:]][N|L][P| ]') ]]
239 then
240 usermod -p $(openssl passwd -1 $(mktemp -u | cut -d. -f2)) nx
241 fi
242
243 if [[ ! -d /usr/NX/home/nx ]]
244 then
245 install /usr/NX/home/nx
246 fi
247 chown -R nx:root /usr/NX/home/nx
248 chmod 0700 /usr/NX/home/nx
249
250 echo "Running freenx's setup script"
251 ${MROOT}/usr/NX/bin/nxsetup --setup-nomachine-key --install
252
253 mstartunit freenx.service nxserver
254
255 # echo
256 # echo "You must run 'nxsetup --setup-nomachine-key --install' to complete the installation."
257 # echo "You also need to set a password for the user nx or pam permits ssh logins."
258 # echo "To add a NX user run 'nxserver --adduser [username]'"
259 # echo "and set a password with 'nxserver --passwd [username]'."
260 # echo
261 }
262
263 post_remove()
264 {
265 mstopunit freenx.service
266 }
267