Work on 3.1 packaging

This commit is contained in:
Laurent Destailleur 2011-07-31 15:31:32 +00:00
parent a8d2c77db0
commit 1400505ccc
7 changed files with 124 additions and 149 deletions

View File

@ -49,5 +49,5 @@ For first ITP submission of Dolibarr, bug id was 634783.
- Call for a mentor on ML debian-mentors to upload packages
- Once package is uploaded, following URL are available:
http://packages.qa.debian.org/package
http://packages.qa.debian.org/package.html
http://bugs.debian.org/package

View File

@ -30,6 +30,7 @@ apachefileorig="/usr/share/dolibarr/build/deb/apache.conf"
apacheconfig="/etc/dolibarr/apache.conf"
#config="/usr/share/dolibarr/htdocs/conf/conf.php"
config="/etc/dolibarr/conf.php"
lockfile="/usr/share/dolibarr/install.lock"
export webserver=""
@ -43,6 +44,32 @@ esac
case "$1" in
# Call when we upgrade
upgrade)
;;
# Call when we uninstall
remove)
rm -f $lockfile
# Remove include files
export restart=""
for server in $webservers ; do
export conffile="/etc/$server/conf.d/dolibarr.conf"
if [ -f $conffile ] ;
then
echo Delete link $conffile
rm -f $conffile
status=purge
fi
if [ "x$status" = "xpurge" ] ;
then restart="$restart $server"
fi
done
;;
# Call when we uninstall and purge
purge)
echo "postrm purge webservers=$webservers apacheconfig=$apacheconfig"
@ -198,30 +225,6 @@ case "$1" in
#db_purge
;;
# Call when we uninstall
remove)
rm -f /usr/share/dolibarr/install.lock
# Remove include files
export restart=""
for server in $webservers ; do
export conffile="/etc/$server/conf.d/dolibarr.conf"
if [ -f $conffile ] ;
then
echo Delete link $conffile
rm -f $conffile
status=purge
fi
if [ "x$status" = "xpurge" ] ;
then restart="$restart $server"
fi
done
;;
upgrade)
;;
failed-upgrade|abort-install|abort-upgrade|disappear)
;;

View File

