Skip to content

Commit 13b34e5

Browse files
authored
Merge pull request #7 from dzikus/pidscope
fix(build): upgrade to Octave 11.1, parameterize version, fix CRLF
2 parents 942b052 + fa133cb commit 13b34e5

7 files changed

Lines changed: 305 additions & 301 deletions

File tree

packaging/appimage/Dockerfile

Lines changed: 52 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,52 @@
1-
# PIDscope AppImage build environment
2-
# docker build -t pidscope-appimage packaging/appimage/
3-
# docker run --rm -v $(pwd):/src -v $(pwd)/dist:/dist pidscope-appimage
4-
5-
FROM ubuntu:22.04
6-
ENV DEBIAN_FRONTEND=noninteractive
7-
8-
# Latest Octave from PPA (Ubuntu 22.04 repos only have 6.x)
9-
RUN apt-get update && apt-get install -y software-properties-common && \
10-
add-apt-repository -y ppa:ubuntuhandbook1/octave && \
11-
apt-get update
12-
13-
RUN apt-get install -y \
14-
octave liboctave-dev \
15-
build-essential git \
16-
wget file desktop-file-utils appstream \
17-
libfftw3-3 libopenblas0 libsuitesparse-dev \
18-
libgl1-mesa-glx libfontconfig1 libfreetype6 \
19-
&& rm -rf /var/lib/apt/lists/*
20-
21-
RUN octave --eval "\
22-
pkg install -forge control; \
23-
pkg install -forge signal; \
24-
pkg install -forge datatypes; \
25-
pkg install -forge statistics; \
26-
pkg install -forge image;"
27-
28-
# Compile blackbox_decode from source (not in git)
29-
RUN mkdir -p /cache && \
30-
git clone --depth=1 https://github.com/betaflight/blackbox-tools.git /tmp/bb-bf && \
31-
cd /tmp/bb-bf && make -j$(nproc) obj/blackbox_decode && \
32-
gcc -o /cache/blackbox_decode obj/*.o -lm && \
33-
cd / && rm -rf /tmp/bb-bf && \
34-
git clone --depth=1 https://github.com/iNavFlight/blackbox-tools.git /tmp/bb-inav && \
35-
cd /tmp/bb-inav && make -j$(nproc) obj/blackbox_decode && \
36-
cp obj/blackbox_decode /cache/blackbox_decode_INAV && \
37-
cd / && rm -rf /tmp/bb-inav
38-
39-
RUN wget -q "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" \
40-
-O /usr/local/bin/linuxdeploy && \
41-
chmod +x /usr/local/bin/linuxdeploy && \
42-
wget -q "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" \
43-
-O /usr/local/bin/appimagetool && \
44-
chmod +x /usr/local/bin/appimagetool
45-
46-
WORKDIR /build
47-
COPY build-appimage.sh /build/
48-
RUN chmod +x /build/build-appimage.sh
49-
ENTRYPOINT ["/build/build-appimage.sh"]
1+
# PIDscope AppImage build environment
2+
# docker build -t pidscope-appimage packaging/appimage/
3+
# docker run --rm -v $(pwd):/src -v $(pwd)/dist:/dist pidscope-appimage
4+
5+
FROM ubuntu:22.04
6+
ENV DEBIAN_FRONTEND=noninteractive
7+
8+
# Latest Octave from PPA (Ubuntu 22.04 repos only have 6.x)
9+
RUN apt-get update && apt-get install -y software-properties-common && \
10+
add-apt-repository -y ppa:ubuntuhandbook1/octave && \
11+
apt-get update
12+
13+
RUN apt-get install -y \
14+
octave liboctave-dev \
15+
build-essential git \
16+
wget file desktop-file-utils appstream \
17+
libfftw3-3 libopenblas0 libsuitesparse-dev \
18+
libgl1-mesa-glx libfontconfig1 libfreetype6 \
19+
&& rm -rf /var/lib/apt/lists/*
20+
21+
RUN wget --tries=5 --timeout=30 -q \
22+
"https://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/image-2.18.1.tar.gz/download" \
23+
-O /tmp/image-2.18.1.tar.gz && \
24+
octave --eval "\
25+
pkg install 'https://github.com/gnu-octave/pkg-control/releases/download/control-4.2.1/control-4.2.1.tar.gz'; \
26+
pkg install 'https://github.com/gnu-octave/octave-signal/releases/download/1.4.7/signal-1.4.7.tar.gz'; \
27+
pkg install 'https://github.com/pr0m1th3as/datatypes/releases/download/release-1.1.8/datatypes-1.1.8.tar.gz'; \
28+
pkg install 'https://github.com/gnu-octave/statistics/releases/download/release-1.8.1/statistics-1.8.1.tar.gz'; \
29+
pkg install '/tmp/image-2.18.1.tar.gz';"
30+
31+
# Compile blackbox_decode from source (not in git)
32+
RUN mkdir -p /cache && \
33+
git clone --depth=1 https://github.com/betaflight/blackbox-tools.git /tmp/bb-bf && \
34+
cd /tmp/bb-bf && make -j$(nproc) obj/blackbox_decode && \
35+
gcc -o /cache/blackbox_decode obj/*.o -lm && \
36+
cd / && rm -rf /tmp/bb-bf && \
37+
git clone --depth=1 https://github.com/iNavFlight/blackbox-tools.git /tmp/bb-inav && \
38+
cd /tmp/bb-inav && make -j$(nproc) obj/blackbox_decode && \
39+
cp obj/blackbox_decode /cache/blackbox_decode_INAV && \
40+
cd / && rm -rf /tmp/bb-inav
41+
42+
RUN wget -q "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" \
43+
-O /usr/local/bin/linuxdeploy && \
44+
chmod +x /usr/local/bin/linuxdeploy && \
45+
wget -q "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" \
46+
-O /usr/local/bin/appimagetool && \
47+
chmod +x /usr/local/bin/appimagetool
48+
49+
WORKDIR /build
50+
COPY build-appimage.sh /build/
51+
RUN chmod +x /build/build-appimage.sh
52+
ENTRYPOINT ["/build/build-appimage.sh"]
Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,44 @@
1-
<?xml version="1.0" encoding="UTF-8"?>
2-
<component type="desktop-application">
3-
<id>com.pidscope.PIDscope</id>
4-
<metadata_license>CC0-1.0</metadata_license>
5-
<project_license>GPL-3.0-or-later</project_license>
6-
<name>PIDscope</name>
7-
<summary>Blackbox flight log analyzer for FPV drones</summary>
8-
9-
<description>
10-
<p>
11-
PIDscope is a graphical tool for analyzing blackbox flight logs from
12-
multirotor drones running Betaflight, Emuflight, or INAV firmware.
13-
It provides step response analysis, spectral analysis, spectrograms,
14-
phase lag calculation, and multi-file comparison.
15-
</p>
16-
</description>
17-
18-
<launchable type="desktop-id">com.pidscope.PIDscope.desktop</launchable>
19-
20-
<icon type="stock">com.pidscope.PIDscope</icon>
21-
22-
<url type="homepage">https://buymeacoffee.com/dzikus</url>
23-
24-
<provides>
25-
<binary>pidscope</binary>
26-
<mediatype>application/x-betaflight-blackbox-log</mediatype>
27-
<mediatype>application/x-betaflight-blackbox-flash</mediatype>
28-
</provides>
29-
30-
<releases>
31-
<release version="0.58" date="2022-10-24">
32-
<description>
33-
<p>Initial release.</p>
34-
</description>
35-
</release>
36-
</releases>
37-
38-
<content_rating type="oars-1.1" />
39-
40-
<categories>
41-
<category>Science</category>
42-
<category>Engineering</category>
43-
</categories>
44-
</component>
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<component type="desktop-application">
3+
<id>com.pidscope.PIDscope</id>
4+
<metadata_license>CC0-1.0</metadata_license>
5+
<project_license>GPL-3.0-or-later</project_license>
6+
<name>PIDscope</name>
7+
<summary>Blackbox flight log analyzer for FPV drones</summary>
8+
9+
<description>
10+
<p>
11+
PIDscope is a graphical tool for analyzing blackbox flight logs from
12+
multirotor drones running Betaflight, Emuflight, or INAV firmware.
13+
It provides step response analysis, spectral analysis, spectrograms,
14+
phase lag calculation, and multi-file comparison.
15+
</p>
16+
</description>
17+
18+
<launchable type="desktop-id">com.pidscope.PIDscope.desktop</launchable>
19+
20+
<icon type="stock">com.pidscope.PIDscope</icon>
21+
22+
<url type="homepage">https://buymeacoffee.com/dzikus</url>
23+
24+
<provides>
25+
<binary>pidscope</binary>
26+
<mediatype>application/x-betaflight-blackbox-log</mediatype>
27+
<mediatype>application/x-betaflight-blackbox-flash</mediatype>
28+
</provides>
29+
30+
<releases>
31+
<release version="0.58" date="2022-10-24">
32+
<description>
33+
<p>Initial release.</p>
34+
</description>
35+
</release>
36+
</releases>
37+
38+
<content_rating type="oars-1.1" />
39+
40+
<categories>
41+
<category>Science</category>
42+
<category>Engineering</category>
43+
</categories>
44+
</component>
Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
<?xml version="1.0" encoding="UTF-8"?>
2-
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
3-
4-
<mime-type type="application/x-betaflight-blackbox-log">
5-
<comment>Betaflight Blackbox Log</comment>
6-
<comment xml:lang="pl">Log Blackbox Betaflight</comment>
7-
<glob pattern="*.BBL"/>
8-
<glob pattern="*.bbl"/>
9-
<magic priority="50">
10-
<match type="string" offset="0" value="H Product:Blackbox flight data recorder"/>
11-
</magic>
12-
</mime-type>
13-
14-
<mime-type type="application/x-betaflight-blackbox-flash">
15-
<comment>Betaflight Blackbox Flash Log</comment>
16-
<comment xml:lang="pl">Log Flash Blackbox Betaflight</comment>
17-
<glob pattern="*.BFL"/>
18-
<glob pattern="*.bfl"/>
19-
</mime-type>
20-
21-
</mime-info>
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
3+
4+
<mime-type type="application/x-betaflight-blackbox-log">
5+
<comment>Betaflight Blackbox Log</comment>
6+
<comment xml:lang="pl">Log Blackbox Betaflight</comment>
7+
<glob pattern="*.BBL"/>
8+
<glob pattern="*.bbl"/>
9+
<magic priority="50">
10+
<match type="string" offset="0" value="H Product:Blackbox flight data recorder"/>
11+
</magic>
12+
</mime-type>
13+
14+
<mime-type type="application/x-betaflight-blackbox-flash">
15+
<comment>Betaflight Blackbox Flash Log</comment>
16+
<comment xml:lang="pl">Log Flash Blackbox Betaflight</comment>
17+
<glob pattern="*.BFL"/>
18+
<glob pattern="*.bfl"/>
19+
</mime-type>
20+
21+
</mime-info>

0 commit comments

Comments
 (0)