diff --git a/mbed6/.gitignore b/mbed6/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..3c20f054a225cf6d3338f786a52e8878a77af2bb --- /dev/null +++ b/mbed6/.gitignore @@ -0,0 +1,3 @@ +/build +/.flatpak-builder +/auto-*.json diff --git a/mbed6/Makefile b/mbed6/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..5b72326c3c6bbbd1f9d36b47e71fdf91bd07216e --- /dev/null +++ b/mbed6/Makefile @@ -0,0 +1,45 @@ +TARGET=se.lth.control.mbed-cli +FLATHUB_REPO="https://flathub.org/repo/flathub.flatpakrepo" + +.PHONY : build +build: auto-ignore-installed.json\ + auto-simple.json \ + manual-util-linux.json \ + manual-arm-none-eabi-binutils.json \ + manual-XmpX.json \ + manual-arm-none-eabi-bootstrap-gcc.json \ + manual-arm-none-eabi-newlib.json \ + manual-arm-none-eabi-gcc.json \ + manual-mbed-cli-wrap.json + flatpak-builder --force-clean build $(TARGET).json + flatpak-builder --user --install --force-clean build/ $(TARGET).json + +.PHONY: setup +setup: + flatpak remote-add --if-not-exists flathub $(FLATHUB_REPO) + flatpak install org.freedesktop.Platform//22.08 + flatpak install org.freedesktop.Sdk//22.08 + +manual-%.json: manual-%.install + +auto-ignore-installed.json: pip-ignore-installed.txt + cat $< | xargs flatpak run se.lth.control.pip-install-to-json \ + --name $@ --extra-flag --ignore-installed > $@.tmp + mv $@.tmp $@ + +auto-simple.json: pip-simple.txt + cat $< | xargs flatpak run se.lth.control.pip-install-to-json \ + --name $@ > $@.tmp + mv $@.tmp $@ + +.PHONY: clean +clean: + rm -f auto-*.json + rm -rf .flatpak-builder/build + +.PHONY: distclean +clean: clean + rm -rf build + rm -rf .flatpak-builder + rm -f *~ + diff --git a/mbed6/manual-XmpX.install b/mbed6/manual-XmpX.install new file mode 100755 index 0000000000000000000000000000000000000000..195994f8658d1e64ac502beab1aaf326397d9469 --- /dev/null +++ b/mbed6/manual-XmpX.install @@ -0,0 +1,27 @@ +#!/bin/sh + +set -e + +tar -xf gmp-6.2.1.tar.xz +( + cd gmp-6.2.1 + ./configure --prefix=/app + make + make install +) + +tar -xf mpfr-4.1.0.tar.xz +( + cd mpfr-4.1.0 + ./configure --prefix=/app + make + make install +) + +tar -xf mpc-1.2.1.tar.gz +( + cd mpc-1.2.1 + ./configure --prefix=/app + make + make install +) diff --git a/mbed6/manual-XmpX.json b/mbed6/manual-XmpX.json new file mode 100644 index 0000000000000000000000000000000000000000..40f0d381882b26dc823017bceacfe00f8e982c1a --- /dev/null +++ b/mbed6/manual-XmpX.json @@ -0,0 +1,28 @@ +{ + "name": "manual-XmpX.json", + "buildsystem": "simple", + "build-commands": [ + "./manual-XmpX.install" + ], + "sources": [ + { + "type": "file", + "path": "manual-XmpX.install" + }, + { + "type": "file", + "url": "https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz", + "sha256": "fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2" + }, + { + "type": "file", + "url": "https://www.mpfr.org/mpfr-current/mpfr-4.1.0.tar.xz", + "sha256": "0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f" + }, + { + "type": "file", + "url": "https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz", + "sha256": "17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459" + } + ] +} diff --git a/mbed6/manual-arm-none-eabi-binutils.install b/mbed6/manual-arm-none-eabi-binutils.install new file mode 100755 index 0000000000000000000000000000000000000000..3aeb00d0471dde89c52d065d6bd08d294fd45af7 --- /dev/null +++ b/mbed6/manual-arm-none-eabi-binutils.install @@ -0,0 +1,21 @@ +#!/bin/sh + +set -e + +tar -xf binutils-2.37.tar.xz +cd binutils-2.37 +./configure --prefix=/app \ + --target=arm-none-eabi \ + --enable-interwork \ + --enable-multilib \ + --enable-plugins \ + --disable-nls \ + --disable-shared \ + --disable-threads \ + --with-gcc \ + --with-gnu-as \ + --with-gnu-ld \ + --with-system-zlib \ + --disable-werror +make +make install diff --git a/mbed6/manual-arm-none-eabi-binutils.json b/mbed6/manual-arm-none-eabi-binutils.json new file mode 100644 index 0000000000000000000000000000000000000000..2ca93db568c2e620442f079c89e88e0e0b2707c4 --- /dev/null +++ b/mbed6/manual-arm-none-eabi-binutils.json @@ -0,0 +1,18 @@ +{ + "name": "manual-arm-none-eabi-binutils.json", + "buildsystem": "simple", + "build-commands": [ + "./manual-arm-none-eabi-binutils.install" + ], + "sources": [ + { + "type": "file", + "path": "manual-arm-none-eabi-binutils.install" + }, + { + "type": "file", + "url": "https://ftp.gnu.org/pub/gnu/binutils/binutils-2.37.tar.xz", + "sha256": "820d9724f020a3e69cb337893a0b63c2db161dadcb0e06fc11dc29eb1e84a32c" + } + ] +} diff --git a/mbed6/manual-arm-none-eabi-bootstrap-gcc.install b/mbed6/manual-arm-none-eabi-bootstrap-gcc.install new file mode 100755 index 0000000000000000000000000000000000000000..fff8f8253426f3caa2a8cc6429af470e810f518f --- /dev/null +++ b/mbed6/manual-arm-none-eabi-bootstrap-gcc.install @@ -0,0 +1,40 @@ +#!/bin/sh + +set -e + +tar -xf gcc-12.2.0.tar.xz +( + mkdir build-gcc-12.2.0 + cd build-gcc-12.2.0 + ../gcc-12.2.0/configure --prefix=/app \ + --target=arm-none-eabi \ + --enable-interwork \ + --enable-multilib \ + --with-multilib-list=rmprofile \ + --enable-plugins \ + --disable-decimal-float \ + --disable-libffi \ + --disable-libgomp \ + --disable-libmudflap \ + --disable-libquadmath \ + --disable-libssp \ + --disable-libstdcxx-pch \ + --disable-nls \ + --disable-shared \ + --disable-threads \ + --disable-tls \ + --enable-languages=c \ + --with-newlib \ + --disable-nls \ + --disable-shared \ + --disable-threads \ + --with-gnu-as \ + --with-gnu-ld \ + --with-gmp \ + --with-mpfr \ + --with-mpc \ + --without-headers \ + --with-system-zlib + make + make install +) diff --git a/mbed6/manual-arm-none-eabi-bootstrap-gcc.json b/mbed6/manual-arm-none-eabi-bootstrap-gcc.json new file mode 100644 index 0000000000000000000000000000000000000000..4425d0d5701edd87be5c3250cdbd2ea55f52f446 --- /dev/null +++ b/mbed6/manual-arm-none-eabi-bootstrap-gcc.json @@ -0,0 +1,18 @@ +{ + "name": "manual-arm-none-eabi-bootstrap-gcc.json", + "buildsystem": "simple", + "build-commands": [ + "./manual-arm-none-eabi-bootstrap-gcc.install" + ], + "sources": [ + { + "type": "file", + "path": "manual-arm-none-eabi-bootstrap-gcc.install" + }, + { + "type": "file", + "url": "https://ftp.mpi-inf.mpg.de/mirrors/gnu/mirror/gcc.gnu.org/pub/gcc/releases/gcc-12.2.0/gcc-12.2.0.tar.xz", + "sha256": "e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff" + } + ] +} diff --git a/mbed6/manual-arm-none-eabi-gcc.install b/mbed6/manual-arm-none-eabi-gcc.install new file mode 100755 index 0000000000000000000000000000000000000000..74abf21977a3f5b26322b9eb07ee46a13efb7d82 --- /dev/null +++ b/mbed6/manual-arm-none-eabi-gcc.install @@ -0,0 +1,43 @@ +#!/bin/sh + +set -e + +( + mkdir full + cd full + tar -xf ../gcc-12.2.0.tar.xz + mkdir build + cd build + ../gcc-12.2.0/configure --prefix=/app \ + --target=arm-none-eabi \ + --enable-interwork \ + --enable-multilib \ + --with-multilib-list=rmprofile \ + --enable-plugins \ + --disable-decimal-float \ + --disable-libffi \ + --disable-libgomp \ + --disable-libmudflap \ + --disable-libquadmath \ + --disable-libssp \ + --disable-libstdcxx-pch \ + --disable-nls \ + --disable-shared \ + --disable-threads \ + --disable-tls \ + --enable-languages=c,c++ \ + --with-newlib \ + --disable-nls \ + --disable-shared \ + --disable-threads \ + --with-gnu-as \ + --with-gnu-ld \ + --with-gmp \ + --with-mpfr \ + --with-mpc \ + --with-headers=yes \ + --with-system-zlib + + make + make install +) diff --git a/mbed6/manual-arm-none-eabi-gcc.json b/mbed6/manual-arm-none-eabi-gcc.json new file mode 100644 index 0000000000000000000000000000000000000000..c9f0c2da7868423f1a562811a51afd3f8afd1390 --- /dev/null +++ b/mbed6/manual-arm-none-eabi-gcc.json @@ -0,0 +1,18 @@ +{ + "name": "manual-arm-none-eabi-gcc.json", + "buildsystem": "simple", + "build-commands": [ + "./manual-arm-none-eabi-gcc.install" + ], + "sources": [ + { + "type": "file", + "path": "manual-arm-none-eabi-gcc.install" + }, + { + "type": "file", + "url": "https://ftp.mpi-inf.mpg.de/mirrors/gnu/mirror/gcc.gnu.org/pub/gcc/releases/gcc-12.2.0/gcc-12.2.0.tar.xz", + "sha256": "e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff" + } + ] +} diff --git a/mbed6/manual-arm-none-eabi-newlib.install b/mbed6/manual-arm-none-eabi-newlib.install new file mode 100755 index 0000000000000000000000000000000000000000..e71791541160c2d01bad85ca7d0439d0dbecd919 --- /dev/null +++ b/mbed6/manual-arm-none-eabi-newlib.install @@ -0,0 +1,19 @@ +#!/bin/sh + +tar -xf newlib-4.2.0.20211231.tar.gz +( + cd newlib-4.2.0.20211231 + export CFLAGS_FOR_TARGET="-g -O2 -ffunction-sections -fdata-sections" + ./configure --prefix=/app \ + --target=arm-none-eabi \ + --enable-newlib-io-long-long \ + --enable-newlib-register-fini \ + --enable-newlib-retargetable-locking \ + --disable-newlib-supplied-syscalls \ + --disable-nls \ + --enable-multilib \ + --disable-libssp \ + --with-float=soft + make + make install +) diff --git a/mbed6/manual-arm-none-eabi-newlib.json b/mbed6/manual-arm-none-eabi-newlib.json new file mode 100644 index 0000000000000000000000000000000000000000..57fc7d299e5374eeb4f4dcb42524bdab7aaea23f --- /dev/null +++ b/mbed6/manual-arm-none-eabi-newlib.json @@ -0,0 +1,18 @@ +{ + "name": "manual-arm-none-eabi-newlib.json", + "buildsystem": "simple", + "build-commands": [ + "./manual-arm-none-eabi-newlib.install" + ], + "sources": [ + { + "type": "file", + "path": "manual-arm-none-eabi-newlib.install" + }, + { + "type": "file", + "url": "ftp://sourceware.org/pub/newlib/newlib-4.2.0.20211231.tar.gz", + "sha256": "c3a0e8b63bc3bef1aeee4ca3906b53b3b86c8d139867607369cb2915ffc54435" + } + ] +} diff --git a/mbed6/manual-git.install b/mbed6/manual-git.install new file mode 100755 index 0000000000000000000000000000000000000000..06ddb77577000a5f7a4b0bce916a4390637f65e6 --- /dev/null +++ b/mbed6/manual-git.install @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +tar -xf git-2.38.1.tar.gz +cd git-2.38.1 +make configure +./configure --prefix=/app +make +make install diff --git a/mbed6/manual-git.json b/mbed6/manual-git.json new file mode 100644 index 0000000000000000000000000000000000000000..46f2f316bd93394906f85754c188cca5be29f505 --- /dev/null +++ b/mbed6/manual-git.json @@ -0,0 +1,18 @@ +{ + "name": "manual-git.json", + "buildsystem": "simple", + "build-commands": [ + "./manual-git.install" + ], + "sources": [ + { + "type": "file", + "path": "manual-git.install" + }, + { + "type": "file", + "url": "https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.38.1.tar.gz", + "sha256": "620ed3df572a34e782a2be4c7d958d443469b2665eac4ae33f27da554d88b270" + } + ] +} diff --git a/mbed6/manual-mbed-cli-wrap.install b/mbed6/manual-mbed-cli-wrap.install new file mode 100755 index 0000000000000000000000000000000000000000..cc406f8fb61dbf9bf23adf5fe52d4e11b1c88f5b --- /dev/null +++ b/mbed6/manual-mbed-cli-wrap.install @@ -0,0 +1,8 @@ +#!/bin/sh + +cat<<'EOF'>/app/mbed-cli +#!/bin/bash + +/app/bin/mbed-cli "$@" +EOF +chmod +x /app/mbed-cli diff --git a/mbed6/manual-mbed-cli-wrap.json b/mbed6/manual-mbed-cli-wrap.json new file mode 100644 index 0000000000000000000000000000000000000000..3139072404db7911426d717f438b6d70c245d00d --- /dev/null +++ b/mbed6/manual-mbed-cli-wrap.json @@ -0,0 +1,13 @@ +{ + "name" : "manual-mbed-cli-wrap.json", + "buildsystem" : "simple", + "sources" : [ + { + "type" : "file", + "path" : "manual-mbed-cli-wrap.install" + } + ], + "build-commands" : [ + "./manual-mbed-cli-wrap.install" + ] +} diff --git a/mbed6/manual-util-linux.install b/mbed6/manual-util-linux.install new file mode 100755 index 0000000000000000000000000000000000000000..0ac1bdf1469cb41249aa5f6734d037b2b5250983 --- /dev/null +++ b/mbed6/manual-util-linux.install @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +tar -xf util-linux-2.38.1.tar.gz +cd util-linux-2.38.1 +./autogen.sh +./configure --prefix /app \ + --disable-makeinstall-chown \ + --disable-all-programs \ + --enable-mount \ + --enable-libmount \ + --enable-libblkid +make +make install diff --git a/mbed6/manual-util-linux.json b/mbed6/manual-util-linux.json new file mode 100644 index 0000000000000000000000000000000000000000..ddc1db8fb5f4efb1cebf9d0b5880021b5a38fb32 --- /dev/null +++ b/mbed6/manual-util-linux.json @@ -0,0 +1,18 @@ +{ + "name": "manual-util-linux.json", + "buildsystem": "simple", + "build-commands": [ + "./manual-util-linux.install" + ], + "sources": [ + { + "type": "file", + "path": "manual-util-linux.install" + }, + { + "type": "file", + "url": "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/snapshot/util-linux-2.38.1.tar.gz", + "sha256": "75add98ee04e8ca742e860dd06936379737465149904152175a64708de399125" + } + ] +} diff --git a/mbed6/pip-ignore-installed.txt b/mbed6/pip-ignore-installed.txt new file mode 100644 index 0000000000000000000000000000000000000000..f7c2653c28ac7b40ceb52fecdad77f23fc926488 --- /dev/null +++ b/mbed6/pip-ignore-installed.txt @@ -0,0 +1,2 @@ +pip +wheel diff --git a/mbed6/pip-simple.txt b/mbed6/pip-simple.txt new file mode 100644 index 0000000000000000000000000000000000000000..cb06208bef97365bbbc0e6d00218da8ac2c084d6 --- /dev/null +++ b/mbed6/pip-simple.txt @@ -0,0 +1,20 @@ +mbed-cli +mbed_ls +mbed_host_tests +mbed_greentea +mbed_cloud_sdk +cbor +cmsis_pack_manager +fuzzywuzzy +icetea +jinja2 +manifest_tool +pycryptodome +pyyaml +jsonschema +pyelftools +pyusb +psutil +cryptography +click +mercurial diff --git a/mbed6/se.lth.control.mbed-cli.json b/mbed6/se.lth.control.mbed-cli.json new file mode 100644 index 0000000000000000000000000000000000000000..37574634df15a10bc2b8ee1d0a27ade953c6b61b --- /dev/null +++ b/mbed6/se.lth.control.mbed-cli.json @@ -0,0 +1,32 @@ +{ + "id" : "se.lth.control.mbed-cli", + "runtime" : "org.freedesktop.Platform", + "runtime-version" : "22.08", + "sdk" : "org.freedesktop.Sdk", + "build-options" : { + "no-debuginfo" : true + }, + "command" : "/app/mbed-cli", + "modules" : [ + "auto-ignore-installed.json", + "auto-simple.json", + "manual-util-linux.json", + "manual-arm-none-eabi-binutils.json", + "manual-XmpX.json", + "manual-arm-none-eabi-bootstrap-gcc.json", + "manual-arm-none-eabi-newlib.json", + "manual-arm-none-eabi-gcc.json", + "manual-git.json", + "manual-mbed-cli-wrap.json" + ], + "finish-args" : [ + "--filesystem=host", + "--filesystem=xdg-run/trampoline", + "--share=network", + // "--share=ipc", + "--talk-name=org.freedesktop.Flatpak", + // "--socket=x11", + // "--device=dri", + "--device=all" + ] +}