From 48a73cf14eed69e906f728579ef1ad57e302a70c Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Sat, 18 Jun 2016 15:01:20 +0100 Subject: [PATCH 1/3] linux 1.0.0.0a --- debian/changelog | 12 ++++++++++++ debian/control | 20 ++++++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index 625c1c6..7ade537 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +fractorium (1.0.0.0a-0ubuntu1) xenial; urgency=low + + * release 1.0.0.0a + + -- Gambhiro Bhikkhu Sat, 18 Jun 2016 14:31:36 +0100 + +fractorium (1.0.0.0-0ubuntu1) xenial; urgency=low + + * release 1.0.0.0 + + -- Gambhiro Bhikkhu Sat, 18 Jun 2016 13:12:15 +0100 + fractorium (0.9.9.6-0ubuntu1) xenial; urgency=low * release 0.9.9.6 diff --git a/debian/control b/debian/control index 58faa64..fb51011 100644 --- a/debian/control +++ b/debian/control @@ -4,12 +4,24 @@ Priority: optional Maintainer: Gambhiro Bhikkhu Build-Depends: debhelper (>= 9), g++ (>= 4.9), libgl1-mesa-dev, libgl-dev, libglm-dev, libjpeg-dev, libpng12-dev, libqt5opengl5-dev, libtbb-dev, libxml2-dev, ocl-icd-libopencl1, ocl-icd-opencl-dev, opencl-headers, qt5-default, qt5-qmake, qtbase5-dev Standards-Version: 3.9.5 -Homepage: http://mfeemster.deviantart.com/ -Vcs-Git: https://github.com/mfeemster/fractorium -Vcs-Browser: https://github.com/mfeemster/fractorium +Homepage: http://fractorium.com/ +Vcs-Git: https://bitbucket.org/mfeemster/fractorium +Vcs-Browser: https://bitbucket.org/mfeemster/fractorium Package: fractorium Architecture: amd64 Depends: ${shlibs:Depends}, ${misc:Depends} Description: A fractal flame editor with GPU support - A fractal flame editor with GPU support. \ No newline at end of file + Fractorium + . + A fractal flame editor with GPU support. + . + http://fractorium.com/ + . + The project is maintained on Bitbucket: + . + https://bitbucket.org/mfeemster/fractorium + . + News and updates at the above or on Matt Feemster's DeviantArt page: + . + http://mfeemster.deviantart.com/ \ No newline at end of file From 102dfa372d49f0afa583ed8db5b54c5fec3f7426 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Sat, 18 Jun 2016 15:33:27 +0100 Subject: [PATCH 2/3] deb link --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index adc1c88..6b4c578 100644 --- a/README.md +++ b/README.md @@ -31,11 +31,11 @@ sudo apt-get install fractorium ### Install from .deb -Download: [fractorium_0.9.9.6-0ubuntu1_amd64.deb](https://launchpad.net/~fractorium/+archive/ubuntu/ppa/+files/fractorium_0.9.9.6-0ubuntu1_amd64.deb) +Download: [fractorium_1.0.0.0a-0ubuntu1_amd64.deb](https://launchpad.net/~fractorium/+archive/ubuntu/ppa/+files/fractorium_1.0.0.0a-0ubuntu1_amd64.deb) ``` cd ~/Downloads -sudo dpkg -i fractorium_0.9.9.6-0ubuntu1_amd64.deb +sudo dpkg -i fractorium_1.0.0.0a-0ubuntu1_amd64.deb ``` ## Mac OS/X (10.9+) From 6100f5aa73028ec4cc27f5fb3332c08ac4b3c0d1 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Sat, 18 Jun 2016 15:47:06 +0100 Subject: [PATCH 3/3] notes on making a linux release --- Data/LinuxRelease.md | 272 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 Data/LinuxRelease.md diff --git a/Data/LinuxRelease.md b/Data/LinuxRelease.md new file mode 100644 index 0000000..cf26274 --- /dev/null +++ b/Data/LinuxRelease.md @@ -0,0 +1,272 @@ +# Linux Release + +We will build a `.deb` binary and test it. Then we will build a source tarball, +upload to Launchpad PPA, let it autobuild, and copy the published `.deb` link +from there. + +## Summary + +### Building a `.deb` locally + +Update `debian/changelog` with a new log message. Update version number. Use the time from `date -R`. + +Build: + +``` +$ ./package-linux.sh --binary-only --unsigned +``` + +Type `s` for single binary, `Enter`. It displays a confirm message, `Enter`. + +When the build finished, find the `.deb` in `$HOME/PPA/fractorium-VERSION`. + +### Publishing to Launchpad PPA + +Remember we are not building a `.deb` here, Launchpad will do that. We are just +uploading a signed source tarball. + +Make sure `debian/changelog` was updated. + +Build: + +``` +$ ./package-linux.sh +``` + +Type `s` for single binary, `Enter`. It displays a confirm message, `Enter`. + +It asks for your GPG key passphrase to sign the source tarball. + +Now upload the source tarball to Launchpad: + +``` +$ dput ppa:fractorium/ppa fractorium_1.0.0.0a-0ubuntu1_source.changes +``` + +An email will arrive to say if the package was accepted or rejected. + +Wait for the autobuild to complete, and when the package is published, copy the +link to the `.deb` from "Package Details". + +## Narrative + +Starting with a fresh clone from my fork at bitbucket. + +``` +$ cd fractorium +``` + +First, testing locally on my machine. + +`package-linux.sh` with no arguments builds a signed source for the Launchpad PPA. + +Instead, now we want an unsigned binary `.deb`: + +``` +$ ./package-linux.sh --binary-only --unsigned +``` + +``` +Error: Different version numbers were found. Please update the correct file, +the version numbers should agree up to the digits in: + +0.9.9.6 +1.0.0.0 + +./debian/changelog : 0.9.9.6 +./Source/Ember/EmberDefines.h : 1.0.0.0 +``` + +So, I should bump the version number in `debian/changelog`. Let's get the time in the correct format: + +``` +$ date -R +Sat, 18 Jun 2016 13:12:15 +0100 +``` + +Add a new log message at the top of `debian/changelog`, copying the last message +and changing the version number and time. + +``` +fractorium (1.0.0.0-0ubuntu1) xenial; urgency=low + + * release 1.0.0.0 + + -- Gambhiro Bhikkhu Sat, 18 Jun 2016 13:12:15 +0100 +``` + +Now try again: + +``` +$ ./package-linux.sh --binary-only --unsigned +``` + +Question about type of build: + +``` +Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch? + [s/i/m/l/k/n] +``` + +Type `s` for single binary, `Enter`. + +It displays a confirm message, `Enter`. + +The build starts. It copied the files which are not ignored in `.gitignore` out +to `$HOME/PPA/fractorium-1.0.0.0/`, and building there. + +The build finished, let's go and see: + +``` +$ cd $HOME/PPA/fractorium-1.0.0.0 +$ ls -lh +total 7.7M +drwxrwxr-x 2 yume yume 4.0K Jun 18 13:31 build-area +drwxrwxr-x 8 yume yume 4.0K Jun 18 13:19 fractorium +-rw------- 1 yume yume 780 Jun 18 13:31 fractorium_1.0.0.0-0ubuntu1_amd64.changes +-rw------- 1 yume yume 3.5M Jun 18 13:31 fractorium_1.0.0.0-0ubuntu1_amd64.deb +-rw-rw-r-- 1 yume yume 2.1M Jun 18 13:18 fractorium_1.0.0.0.orig.tar.gz +-rw-rw-r-- 1 yume yume 2.1M Jun 18 13:18 fractorium-1.0.0.0.tar.gz +``` + +This `.deb` is ready to use. + +(aside) + +You could upload this `.deb` to the website if you don't want to bother with the +Launchpad PPA. The advantages of the PPA are + +- testing the package and build procedure +- users will automatically get the updated version when they run their regular upgrades + +ppl get used to always looking for the PPA of a project and installing from there: + +``` +sudo apt-add-repository ppa:fractorium/ppa +sudo apt-get update +sudo apt-get install fractorium +``` + +(aside end) + +Back to installing the `.deb`: + +``` +sudo dpkg -i fractorium_1.0.0.0-0ubuntu1_amd64.deb +``` + +When I open fractorium with its menu icon, the About page has the updated +version number. I run a few random flames, drag some xforms around. All seems +well. + +Now let's upload the source to the Launchpad PPA for the auto-build. + +Back in the fractorium folder: + +``` +$ ./package-linux.sh +PPA work folder already exists: /home/yume/PPA/fractorium-1.0.0.0 +Move this folder aside or remove it. +``` + +That's right, it expects to be able to create a clean folder with that name. I don't need the earlier files, so let's remove it: + +``` +$ rm -r /home/yume/PPA/fractorium-1.0.0.0 +``` + +Try again: + +``` +$ ./package-linux.sh +``` + +Very good. Press `s` at the type of package question. + +This is quick, it only creates a source tarball to upload. + +Before finishing, it asks for my GPG key passphrase to sign the source tarball. + +Now let's upload it to Launchpad: + +``` +$ cd /home/yume/PPA/fractorium-1.0.0.0/ +$ dput ppa:fractorium/ppa fractorium_1.0.0.0-0ubuntu1_source.changes +``` + +It verifies my signature and says `Uploading to ppa (via ftp to ppa.launchpad.net)`. + +Upload finished, now I open my email and wait for a message from Launchpad. It +arrives, saying the package was accepted. + +``` +[~fractorium/ubuntu/ppa/xenial] fractorium 1.0.0.0-0ubuntu1 (Accepted) +``` + +I open https://launchpad.net/~fractorium/+archive/ubuntu/ppa from the email and check that the build started: + +``` +[BUILDING] amd64 build of fractorium 1.0.0.0-0ubuntu1 in ubuntu xenial RELEASE +Build started 2 minutes ago on lgw01-09 +``` + +Good, let's wait. + +If the package had been rejected, or if the autobuild now fails, then I would be +fixing the build on my machine. When I want to try again, I would add a new +message to the top of `debian/changelog`, with a modified version number and +time. For these minor changes it is enough to append a letter to the version +number, such as `fractorium 1.0.0.0a`. Then create a tarball again with +`package-linux.sh`, and upload to Launchpad with `dput`. + +If fact I just remembered I should update the project links and description in +`debian/control`. So I will do that now, bump the version number to +`fractorium 1.0.0.0a` and update the time to `date -R`. + +Publish update: + +``` +$ ./package-linux.sh +$ cd ~/PPA/fractorium-1.0.0.0a +$ dput ppa:fractorium/ppa fractorium_1.0.0.0a-0ubuntu1_source.changes +``` + +Email says package accepted. Building has started. Finished: + +``` +Successfully built on lgw01-33 + +Started 23 minutes ago +Finished 1 minute ago (took 22 minutes, 6.6 seconds) +``` + +But also: + +``` +Binary packages awaiting publication: + +fractorium-1.0.0.0a-0ubuntu1 +``` + +It usually takes a bit more time until the `.deb` is published in the PPA repository. + +Commit the changes: + +``` +$ git checkout -b linux-1.0.0.0a +$ git add -A . +$ git commit -m "linux 1.0.0.0a" +``` + +After a little while the package is published now, so I go to: + +- https://launchpad.net/~fractorium/+archive/ubuntu/ppa +- Select "Package Details" +- Open the dropdown arrow at the package listing, see "Publishing Details" +- Under "Package Files", copy the link to the `.deb` + +https://launchpad.net/~fractorium/+archive/ubuntu/ppa/+files/fractorium_1.0.0.0a-0ubuntu1_amd64.deb + +Update the README.md link to this. + +All done. Commit, push, send Pull Request.