You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

441 lines
19 KiB

##
## squirrelmail.spec -- OpenPKG RPM Package Specification
## Copyright (c) 2000-2022 OpenPKG Project <http://openpkg.org/>
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
# package version
%define V_squirrelmail 1.4.22
%define V_locale 1.4.18-20090526
%define V_plugin_compat 2.0.14-1.0
%define V_plugin_logger 1.4.0-1.0.6
%define V_plugin_addgraphics 2.3-1.0.3
%define V_plugin_avelsieve 1.9.7
%define V_plugin_saslpwd 1.4.1-1.4
%define V_plugin_checkquota 2.2-1.4.0
%define V_plugin_foldersize 1.5-1.4.0
%define V_plugin_gnupg 2.0.1-1.4.2
%define V_plugin_ldif 1.4-1.2.x
%define V_plugin_update 0.7-1.4.2
%define V_plugin_userip 3.3-re-1.2.2
%define V_plugin_smallcal 0.8-1.2.3
%define V_plugin_vkeyboard 0.9
%define V_plugin_username 2.3-1.0.0
# package information
Name: squirrelmail
Summary: SquirrelMail Webmail Client
URL: http://www.squirrelmail.org/
Vendor: Squirrelmail Developers
Packager: OpenPKG Project
Distribution: OpenPKG Community
Class: EVAL
Group: Mail
License: GPL
Version: %{V_squirrelmail}
Release: 20160306
# package options
%option with_plugins no
# list of sources
Source0: http://download.sourceforge.net/squirrelmail/squirrelmail-webmail-%{V_squirrelmail}.tar.bz2
Source1: http://download.sourceforge.net/squirrelmail/all_locales-%{V_locale}.tar.bz2
Source2: http://www.squirrelmail.org/plugins/compatibility-%{V_plugin_compat}.tar.gz
Source3: http://www.squeaksoft.com/products/SquirrelLogger/squirrel_logger.%{V_plugin_logger}.tar.gz
Source4: http://www.squirrelmail.org/plugins/addgraphics-%{V_plugin_addgraphics}.tar.gz
Source5: http://www.squirrelmail.org/plugins/avelsieve-%{V_plugin_avelsieve}.tar.gz
Source6: http://www.squirrelmail.org/plugins/chg_sasl_passwd-%{V_plugin_saslpwd}.tar.gz
Source7: http://www.squirrelmail.org/plugins/check_quota-%{V_plugin_checkquota}.tar.gz
Source8: http://www.squirrelmail.org/plugins/folder_sizes-%{V_plugin_foldersize}.tar.gz
Source9: http://www.squirrelmail.org/plugins/gpg.%{V_plugin_gnupg}.tar.gz
Source10: http://www.squirrelmail.org/plugins/ldifimport-%{V_plugin_ldif}.tar.gz
Source11: http://www.squirrelmail.org/plugins/pupdate.%{V_plugin_update}.tar.gz
Source12: http://www.squirrelmail.org/plugins/show_user_and_ip-%{V_plugin_userip}.tar.gz
Source13: http://www.squirrelmail.org/plugins/smallcal-%{V_plugin_smallcal}.tar.gz
Source14: http://www.squirrelmail.org/plugins/vkeyboard-%{V_plugin_vkeyboard}.tar.gz
Source15: http://www.squirrelmail.org/plugins/username-%{V_plugin_username}.tar.gz
Source16: config.php
Source17: defprefs.txt
Source18: opkg_large.png
Source19: opkg_small.png
Source20: rc.squirrelmail
Source21: squirrelmail.conf
Source22: index.php
Patch0: squirrelmail.patch
Patch1: squirrelmail.patch.plugins
# build information
BuildPreReq: OpenPKG, openpkg >= 20160101
PreReq: OpenPKG, openpkg >= 20160101
PreReq: MTA, apache, apache-php, apache-php::with_xml = yes
%description
SquirrelMail is a standards-based webmail package written in PHP. It
includes built-in pure PHP support for the IMAP and SMTP protocols,
and all pages render in pure HTML 4.0 (with no Javascript) for
maximum compatibility across browsers. It has very few requirements
and is very easy to configure and install. SquirrelMail has all the
functionality you would want from an email client, including strong
MIME support, address books, and folder manipulation.
%track
prog squirrelmail = {
version = %{V_squirrelmail}
url = http://sourceforge.net/projects/squirrelmail/files/
regex = squirrelmail-webmail-(\d+\.[02468]\.\d+[a-z]?)\.tar\.bz2
}
prog squirrelmail:locales = {
version = %{V_locale}
url = http://sourceforge.net/projects/squirrelmail/files/
regex = all_locales-(\d+\.[02468]\.\d+-\d+)\.tar\.bz2
}
prog squirrelmail:compat = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_compat}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = compatibility-(__VER__)\.tar\.gz
}
prog squirrelmail:logger = {
version = %{V_plugin_logger}
url = http://www.squeaksoft.com/products/SquirrelLogger/
regex = squirrel_logger.(__VER__)\.tar\.gz
}
prog squirrelmail:addgraphics = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_addgraphics}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = addgraphics-(__VER__)\.tar\.gz
}
prog squirrelmail:avelsieve = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_avelsieve}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = avelsieve-(\d+\.\d+\.\d+)\.tar\.gz
}
prog squirrelmail:saslpwd = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_saslpwd}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = chg_sasl_passwd-(\d+\.\d+\.\d+-\d+\.\d+)\.tar\.gz
}
prog squirrelmail:checkquota = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_checkquota}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = check_quota-(__VER__)\.tar\.gz
}
prog squirrelmail:foldersize = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_foldersize}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = folder_sizes-(__VER__)\.tar\.gz
}
prog squirrelmail:gnupg = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_gnupg}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = gpg.(\d+\.\d+\.\d+-\d+\.\d+\.\d+)\.tar\.gz
}
prog squirrelmail:ldif = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_ldif}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = ldifimport-(__VER__)\.tar\.gz
}
prog squirrelmail:update = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_update}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = pupdate.(__VER__)\.tar\.gz
}
prog squirrelmail:userip = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_userip}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = show_user_and_ip-(__VER__)\.tar\.gz
}
prog squirrelmail:smallcal = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_smallcal}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = smallcal-(__VER__)\.tar\.gz
}
prog squirrelmail:vkeyboard = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_vkeyboard}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = vkeyboard-(__VER__)\.tar\.gz
}
prog squirrelmail:username = {
comment = "cs: untrackable due to CMS generated URLs"
disabled
version = %{V_plugin_username}
url = http://www.squirrelmail.org/plugins_category.php?category_id=all
regex = username-(__VER__)\.tar\.gz
}
%prep
%setup -q -c -n squirrelmail
%setup -q -D -T -a 1 -c -n squirrelmail/all_locales-%{V_locale}
%setup -q -D -T -a 2 -n squirrelmail
%setup -q -D -T -a 3 -n squirrelmail
mv compatibility squirrelmail-webmail-%{V_squirrelmail}/plugins
mv squirrel_logger squirrelmail-webmail-%{V_squirrelmail}/plugins
%if "%{with_plugins}" == "yes"
%setup -q -D -T -a 4 -n squirrelmail
%setup -q -D -T -a 5 -n squirrelmail
%setup -q -D -T -a 6 -n squirrelmail
%setup -q -D -T -a 7 -n squirrelmail
%setup -q -D -T -a 8 -n squirrelmail
%setup -q -D -T -a 9 -n squirrelmail
%setup -q -D -T -a 10 -n squirrelmail
%setup -q -D -T -a 11 -n squirrelmail
%setup -q -D -T -a 12 -n squirrelmail
%setup -q -D -T -a 13 -n squirrelmail
%setup -q -D -T -a 14 -n squirrelmail
%setup -q -D -T -a 15 -n squirrelmail
# move additional plugins where other are already placed
for plug in addgraphics avelsieve check_quota chg_sasl_passwd \
folder_sizes gpg ldifimport pupdate show_user_and_ip \
smallcal vkeyboard username; do
mv $plug squirrelmail-webmail-%{V_squirrelmail}/plugins
done
%endif
# clean up login screen of distractions
( cd squirrelmail-webmail-%{V_squirrelmail}
%patch -p0
) || exit $?
# rearrange documentation and remove archive script
( cd squirrelmail-webmail-%{V_squirrelmail}
mv AUTHORS ChangeLog COPYING INSTALL README UPGRADE doc/
mv ReleaseNotes doc/ReleaseNotes.txt
mv themes/README.themes doc/
for fil in `find plugins/ -name "README*" -o -name "Readme*" \
-o -name "INSTALL*" -o -name CHANGES -o -name HISTORY`; do
%{l_shtool} mkdir -f -p -m 755 doc/`dirname $fil`
mv -f $fil $_
done
mv doc/plugins/squirrelspell/doc/README doc/plugins/squirrelspell
rm -rf doc/plugins/squirrelspell/doc doc/plugins/squirrelspell/index.php
mv plugins/squirrelspell/doc/* doc/plugins/squirrelspell
rm -rf plugins/squirrelspell/doc
rm -f plugins/make_archive.pl
%if "%{with_plugins}" == "yes"
mv plugins/pupdate/docs/* doc/plugins/pupdate
rm -rf plugins/pupdate/docs
%endif
# postadjustment cosmetics
%{l_shtool} subst \
-e 's;\(#ffffff., .border="0" width=\)"350";\1"250";1' \
src/login.php
# set default prefs
cat %{SOURCE defprefs.txt} >>data/default_pref
) || exit $?
%build
%install
# create directory structure
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/bin \
$RPM_BUILD_ROOT%{l_prefix}/etc/squirrelmail \
$RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/prefs \
$RPM_BUILD_ROOT%{l_prefix}/var/squirrelmail/spool/attach \
$RPM_BUILD_ROOT%{l_prefix}/var/squirrelmail/log
# install locales
( cd all_locales-%{V_locale}
cp -rpf help images locale $RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/
) || exit $?
# install program
( cd squirrelmail-webmail-%{V_squirrelmail}
# install default_pref
%{l_shtool} install -c -m 644 \
data/default_pref \
$RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/prefs/
# create initial administrator list
echo %{l_musr} >>$RPM_BUILD_ROOT%{l_prefix}/etc/squirrelmail/admins
# copy over most functional directories, a lot of stuff
for dir in class doc functions include plugins src themes; do
cp -rpf $dir $RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/
done
cp -rpf images/* $RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/images/
cp -pf locale/timezones.cfg $RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/locale/
# install main config files
l_fqdm=`%{l_shtool} echo -e %h%d`
%{l_shtool} install -c -m 644 %{l_value -s -a} \
-e 's;config/\(config_local.php\);\1;g' \
-e "s;@l_fqdm@;${l_fqdm};g" \
%{SOURCE config.php} \
config/config_default.php \
config/config_local.php \
$RPM_BUILD_ROOT%{l_prefix}/etc/squirrelmail/
%if "%{with_plugins}" == "yes"
( cd $RPM_BUILD_ROOT%{l_prefix}
%{l_patch} -p0 <%{PATCH squirrelmail.patch.plugins}
rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/squirrelmail/*.orig
rm -f $RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/plugins/gpg/*.orig
rm -f $RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/plugins/chg_sasl_passwd/*.orig
) || exit $?
%endif
# install plugin config files
( cd $RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/plugins
%{l_shtool} subst \
-e 's;../data/access_log;../../../var/squirrelmail/log/access.log;' \
-e 's;\(\$sl_dateformat = \)"m/d/Y G:i:s";\1"d/m/Y G:i:s";' \
squirrel_logger/setup.php
%if "%{with_plugins}" == "yes"
cp -pf check_quota/config.sample.php check_quota/config.php
cp -pf chg_sasl_passwd/config.php.sample chg_sasl_passwd/config.php
cp -pf show_user_and_ip/config.php.sample show_user_and_ip/config.php
%{l_shtool} install -c -m 644 \
-e "s;sm_logo\.png;opkg_small.png;" \
-e "s;SquirrelMail Logo;OpenPKG Logo;" \
-e "s;www\.squirrelmail\.org;www.openpkg.org;" \
-e "s;\/\/\(\$image_width.*\) = 308;\1 = 201;" \
-e "s;\/\/\(\$image_height.*\) = 111;\1 = 62;" \
addgraphics/config.php.typical.one.domain \
addgraphics/config.php
%{l_shtool} install -c -m 644 \
-e 's/^\(\$sieve_preferred_sasl_mech =\).*/\1 "PLAIN LOGIN CRAM-MD5 DIGEST-MD5";/' \
-e 's/^\(\$avelsieve_oldcyrus =\).*/\1 false;/' \
-e 's/^\(\$startitems =\).*/\1 4;/' \
avelsieve/config/config_sample.php \
avelsieve/config/config.php
%{l_shtool} subst \
-e 's;\(path_to_gpg=\)/usr/bin/gpg.*;\1%{l_prefix}/bin/gpg;' \
gpg/gpg_local_prefs.txt
%{l_shtool} install -c -m 644 \
-e 's;\(adminusername = "\)[^"]*;\1%{l_musr};' \
-e 's;corehide = 1;corehide = 0;' \
pupdate/config.php.sample \
pupdate/config.php
%{l_shtool} install -c -m 644 \
-e "s;\(\$vkeyboard_msgsize.*\)'medium';\1'x-small';" \
-e "s;\(\$vkeyboard_layout.*\)'us_english';\1'portuguese_abnt2';" \
-e "s;\(\$vkeyboard_height.*\)'250';\1'270';" \
vkeyboard/config.php.sample \
vkeyboard/config.php
cp -pf username/config.php.sample username/config.php
%{l_shtool} install -c -m 644 \
%{SOURCE opkg_small.png} \
$RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/images/
%endif
) || exit $?
# install squirrelmail configuration perl script
%{l_shtool} install -c -m 755 \
-e 's;chdir($dir);chdir("%{l_prefix}/etc/squirrelmail");g' \
-e 's;\.\./plugins;%{l_prefix}/share/squirrelmail/plugins;g' \
-e 's;\.\./themes;%{l_prefix}/share/squirrelmail/themes;g' \
-e 's;config/config_local.php;config_local.php;g' \
config/conf.pl \
$RPM_BUILD_ROOT%{l_prefix}/bin/squirrelconf
# use our own logo, a squirrel next to a OpenPKG package
%{l_shtool} install -c -m 644 \
%{SOURCE opkg_large.png} \
$RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/images/
) || exit $?
# install runcommand script
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE rc.squirrelmail} \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# replace false /etc config paths throughout
%{l_shtool} subst \
-e 's;SM_PATH \. \(.\)config/;\1%{l_prefix}/etc/squirrelmail/;g' \
-e 's;require_once(SM_PATH \. \(.*\)%{l_prefix};require_once(\1%{l_prefix};g' \
$RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/functions/*.php \
$RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/include/*.php \
$RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/plugins/administrator/*.php \
$RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/plugins/calendar/*.php \
$RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/src/*.php
# integration into Apache under /webmail
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/apache/apache.d
%{l_shtool} install -c -m 644 %{l_value -s -a} \
%{SOURCE squirrelmail.conf} \
$RPM_BUILD_ROOT%{l_prefix}/etc/apache/apache.d/
%{l_shtool} install -c -m 644 %{l_value -s -a} \
%{SOURCE index.php} \
$RPM_BUILD_ROOT%{l_prefix}/share/squirrelmail/
# determine package ingredients and tag config files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
'%config %{l_prefix}/etc/squirrelmail/*' \
'%config %{l_prefix}/share/squirrelmail/prefs/*' \
'%config %{l_prefix}/share/squirrelmail/plugins/squirrelspell/sqspell_config.php' \
%if "%{with_plugins}" == "yes"
'%config %{l_prefix}/share/squirrelmail/plugins/addgraphics/config.php' \
'%config %{l_prefix}/share/squirrelmail/plugins/avelsieve/config/config.php' \
'%config %{l_prefix}/share/squirrelmail/plugins/check_quota/config.php' \
'%config %{l_prefix}/share/squirrelmail/plugins/chg_sasl_passwd/config.php' \
'%config %{l_prefix}/share/squirrelmail/plugins/folder_sizes/folder_sizes.php' \
'%config %{l_prefix}/share/squirrelmail/plugins/gpg/gpg_local_prefs.txt' \
'%config %{l_prefix}/share/squirrelmail/plugins/ldifimport/config.php' \
'%config %{l_prefix}/share/squirrelmail/plugins/pupdate/config.php' \
'%config %{l_prefix}/share/squirrelmail/plugins/show_user_and_ip/config.php' \
'%config %{l_prefix}/share/squirrelmail/plugins/vkeyboard/config.php' \
'%config %{l_prefix}/share/squirrelmail/plugins/username/config.php' \
%endif
'%attr(755,%{l_nusr},%{l_ngrp}) %{l_prefix}/share/squirrelmail/prefs' \
'%attr(755,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/squirrelmail/spool/attach' \
'%attr(755,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/squirrelmail/log'
%files -f files
%clean
%preun
# before erase, remove log files
[ $1 -eq 0 ] || exit 0
rm -f $RPM_INSTALL_PREFIX/var/squirrelmail/log/*.log >/dev/null 2>&1 || true