]> sigrok.org Git - sigrok-util.git/blame - cross-compile/appimage/sigrok-native-appimage
sigrok-cross-android: Link pulseview against gnustl_shared
[sigrok-util.git] / cross-compile / appimage / sigrok-native-appimage
CommitLineData
54207903 1#!/bin/bash
2
3# (c) 2016 Simon Peter
4# This file is licensed under the terms of the MIT license.
5#
6# Bundle PulseView and its dependencies as an AppImage for x86_64 Linux
7# TODO: Change it to use build products and libraries from a more mature
8# distribution such as Debian oldstable, CentOS 6 or Ubuntu Trusty or older.
9
10APP=PulseView
11LOWERAPP=${APP,,}
12
13ARCH=x86_64
14
15mkdir -p ./$APP/$APP.AppDir/usr/bin ./$APP/$APP.AppDir/usr/lib
16cd ./$APP
17
18wget -q https://github.com/probonopd/AppImages/raw/master/functions.sh -O ./functions.sh
19. ./functions.sh
20
21########################################################################
54207903 22# Get build products from Jenkins
23# FIXME: Do the actual building here instead
24########################################################################
25
26wget http://sigrok.org/jenkins/job/pulseview/buildtype=shared,compiler=gcc,platform=native-amd64/ws/_inst/bin/*zip*/bin.zip
27unzip bin.zip
28
29FW=$(wget -q "http://sigrok.org/download/binary/sigrok-firmware-fx2lafw/?C=M;O=D" -O - | grep .tar.gz | head -n 1 | cut -d '"' -f 13 | cut -d ">" -f 2 | cut -d "<" -f 1)
30wget -c "http://sigrok.org/download/binary/sigrok-firmware-fx2lafw/$FW"
31tar xf sigrok-firmware-fx2lafw-bin-*.tar.gz
32rm sigrok-firmware-fx2lafw-bin-*.tar.gz
33
34cd $APP.AppDir/
35
36mv ../bin/pulseview usr/bin/
37chmod a+x usr/bin/*
38
39cd usr/lib/
40wget http://sigrok.org/jenkins/job/libsigrok/buildtype=shared,compiler=gcc,platform=native-amd64/ws/_inst/lib/libsigrok.so.3
41wget http://sigrok.org/jenkins/job/libsigrok/buildtype=shared,compiler=gcc,platform=native-amd64/ws/_inst/lib/libsigrokcxx.so.3
42wget http://sigrok.org/jenkins/job/libserialport/buildtype=shared,compiler=gcc,platform=native-amd64/lastSuccessfulBuild/artifact/_inst/lib/libserialport.so.0
43cd ../../
44
45wget "http://sigrok.org/jenkins/job/libsigrokdecode/buildtype=shared,compiler=gcc,platform=native-amd64/lastSuccessfulBuild/artifact/*zip*/archive.zip"
46unzip archive.zip
47mv archive/_inst/share/libsigrokdecode usr/share/libsigrokdecode
48mv archive/_inst/lib/libsigrokdecode.so.3 usr/lib/
49rm -rf archive*
50
51# Reduce binary size
52strip usr/bin/*
53strip usr/lib/*
54
55########################################################################
56# AppRun is the main launcher that gets executed when AppImage is run
57########################################################################
58
59get_apprun
60
61########################################################################
62# Copy desktop and icon file to AppDir for AppRun to pick them up
63########################################################################
64
65wget http://sigrok.org/jenkins/job/pulseview/buildtype=shared,compiler=gcc,platform=native-amd64/ws/contrib/pulseview.desktop
66wget -q "http://sigrok.org/gitweb/?p=pulseview.git;a=blob_plain;f=icons/sigrok-logo-notext.png" -O sigrok-logo-notext.png
67
68########################################################################
69# Patch away absolute paths; it would be nice if they were relative
70########################################################################
71
72sed -i -e 's|/home/jenkins_slave/fsroot/workspace/libsigrokdecode/buildtype/shared/compiler/gcc/platform/native-amd64/_inst/share/|.//////////////////////////////////////////////////////////////////////////////////////////////////////////////share/|g' usr/lib/libsigrokdecode.so.3
73
74########################################################################
75# Copy in the dependencies that cannot be assumed to be available
76# on all target systems
77########################################################################
78
79mkdir -p usr/share/
80mv ../sigrok-firmware-* usr/share/sigrok-firmware
81
82copy_deps
83
84########################################################################
85# Delete stuff that should not go into the AppImage
86########################################################################
87
88delete_blacklisted
89move_lib
90mv ./usr/lib/x86_64-linux-gnu/* usr/lib/
91rm -r ./usr/lib/x86_64-linux-gnu/
92
93########################################################################
94# Determine the version of the app; also include needed glibc version
95########################################################################
96
97VER1=$(./AppRun --version | cut -d " " -f 2)
98GLIBC_NEEDED=$(glibc_needed)
99VERSION=$VER1.glibc$GLIBC_NEEDED
100echo $VERSION
101
102########################################################################
103# Patch away absolute paths; it would be nice if they were relative
104########################################################################
105
106patch_usr
107
108########################################################################
109# AppDir complete
110# Now packaging it as an AppImage
111########################################################################
112
113cd ..
114
115generate_appimage