Work on 3.1 packaging

This commit is contained in:
Laurent Destailleur 2011-07-31 22:08:12 +00:00
parent ce97e9785f
commit e907773a9f
4 changed files with 119 additions and 36 deletions

View File

@ -2,7 +2,7 @@
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# \file build/makepack-dolibarr.pl # \file build/makepack-dolibarr.pl
# \brief Dolibarr package builder (tgz, zip, rpm, deb, exe, aps) # \brief Dolibarr package builder (tgz, zip, rpm, deb, exe, aps)
# \version $Id: makepack-dolibarr.pl,v 1.127 2011/07/31 18:06:36 eldy Exp $ # \version $Id: makepack-dolibarr.pl,v 1.128 2011/07/31 22:08:13 eldy Exp $
# \author (c)2004-2011 Laurent Destailleur <eldy@users.sourceforge.net> # \author (c)2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
@ -48,7 +48,7 @@ if (-d "/usr/src/RPM") {
use vars qw/ $REVISION $VERSION /; use vars qw/ $REVISION $VERSION /;
$REVISION='$Revision: 1.127 $'; $REVISION =~ /\s(.*)\s/; $REVISION=$1; $REVISION='$Revision: 1.128 $'; $REVISION =~ /\s(.*)\s/; $REVISION=$1;
$VERSION="1.0 (build $REVISION)"; $VERSION="1.0 (build $REVISION)";
@ -254,9 +254,11 @@ if ($nboftargetok) {
$ret=`rm -f $BUILDROOT/$PROJECT/build/DoliW*-*`; $ret=`rm -f $BUILDROOT/$PROJECT/build/DoliW*-*`;
$ret=`rm -f $BUILDROOT/$PROJECT/build/DoliM*-*`; $ret=`rm -f $BUILDROOT/$PROJECT/build/DoliM*-*`;
$ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.deb`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.changes`;
$ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.deb`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.deb`;
$ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.dsc`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.dsc`;
$ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.tar.gz`;
$ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.deb`;
$ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.rpm`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.rpm`;
$ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tar`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tar`;
$ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tar.gz`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tar.gz`;
@ -444,17 +446,93 @@ if ($nboftargetok) {
print "Remove other files\n"; print "Remove other files\n";
$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/htdocs/includes/barcode/php-barcode/genbarcode/genbarcode`; $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/htdocs/includes/barcode/php-barcode/genbarcode/genbarcode`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/README`; $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/README`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/aps`; $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/README`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/deb`; $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/README-FR`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/dmg`; $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/aps`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/doap`; $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/deb`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/exe`; $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/dmg`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/live`; $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/pad/README`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/patch`; $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/tgz/README`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/zip`; $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/deb/README`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/perl`; $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/doap`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/exe`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/live`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/patch`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/zip`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/perl`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/dbmodel`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/fpdf`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/initdata`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/iso-normes`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/phpcheckstyle`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/phpunit`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/doc/flyer`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/doc/font`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/doc/tshirt`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/doc/rollup`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/test`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/cashdesk/include/jscalendar/doc/html/CVS`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/cashdesk/include/jscalendar/skins/aqua/CVS`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/ckeditor/plugins/*/dialogs/CVS`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/ckeditor/plugins/*/images/CVS`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/fpdf/fpdf`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/nusoap/lib/Mail`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/odtphp/zip/.svn`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/odtphp/zip/pclzip/.svn`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/smarty`;
$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/COPYING`;
$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/barcode/php-barcode/genbarcode/genbarcode`;
# To remove once stable
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/htdocs/theme/bureau2crea`;
# Apache conf files
#print "Copy apache.conf file into $BUILDROOT/$FILENAMETGZ2/etc/$PROJECT/apache.conf\n";
#$ret=`mkdir -p "$BUILDROOT/$FILENAMETGZ2/etc/$PROJECT"`;
#$ret=`cp "$SOURCE/build/deb/apache.conf" "$BUILDROOT/$FILENAMETGZ2/etc/$PROJECT/apache.conf"`;
# Dolibarr conf files
# TODO
# dolibarr.desktop
#print "Create directory $BUILDROOT/$FILENAMETGZ2/usr/share/applications\n";
#$ret=`mkdir -p "$BUILDROOT/$FILENAMETGZ2/usr/share/applications"`;
#print "Copy desktop file into $BUILDROOT/$FILENAMETGZ2/usr/share/applications/dolibarr.desktop\n";
#$ret=`cp "$SOURCE/build/rpm/dolibarr.desktop" "$BUILDROOT/$FILENAMETGZ2/usr/share/applications/dolibarr.desktop"`;
# pixmap
#print "Create directory $BUILDROOT/$FILENAMETGZ2/usr/share/pixmaps\n";
#$ret=`mkdir -p "$BUILDROOT/$FILENAMETGZ2/usr/share/pixmaps"`;
#print "Copy pixmap file into $BUILDROOT/$FILENAMETGZ2/usr/share/pixmaps/dolibarr.xpm\n";
#$ret=`cp "$SOURCE/doc/images/dolibarr.xpm" "$BUILDROOT/$FILENAMETGZ2/usr/share/pixmaps/dolibarr.xpm"`;
# Set owners
print "Set owners on files/dir\n";
$ret=`chown -R root.root $BUILDROOT/$FILENAMETGZ2`;
print "Set permissions on files/dir\n";
$ret=`chmod -R 755 $BUILDROOT/$FILENAMETGZ2`;
$cmd="find $BUILDROOT/$FILENAMETGZ2 -type f -exec chmod 644 {} \\; ";
$ret=`$cmd`;
$cmd="find $BUILDROOT/$FILENAMETGZ2/build -name '*.php' -type f -exec chmod 755 {} \\; ";
$ret=`$cmd`;
$cmd="find $BUILDROOT/$FILENAMETGZ2/build -name '*.pl' -type f -exec chmod 755 {} \\; ";
$ret=`$cmd`;
$cmd="find $BUILDROOT/$FILENAMETGZ2/dev -name '*.php' -type f -exec chmod 755 {} \\; ";
$ret=`$cmd`;
$ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/dev/translation/langAutoParser.class.php`;
$ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/dev/skeletons/skeleton_page.php`;
$ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/dev/skeletons/modMyModule.class.php`;
$ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/dev/skeletons/skeleton_class.class.php`;
$cmd="find $BUILDROOT/$FILENAMETGZ2/scripts -name '*.php' -type f -exec chmod 755 {} \\; ";
$ret=`$cmd`;
$cmd="find $BUILDROOT/$FILENAMETGZ2/htdocs/includes/geoip -name 'sample*.php' -type f -exec chmod 755 {} \\; ";
$ret=`$cmd`;
$cmd="find $BUILDROOT/$FILENAMETGZ2/htdocs/includes/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts -name '*.pl' -type f -exec chmod 755 {} \\; ";
$ret=`$cmd`;
# Build tgz
print "Compress $FILENAMETGZ2 into $FILENAMETGZ2.tgz...\n"; print "Compress $FILENAMETGZ2 into $FILENAMETGZ2.tgz...\n";
$ret=`tar --exclude-from "$SOURCE/build/tgz/tar_exclude.txt" --directory "$BUILDROOT" -czvf "$BUILDROOT/$FILENAMETGZ2.tgz" $FILENAMETGZ2`; $ret=`tar --exclude-from "$SOURCE/build/tgz/tar_exclude.txt" --directory "$BUILDROOT" -czvf "$BUILDROOT/$FILENAMETGZ2.tgz" $FILENAMETGZ2`;
@ -622,17 +700,7 @@ if ($nboftargetok) {
print "Create directory $BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT\n"; print "Create directory $BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT\n";
$ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT"`; $ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT"`;
#print "Copy README file into $BUILDROOT/$PROJECT.tmp/DEBIAN\n"; # Set owners
#$ret=`cp "$SOURCE/README" "$BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT/README"`;
# copyright (to build binary package directly without sources. Useless if we build from sources)
#print "Copy copyright file into $BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT/copyright\n";
#$ret=`cp "$SOURCE/build/deb/copyright" "$BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT/copyright"`;
# changelog (to build binary package directly without sources. Useless if we build from sources)
#$ret=`gzip -9 -c "$SOURCE/build/deb/changelog" > $BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT/changelog.Debian.gz`;
#$ret=`gzip -9 -c "$SOURCE/build/deb/changelog" > $BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT/changelog.gz`;
print "Set owners on files/dir\n"; print "Set owners on files/dir\n";
$ret=`chown -R root.root $BUILDROOT/$PROJECT.tmp`; $ret=`chown -R root.root $BUILDROOT/$PROJECT.tmp`;

View File

@ -10,6 +10,8 @@ with format RPM (for Redhat, Mandriva, ...).
# This is standard command to work on Debian packaging: # This is standard command to work on Debian packaging:
# #
# rpmlint file.rpm Test a package
#
# On Fedora # On Fedora
# rpm -i --test dolibarr-...rpm To list dependencies of RPM # rpm -i --test dolibarr-...rpm To list dependencies of RPM
# yum install dolibarr-...rpm To install package and dependencies # yum install dolibarr-...rpm To install package and dependencies
@ -40,7 +42,9 @@ different features for Enterprise Resource Planning (ERP) and Customer
Relationship Management (CRM) but also for different other activities. Relationship Management (CRM) but also for different other activities.
I am author of other already packaged OpenSources packages (awstats) but this 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. is my first package to maintain myself. So i'm seeking a sponsor.
- Edit field "Block" and add FE-NEEDSPONSOR - Edit field "Block" and add FE-NEEDSPONSOR
- Check bug is into database by searching with id on https://bugzilla.redhat.com/ - 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/

View File

@ -19,7 +19,7 @@ Exec=xdg-open http://localhost/dolibarr
Icon=dolibarr Icon=dolibarr
Terminal=false Terminal=false
Type=Application Type=Application
Categories=Office Categories=Office;
StartupNotify=true StartupNotify=true
InitialPreference=5 InitialPreference=5
#NoDisplay=true #NoDisplay=true

View File

@ -48,7 +48,7 @@ AutoReqProv: no
%description %description
Dolibarr ERP & CRM is an easy to use open source/free software for small An easy to use CRM & ERP open source/free software for small
and medium companies, foundations or freelances. It includes different and medium companies, foundations or freelances. It includes different
features for Enterprise Resource Planning (ERP) and Customer Relationship features for Enterprise Resource Planning (ERP) and Customer Relationship
Management (CRM) but also for different other activities. Management (CRM) but also for different other activities.
@ -56,7 +56,7 @@ Dolibarr was designed to provide only features you need and be easy to
use. use.
%description -l es %description -l es
Dolibarr ERP y CRM es un software open source/gratis para pequeñas y Un software ERP y CRM open source/gratis para pequeñas y
medianas empresas, asociaciones o autónomos. Incluye diferentes medianas empresas, asociaciones o autónomos. Incluye diferentes
funcionalidades para la Planificación de Recursos Empresariales (ERP) y 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 Gestión de la Relación con los Clientes (CRM) así como para para otras
@ -65,13 +65,13 @@ solamente las funcionalidades que necesita y haciendo hincapié en su
facilidad de uso. facilidad de uso.
%description -l fr %description -l fr
Dolibarr ERP & CRM est un logiciel de gestion de PME/PMI, autoentrepreneurs, Logiciel ERP & CRM de gestion de PME/PMI, autoentrepreneurs,
artisans ou associations. Il permet de gérer vos clients, prospect, artisans ou associations. Il permet de gérer vos clients, prospect,
fournisseurs, devis, factures, comptes bancaires, agenda, campagne emailings fournisseurs, devis, factures, comptes bancaires, agenda, campagne emailings
et bien d'autres choses dans une interface pensée pour la simplicité. et bien d'autres choses dans une interface pensée pour la simplicité.
%description -l it %description -l it
Dolibarr è un programma gestionale open source e gratuito per piccole e medie Un programma gestionale open source e gratuito per piccole e medie
imprese, fondazioni e liberi professionisti. Include varie funzionalità per imprese, fondazioni e liberi professionisti. Include varie funzionalità per
Enterprise Resource Planning e gestione dei clienti (CRM), ma anche ulteriori Enterprise Resource Planning e gestione dei clienti (CRM), ma anche ulteriori
attività. Dolibar è progettato per poter fornire solo ciò di cui hai bisogno attività. Dolibar è progettato per poter fornire solo ciò di cui hai bisogno
@ -101,6 +101,7 @@ 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/htdocs
mkdir -p $RPM_BUILD_ROOT/var/www/dolibarr/scripts mkdir -p $RPM_BUILD_ROOT/var/www/dolibarr/scripts
# %{_datadir} = /usr/share
mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
cp doc/images/dolibarr_48x48.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/dolibarr.png cp doc/images/dolibarr_48x48.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/dolibarr.png
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
@ -153,6 +154,8 @@ export installfileorig="$targetdir/build/rpm/install.forced.php.install"
export installconfig="%{_sysconfdir}/dolibarr/install.forced.php" export installconfig="%{_sysconfdir}/dolibarr/install.forced.php"
export apachefileorig="$targetdir/build/rpm/httpd-dolibarr.conf" export apachefileorig="$targetdir/build/rpm/httpd-dolibarr.conf"
export apacheconfig="%{_sysconfdir}/dolibarr/apache.conf" export apacheconfig="%{_sysconfdir}/dolibarr/apache.conf"
export sefileorig="$targetdir/build/rpm/file_contexts.dolibarr"
export seconfig="%{_sysconfdir}/selinux/targeted/contexts/files/file_contexts.dolibarr"
#config="/usr/share/dolibarr/htdocs/conf/conf.php" #config="/usr/share/dolibarr/htdocs/conf/conf.php"
config="%{_sysconfdir}/dolibarr/conf.php" config="%{_sysconfdir}/dolibarr/conf.php"
lockfile="/usr/share/dolibarr/install.lock" lockfile="/usr/share/dolibarr/install.lock"
@ -218,7 +221,7 @@ then
chmod -R 660 $config chmod -R 660 $config
fi fi
# Create a config file $apacheconfig # Create config file for apache $apacheconfig
if [ ! -f $apacheconfig ]; then if [ ! -f $apacheconfig ]; then
echo Create dolibarr web server config file $apacheconfig echo Create dolibarr web server config file $apacheconfig
cp $apachefileorig $apacheconfig cp $apachefileorig $apacheconfig
@ -226,7 +229,15 @@ if [ ! -f $apacheconfig ]; then
chmod go-w $apacheconfig chmod go-w $apacheconfig
fi fi
# Create a config link dolibarr.conf for Fedora or Redhat # Create config file for se $seconfig
if [ ! -f $seconfig ]; then
echo Create se config file $seconfig
cp $sefileorig $seconfig
# chmod a-x $apacheconfig
# chmod go-w $apacheconfig
fi
# Create a config link dolibarr.conf
if [ ! -f $apachelink ]; then if [ ! -f $apachelink ]; then
echo Create dolibarr web server config link $apachelink echo Create dolibarr web server config link $apachelink
ln -fs $apacheconfig $apachelink ln -fs $apacheconfig $apachelink
@ -359,5 +370,5 @@ rmdir $targetdir/doc >/dev/null 2>&1
#rmdir $targetdir/htdocs >/dev/null 2>&1 # Already removed by rpm #rmdir $targetdir/htdocs >/dev/null 2>&1 # Already removed by rpm
%changelog %changelog
* Wed Jul 31 2011 Laurent Destailleur 3.1.0 * Wed Jul 31 2011 Laurent Destailleur 3.1.0-0.2.beta1
- Initial upstream (#723326) - Initial version (#723326)