@ -2,7 +2,7 @@
#----------------------------------------------------------------------------
# \file build/makepack-dolibarr.pl
# \brief Dolibarr package builder (tgz, zip, rpm, deb, exe, aps)
# \version $Id: makepack-dolibarr.pl,v 1.123 2011/07/30 14:56:12 eldy Exp $
# \version $Id: makepack-dolibarr.pl,v 1.125 2011/07/31 15:31:32 eldy Exp $
# \author (c)2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
#----------------------------------------------------------------------------
@ -48,7 +48,7 @@ if (-d "/usr/src/RPM") {
use vars qw/ $REVISION $VERSION /;
$REVISION='$Revision: 1.123 $'; $REVISION =~ /\s(.*)\s/; $REVISION=$1;
$REVISION='$Revision: 1.125 $'; $REVISION =~ /\s(.*)\s/; $REVISION=$1;
$VERSION="1.0 (build $REVISION)";
@ -274,6 +274,10 @@ if ($nboftargetok) {
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/barcode/php-barcode/fonts/Veranda*.ttf`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/fckeditor/fckeditor.py`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/mssql/README`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/mysql/README`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/pgsql/README`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/test`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/spec`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/licence`;
@ -696,12 +700,12 @@ if ($nboftargetok) {
if ($OS =~ /windows/i)
{
print "Move *_all.deb to $DESTI\n";
$ret=`mv "$BUILDROOT/*_all.deb" "$DESTI/"`;
$ret=`mv $BUILDROOT/*_all.deb "$DESTI/"`;
}
else
{
print "Move *_all.deb to $DESTI\n";
$ret=`mv "$BUILDROOT/*_all.deb" "$DESTI/"`;
$ret=`mv $BUILDROOT/*_all.deb "$DESTI/"`;
}
next;
}

View File

@ -5,24 +5,15 @@ RPM Package tools
This directory contains files used by makepack-dolibarr.pl
script to build a package, ready to be distributed,
with format RPM (for Redhat, OpenSuse, Mandriva, ...).
with format RPM (for Redhat, Mandriva, ...).
# This is standard command to work on RPM packaging:
#
# yum -y install rpmlint
# yum -y install hunspell-en hunspell-es hunspell-fr hunspell-it
#
# rpmlint file.rpm Test a package
# mock -r fedora-15-i386 --rebuild ../SRPMS/hello-2.7-1.fc15.src.rpm
# This is standard command to work on Debian packaging:
#
# On Fedora
# rpm -i --test dolibarr-...rpm To list dependencies of RPM
# yum install dolibarr-...rpm To install package and dependencies
# yum erase dolibarr To remove package
# chcon -R -h -t httpd_sys_script_rw_t /file To add temporary context rw for httpd on /file
# semanage fcontext -a -t httpd_sys_script_rw_t "/dir/(.*)?" To add persistent context rw for httpd on /dir (this add file_contexts.local)
# restorecon -R -v /file Restore values into files (cancel chcon, validate semanage)
# yum erase dolibarr To remove package
#
# On OpenSuse
# yast --install dolibarr-...rpm To install package and dependencies
@ -36,22 +27,18 @@ with format RPM (for Redhat, OpenSuse, Mandriva, ...).
To submit a package to Fedora:
- Create account on bugzilla.redhat.com
- Create account on fedoraproject.org
- Create SRPMS package.
- Upload package onf http://fedorapeople.org
- Create a bug with form https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora&format=fedora-review
This is example of content of review field (used for Bug 723326):
SRPMS URL: http://www.dolibarr.org/files/fedora/dolibarr-x.y.z-xxx.src.rpm
Spec URL: http://www.dolibarr.org/files/fedora/dolibarr.spec
SRPM URL: http://www.dolibarr.org/files/fedora/dolibarr-3.1.0-0.src.rpm
Description: Dolibarr ERP & CRM is an easy to use open source/free software
for small and medium companies, foundations or freelances. It includes
different features for Enterprise Resource Planning (ERP) and Customer
Relationship Management (CRM) but also for different other activities.
I am author of other already packaged OpenSources packages (awstats) but this
is my first package to maintain myself. So i'm seeking a sponsor.
- Edit field "Block" and add FE-NEEDSPONSOR
- Check bug is into database by searching with id on https://bugzilla.redhat.com/
- Install fedora packager tools: yum install fedora-packager
- Setup fedora packagers tools: fedora-packager-setup
- Send your package: koji build --scratch f16 path_to_source_RPM
- Check if package is available: http://koji.fedoraproject.org/koji/
- Check bug is into database by searching with id on https://bugzilla.redhat.com/

View File

@ -5,11 +5,6 @@
# file to build a package for your own distributions and
# edit it if you need to match your rules.
# --------------------------------------------------------
#%define is_mandrake %(test -e /etc/mandrake-release && echo 1 || echo 0)
#%define is_suse %(test -e /etc/SuSE-release && echo 1 || echo 0)
#%define is_fedora %(test -e /etc/fedora-release && echo 1 || echo 0)
%define name dolibarr
%define version __VERSION__
%define release __RELEASE__
@ -17,18 +12,15 @@
Name: %{name}
Version: %{version}
Release: %{release}
Summary: ERP and CRM software for small and medium companies or foundations
Summary(es): Software ERP y CRM para pequeñas y medianas empresas o, asociaciones o autónomos
Summary(fr): Logiciel ERP & CRM de gestion de PME/PMI, autoentrepreneurs ou associations
Summary(it): Programmo gestionale per piccole imprese, fondazioni e liberi professionisti
Summary: Dolibarr
License: GPLv2+
License: GPL
Packager: Laurent Destailleur (Eldy) <eldy@users.sourceforge.net>
Vendor: Dolibarr dev team
URL: http://www.%{name}.org
Source: /usr/src/RPM/SOURCES/%{name}-%{version}.tgz
BuildArch: noarch
#BuildArch: noarch
#BuildArchitectures: noarch
BuildRoot: /tmp/%{name}-buildroot
#Icon: dolibarr_logo1.gif
@ -56,7 +48,7 @@ AutoReqProv: no
%description
An easy to use CRM & ERP open source/free software for small
Dolibarr ERP & CRM is an easy to use open source/free software for small
and medium companies, foundations or freelances. It includes different
features for Enterprise Resource Planning (ERP) and Customer Relationship
Management (CRM) but also for different other activities.
@ -64,26 +56,27 @@ Dolibarr was designed to provide only features you need and be easy to
use.
%description -l es
Un software ERP y CRM para pequeñas y medianas empresas, asociaciones
o autónomos. Incluye diferentes funcionalidades para la Planificación
de Recursos Empresariales (ERP) y Gestión de la Relación con los
Clientes (CRM) así como para para otras diferentes actividades.
Dolibarr ha sido diseñado para suministrarle solamente las funcionalidades
que necesita y haciendo hincapié en su facilidad de uso.
Dolibarr ERP y CRM es un software open source/gratis para pequeñas y
medianas empresas, asociaciones o autónomos. Incluye diferentes
funcionalidades para la Planificación de Recursos Empresariales (ERP) y
Gestión de la Relación con los Clientes (CRM) así como para para otras
diferentes actividades. Dolibarr ha sido diseñado para suministrarle
solamente las funcionalidades que necesita y haciendo hincapié en su
facilidad de uso.
%description -l fr
Logiciel ERP & CRM de gestion de PME/PMI, autoentrepreneurs,
Dolibarr ERP & CRM est un logiciel de gestion de PME/PMI, autoentrepreneurs,
artisans ou associations. Il permet de gérer vos clients, prospect,
fournisseurs, devis, factures, comptes bancaires, agenda, campagne emailings
et bien d'autres choses dans une interface pensée pour la simplicité.
%description -l it
Un programmo gestionale per piccole e medie
Dolibarr è un programma gestionale open source e gratuito per piccole e medie
imprese, fondazioni e liberi professionisti. Include varie funzionalità per
Enterprise Resource Planning e gestione dei clienti (CRM), ma anche ulteriori
attività. Progettato per poter fornire solo ciò di cui hai bisogno
attività. Dolibar è progettato per poter fornire solo ciò di cui hai bisogno
ed essere facile da usare.
Programmo web, progettato per poter fornire solo ciò di
Dolibar è completamente web-based, progettato per poter fornire solo ciò di
cui hai bisogno ed essere facile da usare.
@ -101,51 +94,48 @@ echo Building %{name}-%{version}-%{release}
#---- install
%install
%{__rm} -rf $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_ROOT
%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/dolibarr
%{__install} -m 644 etc/dolibarr/apache.conf $RPM_BUILD_ROOT%{_sysconfdir}/dolibarr/apache.conf
%{__install} -m 644 etc/dolibarr/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/dolibarr/file_contexts.dolibarr
mkdir -p $RPM_BUILD_ROOT/var/www/dolibarr/build
mkdir -p $RPM_BUILD_ROOT/var/www/dolibarr/doc
mkdir -p $RPM_BUILD_ROOT/var/www/dolibarr/htdocs
mkdir -p $RPM_BUILD_ROOT/var/www/dolibarr/scripts
# %{_datadir} = /usr/share
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
%{__install} -m 644 var/www/dolibarr/doc/images/dolibarr_48x48.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/dolibarr.png
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
%{__install} -m 644 var/www/dolibarr/build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/dolibarr.desktop
mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
cp doc/images/dolibarr_48x48.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/dolibarr.png
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
cp build/rpm/dolibarr.desktop $RPM_BUILD_ROOT/%{_datadir}/applications/dolibarr.desktop
%{__mkdir} -p $RPM_BUILD_ROOT/var/www/dolibarr/build
%{__mkdir} -p $RPM_BUILD_ROOT/var/www/dolibarr/doc
%{__mkdir} -p $RPM_BUILD_ROOT/var/www/dolibarr/htdocs
%{__mkdir} -p $RPM_BUILD_ROOT/var/www/dolibarr/scripts
%{__cp} -pr var/www/dolibarr/build $RPM_BUILD_ROOT/var/www/dolibarr
%{__cp} -pr var/www/dolibarr/doc $RPM_BUILD_ROOT/var/www/dolibarr
%{__cp} -pr var/www/dolibarr/htdocs $RPM_BUILD_ROOT/var/www/dolibarr
%{__cp} -pr var/www/dolibarr/scripts $RPM_BUILD_ROOT/var/www/dolibarr
%{__install} -m 644 var/www/dolibarr/COPYRIGHT $RPM_BUILD_ROOT/var/www/dolibarr/doc/COPYRIGHT
install -m 444 README $RPM_BUILD_ROOT/var/www/dolibarr/README
install -m 444 COPYRIGHT $RPM_BUILD_ROOT/var/www/dolibarr/COPYRIGHT
cp -pr build $RPM_BUILD_ROOT/var/www/dolibarr
cp -pr doc $RPM_BUILD_ROOT/var/www/dolibarr
cp -pr htdocs $RPM_BUILD_ROOT/var/www/dolibarr
cp -pr scripts $RPM_BUILD_ROOT/var/www/dolibarr
#---- clean
%clean
%{__rm} -rf $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_ROOT
#---- files
%files
%defattr(-,root,root)
%doc README
%doc COPYRIGHT
%doc /var/www/dolibarr/doc/*
%dir /var/www/dolibarr/build
%dir /var/www/dolibarr/htdocs
%dir /var/www/dolibarr/scripts
%_datadir/pixmaps/dolibarr.png
%_datadir/pixmaps/*
%_datadir/applications/%{name}.desktop
/var/www/dolibarr/build/*
/var/www/dolibarr/htdocs/*
/var/www/dolibarr/scripts/*
%defattr(0664, -, -, 0755)
%config(noreplace) %{_sysconfdir}/dolibarr/apache.conf
%config(noreplace) %{_sysconfdir}/dolibarr/file_contexts.dolibarr
/var/www/dolibarr/README
/var/www/dolibarr/COPYRIGHT
#%config /var/www/dolibarr/htdocs/conf/conf.php
#---- post (after unzip during install)
@ -163,11 +153,9 @@ export installfileorig="$targetdir/build/rpm/install.forced.php.install"
export installconfig="%{_sysconfdir}/dolibarr/install.forced.php"
export apachefileorig="$targetdir/build/rpm/httpd-dolibarr.conf"
export apacheconfig="%{_sysconfdir}/dolibarr/apache.conf"
export sefileorig="%{_sysconfdir}/dolibarr/file_contexts.dolibarr"
export seconfig="%{_sysconfdir}/selinux/targeted/contexts/files/file_contexts.dolibarr"
#export config="/usr/share/dolibarr/htdocs/conf/conf.php"
export config="%{_sysconfdir}/dolibarr/conf.php"
export lockfile="/usr/share/dolibarr/install.lock"
#config="/usr/share/dolibarr/htdocs/conf/conf.php"
config="%{_sysconfdir}/dolibarr/conf.php"
lockfile="/usr/share/dolibarr/install.lock"
# Detect OS
@ -201,8 +189,8 @@ echo OS detected: $os
# Create empty directory for uploaded files and generated documents
echo Create document directory $docdir
%{__mkdir} -p $docdir
%{__mkdir} -p %{_sysconfdir}/dolibarr
mkdir -p $docdir
mkdir -p %{_sysconfdir}/dolibarr
# Create install.forced.php into Dolibarr install directory
superuserlogin=''
@ -214,12 +202,12 @@ if [ -f %{_sysconfdir}/mysql/debian.cnf ] ; then
fi
echo Mysql superuser found to use is $superuserlogin
if [ -z "$superuserlogin" ] ; then
%{__cat} $installfileorig | sed -e 's/__SUPERUSERLOGIN__/root/g' | sed -e 's/__SUPERUSERPASSWORD__//g' > $installconfig
cat $installfileorig | sed -e 's/__SUPERUSERLOGIN__/root/g' | sed -e 's/__SUPERUSERPASSWORD__//g' > $installconfig
else
%{__cat} $installfileorig | sed -e 's/__SUPERUSERLOGIN__/'$superuserlogin'/g' | sed -e 's/__SUPERUSERPASSWORD__/'$superuserpassword'/g' > $installconfig
cat $installfileorig | sed -e 's/__SUPERUSERLOGIN__/'$superuserlogin'/g' | sed -e 's/__SUPERUSERPASSWORD__/'$superuserpassword'/g' > $installconfig
fi
%{__chown} -R root:$apachegroup $installconfig
%{__chmod} -R 660 $installconfig
chown -R root:$apachegroup $installconfig
chmod -R 660 $installconfig
# Create an empty conf.php with permission to web server
if [ ! -f $config ]
@ -230,24 +218,15 @@ then
chmod -R 660 $config
fi
# Create config file for apache $apacheconfig
#if [ ! -f $apacheconfig ]; then
# echo Create dolibarr web server config file $apacheconfig
# cp $apachefileorig $apacheconfig
# chmod a-x $apacheconfig
# chmod go-w $apacheconfig
#fi
# Create config file for se $seconfig
if [ "x$os" = "xfedora-redhat" -a -s /sbin/restorecon -a ! -f $seconfig ]; then
echo Add SE Linux permission from file $sefileorig
# cp $sefileorig $seconfig
restorecon -R -v /etc/dolibarr
restorecon -R -v /var/www/dolibarr
restorecon -R -v /usr/share/dolibarr
# Create a config file $apacheconfig
if [ ! -f $apacheconfig ]; then
echo Create dolibarr web server config file $apacheconfig
cp $apachefileorig $apacheconfig
chmod a-x $apacheconfig
chmod go-w $apacheconfig
fi
# Create a config link dolibarr.conf
# Create a config link dolibarr.conf for Fedora or Redhat
if [ ! -f $apachelink ]; then
echo Create dolibarr web server config link $apachelink
ln -fs $apacheconfig $apachelink
@ -263,6 +242,18 @@ echo Set permission to $apacheuser:$apachegroup on $docdir
chown -R $apacheuser:$apachegroup $docdir
chmod -R o-w $docdir
# Set SE Linux on OS SE is enabled
if [ "x$os" = "xfedora-redhat" -a -s /usr/bin/chcon ]; then
echo Set SELinux permissions
# Warning: chcon seems not cumulative
#chcon -R -h -t httpd_sys_content_t $targetdir
#chcon -R -h -t httpd_sys_content_t $docdir
chcon -R -h -t httpd_sys_script_rw_t $targetdir
chcon -R -h -t httpd_sys_script_rw_t $docdir
chcon -R -h -t httpd_sys_script_rw_t %{_sysconfdir}/dolibarr
#chcon -R -h -t httpd_sys_script_exec_t $targetdir
fi
# Restart web server
echo Restart web server
if [ -f %{_sysconfdir}/init.d/httpd ]; then
@ -272,12 +263,6 @@ if [ -f %{_sysconfdir}/init.d/apache2 ]; then
%{_sysconfdir}/init.d/apache2 restart
fi
# Restart mysql
echo Restart mysql
if [ -f /etc/init.d/mysqld ]; then
/etc/init.d/mysqld restart
fi
# Show result
echo
echo "----- Dolibarr %version - (c) Dolibarr dev team -----"
@ -305,9 +290,9 @@ export installfileorig="$targetdir/build/rpm/install.forced.php.install"
export installconfig="%{_sysconfdir}/dolibarr/install.forced.php"
export apachefileorig="$targetdir/build/rpm/httpd-dolibarr.conf"
export apacheconfig="%{_sysconfdir}/dolibarr/apache.conf"
#export config="/usr/share/dolibarr/htdocs/conf/conf.php"
export config="%{_sysconfdir}/dolibarr/conf.php"
export lockfile="$targetdir/install.lock"
#config="/usr/share/dolibarr/htdocs/conf/conf.php"
config="%{_sysconfdir}/dolibarr/conf.php"
lockfile="$targetdir/install.lock"
# Detect OS
@ -342,7 +327,7 @@ echo OS detected: $os
if [ -f $apachelink ] ;
then
echo Delete apache config link for Dolibarr
%{__rm} -f $apachelink
rm -f $apachelink
status=purge
fi
@ -360,16 +345,12 @@ then
fi
# Removed dirs after apache restart
echo Removed remaining $config
%{__rm} -f $config
echo Removed remaining $installconfig
%{__rm} -f $installconfig
echo Removed remaining $lockfile
%{__rm} -f $lockfile
echo Removed remaining dir $targetdir/doc
echo Removed remaining dirs
rm -f $apacheconfig
rm -f $config
rm -f $installconfig
rm -f $lockfile
rmdir $targetdir/doc >/dev/null 2>&1
rmdir $targetdir/htdocs >/dev/null 2>&1
%changelog
* Wed Jul 31 2011 Laurent Destailleur 3.1.0-0.2.beta1
- Initial version (#723326)

View File

@ -3,10 +3,11 @@ $force_install_noedit=2;
$force_install_message='KeepDefaultValuesDeb';
$force_install_main_data_root='/usr/share/dolibarr/documents';
$force_install_type='mysqli';
$force_install_dbserver='localhost';
$force_install_port='3306';
$force_install_database='dolibarr';
$force_install_database='dolibarrrpm';
$force_install_createdatabase='1';
$force_install_databaselogin='dolibarrmysql';
$force_install_databaselogin='dolibarrrpm';
$force_install_databasepass='';
$force_install_createuser='1';
$force_install_databaserootlogin='__SUPERUSERLOGIN__';

View File

@ -24,7 +24,7 @@
* \file htdocs/install/etape5.php
* \ingroup install
* \brief Last page of upgrade or install process
* \version $Id: etape5.php,v 1.105 2011/07/31 11:56:43 eldy Exp $
* \version $Id: etape5.php,v 1.106 2011/07/31 13:28:45 eldy Exp $
*/
include_once("./inc.php");
@ -364,7 +364,6 @@ elseif (preg_match('/upgrade/i',$action))
if (! empty($force_install_lockinstall))
{
// Upgrade is finished, we create the lock file
$lockfile="../../install.lock";
$fp = @fopen($lockfile, "w");
if ($fp)
{