This module uses gbp and upstream git repository.

As of version 2.055, =pristine-tar= branch is no longer updated.

The instructions of this file assume that the branches are:
- master :: Debian work
- upstream :: upstream branch from github

To work on this package, please run:

#+begin_src shell
  git clone https://salsa.debian.org/perl-team/modules/packages/libconfig-model-openssh-perl.git
  git remote add github https://github.com/dod38fr/config-model-openssh.git
#+end_src

To update this package, first import the changes from upstream:
#+begin_src shell :dir .. :exports code :results verbatim
git fetch --all
#+end_src

#+RESULTS:
: Récupération de origin
: Récupération de github

Find the latest version:
#+NAME: version
#+begin_src shell :dir .. :exports code :results verbatim
VERSION=$(git describe --tags $(git rev-list '--tags=v*' --max-count=1) | sed 's/^v//')
echo -n $VERSION
#+end_src

#+RESULTS: version
: 2.10.2.1

Update upstream branch:
#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  git checkout upstream
  git merge v$VERSION
#+end_src

#+RESULTS:
#+begin_example
Votre branche est à jour avec 'origin/upstream'.
Mise à jour bc6e63d..0eb1593
Fast-forward
 Changes                                      |  11 +++
 contrib/lib/ParseMan.pm                      |  20 ++--
 contrib/parse-man.pl                         |   3 +
 lib/Config/Model/models/Ssh.pl               |  43 ++++++---
 lib/Config/Model/models/Ssh/HostElement.pl   | 137 ++++++++++++++++++---------
 lib/Config/Model/models/Sshd.pl              |  48 +++++++---
 lib/Config/Model/models/Sshd/MatchElement.pl |  62 ++++++------
 7 files changed, 207 insertions(+), 117 deletions(-)
#+end_example

Update debian branch:
#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  git checkout master
  git merge upstream
#+end_src

#+RESULTS:
#+begin_example
Votre branche est à jour avec 'origin/master'.
Merge made by the 'ort' strategy.
 Changes                                      |  11 +++
 contrib/lib/ParseMan.pm                      |  20 ++--
 contrib/parse-man.pl                         |   3 +
 lib/Config/Model/models/Ssh.pl               |  43 ++++++---
 lib/Config/Model/models/Ssh/HostElement.pl   | 137 ++++++++++++++++++---------
 lib/Config/Model/models/Sshd.pl              |  48 +++++++---
 lib/Config/Model/models/Sshd/MatchElement.pl |  62 ++++++------
 7 files changed, 207 insertions(+), 117 deletions(-)
#+end_example

Update the debian/copyright file:
#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  cme update dpkg-copyright
#+end_src

#+RESULTS:
#+begin_example
Updating data...
Dpkg.Copyright.Grant.ByFile Dpkg::Copyright::Grant::ByFile::_warn The following paths are missing information:
- MANIFEST.SKIP
- README-build-from-git.md
- README.pod
- contrib/README.org
- contrib/fixup-element-ipqos.yml
- contrib/lib/ParseMan.pm
- contrib/parse-man.pl
- contrib/ssh-fixup.yaml
- contrib/sshd-fixup.yaml
- debian/control
- debian/gbp.conf
- debian/patches/rm-git-from-dzil
- debian/rules
- debian/tests/pkg-perl/use-name
- debian/upstream/metadata
- debian/watch
- lib/Config/Model/Backend/OpenSsh/Role/MatchBlock.pm
- lib/Config/Model/Backend/OpenSsh/Role/Reader.pm
- lib/Config/Model/Backend/OpenSsh/Role/Writer.pm
- lib/Config/Model/Backend/OpenSsh/Ssh.pm
- lib/Config/Model/Backend/OpenSsh/Sshd.pm
- lib/Config/Model/OpenSsh.pm
- lib/Config/Model/models/Ssh.pl
- lib/Config/Model/models/Ssh.pod
- lib/Config/Model/models/Ssh/HostElement.pl
- lib/Config/Model/models/Ssh/HostElement.pod
- lib/Config/Model/models/Ssh/PortForward.pl
- lib/Config/Model/models/Ssh/PortForward.pod
- lib/Config/Model/models/Sshd.pl
- lib/Config/Model/models/Sshd.pod
- lib/Config/Model/models/Sshd/MatchBlock.pl
- lib/Config/Model/models/Sshd/MatchBlock.pod
- lib/Config/Model/models/Sshd/MatchCondition.pl
- lib/Config/Model/models/Sshd/MatchCondition.pod
- lib/Config/Model/models/Sshd/MatchElement.pl
- lib/Config/Model/models/Sshd/MatchElement.pod
- lib/Config/Model/models/SystemSsh.pl
- lib/Config/Model/models/SystemSsh.pod
- lib/Config/Model/system.d/sshd
- lib/Config/Model/system.d/system-ssh
- lib/Config/Model/user.d/ssh
- t/README.md
- t/custom_sshd.t
- t/custom_sshd_match.t
- t/model_tests.d/ssh-examples/bad-forward/user_ssh_config
- t/model_tests.d/ssh-examples/bad-pref-auth/user_ssh_config
- t/model_tests.d/ssh-examples/basic/user_ssh_config
- t/model_tests.d/ssh-examples/delete-user-file/user_ssh_config
- t/model_tests.d/ssh-examples/legacy/user_ssh_config
- t/model_tests.d/ssh-test-conf.pl
- t/model_tests.d/sshd-examples/bad-password-authentication/system_sshd_config
- t/model_tests.d/sshd-examples/debian-bug-671367/system_sshd_config
- t/model_tests.d/sshd-test-conf.pl
- t/model_tests.d/system-ssh-examples/basic/system_ssh_config
- t/model_tests.d/system-ssh-test-conf.pl
- t/model_tests.t
- t/pod.t
- t/ssh_config.t
- weaver.ini
- xt/parser.t
- xt/ssh_config.html
- xt/sshd_config.html
- xt/sshd_parser.t
You may want to add a line in debian/fill.copyright.blanks.yml

 (620) 
