This commit is contained in:
mfeemster 2016-06-21 19:27:41 -07:00
commit 3ed88a6762
4 changed files with 304 additions and 8 deletions

272
Data/LinuxRelease.md Normal file
View File

@ -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 <gambhiro.bhikkhu.85@gmail.com> 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.

View File

@ -9,7 +9,7 @@ of the cuburn algorithm in OpenCL.
## Windows
Download: [Fractorium_Beta_0.9.9.6.msi](https://drive.google.com/file/d/0Bws5xPbHJph6OHdwVHFabDliTkE/view?usp=sharing)
Download: [Fractorium_Beta_1.0.0.0.msi](https://drive.google.com/file/d/0Bws5xPbHJph6cGJpZkZ3eGFWVms/view?usp=sharing)
## Linux
@ -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+)
@ -56,4 +56,4 @@ All builds are 64-bit.
## Mac OS/X 10.9+
[Build Guide for Mac OS/X](./Data/BuildGuideMacOSX.md)
[Build Guide for Mac OS/X](./Data/BuildGuideMacOSX.md)

12
debian/changelog vendored
View File

@ -1,3 +1,15 @@
fractorium (1.0.0.0a-0ubuntu1) xenial; urgency=low
* release 1.0.0.0a
-- Gambhiro Bhikkhu <gambhiro.bhikkhu.85@gmail.com> Sat, 18 Jun 2016 14:31:36 +0100
fractorium (1.0.0.0-0ubuntu1) xenial; urgency=low
* release 1.0.0.0
-- Gambhiro Bhikkhu <gambhiro.bhikkhu.85@gmail.com> Sat, 18 Jun 2016 13:12:15 +0100
fractorium (0.9.9.6-0ubuntu1) xenial; urgency=low
* release 0.9.9.6

20
debian/control vendored
View File

@ -4,12 +4,24 @@ Priority: optional
Maintainer: Gambhiro Bhikkhu <gambhiro.bhikkhu.85@gmail.com>
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.
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/