Skip to content

Commit

Permalink
Linux build changes for Ubuntu 18
Browse files Browse the repository at this point in the history
  • Loading branch information
Artiom-M committed Nov 9, 2018
1 parent 507305a commit 604dc06
Show file tree
Hide file tree
Showing 28 changed files with 186 additions and 473 deletions.
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
Makefile
src/*/Makefile
vendors/*/Makefile
src/xpiks-qt/build*
src/xpiks-qt/BUILDNO
*.pro.user
*.autosave
src/xpiks-tests/build-*
Expand All @@ -15,7 +19,11 @@ hunspell-1.6.0
*.a
.qmake.stash
moc_*.cpp
moc_*.h
*.exe
installer/packages/xpiks/data/
*.qm
UiTestsStubPlugin/
debian/*.debhelper
debian/*.debhelper.*
debian/xpiks/*
107 changes: 11 additions & 96 deletions BUILD.md
Original file line number Diff line number Diff line change
@@ -1,107 +1,22 @@
**The most detailed instructions** can be found at this page: **http://ribtoks.github.io/xpiks/blog/2014/building-xpiks-alone**
**Prerequisits**

*
- here assumed that you have generic dev pakages installed
- install dependenices listed in debian/control file including `hunspell` library from recommended list
- install development packages listed in debian/control file

This space was intentionally left blank.
**Automatic build instructions:**

*

**Simplified instructions:**

***Prepare the source tree***

- git clone Xpiks repo
- `git submodule init` & `git submodule update --recursive`
- rename `tinyAES/aes.c` to `tinyAES/aes.cpp`
- ensure you have `git` available in your PATH

***Mac OS X / Windows : build third-parties***

Zlib:

- [windows] you will also need to download **zlib 1.2.11** and extract it in the `src/` directory
- [windows] open project `src/zlib-project/zlib.pro` in Qt Creator, execute `Run qmake`, execute `Build`
- [windows] copy built library (e.g. `z.lib`) from the build directory to the `src/libs` directory

Hunspell:

- download **Hunspell 1.6.0** from http://hunspell.sourceforge.net/ and extract it in the `src/` directory
- open project `src/hunspell/hunspell.pro` in Qt Creator, execute `Run qmake`, execute `Build`
- copy built library (e.g. `libhunspell.a`) from the build directory to the `src/libs` directory

cpp-libface:

- follow instructions in `src/cpp-libface/README.md` to build libface
- copy built library to `src/libs` directory

ssdll:

- follow instructions in `src/ssdll/README.md` to build ssdll
- copy built library to `src/libs` directory

Quazip:

- open project `src/quazip/quazip/quazip.pro` in Qt Creator, execute `Run qmake`, execute `Build`
- copy built library (e.g. `quazip.lib` and `quazip.dll`) from the build directory to the `src/libs` directory

LibCurl:

- [windows] do `git clone https://github.com/blackrosezy/build-libcurl-windows.git` and execute `build.bat`
- [windows] copy contests of `lib/dll-debug-x64` contents to the `src/libs/` directory
- [windows] build exiv2 library (see steps below)

***OS X build of exiv2 library***

- open Terminal in the directory of exiv2 sources and do the following
- `mkdir build-Debug && cd build-Debug`
- `/Applications/CMake.app/Contents/bin/cmake .. -DEXIV2_ENABLE_SHARED=off -DCMAKE_BUILD_TYPE=Debug -DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 -DCMAKE_CXX_STANDARD=11`
- `make`

***Visual Studio 2015 build of exiv2 library***
- Go to the sources root directory (where you can find `xpiks.pro` file)
- `debuild -i -us -uc -b`

- download **exiv2 v0.25** library from http://www.exiv2.org/ and extract it somewhere
- download **expat-2.1.1** library from https://sourceforge.net/projects/expat/ and extract it on same level as exiv2
- rename directory `expat-2.1.1/` to `expat\`
- open `msvc2005\exiv2.sln` and upgrade all projects
- from each project remove file `localtime.c`
- open file `include\exiv2\exv_msvs.h` and enable unicode support, disable png, curl and ssh (alternatively, you can overwrite this file with the one in the _Xpiks_ repository via path `src/exiv2-0.25/include/exiv2/exv_msvs.h`)
- in Visual Studio select `"Build" -> "Batch build"` and mark all _DebugDLL_ and _ReleaseDLL_ builds for your platform (x64 or x86)
- press "Build"
- copy build artifacts (`libexiv2.dll`, `libexiv2.lib`, `libexpat.dll`, `libexpat.lib`) to `src/libs` directory in _Xpiks_ repository
**Manual build**

***Manual build***
- install Qt 5.6 or later from official website (or from repository in case of Linux)
- [linux] install development packages for `libcurl`, `hunspell`, `quazip`, `zlib`, `libexiv`
- [linux] install `exiftool` (this **is not** necessary since Xpiks 1.3.1) and `expat` (this **is** necessary since Xpiks 1.3.1)
- open main project in Qt Creator, execute `Run qmake`, execute `Build`
- open main project (`src/xpiks-qt/xpiks-qt.pro`) in Qt Creator, execute `Run qmake`, execute `Build`
- you can open, build and run tests project (`src/xpiks-tests/xpiks-tests.pro`) additionally

If you want to create Xpiks executable for everyday usage, before each `Run qmake` step described below, select `Release` in Qt Creator. Select `Debug` (the default) in all other cases.

**Linux package build**

This chapter assumes that you have installed generic development packages for your OS.

***Additional requirements***

In some cases you neet to install `libcurl-devel`, `hunspell-devel`, `quazip-devel`, `libexiv-devel` packages (they can have slightly different names in your distribution) if it is not installed as a build requirement.

***Debian package build***

- Install build dependecies from repository (QT)
- cd to _xpiks-qt_ subdirectory
- `debuild -i -us -uc -b`

***OpenSUSE RPM build***

- Install rpmbuild.
- `mkdir -p ~/rpmbuild/{RPMS,SRPMS,SPECS,BUILD,BUILDROOT,SOURCES}`
- `tar -czf xpiks-qt.tar.gz xpiks-qt/ tiny-aes/ cpp-libface/ libs/ ssdll/`
- Copy this source tarball in `~/rpmbuild/SOURCES`
- Copy the the spec from `xpiks-qt/RPM` folder to `~/rpmbuild/SPECS`
- `rpmbuild -ba ~/rpmbuild/SPECS/xpiks.spec`
- It will complain about missing dependecies, you have to install them as well
***Additional notes***

***More***
This guide was written based on *Ubuntu 18*. In other versions or debain derivatives packages can have slightly different names.

Xpiks uses English dictionaries from http://cgit.freedesktop.org/libreoffice/dictionaries/tree/. In Windows they are stored in the `dict/` subdirectory, in OS X they are in the `Resources/` directory of a bundle.
34 changes: 3 additions & 31 deletions INSTALL.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,11 @@
# Basic install #
**Linux installation**

**OS X installation**
Provided .deb file is created for *Ubuntu 18* but may work on other debian/Ubuntu derivatives

To install Xpiks in OS X do the following:

- unpack Xpiks from dmg and drag'n'drop it to the Applications

Optionally you can download and install Exiftool (http://www.sno.phy.queensu.ca/~phil/exiftool/) and enable it in Xpiks Settings in the External tab.

**Windows intallation**

- extract Xpiks archive wherever you want. Launch xpiks-qt.exe

Also you can use the distribution of Xpiks as portable installation.

**Debian installation**

Install the deb file from latest release with all dependencies.
Install the .deb file from latest release with all dependencies.

# Special instructions #
**Linux**

Install all recommended packages:
- libhunspell
- hunspell-en-us

**Debian stretch**

Should work as is.

**Ubuntu >= 16.10**

!!! Will not work with Unity beacause of application menu
Should work as is with any other desktop environment

**OpenSuse Leap 42.2**

Should work as is.
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,19 @@ Xpiks is a free and open source keywording and uploading tool for microstock pho
- extensible with plugins
- works under Linux, OS X and Windows

This for is for Linux only. It contains changes and support files for creating a debian package for *Ubuntu 18*.
For more recent code and other platforms see original project : https://github.com/ribtoks/xpiks/

**How to build**

Please see the [BUILD.md](https://github.com/ribtoks/xpiks/blob/master/BUILD.md) file
Please see the [BUILD.md] file

**How to install**

Please see the [INSTALL.md](https://github.com/ribtoks/xpiks/blob/master/INSTALL.md) file
Please see the [INSTALL.md] file

**How to contribute**

Please see the [CONTRIBUTING.md](https://github.com/ribtoks/xpiks/blob/master/CONTRIBUTING.md) file

If you would like to create packages for other flavors of linux, I can integrated them into this repository as well.
148 changes: 0 additions & 148 deletions build_vendors_linux.sh

This file was deleted.

5 changes: 3 additions & 2 deletions src/xpiks-qt/debian/changelog → debian/changelog
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
xpiks (1.4) UNRELEASED; urgency=medium
xpiks (1.5.2) UNRELEASED; urgency=medium

[ Artiom ]
* Major features:

presets for keywords #207
Expand All @@ -22,7 +23,7 @@ xpiks (1.4) UNRELEASED; urgency=medium
dismiss timeout setting change didn't work as expected #301


-- Artiom <[email protected]> Tue, 07 Mar 2017 21:36:24 +0000
-- artiom <[email protected]> Sun, 04 Nov 2018 22:30:31 +1100

xpiks (1.3.4) testing; urgency=medium

Expand Down
File renamed without changes.
8 changes: 4 additions & 4 deletions src/xpiks-qt/debian/control → debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ Maintainer: Artiom.M <[email protected]>

Package: xpiks
Architecture: amd64
Depends: libc6 (>=2.14), libqt5concurrent5 (>= 5.6), libqt5core5a (>= 5.6), libqt5gui5 (>= 5.6), libqt5network5 (>= 5.6),
Depends: libc6 (>=2.14), libqt5concurrent5 (>= 5.6), libqt5core5a (>= 5.6), libqt5gui5 (>= 5.6), libqt5network5 (>= 5.6),
libqt5qml5 (>= 5.6), libqt5quick5 (>= 5.6), libqt5widgets5 (>= 5.6),libqt5svg5 (>= 5.6), libquazip5-1, zlib1g (>= 1:1.1.4),
libcurl3 (>=7.4), libimage-exiftool-perl, qml-module-qtquick-window2, qml-module-qtquick2, qml-module-qtquick-controls,
libcurl4 (>=7.4), libimage-exiftool-perl, qml-module-qtquick-window2, qml-module-qtquick2, qml-module-qtquick-controls,
qml-module-qtquick-dialogs, qml-module-qtquick-layouts, qml-module-qtquick-privatewidgets, qml-module-qtgraphicaleffects,
qml-module-qt-labs-folderlistmodel, qml-module-qt-labs-settings
Recommends: hunspell-en-us, libhunspell-1.3-0
qml-module-qt-labs-folderlistmodel, qml-module-qt-labs-settings
Recommends: hunspell-en-us, libhunspell-1.6-0
Section: graphics
Priority: optional
Homepage: https://github.com/Ribtoks/xpiks
Expand Down
3 changes: 3 additions & 0 deletions debian/copyright
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Files: *
Copyright: 2014 Taras Kushnir <[email protected]>
License: MPL-2.0
3 changes: 3 additions & 0 deletions debian/files
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
xpiks-dbgsym_1.5.2_amd64.ddeb debug optional
xpiks_1.5.2_amd64.buildinfo - -
xpiks_1.5.2_amd64.deb graphics optional
Loading

0 comments on commit 604dc06

Please sign in to comment.