> I understand that backporting adds a lot of work that I don't have the > skills to volunteer for (although I'm willing to learn with some > mentorship).
It would probably take less time for me to do it myself, but if you are really willing to learn how to do it, I would much prefer to take the time to walk you through it, both so that you know how to do so for the future, and because I feel that there is an unfortunate disconnect between Trisquel development and the Trisquel community, and would like for more community members to feel comfortable contributing. There are so few contributors to Trisquel, that even minor contributions make a large difference. What follows might seem like a lot of information, but none of it requires any programming skills, and I'm happy to provide as much time and guidance as you need. I can do so through this thread, or if you would prefer more interactive help we can do so over IRC. I understand that you cannot make the Friday meetings, but we can arrange another time during which our waking hours overlap. My time zone is PST. First you'll need to set up the sbuild workflow to build and test the backported package. See the contributing guide to learn how.[1] If any steps are unclear, please say so. This is the first barrier to entry for getting involved in Trisquel development, so any feedback on how to make it more accessible would be very valuable. There is already a package helper for ring, so you'll be modifying helpers/make-ring[2] with your preferred text editor. (Note that although Ring has been renamed to Jami, the source package is still called "ring".[3] In case you're unaware of the distinction between source and binary debian packages, a binary (deb) package is what users actually install, and a source package is used to build binary packages. The name of a binary package might be different from the name of it's source package, and a source package might provide multiple binary packages. For example, the "ring" source package builds four binary packages: jami, jami-daemon, ring, and ring daemon. If you are ever unsure which source package provides a binary package, run "apt showsrc $PACKAGE", where $PACKAGE is the name of the binary package.) Here's a breakdown of this package helper: * The file name determines which source package gets built. Since the name of the ring source package has not changed, you don't need to change the filename. If you ever write a new package helper from scratch, the file name should be "make-$SOURCEPACKAGE". * You should update the license header. Immediately below the line containing Ruben's name and email address, add another line containing your own. * The commented lines between the license header and "VERSION" are listing build dependencies of ring. This is helpful to keep track of when backporting, because some times the target version of Trisquel does not meet the dependencies of the newer version of the package you are backporting, and so you need to backport one or more dependencies as well. * "VERSION=1" means that this is the first Trisquel revision of the package. It makes it so that the version string of the package will have +8.0trisquel1 appended. When you create a new revision, you should increase the revision number by 1. * "EXTERNAL=" determines which repository to grab the original source package. If this line is absent, then the target Trisquel version's upstream (xenial in the case of flidas) will be used, so this line is only needed for backporting or importing from another repository. The format of this line is the same as that in /etc/apt/sources.list. As you can see, ring *should* be backported from Ubuntu disco already. * "REPOKEY=" is the gpg key of the external repository. This line is only needed when "EXTERNAL=" is used. * ". ./config" runs a script which downloads and extracts the source package. * Everything in between ". ./config" and "changelog" modifies the source code. In this case, the only change to the upstream code is done by the "sed" line. I don't think you need to understand what it does at this point, so I'll gloss over it for now to avoid overwhelming you with too much information. * "changelog" summarizes Trisquel's changes to the package. This line reveals that ring was originally backported from cosmic, and should probably be updated to say "Disco". * "compile" builds a new source package from the modified source code. So what do you need to do? (1) Make a branch for your change, as per the contributing guide. (2) Add your copyright info below Ruben's. (3) Bump the version number from 1 to 2. (I'm actually not 100% sure that this is necessary for a backport, since the backported version should have a higher version number anyway, but let's do it to be safe.) (4) It would be nice to be able to use Jami's apt repository for Ubuntu 16.04, which should always have the latest version without us needed to keep updating the helper every time there is a new Ubuntu release Unfortunately, their repository only provides binary packages (debs), and not source packages (dsc, tar.gz),[5] which are what the package helper needs. Instead, just change "disco" to "eoan" in the "EXTERNAL" line and change "Cosmic" to "Eoan" in the "changelog" line. (5) Run "bash make-ring" and see if you get any errors. If you get errors, I let me know any I will help you figure out what needs to be done. The most likely error is an unmet dependency. If you get no errors, proceed. (6) Use the source package you just generated to compile binary packages using sbuild, as per the contributing guide. Again, if you get errors let me know. If not, proceed. (7) Test the jami and jami-daemon binary packages and to make sure that there are no problems. (8) If everything looks good, push your branch to Gitlab an open a merge request. [1] https://devel.trisquel.info/trisquel/package-helpers/blob/flidas/CONTRIBUTING.md [2] https://devel.trisquel.info/trisquel/package-helpers/blob/flidas/helpers/make-gutenprint [3] https://packages.ubuntu.com/source/eoan/ring [4] https://packages.ubuntu.com/source/cosmic/ring [5] https://dl.jami.net/ring-nightly/ubuntu_16.04/pool/main/r/ring/
signature.asc
Description: PGP signature
