Changes

Jump to: navigation, search

Debian

1,578 bytes removed, 07:16, 27 May 2021
add language box
{{languages|Debian}}= For version 4.0 x and newer =
'''Actual Testing .debs can be found in http://sourceforge.net/projects/gramps/files/Unstable/'''
{{man menu|Gramps 4 moves moved to setuptool/distutils installer.}}
==Dependency==
* debian stuff
sudo apt-get install devscripts dpkg-dev fakeroot debhelper libgconf2dh-devlinktree
* [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 python-all # or python3-all
==Build==
 
If there is a problem with ''gramps/gen/utils/resource-path'' file, then you need to use an environment variable: '''GRAMPS_RESOURCES'''.
$ GRAMPS_RESOURCES=/usr/share gramps
 
or you need to customize ''[http://svn.code.sf.net/p/gramps/code/branches/maintenance/gramps40/setup.py setup.py]'' before building your package!
eg,
resource_file = os.path.join(os.path.dirname(__file__), 'gramps', 'gen',
'utils', 'resource-path')
with io.open(resource_file, 'w', encoding='utf-8',
errors='strict') as fp:
- path = os.path.abspath(os.path.join(self.install_data, 'share'))
+ path = '/usr/share'
*'''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.0.x'''.
** You cannot use greater version than '''2.28''' of python-gobject for Gramps '''3.4.x'''.
===via Distutils===
source 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?
Sample for creating a debian harmattan (MeeGo 1setup.2) binary packagepy:
<code>import os import stdeb- package_data_webapp = ['webapp/*.sql', 'webapp/grampsdb/sql/*.util as util from shutil import copysql'] from stdeb+ package_data_webapp = ['webapp/*.commandsql', 'webapp/Makefile', 'webapp/grampsdb/sql/*.sdist_dsc import sdist_dscsql']
from distutils.core import Command* Depends on python-django, python-sqlite
__all__ = ['bdist_hdeb']Control:
class bdist_hdeb(Command)Package:python-gramps-webapp description = 'distutils command to create debian harmattan binary package' Architecture: all Depends: python-django, python-sqlite, ${misc:Depends}, ${python:Depends}
# [httpRules://wiki.meego.com/Aegis_Policies aegis], UAC, [https://developer.gnome.org/goa/stable/ UOA], [http://developer.ubuntu.com/resources/technologies/online-accounts/ GOA], etc ... user_options = [ ("aegis-manifest=", None, 'aegis manifest to use') ] boolean_options = []
def initialize_options (self): self.aegis_manifest = None #!/usr/bin/make -f
def finalize_options (self): # Uncomment this to turn on verbose mode. pass export DH_VERBOSE=1 export DH_OPTIONS=-v
def run(self) %: # generate .dsc source pkg self.run_command('sdist_dsc') dh $@ --with python2
# execute system command and read output (execute and read output of find cmd) dsc_tree = 'deb_dist' target_dir = None for entry in os.listdir(dsc_tree): fulldir = os.path.join(dsc_tree,entry) if os.path.isdir(fulldir): if target_dir is Override auto test because upstream do not None: raise ValueError('more than one directory in deb_dist. ' 'Unsure which is source directory') else: target_dir = fulldiruse the standard unittest discover if target_dir is None override_dh_auto_test: raise ValueError('could not find debian source directory') # inject custom logic to dh_builddeb (build digsigsums before and add aegis manifest after) DEBNAME = self.distribution.get_name()+'_'+self.distribution.get_version()+'*_all.deb' rules = open(target_dir+'/debian/rules', 'a') rules.write('override_dh_builddeb:\n\tpython ../../digsigsums.py '+self.distribution.get_name()+\ '\n\tdh_builddeb') if self.aegis_manifest is not None: # MeeGo 1.2 rules.write('\n\tar q ../'+DEBNAME+' _aegis') rules.write('\n\n') rules.close()
# make aegis manifest avaiable to debian/rules Override of auto_build # MeeGo 1.2 if self.aegis_manifest is not None override_dh_auto_build: copy(self python setup.aegis_manifest, target_dir+'/_aegis') # define system command to execute (gen .deb binary pkg) syscmd = ['dpkg-buildpackage','-rfakeroot','py -uc','-b']server build
# Override of auto_install to remove information from package override_dh_auto_install: util#dh_auto_install python setup.process_command(syscmd,cwdpy --server install --root=target_dir)<debian/code>python-gramps-webapp --install-layout=deb
source: https # 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/githubWeb_*.comcss chmod a-x $(CURDIR)/debian/python-gramps-webapp/kelvanusr/gotoViennashare/blobgramps/mastertemplates/bdist_hdeb*.pyhtml
==Test== # Avoid compressing COPYING file so that it can appear in the "About" dialog override_dh_compress: #dh_compress -X COPYING * python 3 Control: $ lintian gramps_4.0.1X-Python3-2_allVersion: >= 3.deb2  WPackage: python3-gramps: old-fsf-address-in-copyright-filewebapp WArchitecture: grampsall Depends: extra python3-licensedjango, python3-file sqlite, ${misc:Depends}, ${python3:Depends} Rules:  #!/usr/sharebin/doc/gramps/COPYINGmake -f  # Uncomment this to turn on verbose mode.gz Wexport DH_VERBOSE=1 export DH_OPTIONS=-v  %: gramps: package dh $@ -contains-with python3  # Override auto test because upstream-install-documentation usr/share/doc/gramps/INSTALLdo not use the standard unittest discover Woverride_dh_auto_test: gramps: extra-license-file usr/share/doc/gramps/LICENSE.gz  # Override of auto_build Woverride_dh_auto_build: gramps: menu python3 setup.py -icon-missing usr/share/pixmaps/gramps.xpmserver 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 package=--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_* How to include Makefile into deb package?.css chmod a-x $(CURDIR)/debian/python3-gramps-webapp/usr/share/gramps/templates/*.html
* Depends on python # Avoid compressing COPYING file so that it can appear in the "About" dialog override_dh_compress: #dh_compress -django 1.3, python-sqlite, grampsX COPYING
==qml package==
*Depends on python-pyside, gramps
= For version 3.4 and before=Instructions on creating the Debian <tt>.deb</tt> package for Ubuntu:=
* Ensure you have a working build environment* For Ubuntu 7.04 or 7.10, install these tools: sudo apt-get install devscripts dpkg-dev fakeroot debhelper libgconf2-dev* For Ubuntu 8.04, install these tools: sudo apt-get install devscripts dpkg-dev fakeroot debhelper libgconf2-dev python-xml* For Ubuntu 12.04 install these tools: sudo apt-get install devscripts dpkg-dev fakeroot debhelper libgconf2-dev* Check out the necessary version; for example, to build the <tt>.deb</tt> file for GRAMPS {{version 3.4.3}}, you'll want to run:
git clone http://git.code.sf.net/p/gramps/source Gramps
git checkout grampsv{{version}} -3.4.3b {{version}}* Confirm that sudo apt-get install devscripts dpkg-dev fakeroot debhelper libgconf2-dev, everything builds: ./autogen.sh
* Create the Changelog files:
git log gramps-3.4.2.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
git log gramps-3.4.2.. --pretty --numstat --summary --no-merges -- po | git2cl > po/ChangeLog
* Create the <tt>.deb</tt> package:
cd debian
export DEBEMAIL='[email protected]'
export DEBFULLNAME='Stephane Charette'
cd ..
dch -v 3.4.3-3 "New upstream release, include two patches"
dpkg-buildpackage -rfakeroot
: Remember to modify '''<tt>DEBEMAIL</tt>''' and '''<tt>DEBFULLNAME</tt>''' to reflect your e-mail and name.
git log v{{version}}.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog git log v{{version}}.. --pretty --numstat --summary --no-merges -- po/* Release .po | git2cl > po/ChangeLog Using the <tt>.debChangelog</tt> files: cd .. ls *.deb: Note the '''generated with <tt>gramps_3.4.3-3_all.debgit2cl</tt>''' file, which needs to be uploaded to  Modify <tt>ftp://upload.sourceforgeMANIFEST.net/incoming/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.
[[Category:Developers/Packaging]]
3,019
edits

Navigation menu