Difference between revisions of "Debian"
m (→webapp package) |
(add language box) |
||
(24 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | = For version 4. | + | {{languages|Debian}} |
+ | = For version 4.x and newer = | ||
− | ''' | + | '''Testing .debs can be found in http://sourceforge.net/projects/gramps/files/Unstable/''' |
− | Gramps 4 | + | {{man menu|Gramps 4 moved to setuptool/distutils installer.}} |
==Dependency== | ==Dependency== | ||
Line 9: | Line 10: | ||
* debian stuff | * debian stuff | ||
− | sudo apt-get install devscripts dpkg-dev fakeroot debhelper | + | sudo apt-get install devscripts dpkg-dev fakeroot debhelper dh-linktree |
* [https://github.com/astraw/stdeb stdeb], which produces Debian source packages from Python packages via a new distutils command, sdist_dsc. Automatic defaults are provided for the Debian package, but many aspects of the resulting package can be customized. An additional command, bdist_deb, creates a Debian binary package, a .deb file. The debianize command builds a debian/ directory directly alongside your setup.py. | * [https://github.com/astraw/stdeb stdeb], which produces Debian source packages from Python packages via a new distutils command, sdist_dsc. Automatic defaults are provided for the Debian package, but many aspects of the resulting package can be customized. An additional command, bdist_deb, creates a Debian binary package, a .deb file. The debianize command builds a debian/ directory directly alongside your setup.py. | ||
− | sudo apt-get install python-stdeb | + | sudo apt-get install python-stdeb python3-all |
==Build== | ==Build== | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
*'''WARNING''' | *'''WARNING''' | ||
** The launcher under ''/usr/bin/gramps'' is using the '''same path''' for current stable release and this testing version. '''Backup your launcher''' if you want to install both versions. Translations might be also overwritten, you have been warned... | ** The launcher under ''/usr/bin/gramps'' is using the '''same path''' for current stable release and this testing version. '''Backup your launcher''' if you want to install both versions. Translations might be also overwritten, you have been warned... | ||
− | ** You need at least version '''3.3.2''' of python-gobject for Gramps '''4 | + | ** You need at least version '''3.3.2''' of python-gobject for Gramps '''4.x'''. |
** You cannot use greater version than '''2.28''' of python-gobject for Gramps '''3.4.x'''. | ** You cannot use greater version than '''2.28''' of python-gobject for Gramps '''3.4.x'''. | ||
Line 59: | Line 48: | ||
===via Distutils=== | ===via Distutils=== | ||
− | + | Samples : | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * https://github.com/astraw/stdeb/blob/master/stdeb/command/ | |
+ | * https://github.com/kelvan/gotoVienna/blob/master/bdist_hdeb.py | ||
==Test== | ==Test== | ||
Line 139: | Line 66: | ||
* How to include Makefile into deb package? | * How to include Makefile into deb package? | ||
− | * Depends on python-django | + | setup.py: |
+ | |||
+ | - package_data_webapp = ['webapp/*.sql', 'webapp/grampsdb/sql/*.sql'] | ||
+ | + package_data_webapp = ['webapp/*.sql', 'webapp/Makefile', 'webapp/grampsdb/sql/*.sql'] | ||
+ | |||
+ | * Depends on python-django, python-sqlite | ||
Control: | Control: | ||
Line 160: | Line 92: | ||
%: | %: | ||
− | + | dh $@ --with python2 | |
# Override auto test because upstream do not use the standard unittest discover | # Override auto test because upstream do not use the standard unittest discover | ||
Line 167: | Line 99: | ||
# Override of auto_build | # Override of auto_build | ||
override_dh_auto_build: | override_dh_auto_build: | ||
− | + | python setup.py --server build | |
# Override of auto_install to remove information from package | # Override of auto_install to remove information from package | ||
override_dh_auto_install: | override_dh_auto_install: | ||
− | + | #dh_auto_install | |
− | + | python setup.py --server install --root=debian/python-gramps-webapp --install-layout=deb | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | # Make css style sheets and | + | # Make css style sheets and templates non-executable |
override_dh_fixperms: | override_dh_fixperms: | ||
− | + | dh_fixperms | |
− | + | chmod a-x $(CURDIR)/debian/python-gramps-webapp/usr/share/gramps/css/Web_*.css | |
− | + | chmod a-x $(CURDIR)/debian/python-gramps-webapp/usr/share/gramps/templates/*.html | |
− | |||
# Avoid compressing COPYING file so that it can appear in the "About" dialog | # Avoid compressing COPYING file so that it can appear in the "About" dialog | ||
override_dh_compress: | override_dh_compress: | ||
− | + | #dh_compress -X COPYING | |
+ | |||
+ | * python 3 | ||
+ | |||
+ | Control: | ||
+ | |||
+ | X-Python3-Version: >= 3.2 | ||
+ | |||
+ | Package: python3-gramps-webapp | ||
+ | Architecture: all | ||
+ | Depends: | ||
+ | python3-django, | ||
+ | python3-sqlite, | ||
+ | ${misc:Depends}, | ||
+ | ${python3:Depends} | ||
+ | |||
+ | Rules: | ||
+ | |||
+ | #!/usr/bin/make -f | ||
+ | |||
+ | # Uncomment this to turn on verbose mode. | ||
+ | export DH_VERBOSE=1 | ||
+ | export DH_OPTIONS=-v | ||
+ | |||
+ | %: | ||
+ | dh $@ --with python3 | ||
+ | |||
+ | # Override auto test because upstream do not use the standard unittest discover | ||
+ | override_dh_auto_test: | ||
+ | |||
+ | # Override of auto_build | ||
+ | override_dh_auto_build: | ||
+ | python3 setup.py --server build | ||
+ | |||
+ | # Override of auto_install to remove information from package | ||
+ | override_dh_auto_install: | ||
+ | #dh_auto_install | ||
+ | python3 setup.py --server install --root=debian/python3-gramps-webapp --install-layout=deb | ||
+ | |||
+ | # Make css style sheets and templates non-executable | ||
+ | override_dh_fixperms: | ||
+ | dh_fixperms | ||
+ | chmod a-x $(CURDIR)/debian/python3-gramps-webapp/usr/share/gramps/css/Web_*.css | ||
+ | chmod a-x $(CURDIR)/debian/python3-gramps-webapp/usr/share/gramps/templates/*.html | ||
+ | |||
+ | # Avoid compressing COPYING file so that it can appear in the "About" dialog | ||
+ | override_dh_compress: | ||
+ | #dh_compress -X COPYING | ||
==qml package== | ==qml package== | ||
Line 195: | Line 167: | ||
*Depends on python-pyside, gramps | *Depends on python-pyside, gramps | ||
− | = | + | = Instructions on creating the Debian package for Ubuntu = |
− | Instructions on creating the Debian | ||
− | + | * Check out the necessary version; for example, to build the <tt>.deb</tt> file for GRAMPS {{version}}, you'll want to run: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * Check out the necessary version; for example, to build the <tt>.deb</tt> file for GRAMPS version | ||
git clone http://git.code.sf.net/p/gramps/source Gramps | git clone http://git.code.sf.net/p/gramps/source Gramps | ||
− | git checkout | + | git checkout v{{version}} -b {{version}} |
− | + | ||
− | |||
* Create the Changelog files: | * Create the Changelog files: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | + | git log v{{version}}.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog |
− | + | git log v{{version}}.. --pretty --numstat --summary --no-merges -- po/*.po | git2cl > po/ChangeLog | |
− | + | ||
− | + | Using the <tt>Changelog</tt> files generated with <tt>git2cl</tt>, | |
+ | |||
+ | Modify <tt>MANIFEST.in</tt> | ||
+ | + include ChangeLog | ||
+ | + include po/ChangeLog | ||
* The details on how things are going to be packaged into deb files, what are the dependencies, the pre- and post- install and removal scripts etc are under <tt>debian/</tt> directory. Please refer to the [http://www.debian.org/doc/maint-guide/ Debian New Maintainers' Guide] for further details. | * The details on how things are going to be packaged into deb files, what are the dependencies, the pre- and post- install and removal scripts etc are under <tt>debian/</tt> directory. Please refer to the [http://www.debian.org/doc/maint-guide/ Debian New Maintainers' Guide] for further details. | ||
[[Category:Developers/Packaging]] | [[Category:Developers/Packaging]] |
Latest revision as of 07:16, 27 May 2021
Contents
For version 4.x and newer
Testing .debs can be found in http://sourceforge.net/projects/gramps/files/Unstable/
Gramps 4 moved to setuptool/distutils installer.
Dependency
- debian stuff
sudo apt-get install devscripts dpkg-dev fakeroot debhelper dh-linktree
- stdeb, which produces Debian source packages from Python packages via a new distutils command, sdist_dsc. Automatic defaults are provided for the Debian package, but many aspects of the resulting package can be customized. An additional command, bdist_deb, creates a Debian binary package, a .deb file. The debianize command builds a debian/ directory directly alongside your setup.py.
sudo apt-get install python-stdeb python3-all
Build
- WARNING
- The launcher under /usr/bin/gramps is using the same path for current stable release and this testing version. Backup your launcher if you want to install both versions. Translations might be also overwritten, you have been warned...
- You need at least version 3.3.2 of python-gobject for Gramps 4.x.
- You cannot use greater version than 2.28 of python-gobject for Gramps 3.4.x.
via a quick command line
python setup.py --command-packages=stdeb.command bdist_deb
- Custom tarball
python setup.py --command-packages=stdeb.command sdist_dsc
or
python setup.py --command-packages=stdeb.command sdist_dsc --depends "python-gobject (>= 3.3.2)"
via customized options
These options are set into /debian folder.
cd debian export DEBEMAIL='...@...' export DEBFULLNAME='Your name' cd .. dch -v 4.0.0 "New upstream for Gramps 4.0.0" dpkg-buildpackage -rfakeroot
via Distutils
Samples :
- https://github.com/astraw/stdeb/blob/master/stdeb/command/
- https://github.com/kelvan/gotoVienna/blob/master/bdist_hdeb.py
Test
$ lintian gramps_4.0.1-2_all.deb W: gramps: old-fsf-address-in-copyright-file W: gramps: extra-license-file usr/share/doc/gramps/COPYING.gz W: gramps: package-contains-upstream-install-documentation usr/share/doc/gramps/INSTALL W: gramps: extra-license-file usr/share/doc/gramps/LICENSE.gz W: gramps: menu-icon-missing usr/share/pixmaps/gramps.xpm
webapp package
- How to include Makefile into deb package?
setup.py:
- package_data_webapp = ['webapp/*.sql', 'webapp/grampsdb/sql/*.sql'] + package_data_webapp = ['webapp/*.sql', 'webapp/Makefile', 'webapp/grampsdb/sql/*.sql']
- Depends on python-django, python-sqlite
Control:
Package: python-gramps-webapp Architecture: all Depends: python-django, python-sqlite, ${misc:Depends}, ${python:Depends}
Rules:
#!/usr/bin/make -f
# Uncomment this to turn on verbose mode. export DH_VERBOSE=1 export DH_OPTIONS=-v
%: dh $@ --with python2
# Override auto test because upstream do not use the standard unittest discover override_dh_auto_test:
# Override of auto_build override_dh_auto_build: python setup.py --server build
# Override of auto_install to remove information from package override_dh_auto_install: #dh_auto_install python setup.py --server install --root=debian/python-gramps-webapp --install-layout=deb
# Make css style sheets and templates non-executable override_dh_fixperms: dh_fixperms chmod a-x $(CURDIR)/debian/python-gramps-webapp/usr/share/gramps/css/Web_*.css chmod a-x $(CURDIR)/debian/python-gramps-webapp/usr/share/gramps/templates/*.html
# Avoid compressing COPYING file so that it can appear in the "About" dialog override_dh_compress: #dh_compress -X COPYING
- python 3
Control:
X-Python3-Version: >= 3.2
Package: python3-gramps-webapp Architecture: all Depends: python3-django, python3-sqlite, ${misc:Depends}, ${python3:Depends}
Rules:
#!/usr/bin/make -f
# Uncomment this to turn on verbose mode. export DH_VERBOSE=1 export DH_OPTIONS=-v
%: dh $@ --with python3
# Override auto test because upstream do not use the standard unittest discover override_dh_auto_test:
# Override of auto_build override_dh_auto_build: python3 setup.py --server build
# Override of auto_install to remove information from package override_dh_auto_install: #dh_auto_install python3 setup.py --server install --root=debian/python3-gramps-webapp --install-layout=deb
# Make css style sheets and templates non-executable override_dh_fixperms: dh_fixperms chmod a-x $(CURDIR)/debian/python3-gramps-webapp/usr/share/gramps/css/Web_*.css chmod a-x $(CURDIR)/debian/python3-gramps-webapp/usr/share/gramps/templates/*.html
# Avoid compressing COPYING file so that it can appear in the "About" dialog override_dh_compress: #dh_compress -X COPYING
qml package
- Depends on python-pyside, gramps
Instructions on creating the Debian package for Ubuntu
- Check out the necessary version; for example, to build the .deb file for GRAMPS 5.1.6, you'll want to run:
git clone http://git.code.sf.net/p/gramps/source Gramps git checkout v5.1.6 -b 5.1.6
- Create the Changelog files:
git log v5.1.6.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog git log v5.1.6.. --pretty --numstat --summary --no-merges -- po/*.po | git2cl > po/ChangeLog
Using the Changelog files generated with git2cl,
Modify MANIFEST.in
+ include ChangeLog + include po/ChangeLog
- The details on how things are going to be packaged into deb files, what are the dependencies, the pre- and post- install and removal scripts etc are under debian/ directory. Please refer to the Debian New Maintainers' Guide for further details.