Commit graph

130 commits

Author SHA1 Message Date
Dirk Hohndel
6da5775c05 Ubuntu packaging: more tweaks
* only build a static libdivecomputer
* only build the libgit2 library, not the executable
* don't echo all the symlinks when fake-installing libmarblewidget

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-15 12:09:38 -08:00
Dirk Hohndel
5e9c491f19 Ubuntu packaging: add support for better changelog tracking
This now assumes that a running changelog is maintained in
src/debian.changelog, i.e., at the same level as the subsurface tree; the
organization now should look like this:

src/debian.changelog
src/subsurface                 # subsurface git checkout
src/subsurface/libdivecomputer # libdivecomputer git Subsurface-xx branch
src/subsurface/marble-source   # marble git Subsurface-xx branch
src/subsurface/libgit2         # libgit2 git checkout

Instead of running dh_make to create all new debian build files, we add the
necessary files in our script.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-15 10:21:23 -08:00
Dirk Hohndel
f559f6c870 Ubuntu packaging: Create the correct libdivecomputer version
Since we strip the .git data from the source tree (to conserve space and not
violate the packaging guidelines - or at least not violate THAT packaging
guideline) we need to create the correct revision before the tar file of sources
is packaged.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-12 11:39:46 -08:00
Dirk Hohndel
c9f927d547 Updates to Ubuntu package building process
Marble can't be static, so instead we build a shared library but give it a
different name so it can be installed in parallel with the "real"
libmarblewidget.so.

Also make sure that the correct libusb is installed so that Atomics Aquatics
dive computers are supported.

Fixes #782

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-10 13:08:35 -08:00
Dirk Hohndel
18159b6265 Minor tweak to Ubuntu package building
12.04 can't build our Qt5 based package, so let's just drop it.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-10 09:45:53 -07:00
Miika Turkia
bac2b92860 Add utopic and precise to Ubuntu packaging
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-07 09:42:14 -06:00
Dirk Hohndel
8f224c1737 Ubuntu packaging: move support files into debian directory
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-03 09:39:57 -08:00
Dirk Hohndel
89c333e4b6 Ubuntu packaging: remove .git trees from sources
Oops, I thought I had done that but that was flat out wrong.
Now the source upload shrinks from over 70MB to around 26MB. Much better.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-02 22:11:23 -08:00
Dirk Hohndel
43a8287779 Ubuntu packaging: switch to Qt5
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-02 21:03:06 -08:00
Dirk Hohndel
eba18ff5e9 Ubuntu packaging: get git version without including the full git tree
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-02 18:31:42 -08:00
Dirk Hohndel
a1cd230625 Ubuntu packaging: include static libmarblewidget
Still all Qt4 based. Baby steps.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-02 18:31:36 -08:00
Dirk Hohndel
fabdb6b65c Make sure Ubuntu package built script is started from the right directory
I kept starting it from within the subsurface directory which of course failed
but left clutter around.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-02 11:04:37 -08:00
Dirk Hohndel
589f277477 Adjust version numbering for Ubuntu package
Let's use all four digits as 'version'.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-02 10:55:52 -08:00
Dirk Hohndel
ebd22b9abc Allow static libgit2
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-02 08:51:32 -08:00
Dirk Hohndel
74447d6389 Add Ubuntu packaging instructions
These files knowingly (one might say, intentionally) violate the spirit
and letter of the Debian / Ubuntu packaging rules. They are intended to be
able to create our own packages that include their own libdivecomputer,
libgit2 and (later) libmarble. Especially for daily builds this is WAY
easier than fighting with whatever may be the current version of these
packages in Ubuntu (especially since this allows us to use our private
libdivecomputer branch).

This assumes that the user runs the make-package.sh script from a
directory below which we have
subsurface/                <- Subsurface checked out git tree
subsurface/libdivecomputer <- desired libdivecomputer sources
subsurface/libgit2         <- desired libgit2 source

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-12-02 08:51:32 -08:00
Dirk Hohndel
d2567f761a Windows installer: move the 32/64 bit check earlier
It makes more sense to do this on init and not have the user go through
any other screens in case this is the wrong binary.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-30 12:40:03 -07:00
Dirk Hohndel
1291d100f6 Ugly hack to work around broken Qt5.3.2 for Windows cross builds
Checking this in to make sure I don't end up creating broken installers
again. I doubt that this is useful for anyone but me - but then, I don't
think anyone but me creates Windows installers.

