summaryrefslogtreecommitdiffstats
path: root/debian/README.source.md
diff options
context:
space:
mode:
Diffstat (limited to 'debian/README.source.md')
-rw-r--r--debian/README.source.md99
1 files changed, 99 insertions, 0 deletions
diff --git a/debian/README.source.md b/debian/README.source.md
new file mode 100644
index 0000000..98234c8
--- /dev/null
+++ b/debian/README.source.md
@@ -0,0 +1,99 @@
+The packaging is kept in https://salsa.debian.org/samba-team/samba.
+
+The version in unstable is on the `master` branch, with the corresponding
+upstream version in the `upstream_4.20` branch (with `pristine-tar` information
+in the `pristine-tar` branch).
+
+It should be possible to build the package by just running `gbp buildpackage`.
+
+Building
+========
+
+The first time:
+
+ sudo apt install git-buildpackage pristine-tar cowbuilder dh-python
+ DIST=sid ARCH=amd64 git-pbuilder create
+ git clone https://salsa.debian.org/samba-team/samba.git
+
+Each time:
+
+ cd samba
+ git checkout master
+ gbp pull --track-missing
+ gbp buildpackage --git-pbuilder --git-dist=sid --git-arch=amd64
+
+Alternatively, source-only:
+
+ cd samba
+ git checkout master
+ dpkg-buildpackage -S -d
+ # build the resulting ../samba_*.dsc with other means
+
+Merging minor upstream releases
+===============================
+
+Importing a new upstream version can be done like this:
+
+ # set target version
+ upstream_version=4.20.0
+ # go to git repo
+ cd $GIT_DIR
+ # Import upstream
+ git remote add upstream https://git.samba.org/samba.git
+ git fetch upstream
+ # go to the Debian branch
+ git checkout master
+ # sync all required branches
+ gbp pull --track-missing
+ # Import latest version
+ gbp import-orig --uscan \
+ -u "${upstream_version}+dfsg" \
+ --upstream-vcs-tag "samba-${upstream_version}" \
+ --merge-mode merge
+ # all done :)
+
+
+Please note that there are some files that are not dfsg-free and they need to
+be filtered. The settings in the `gpb.conf` configuration file should take
+care of that.
+
+Merging major upstream releases
+===============================
+
+With a new major version, more work is needed.
+
+After `gbp pull`:
+
+ major_version="$(echo $upstream_version | sed 's/.[^.]\+$//')"
+ # Edit gbp.conf's upstream-branch
+ editor debian/gbp.conf
+ # Edit debian/watch's major version
+ editor debian/watch
+ # Edit this file's major version
+ editor debian/README.source.md
+ # Commit
+ git commit -m"Update d/gbp.conf, d/watch and d/README.source for ${major_version}" debian/gbp.conf debian/watch debian/README.source.md
+ # Create the new upstream branch
+ git branch "upstream_${major_version}" samba-${upstream_version}
+ # Import latest version
+ gbp import-orig --uscan \
+ -u "${upstream_version}+dfsg" \
+ --upstream-vcs-tag "samba-${upstream_version}" \
+ --merge-mode=replace
+
+Then several steps are needed:
+
+- Check patches:
+
+ QUILT_PATCHES=debian/patches quilt push -a
+ # then update or drop patches as needed
+
+- Bump talloc, tdb, and tevent Build-Depends in debian/control, from lib/*/wscript
+
+ grep ^VERSION lib/{talloc,tdb,tevent}/wscript
+ editor debian/control
+
+- Check if other Build-Depends need to be bumped
+
+ git diff origin/master.."samba-${upstream_version}" \
+ buildtools/wafsamba/samba_third_party.py