Removing dummy license text from license LGPL-2.1 for path *
Removing dummy license text from license LGPL-2 for path contrib/ssh-portforward.yml
contrib/sshd-matchblock.yml
contrib/sshd-matchcondition.yml
contrib/systemssh.yml
Removing dummy license text from license LGPL-2.1+ for path debian/*
Adding dummy license text for license UNKNOWN for path Build.PL
Update done
Please follow the instructions given in Config::Model::Dpkg::Copyright man page,
section "Tweak results" if some license and copyright entries are wrong.
Other information, like license text, can be added directly in debian/copyright file 
and will be merged correctly next time this command is run.
See also https://github.com/dod38fr/config-model/wiki/Updating-debian-copyright-file-with-cme
#+end_example

Then review the changes and commit the result.

See also https://github.com/dod38fr/config-model/wiki/Updating-debian-copyright-file-with-cme

Check patches (and cleanup if necessary):
#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  quilt push -a && quilt pop -a
#+end_src

#+RESULTS:
: Application de rm-git-from-dzil
: patching file dist.ini
: 
: Le patch rm-git-from-dzil est maintenant au sommet
: Retrait de rm-git-from-dzil
: Restoring dist.ini
: 
: Aucun patch n'est appliqué

Generate a temporary changelog:
#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  gbp dch --new-version=$VERSION-1 --snapshot --auto debian/
#+end_src

#+RESULTS:
: gbp:info: Found tag for topmost changelog version 'c69bc9acb9d92603e4eaf58f331fff55af90a89c'
: gbp:info: Continuing from commit 'c69bc9acb9d92603e4eaf58f331fff55af90a89c'
: gbp:info: Only looking for changes on 'debian/'
: gbp:info: No changes detected from c69bc9acb9d92603e4eaf58f331fff55af90a89c to HEAD.
: gbp:info: Changelog 2.10.2.1-1~1.gbp0a41a5 (snapshot #1) prepared up to 0a41a52

Commit =debian/changelog= (otherwise, =gbp buildpackage= tries to build the
old version):

#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  git commit -m"new upstream version" debian/changelog
#+end_src

#+RESULTS:
: [master 092ed35] new upstream version
:  1 file changed, 8 insertions(+)

You can build the package with the following command:

# this requires emacs ob-tmux
#+begin_src tmux :session build :results verbatim :exports code :var dir=repo_dir
  cd $dir
  gbp buildpackage --git-ignore-new
#+end_src

Note: only committed changes are used by =gbp buildpackage=

Update the changelog:

#+begin_src tmux :session build :results verbatim :exports code :var dir=repo_dir
  cd $dir
  gbp dch -Ra --commit
#+end_src

Once everything is fine, build a source package and tag:

#+begin_src tmux :session build :results verbatim :exports code :var dir=repo_dir
  cd $dir
  gbp buildpackage -S --git-tag
#+end_src

Push on salsa:

#+begin_src shell :dir ".." :results verbatim :exports code
  gbp push
#+end_src

For more details, see [[https://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.import.upstream-git.html#gbp.import.upstream.git.notarball][gbp import with git documentation]].

# this is a workaround for a bug in ob-tmux. No need to execute this
#+NAME: repo_dir
#+BEGIN_SRC shell :results verbatim :exports no
  cd ..
  echo -n $PWD
#+END_SRC