Background - when Fedora 20 updated the cross-built version of Qt for
Win64 something broke. Subsurfae installed with those DLLs will crash.
Replacing the older 5.3.1 DLLs fixes this for now, so I have a directory
with just those DLLs and simply replace them in the staging directory
before calling makensis.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-29 15:10:32 -07:00
Dirk Hohndel
0e0d6135af Don't install Windows 64bit binaries on 32bit system
Also warn people installing 32bit binaries on a 64bit system

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-29 13:01:19 -07:00
Dirk Hohndel
28800622f0 Minor changes to Windows build and packaging
With these changes we link statically against libusb and libdivecomputer
but don't add the .a files to our installers.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-25 20:50:14 -07:00
Dirk Hohndel
c477f56029 Update my Mac packaging scripts for Qt5
I have no idea why libmarble isn't handled correctly by macdeployqt...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04 22:54:02 -07:00
Dirk Hohndel
6c15647858 Allow cross-building 64 bit binaries for Windows
This also makes sure that we package the Qt5 translations, not the Qt4
translations.

There was an odd issue that somehow a 32bit search path ended up being
used by win-dll which resulted in the wrong DLLs being packaged.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-02 15:08:22 -07:00
Miika Turkia
c43708bc8e Remove theme directory when uninstalling on Windows
I assume the theme directory should be deleted on uninstall the same way
e.g. Documentation directory is deleted.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-13 21:39:42 -07:00
Dirk Hohndel
bded22f2f6 HTML export: fix packaging of theme dir
I was confused by the function name getSubsurfaceDataPath() - it does not
find paths relative to the "data" folder, if finds the path where we might
install folders like "data", "translations", or "theme".
"data" is for some reason where we install the "marbledata" files.
Therefore on both Mac and Windows we need to put the "theme" directory
next to the "data" directory, not below it.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-08 07:54:11 -07:00
Dirk Hohndel
72362d0993 Build tools: allow debuggable cross builds for Windows
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-07 19:39:50 -07:00
Dirk Hohndel
049b6c0426 Prepare for Qt4 / Qt5 cross builds of Windows binaries
Admittedly I believe I'm the only one using this script (and related .nsi
file), it still seems to make sense to keep it up to date in the
repository.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-06 09:18:13 -07:00
Dirk Hohndel
d461780369 Windows out of tree cross build: stage package in correct folder
When doing an out of tree build you don't want to stage the package with
the source but under your current directory. So let's make sure we
distinguish between source and target here... and instead of putting
things into packaging/windows they now end up in staging which is much
more consistent. And to make my life even easier, the installer .exe ends
up in the base dir in which you build the package.

Also, we link statically against libdivecomputer, so don't pack the dll.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-21 12:16:56 -07:00
Dirk Hohndel
986309b108 Windows cross build: use the correct objdump
This one was silly but took me a while to track down.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-21 11:08:10 -07:00
Dirk Hohndel
4c8369a7ba More cross building stuff
This is all mostly to make my life easier.
I'm not thrilled with the marble changes - as Linus pointed out before the
way we do these "LIBxxxDEVEL" changes is broken as it will still first
link against any library installed in the system. But since I have removed
any globally installed copies of these libraries this actually works for
me and it does help when experimenting with different build options for
the main libraries that we depend on.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-21 08:54:04 -07:00
Dirk Hohndel
01a185979e Out of tree cross build for Windows
This way I can have a different directory from where I build Windows
binary without interfering with my native build in the source directory.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-19 11:46:50 -07:00
Dirk Hohndel
4edf37f9be Update cross building for Windows on Linux
This updates the instructions and the plumbing to be able to link against
a locally built libgit2

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-07 16:33:00 -08:00
Thiago Macieira
68d80e7a9d Update the Mac Info.plist structure
The bundle signature is not a necessary property in any of the OS X
versions we support. And the current bundle version identifier is 6.0,
not 1.0.

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-02-26 17:17:50 -08:00
Thiago Macieira
28d0cb8e2c Set the NSPrincipalClass in Info.plist
This is required to enable HiDPI support for the Retina displays. The
Info.plist that comes with Qt had this, but the one we supply with
Subsurface didn't.

Done-with: Jake Petroules <jake.petroules@petroules.com>
Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-02-25 17:35:20 -08:00
Dirk Hohndel
7c8a39015a Enable https for Windows binaries
This requires the ssleay32.dll and libeay32.dll to be copied into
packaging/windows, first.

