forked from Wavyzz/dolibarr
282 lines
9.7 KiB
Plaintext
282 lines
9.7 KiB
Plaintext
README (English)
|
|
##################################################
|
|
DEB Package tools
|
|
##################################################
|
|
|
|
This directory contains files used by makepack-dolibarr.pl
|
|
script to build a package, ready to be distributed,
|
|
with format .DEB (for Debian, Ubuntu, ...).
|
|
|
|
|
|
|
|
##### Prepare linux env to work
|
|
|
|
# To build a debian package, you need first
|
|
# With Ubuntu 12.04
|
|
# apt-get install debhelper dpkg-source gpg lintian git-buildpackage pkg-php-tools schroot sbuild dh-linktree dh-make-php
|
|
# With Debian 7
|
|
# apt-get install debhelper dpkg gnupg lintian git-buildpackage pkg-php-tools schroot sbuild dh-linktree dh-make-php
|
|
|
|
|
|
# To generate gpg key for email used into changelog
|
|
* Check your existing keys/emails
|
|
> gpg --list-key
|
|
* Generate a new one, if none exists for email you use as author
|
|
> gpg --gen-key Generate a GPG key (-> pubring.gpg + secring.gpg)
|
|
Files are saved int .gnupg directory
|
|
* Create a file ~/.gpb.conf by
|
|
> cat >~/.gbp.conf <<END
|
|
[DEFAULT]
|
|
pristine-tar = True
|
|
|
|
[git-buildpackage]
|
|
sign-tags = True
|
|
export-dir = ../build-area/
|
|
|
|
[git-import-orig]
|
|
filter-pristine-tar = True
|
|
END
|
|
|
|
|
|
# To use Alioth.debian.org
|
|
* Create an account login
|
|
* Update your ~/.ssh/config file to add:
|
|
Host svn.debian.org git.debian.org bzr.debian.org hg.debian.org darcs.debian.org arch.debian.org
|
|
User eldy-guest
|
|
IdentityFile ~/.ssh/id_rsa
|
|
* Check login on page https://alioth.debian.org/users/login
|
|
Ex: https://alioth.debian.org/users/eldy-guest
|
|
* Setup your ssh as described into page: http://wiki.debian.org/Alioth/SSH
|
|
* Ask to be included into project collab-maint: http://alioth.debian.org/projects/collab-maint/
|
|
|
|
|
|
|
|
##### Some interesting command to know
|
|
|
|
# To translate .po files
|
|
# debconf-updatepo To run into po dir to regenate templates.pot
|
|
# podebconf-report-po --from email@email.com To send email to ask translations
|
|
# Edit manually file XX.po and remove all lines "#, fuzzy" when translation is complete
|
|
# msgfmt -v -c -o /dev/null XX.po To have status of translation for language XX
|
|
|
|
# To check package integrity
|
|
# lintian --pedantic -E -I package.deb To test a package
|
|
|
|
# To manipulate packages
|
|
# dpkg -l List all packages
|
|
# dpkg -b To build binary only package
|
|
# dpkg -c package.deb List content of package
|
|
# dpkg -I package.deb Give informations on package
|
|
# dpkg -i package.deb Install a package
|
|
# dpkg-reconfigure -plow package Reconfigure package
|
|
# dpkg -L packagename List content of installed package
|
|
# dpkg -r packagename Remove config files and interactive saved answers
|
|
# dpkg -s packagename Give status of installed package
|
|
# dpkg --purge Remove config files and interactive saved answers
|
|
#
|
|
# dpkg-buildpackage -us -uc Build a source and binary package
|
|
#
|
|
# gdebi package.deb Install a package + dependencies
|
|
|
|
|
|
|
|
##### Global view of submit new package to Debian:
|
|
|
|
- Post an ITP with reportbugs :
|
|
> reportbug -B debian --email username@domain.tld wnpp
|
|
See page http://www.debian.org/devel/wnpp/#l1 for example of ITP requests contents.
|
|
|
|
- Wait until you received bug number.
|
|
For first ITP submission of Dolibarr, bug id was 634783.
|
|
|
|
- Check bug is into database by searching with id on
|
|
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634783
|
|
|
|
- Add a line for upstream into file changelog with bug number
|
|
|
|
- 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.html
|
|
http://bugs.debian.org/package
|
|
|
|
|
|
|
|
##### Testing a package into unstable env
|
|
|
|
Check you have a mysql server available from another interface than localhost
|
|
Comment line in /etc/mysql/my.cnf if required and restart mysql
|
|
#bind-address = 127.0.0.1
|
|
|
|
Create a chroot called "unstable-amd64-sbuild"
|
|
> sudo sbuild-createchroot --keyring= unstable /srv/chroot/unstable http://ftp.uk.debian.org/debian
|
|
|
|
Pour lister les env chroot
|
|
> schroot -l
|
|
|
|
Puis pour se connecter et préparer l'environnement
|
|
> schroot -c name_of_chroot
|
|
> vi /usr/sbin/policy-rc.d and replace return code 101 (not allowed) into 0 (ok)
|
|
> apt-get install links mysql-client
|
|
|
|
Pour tester un package
|
|
> On host server, stop any server on port 80 and 3306 (same port will be used by chroot env)
|
|
> cp ../build-area/* /srv/chroot/unstable/tmp
|
|
> sudo schroot -c name_of_chroot
|
|
> cd /tmp
|
|
> lintian --pedantic -E -I dolibarr*.deb
|
|
> lintian --pedantic -E -I dolibarr*.dsc
|
|
> dpkg -i dolibarr*.deb ou pour avoir des traces: dpkg -D77777 -i dolibarr*.deb
|
|
> apt-get install -f
|
|
|
|
Puis http://localhost/dolibarr/ (cela peut etre appeler depuis le hote).
|
|
|
|
|
|
|
|
|
|
##### Create/Maintain TCPDF package
|
|
|
|
To update tcpdf package:
|
|
|
|
* You can git clone tcpdf
|
|
> git clone git.debian.org:/git/collab-maint/tcpdf.git [tcpdf-debian]
|
|
or better
|
|
> mkdir gitdebian
|
|
> cd gitdebian
|
|
> gbp-clone git.debian.org:/git/collab-maint/tcpdf.git
|
|
|
|
* You can then create a PHP project from Eclipse called tcpdf-debian
|
|
from git clone dir and make link to git.
|
|
|
|
* If local branch upstream and pristine-tar does not exists, create it
|
|
from origin/upstream and origin/pristine.
|
|
|
|
* Into root dir, launch:
|
|
> debian/get-orig-source.sh
|
|
|
|
* Staying into git root directory, run
|
|
> git-import-orig -vv ../tcpdf_x.y.z+dfsg.orig.tar.xz
|
|
|
|
Note: If there was errors solved manually, you may need to make a git commit
|
|
|
|
* Add an entry into debian/changelog
|
|
> dch -v x.y.z-dsfg-1 "My comment" will add entry.
|
|
For example: dch -v x.y.z-dsfg-1 "New upstream release." for a new version
|
|
Then modify changelog to replace "unstable" with "UNRELEASED".
|
|
|
|
Warning: Date must have format reported by "date -R"
|
|
Warning: Name and email must match value into debian/control file (Entry added here is used by next step).
|
|
|
|
* We try to build package
|
|
> rm -fr ../build-area; git-buildpackage -us -uc
|
|
|
|
Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file
|
|
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
|
|
Note: Package is built into directory ../build-area
|
|
|
|
* If package .deb is ok:
|
|
Note: If there was errors managed manually, you may need to make a git commit but do not use option "amend" previous commit
|
|
> git push --all ou git push origin --all
|
|
|
|
* If ok, you can tag.
|
|
> Edit debian/changelog to replace "UNRELEASED" into "unstable", then push
|
|
> git-buildpackage --git-tag-only --git-retag
|
|
> git push --tags
|
|
|
|
* Compilation is then done by a debian developer and sent
|
|
> sbuild ...
|
|
> dput ...
|
|
|
|
* Go into page. You should see new package into unstable.
|
|
http://packages.qa.debian.org/t/tcpdf.html
|
|
|
|
* Package will be into release when test will be moved as stable.
|
|
|
|
|
|
|
|
##### Update but tracker system
|
|
To set status of a bug to pending
|
|
> bts tag 999999 +pending
|
|
|
|
or replay to email 999999@bugs.debian.org + submitter of bug
|
|
With a message starting with:
|
|
Control: tag -1 +pending
|
|
and then a text like:
|
|
Thanks. Fixed into git.
|
|
|
|
or replay to email control@bugs.debian.org
|
|
With only message
|
|
tag 729538 +pending
|
|
|
|
|
|
|
|
##### Create/Maintain dolibarr package
|
|
|
|
To update dolibarr debian package
|
|
|
|
* You can git clone debian git repo
|
|
> git clone git.debian.org:/git/collab-maint/dolibarr.git [dolibarr-debian]
|
|
or better
|
|
> cd ~; mkdir git-debian; cd git-debian
|
|
> gbp-clone git.debian.org:/git/collab-maint/dolibarr.git
|
|
|
|
* You can then create a PHP project from Eclipse called dolibarr-debian
|
|
from git clone dir and make link to git.
|
|
|
|
* If local branch upstream and pristine-tar does not exists, create it
|
|
from origin/upstream and origin/pristine.
|
|
|
|
* If new upstream is available onto sourceforge, launch:
|
|
> debian/get-orig-source.sh
|
|
|
|
* Edit tgz file to remove ckeditor and phpexcel and rename file into
|
|
dolibarr-x.y.z+dsfgw.tgz
|
|
(x.y.z = version, w start from 1 and is increased for each new import)
|
|
|
|
* Staying into git root directory, run
|
|
> git-import-orig -vv ../dolibarr-x.y.z+dsfgw.tgz
|
|
and enter version when requested with format
|
|
x.y.z+dsfgw
|
|
(x.y.z = version, w start from 1 and is increased for each new import)
|
|
|
|
Note: If there was errors solved manually after get-orig-sources.sh, you may need to make a git commit
|
|
|
|
* Add an entry into debian/changelog
|
|
> dch -v x.y.z-w "My comment" will add entry.
|
|
For example: dch -v x.y.z-w "New upstream release." for a new version (x.y.z = version, w start from 1 and increaed for each new import)
|
|
Then modify changelog to replace "unstable" with "UNRELEASED".
|
|
Then check/modify also the user/date signature:
|
|
- Date must have format reported by "date -R"
|
|
- Name and email must match value into debian/control file (Entry added here is used by next step).
|
|
|
|
* We try to build package
|
|
> rm -fr ../build-area; git-buildpackage -us -uc
|
|
|
|
Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file
|
|
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
|
|
Note: Package is built into directory ../build-area
|
|
|
|
* Test package (see dedicated chapter to test it with debian unstable env)
|
|
|
|
* If package .deb is ok:
|
|
Note: If there was errors managed manually, you may need to make a git commit but do not use option "amend" previous commit
|
|
> git push --all ou git push origin --all
|
|
|
|
* If ok, you can tag.
|
|
> Edit debian/changelog to replace "UNRELEASED" into "unstable", then push
|
|
> git-buildpackage --git-tag-only --git-retag
|
|
> git push --tags
|
|
|
|
* Compilation is then done by a debian developer and sent
|
|
> sbuild ...
|
|
> dput ...
|
|
|
|
* Package arrives into FTPmaster taskboard with status NEW (pending upload). You can view it at:
|
|
http://ftp-master.debian.org/new/
|
|
|
|
* Once package is validated, you should see it into area unstable at:
|
|
http://packages.qa.debian.org
|
|
|
|
* Package will be into release when test will be moved as stable.
|
|
|