1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
Why dfsg version ?
==================
Moar tarball comes from upstream with convenience copies of upstream
projects in 3rdparty directory. Moar offers the possibility to compile
without using some of these copies (Run 'perl Configure.pl --help' to
see the related options).
We are trying to use Debian versions when:
- the software is available in Debian
- the software was not heavily modified upstream
Here the status on the convenience copies:
- libatomic_ops libtommath libuv:
source files are excluded. Moar is built with Debian packages
- dynasm
Upstream hosts repos which are taken from an unknown location.
They may be modified but I've found no way to check.
AFAIK, Debian does not provide these softwares.
- dyncall
moar is now built with libffi. dyncall is now excluded
- uthash.h:
file is provided by uthash-dev 1.9.9.1+git20151125-1
moar's uthash is a year old and different from Debian version.
- tinymt
Not provided by Debian
- cmp
Not provided by Debian. Even though libmsgpack provides a similar
functionality
- sha1
Debian provides librhash-dev with sha1 function. But it's not a drop-in
replacement for 3rdparty/sha1/
- msinttypes
To be investigated
Lintian overrides
=================
The RPATH check in lintian needs to be overridden, since the path
/usr/share/perl6/site/lib will be used by Rakudo packages that need to
install NativeCall libraries.
Source managed with git-buildpackage
====================================
We will use similar tools as described in the Perl Git Guide[1].
Today, I only use git-buildpackage, but I hope the Perl6 team will
adapt and provide similar tools to those used by the Perl5 group.
Upstream sources are kept (in plain, uncompressed form) in the
“upstream” branch. The data needed to regenerate original source
tarballs from the upstream branch are kept with the help of the
pristine-tar(1) tool in the “pristine-tar” branch. Upstream sources
are merged with Debian-specific changes in the “master” branch, which
is the usual place to work in.
The debian/changelog is managed with “gbp dch”.
Minimal “everything is working fine” steps to provide a new version
-------------------------------------------------------------------
* Clone the repository. If it is already cloned, make sure to have the
“upstream/master” and “pristine-tar” branches
$ gbp clone --all --pristine-tar git@salsa.debian.org:perl6-team/moarvm.git moarvm
* Integrate the new upstream tarball
(master) $ gbp import-orig --uscan
* Update the debian/patches to make them apply without fuzzy
(master) $ gbp pq rebase
(master) $ gbp pq export
(master) $ git add debian/patches/
(master) $ git commit -m "Update patches"
* Make sure that cme is happy
$ cme check dpkg
* Optional: update copyright data
$ cme update dpkg-copyright
* Optional: Prepare the debian/changelog for UNRELEASED package.
This can be done from time to time before the release and should be
ignored by gbp-dch
(master) $ gbp dch -a -S
(master) $ git add debian/changelog
(master) $ git commit -m "$(echo -e 'Update debian/changelog\n\nGbp-Dch: Ignore')"
* Build the package
(master) $ gbp buildpackage
* Make sure lintian is happy
(master) $ lintian -i -I -E --pedantic ../moarvm*.changes
* Release the debian/changelog
(master) $ gbp dch -a -R
(master) $ git add debian/changelog
(master) $ git commit -m "Release debian/changelog"
* Create the Debian release tag
(master) $ gbp buildpackage --git-tag-only
* Push git branches and tags
(master) $ git push origin master pristine-tar upstream/<VERSION> debian/<VERSION>-1
Footnotes:
[1] https://pkg-perl.alioth.debian.org/git.html
-- Dominique Dumont <dod@debian.org>, Sat, 27 Jun 2020 12:31:25 +0200
|