Fixes #367

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-28 21:04:07 -08:00
Dirk Hohndel
a0b9daf63b Improve signing script, adjust flags for gcc-4.2
On one of my machines codesign doesn't find my signing key by hash, but
does find it by name. Go figure.
Also on that same system (32bit Mac Mini with running Snow Leopard / 10.6)
gcc 4.2 doesn't support the -unused-result warning. So let's only turn
that on for more modern versions of gcc

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-19 20:42:59 -08:00
Thiago Macieira
ca8aee4701 Move the XSLT files into a Qt resource
This means we no longer need to keep them on disk and worry about
installing / uninstalling them. They will always be kept in-memory
(compressed).

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-16 16:20:52 -08:00
Dirk Hohndel
5c2ded5840 Disable https on Windows for 4.0
We appear to be missing the correct dll. I'm out of time trying to track
this down, so I just switched Subsurface to access divelogs.de via http on
Windwos.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-15 14:24:30 -08:00
Dirk Hohndel
d3065d811a Tools to create nice signed DMG
These are only useful for me, but having them in git makes my life so much
easier...

Instead of using macdeployqt to create my DMG I use the tool that I used for
Subsurface 3. This allows for much prettier DMG content as well.

Fixes #329

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-15 11:22:57 -08:00
Thiago Macieira
ee5d8e3cfc Don't install the actual icon files
They are loaded into a Qt resource and always accessed via it.

[Dirk Hohndel: had to hand edit / apply the changes to the .pri file]

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-12 08:00:41 +01:00
Dirk Hohndel
9cb9dba7b6 Fix the Windwos installer
Install the Documentation and include it in the installer.
Try and get all the directories and files removed in the uninstaller.
Where the heck does 'oldshare' come from?

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-06 21:46:15 -08:00
Thiago Macieira
51c519f624 Include the translations in the Windows installer
Fixes #324

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-05 20:09:24 -08:00
Lubomir I. Ivanov
d0f807f0ed subsurface.nsi.in: set icons for the executable shortcuts
The executable shortcuts were lacking icons. This should
do the trick, by using the packaged subsurface.ico.

Perhaps it would be better if we hardcode the icon into
the executable as a resource.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-28 15:29:13 -08:00
Thiago Macieira
d2de5afd02 Include qt.conf in the Windows installer
Otherwise, Qt won't find its plugins.

No plugins -> no JPEG decoding -> very ugly maps (an understatement)

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-27 17:55:54 -08:00
Thiago Macieira
1080e5ca35 Fix plugin deployment on Windows
And increase our list of plugins to be deployed to include the GIF and
SVG image plugins, the SVG icon engine and the CJK text codecs.

The install rules now iterate over the plugin list and deploy the
plugins in the right path in the staging area. The plugins must also
be scanned for dependencies (Fedora's qjpeg4.dll depends on
libjpeg-62.dll, which neds to be copied to the staging area).

Finally, fix qt.conf needed to be fixed.

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-27 17:55:24 -08:00
Thiago Macieira
4b4e59a7e8 Use wildcards in the NSIS installer rules for Qt DLLs
That way, the NSIS rules also work for creating an installer for debug
builds. Which you'd do by running:
  make -f Makefile.Debug installer

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-27 17:55:05 -08:00
Thiago Macieira
9befbe4109 Search for different versions of libzip DLL
My system has libzip-1.dll, but Dirk's is probably newer and has
libzip-2.dll

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-27 17:54:32 -08:00
Thiago Macieira
34c77db506 Don't try to deploy libintl DLL on Windows
We don't use it for translations anymore.

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-27 17:54:28 -08:00
Thiago Macieira
08f4f42e1e Tell NSIS to search for the DLLs in packaging/windows
The "make install" step will copy all we depend on DLLs there.

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-27 17:54:24 -08:00
Dirk Hohndel
06bf0e1849 Include icons in the Windows installer
Also fix the dependency / ordering issue with running makensis

Fixes #252

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-15 15:02:45 -08:00
Dirk Hohndel
9383693928 Create installer with qmake
This is seriously flawed. makensis is run twice for some reason. I also
noticed that the data and xslt directories under packaging/windows aren't
created when running make install. Running
	make -f Makefile.Release install_marbledir install_deploy
works, but obviously this should be taken care of by the dependency.

The installed binary under Windows is not finding its icon, the
translations are missing... lots of work left to do here.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-05 13:05:14 +09:00
Dirk Hohndel
35952a59d0 Get cross build to work again
...and re-enable silent mode by default for cross builds

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-10-11 13:33:38 -07:00