proftpd/proftpd.spec

Tue, 28 Aug 2012 18:29:30 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 28 Aug 2012 18:29:30 +0200
changeset 534
d2d0020cfafa
parent 182
42a8c8d745e6
permissions
-rw-r--r--

Update from Drupal 6.x to 7.x and introduce several new HTML5 themes. Because
many themes from Drupal 6.x have since been abandoned, left unmaintained, or
not ported to Drupal 7.x, this package has changed in size and utility.

michael@182 1 ##
michael@182 2 ## proftpd.spec -- OpenPKG RPM Package Specification
michael@182 3 ## Copyright (c) 2000-2009 OpenPKG Foundation e.V. <http://openpkg.net/>
michael@182 4 ##
michael@182 5 ## Permission to use, copy, modify, and distribute this software for
michael@182 6 ## any purpose with or without fee is hereby granted, provided that
michael@182 7 ## the above copyright notice and this permission notice appear in all
michael@182 8 ## copies.
michael@182 9 ##
michael@182 10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@182 11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@182 12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@182 13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@182 14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@182 15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@182 16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@182 17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@182 18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@182 19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@182 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@182 21 ## SUCH DAMAGE.
michael@182 22 ##
michael@182 23
michael@182 24 # package version
michael@182 25 %define V_proftpd 1.3.2
michael@182 26 %define V_mod_exec 0.9.6
michael@182 27 %define V_mod_otp 0.9.1
michael@182 28 %define V_mod_shaper 0.6.5
michael@182 29 %define V_mod_sql_sqlite 0.2
michael@182 30 %define V_mod_sql_odbc 0.3.2
michael@182 31 %define V_mod_time 2.2.1
michael@182 32 %define V_mod_vroot 0.8.5
michael@182 33 %define V_mod_gss 1.3.2
michael@182 34 %define V_mod_sftp 0.9.6
michael@182 35 %define V_mod_sftp_sql 0.1
michael@182 36 %define V_mod_md5 0.3.3
michael@182 37
michael@182 38 # package information
michael@182 39 Name: proftpd
michael@182 40 Summary: Professional FTP Daemon
michael@182 41 URL: http://www.proftpd.org/
michael@182 42 Vendor: The ProFTPD Project
michael@182 43 Packager: OpenPKG Foundation e.V.
michael@182 44 Distribution: OpenPKG Community
michael@182 45 Class: BASE
michael@182 46 Group: FTP
michael@182 47 License: GPL
michael@182 48 Version: %{V_proftpd}
michael@183 49 Release: 20090418
michael@182 50
michael@182 51 # package options
michael@182 52 %option with_ifsession no
michael@182 53 %option with_ctrls no
michael@182 54 %option with_radius no
michael@182 55 %option with_pam no
michael@182 56 %option with_mysql no
michael@182 57 %option with_pgsql no
michael@182 58 %option with_sqlite no
michael@182 59 %option with_odbc no
michael@182 60 %option with_ldap no
michael@182 61 %option with_skey no
michael@182 62 %option with_opie no
michael@182 63 %option with_kerberos no
michael@182 64 %option with_ssl no
michael@182 65 %option with_sftp no
michael@182 66 %option with_md5 no
michael@182 67
michael@182 68 # checking option conflicts
michael@182 69 %if "%{with_mysql}" == "yes" && "%{with_pgsql}" == "yes"
michael@182 70 %{error:build-time options 'with_mysql' and 'with_pgsql' conflict}
michael@182 71 %endif
michael@182 72
michael@182 73 # list of sources
michael@182 74 Source0: ftp://ftp.proftpd.org/distrib/source/proftpd-%{V_proftpd}.tar.bz2
michael@182 75 Source1: http://www.castaglia.net/proftpd/modules/proftpd-mod-exec-%{V_mod_exec}.tar.gz
michael@182 76 Source2: http://www.castaglia.net/proftpd/modules/proftpd-mod-otp-%{V_mod_otp}.tar.gz
michael@182 77 Source3: http://www.castaglia.net/proftpd/modules/proftpd-mod-shaper-%{V_mod_shaper}.tar.gz
michael@182 78 Source4: http://www.castaglia.net/proftpd/modules/proftpd-mod-sql-sqlite-%{V_mod_sql_sqlite}.tar.gz
michael@182 79 Source5: http://www.castaglia.net/proftpd/modules/proftpd-mod-sql-odbc-%{V_mod_sql_odbc}.tar.gz
michael@182 80 Source6: http://www.castaglia.net/proftpd/modules/proftpd-mod-time-%{V_mod_time}.tar.gz
michael@182 81 Source7: http://www.castaglia.net/proftpd/modules/proftpd-mod-vroot-%{V_mod_vroot}.tar.gz
michael@182 82 Source8: http://switch.dl.sourceforge.net/gssmod/mod_gss-%{V_mod_gss}.tar.gz
michael@182 83 Source9: http://www.castaglia.net/proftpd/modules/proftpd-mod-sftp-%{V_mod_sftp}.tar.gz
michael@182 84 Source10: http://www.castaglia.net/proftpd/modules/proftpd-mod-sftp-sql-%{V_mod_sftp_sql}.tar.gz
michael@182 85 Source11: http://www.castaglia.net/proftpd/modules/proftpd-mod-md5-%{V_mod_md5}.tar.gz
michael@182 86 Source12: proftpd.conf
michael@182 87 Source13: proftpd.msg.goaway
michael@182 88 Source14: proftpd.msg.login
michael@182 89 Source15: rc.proftpd
michael@182 90 Patch0: proftpd.patch
michael@182 91
michael@182 92 # build information
michael@182 93 Prefix: %{l_prefix}
michael@182 94 BuildRoot: %{l_buildroot}
michael@182 95 BuildPreReq: OpenPKG, openpkg >= 20060823, make
michael@182 96 PreReq: OpenPKG, openpkg >= 20060823
michael@182 97 BuildPreReq: ncurses, getopt
michael@182 98 PreReq: ncurses, getopt
michael@182 99 %if "%{with_mysql}" == "yes"
michael@182 100 BuildPreReq: mysql
michael@182 101 PreReq: mysql
michael@182 102 %endif
michael@182 103 %if "%{with_pam}" == "yes"
michael@182 104 BuildPreReq: PAM
michael@182 105 PreReq: PAM
michael@182 106 %endif
michael@182 107 %if "%{with_pgsql}" == "yes"
michael@182 108 BuildPreReq: postgresql, openssl
michael@182 109 PreReq: postgresql, openssl
michael@182 110 %endif
michael@182 111 %if "%{with_sqlite}" == "yes"
michael@182 112 BuildPreReq: sqlite
michael@182 113 PreReq: sqlite
michael@182 114 %endif
michael@182 115 %if "%{with_odbc}" == "yes"
michael@182 116 BuildPreReq: ODBC
michael@182 117 PreReq: ODBC
michael@182 118 %endif
michael@182 119 %if "%{with_ldap}" == "yes"
michael@182 120 BuildPreReq: openldap, openssl
michael@182 121 PreReq: openldap, openssl
michael@182 122 %endif
michael@182 123 %if "%{with_skey}" == "yes"
michael@182 124 BuildPreReq: skey
michael@182 125 PreReq: skey
michael@182 126 %endif
michael@182 127 %if "%{with_opie}" == "yes"
michael@182 128 BuildPreReq: opie
michael@182 129 PreReq: opie
michael@182 130 %endif
michael@182 131 %if "%{with_kerberos}" == "yes"
michael@182 132 BuildPreReq: KERBEROS
michael@182 133 PreReq: KERBEROS
michael@182 134 %endif
michael@182 135 %if "%{with_ssl}" == "yes" || "%{with_sftp}" == "yes"
michael@182 136 BuildPreReq: openssl
michael@182 137 PreReq: openssl
michael@182 138 %endif
michael@182 139 AutoReq: no
michael@182 140 AutoReqProv: no
michael@182 141
michael@182 142 %description
michael@182 143 ProFTPD grew out of the desire to have a secure and configurable
michael@182 144 FTP server, and out of a significant admiration of the Apache web
michael@182 145 server. There are currently a very limited number of FTP servers
michael@182 146 running on unix (or unix-like) hosts. The most commonly used server
michael@182 147 is probably wu-ftpd. While wu-ftpd provides excellent performance
michael@182 148 and is generally a good product, it lacks numerous features found
michael@182 149 in newer Win32 FTP servers, and has a poor security history. Many
michael@182 150 people, including the developers who work on ProFTPD have spent a
michael@182 151 great deal of time fixing bugs and hacking features into wu-ftpd.
michael@182 152 Unfortunately, it quickly became clear that a complete redesign was
michael@182 153 necessary in order to implement the configurability and features
michael@182 154 desired. ProFTPD is not a hack based on any other server, it's an
michael@182 155 independent source tree from the ground up. Click here for a small
michael@182 156 list of some of the sites ProFTPD powers -- many of them handling
michael@182 157 large volumes of traffic on a daily basis.
michael@182 158
michael@182 159 %track
michael@182 160 prog proftpd = {
michael@182 161 version = %{V_proftpd}
michael@182 162 url = ftp://ftp.proftpd.org/distrib/source/
michael@182 163 regex = proftpd-(\d+\.\d+\.\d+(?:rc\d+|[a-z]?))\.tar\.bz2
michael@182 164 }
michael@182 165 prog proftpd:mod_exec = {
michael@182 166 version = %{V_mod_exec}
michael@182 167 url = http://www.castaglia.net/proftpd/
michael@182 168 regex = proftpd-mod-exec-(__VER__)\.tar\.gz
michael@182 169 }
michael@182 170 prog proftpd:mod_shaper = {
michael@182 171 version = %{V_mod_shaper}
michael@182 172 url = http://www.castaglia.net/proftpd/
michael@182 173 regex = proftpd-mod-shaper-(__VER__)\.tar\.gz
michael@182 174 }
michael@182 175 prog proftpd:mod_sql_sqlite = {
michael@182 176 version = %{V_mod_sql_sqlite}
michael@182 177 url = http://www.castaglia.net/proftpd/
michael@182 178 regex = proftpd-mod-sql-sqlite-(__VER__)\.tar\.gz
michael@182 179 }
michael@182 180 prog proftpd:mod_sql_odbc = {
michael@182 181 version = %{V_mod_sql_odbc}
michael@182 182 url = http://www.castaglia.net/proftpd/
michael@182 183 regex = proftpd-mod-sql-odbc-(__VER__)\.tar\.gz
michael@182 184 }
michael@182 185 prog proftpd:mod_time = {
michael@182 186 version = %{V_mod_time}
michael@182 187 url = http://www.castaglia.net/proftpd/
michael@182 188 regex = proftpd-mod-time-(__VER__)\.tar\.gz
michael@182 189 }
michael@182 190 prog proftpd:mod_vroot = {
michael@182 191 version = %{V_mod_vroot}
michael@182 192 url = http://www.castaglia.net/proftpd/
michael@182 193 regex = proftpd-mod-vroot-(__VER__)\.tar\.gz
michael@182 194 }
michael@182 195 prog proftpd:mod_gss = {
michael@182 196 version = %{V_mod_gss}
michael@182 197 url = http://prdownloads.sourceforge.net/gssmod/
michael@182 198 regex = mod_gss-(__VER__)\.tar\.gz
michael@182 199 }
michael@182 200 prog proftpd:mod_sftp = {
michael@182 201 version = %{V_mod_sftp}
michael@182 202 url = http://www.castaglia.net/proftpd/
michael@182 203 regex = proftpd-mod-sftp-(__VER__)\.tar\.gz
michael@182 204 }
michael@182 205 prog proftpd:mod_sftp_sql = {
michael@182 206 version = %{V_mod_sftp_sql}
michael@182 207 url = http://www.castaglia.net/proftpd/
michael@182 208 regex = proftpd-mod-sftp-sql-(__VER__)\.tar\.gz
michael@182 209 }
michael@182 210 prog proftpd:mod_md5 = {
michael@182 211 version = %{V_mod_md5}
michael@182 212 url = http://www.castaglia.net/proftpd/
michael@182 213 regex = proftpd-mod-md5-(__VER__)\.tar\.gz
michael@182 214 }
michael@182 215
michael@182 216 %prep
michael@182 217 %setup -q
michael@182 218 %setup -q -D -T -a 1
michael@182 219 %setup -q -D -T -a 2
michael@182 220 %setup -q -D -T -a 3
michael@182 221 %setup -q -D -T -a 4
michael@182 222 %setup -q -D -T -a 5
michael@182 223 %setup -q -D -T -a 6
michael@182 224 %setup -q -D -T -a 7
michael@182 225 %setup -q -D -T -a 8
michael@182 226 %setup -q -D -T -a 9
michael@182 227 %setup -q -D -T -a 10
michael@182 228 %setup -q -D -T -a 11
michael@182 229 %patch -p0
michael@182 230
michael@182 231 %{l_shtool} subst \
michael@182 232 -e '/LINENO: error: C[+]* preprocessor/{N;N;N;N;s/.*/:/;}' \
michael@182 233 configure
michael@182 234
michael@182 235 # utils require to link with getopt
michael@182 236 %{l_shtool} subst \
michael@182 237 -e 's;\(\$(BUILD_FTPCOUNT_OBJS).*\);\1 %{l_ldflags} -lgetopt;g' \
michael@182 238 -e 's;\(\$(BUILD_FTPSHUT_OBJS).*\);\1 %{l_ldflags} -lgetopt;g' \
michael@182 239 -e 's;\(\$(BUILD_FTPTOP_OBJS).*\);\1 %{l_ldflags} -lgetopt;g' \
michael@182 240 -e 's;\(\$(BUILD_FTPWHO_OBJS).*\);\1 %{l_ldflags} -lgetopt;g' \
michael@182 241 Makefile.in
michael@182 242 %if "%{with_mysql}" == "yes"
michael@182 243 libs=`mysql_config --libs`
michael@182 244 # libmysqlclient may require more libraries
michael@182 245 %{l_shtool} subst \
michael@182 246 -e "s;\(-lmysqlclient\);$libs;g" \
michael@182 247 contrib/mod_sql_mysql.c
michael@182 248 %endif
michael@182 249
michael@182 250 # libpq also requires openssl
michael@182 251 # postgresql also doesn't provide its own include subdirectory
michael@182 252 %{l_shtool} subst \
michael@182 253 -e 's;\(-lpq\);\1 -lssl -lcrypto;g' \
michael@182 254 -e 's;^\(#include <\)pgsql/\(libpq-fe.h>.*\)$;\1postgresql/\2;' \
michael@182 255 contrib/mod_sql_postgres.c
michael@182 256
michael@182 257 # libldap also requires openssl
michael@182 258 %{l_shtool} subst \
michael@182 259 -e 's;\(-llber\);\1 -lssl -lcrypto;g' \
michael@182 260 contrib/mod_ldap.c
michael@182 261
michael@182 262 # prepare mod_otp module
michael@182 263 %if "%{with_skey}" == "yes" || "%{with_opie}" == "yes"
michael@182 264 ( cd mod_otp
michael@182 265 CC="%{l_cc}" \
michael@182 266 CFLAGS="%{l_cflags -O}" \
michael@182 267 CPPFLAGS="%{l_cppflags}" \
michael@182 268 LDFLAGS="%{l_ldflags}" \
michael@182 269 ./configure \
michael@182 270 %if "%{with_skey}" == "yes"
michael@182 271 --with-skey \
michael@182 272 %endif
michael@182 273 %if "%{with_opie}" == "yes"
michael@182 274 --with-opie \
michael@182 275 %endif
michael@182 276 %{l_nil}
michael@182 277 cp mod_otp.[ch] ../contrib/
michael@182 278 ) || exit $?
michael@182 279 %endif
michael@182 280
michael@182 281 # prepare mod_sql_odbc module
michael@182 282 %if "%{with_odbc}" == "yes"
michael@182 283 ( cd mod_sql_odbc
michael@182 284 if [ -f %{l_prefix}/etc/unixodbc/odbc.ini ]; then
michael@182 285 ./configure --enable-unixodbc
michael@182 286 else
michael@182 287 ./configure --enable-iodbc
michael@182 288 fi
michael@182 289 ) || exit $?
michael@182 290 %endif
michael@182 291
michael@182 292 # prepare optional add-on modules
michael@182 293 cp mod_exec/mod_exec.c contrib/
michael@182 294 cp mod_sql_sqlite/mod_sql_sqlite.c contrib/
michael@182 295 cp mod_sql_odbc/mod_sql_odbc.[ch] contrib/
michael@182 296 cp mod_time/mod_time.c contrib/
michael@182 297 cp mod_vroot/mod_vroot.c contrib/
michael@182 298 %if "%{with_ctrls}" == "yes"
michael@182 299 cp mod_shaper/mod_shaper.c contrib/
michael@182 300 %endif
michael@182 301 %if "%{with_sftp}" == "yes"
michael@182 302 cp -r mod_sftp contrib/
michael@182 303 %if "%{with_mysql}" == "yes" || "%{with_pgsql}" == "yes" || "%{with_sqlite}" == "yes" || "%{with_odbc}" == "yes"
michael@182 304 cp mod_sftp_sql/mod_sftp_sql.c contrib/
michael@182 305 %endif
michael@182 306 %endif
michael@182 307 %if "%{with_md5}" == "yes"
michael@182 308 cp mod_md5/mod_md5.c contrib/
michael@182 309 %endif
michael@182 310
michael@182 311 # prepare mod_gss module
michael@182 312 %if "%{with_kerberos}" == "yes"
michael@182 313 ( cd mod_gss-*
michael@182 314 CC="%{l_cc}" \
michael@182 315 CFLAGS="%{l_cflags -O}" \
michael@182 316 CPPFLAGS="%{l_cppflags}" \
michael@182 317 LDFLAGS="%{l_ldflags}" \
michael@182 318 ./configure \
michael@182 319 --prefix=%{l_prefix} \
michael@182 320 `if [ -d %{l_prefix}/include/heimdal ]; then \
michael@182 321 echo "--enable-heimdal"; \
michael@182 322 else \
michael@182 323 echo "--enable-mit"; \
michael@182 324 fi`
michael@182 325 cp mod_gss.h ../include/
michael@182 326 cp mod_gss.c ../contrib/
michael@182 327 ) || exit $?
michael@182 328 %endif
michael@182 329
michael@182 330 %build
michael@182 331 # make non-standard "rundir" the same as standard "sysconfdir"
michael@182 332 %{l_shtool} subst \
michael@182 333 -e 's;^\(rundir=@localstatedir@\)/proftpd;\1;' \
michael@182 334 Make.rules.in
michael@182 335 %{l_shtool} subst \
michael@182 336 -e 's;^\(#define PR_RUN_DIR "`eval echo "${localstatedir}\)/proftpd;\1;' \
michael@182 337 configure
michael@182 338
michael@182 339 # write shutdown message file to OpenPKG instance, not outside
michael@182 340 %{l_shtool} subst \
michael@182 341 -e 's;\(#define PR_SHUTMSG_PATH.*"\)\(/etc/\)\(shutmsg\)";\1%{l_prefix}\2proftpd/\3";' \
michael@182 342 include/default_paths.h
michael@182 343
michael@182 344 # configure the ProFTPd source tree
michael@182 345 MOD="mod_ratio:mod_readme:mod_exec:mod_time:mod_vroot"
michael@182 346 MOD_INC="%{l_prefix}/include"
michael@182 347 MOD_LIB="%{l_prefix}/lib"
michael@182 348 %if "%{with_ifsession}" == "yes"
michael@182 349 MOD="$MOD:mod_ifsession"
michael@182 350 %endif
michael@182 351 %if "%{with_ctrls}" == "yes"
michael@182 352 MOD="$MOD:mod_shaper"
michael@182 353 MOD="$MOD:mod_ctrls_admin"
michael@182 354 %endif
michael@182 355 %if "%{with_radius}" == "yes"
michael@182 356 MOD="$MOD:mod_radius"
michael@182 357 %endif
michael@182 358 %if "%{with_mysql}" == "yes" || "%{with_pgsql}" == "yes" || "%{with_sqlite}" == "yes" || "%{with_odbc}" == "yes"
michael@182 359 MOD="$MOD:mod_sql"
michael@182 360 %if "%{with_mysql}" == "yes"
michael@182 361 MOD="$MOD:mod_sql_mysql"
michael@182 362 MOD_INC=":%{l_prefix}/include/mysql"
michael@182 363 %endif
michael@182 364 %if "%{with_pgsql}" == "yes"
michael@182 365 MOD="$MOD:mod_sql_postgres"
michael@182 366 MOD_INC=":%{l_prefix}/include/postgresql"
michael@182 367 %endif
michael@182 368 %if "%{with_sqlite}" == "yes"
michael@182 369 MOD="$MOD:mod_sql_sqlite"
michael@182 370 %endif
michael@182 371 %if "%{with_odbc}" == "yes"
michael@182 372 MOD="$MOD:mod_sql_odbc"
michael@182 373 %endif
michael@182 374 %endif
michael@182 375 %if "%{with_ldap}" == "yes"
michael@182 376 MOD="$MOD:mod_ldap"
michael@182 377 %endif
michael@182 378 %if "%{with_skey}" == "yes" || "%{with_opie}" == "yes"
michael@182 379 MOD="$MOD:mod_otp"
michael@182 380 %endif
michael@182 381 %if "%{with_kerberos}" == "yes"
michael@182 382 MOD="$MOD:mod_gss"
michael@182 383 %endif
michael@182 384 %if "%{with_ssl}" == "yes"
michael@182 385 MOD="$MOD:mod_tls"
michael@182 386 %endif
michael@182 387 %if "%{with_sftp}" == "yes"
michael@182 388 MOD="$MOD:mod_sftp"
michael@182 389 %if "%{with_mysql}" == "yes" || "%{with_pgsql}" == "yes" || "%{with_sqlite}" == "yes" || "%{with_odbc}" == "yes"
michael@182 390 MOD="$MOD:mod_sftp_sql"
michael@182 391 %endif
michael@182 392 %endif
michael@182 393 %if "%{with_md5}" == "yes"
michael@182 394 MOD="$MOD:mod_md5"
michael@182 395 %endif
michael@182 396 export CC="%{l_cc}"
michael@182 397 export CFLAGS="%{l_cflags -O}"
michael@182 398 export CPPFLAGS="%{l_cppflags ncurses}"
michael@182 399 export LDFLAGS="%{l_ldflags}"
michael@182 400 export LIBS="-lgetopt"
michael@182 401 %if "%{with_pam}" == "yes"
michael@182 402 CPPFLAGS="$CPPFLAGS -I`%{l_rc} --query pam_incdir`"
michael@182 403 LDFLAGS="$LDFLAGS -L`%{l_rc} --query pam_libdir`"
michael@182 404 %endif
michael@182 405 %if "%{with_kerberos}" == "yes"
michael@182 406 CPPFLAGS="$CPPFLAGS `krb5-config --cflags gssapi`"
michael@182 407 LIBS="$LIBS `krb5-config --libs gssapi`"
michael@182 408 %endif
michael@182 409 ./configure \
michael@182 410 --prefix=%{l_prefix} \
michael@182 411 --sysconfdir=%{l_prefix}/etc/proftpd \
michael@182 412 --localstatedir=%{l_prefix}/var/proftpd \
michael@183 413 --mandir=%{l_prefix}/man \
michael@182 414 --with-modules="$MOD" \
michael@182 415 --with-includes="$MOD_INC" \
michael@182 416 --with-libraries="$MOD_LIB" \
michael@182 417 --enable-buffer-size=1024 \
michael@182 418 %if "%{with_ctrls}" == "yes"
michael@182 419 --enable-ctrls \
michael@182 420 %endif
michael@182 421 %if "%{with_pam}" == "yes"
michael@182 422 --enable-auth-pam
michael@182 423 %else
michael@182 424 --disable-auth-pam
michael@182 425 %endif
michael@182 426
michael@182 427 # build ProFTPd programs
michael@182 428 %{l_make} %{l_mflags}
michael@182 429
michael@182 430 %install
michael@182 431 rm -rf $RPM_BUILD_ROOT
michael@182 432
michael@182 433 # make sure the "install" procedure does not try
michael@182 434 # to perform explicit ownership assignments
michael@182 435 %{l_shtool} subst -v \
michael@182 436 -e 's;-o $(INSTALL_USER) -g $(INSTALL_GROUP);;g' \
michael@182 437 -e 's;chown;true;g' \
michael@182 438 Makefile Make.rules
michael@182 439
michael@182 440 # perform the "install" procedure while redirecting
michael@182 441 # it to the temporarily install area
michael@182 442 %{l_make} %{l_mflags} \
michael@182 443 install-proftpd install-utils install-man \
michael@182 444 prefix=$RPM_BUILD_ROOT%{l_prefix} \
michael@182 445 bindir=$RPM_BUILD_ROOT%{l_prefix}/bin \
michael@182 446 sbindir=$RPM_BUILD_ROOT%{l_prefix}/sbin \
michael@182 447 sysconfdir=$RPM_BUILD_ROOT%{l_prefix}/etc/proftpd \
michael@182 448 localstatedir=$RPM_BUILD_ROOT%{l_prefix}/var/proftpd \
michael@183 449 mandir=$RPM_BUILD_ROOT%{l_prefix}/man \
michael@182 450 rundir=$RPM_BUILD_ROOT%{l_prefix}/var/proftpd
michael@182 451
michael@182 452 # strip installation
michael@182 453 rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/in.proftpd
michael@182 454
michael@182 455 # install more stuff manually
michael@182 456 %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/share/proftpd
michael@182 457 %{l_shtool} install -c -m 644 doc/faq.html \
michael@182 458 $RPM_BUILD_ROOT%{l_prefix}/share/proftpd/faq.html
michael@182 459 %{l_shtool} install -c -m 644 doc/Configuration.html \
michael@182 460 $RPM_BUILD_ROOT%{l_prefix}/share/proftpd/cfg.html
michael@182 461
michael@182 462 # extended installation with own stuff
michael@182 463 l_pam="#"
michael@182 464 %if "%{with_pam}" == "yes"
michael@182 465 l_pam=""
michael@182 466 %endif
michael@182 467 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@182 468 -e "s;@l_pam@;${l_pam};g" \
michael@182 469 %{SOURCE proftpd.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/proftpd/
michael@182 470 %{l_shtool} install -c -m 644 \
michael@182 471 %{SOURCE proftpd.msg.goaway} \
michael@182 472 %{SOURCE proftpd.msg.login} \
michael@182 473 $RPM_BUILD_ROOT%{l_prefix}/etc/proftpd/
michael@182 474 %{l_shtool} install -c -m 644 \
michael@182 475 %{SOURCE proftpd.msg.login} \
michael@182 476 $RPM_BUILD_ROOT%{l_prefix}/share/proftpd/.msg.login
michael@182 477 %{l_shtool} install -c -m 644 \
michael@182 478 %{SOURCE proftpd.msg.goaway} \
michael@182 479 $RPM_BUILD_ROOT%{l_prefix}/share/proftpd/.msg.goaway
michael@182 480 %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
michael@182 481 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@182 482 %{SOURCE rc.proftpd} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
michael@182 483
michael@182 484 # determine the package ingredients
michael@182 485 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@182 486 %{l_files_std} \
michael@182 487 '%config %attr(0600,%{l_susr},%{l_sgrp}) %{l_prefix}/etc/proftpd/proftpd.conf' \
michael@182 488 '%config %{l_prefix}/etc/proftpd/proftpd.msg.*'
michael@182 489
michael@182 490 %files -f files
michael@182 491
michael@182 492 %clean
michael@182 493 rm -rf $RPM_BUILD_ROOT
michael@182 494
michael@182 495 %post
michael@182 496 %if "%{with_pam}" == "yes"
michael@182 497 # add PAM configuration entry
michael@182 498 if [ $1 -eq 1 ]; then
michael@182 499 $RPM_INSTALL_PREFIX/sbin/pamtool --add --smart --name=proftpd
michael@182 500 fi
michael@182 501 %endif
michael@182 502
michael@182 503 # after upgrade, restart service
michael@182 504 [ $1 -eq 2 ] || exit 0
michael@182 505 eval `%{l_rc} proftpd status 2>/dev/null`
michael@182 506 [ ".$proftpd_active" = .yes ] && %{l_rc} proftpd restart
michael@182 507 exit 0
michael@182 508
michael@182 509 %preun
michael@182 510 # before erase, stop service and remove log files
michael@182 511 [ $1 -eq 0 ] || exit 0
michael@182 512 %{l_rc} proftpd stop 2>/dev/null
michael@182 513 rm -f $RPM_INSTALL_PREFIX/var/proftpd/*.log* >/dev/null 2>&1 || true
michael@182 514 rm -f $RPM_INSTALL_PREFIX/var/proftpd/*.pid >/dev/null 2>&1 || true
michael@182 515 %if "%{with_pam}" == "yes"
michael@182 516 # remove PAM configuration entry
michael@182 517 $RPM_INSTALL_PREFIX/sbin/pamtool --remove --smart --name=proftpd
michael@182 518 %endif
michael@182 519 exit 0
michael@182 520

mercurial