nrfconnect: Refactor BLE module (#383190)

h7x4 bbbb1304 224fa978

Changed files
+59 -9
pkgs
by-name
nr
nrfconnect
nrfconnect-bluetooth-low-energy
se
segger-jlink
+48
pkgs/by-name/nr/nrfconnect-bluetooth-low-energy/package.nix
···
···
+
{
+
lib,
+
fetchurl,
+
appimageTools,
+
segger-jlink-headless,
+
libxshmfence,
+
}:
+
+
let
+
pname = "nrfconnect-bluetooth-low-energy";
+
version = "4.0.4";
+
+
src = fetchurl {
+
url = "https://github.com/NordicPlayground/pc-nrfconnect-ble-standalone/releases/download/v${version}/nrfconnect-bluetooth-low-energy-${version}-x86_64.AppImage";
+
hash = "sha256-mL8ky/cYjNgfUJgE7W5LFK/w7Ky9Xx6E84UT668HRAk=";
+
name = "${pname}-${version}.AppImage";
+
};
+
+
appimageContents = appimageTools.extractType2 {
+
inherit pname version src;
+
};
+
+
in
+
appimageTools.wrapType2 {
+
inherit pname version src;
+
+
extraPkgs = pkgs: [
+
segger-jlink-headless
+
libxshmfence
+
];
+
+
extraInstallCommands = ''
+
install -Dm444 ${appimageContents}/nrfconnect-bluetooth-low-energy.desktop -t $out/share/applications
+
install -Dm444 ${appimageContents}/usr/share/icons/hicolor/512x512/apps/nrfconnect-bluetooth-low-energy.png \
+
-t $out/share/icons/hicolor/512x512/apps
+
substituteInPlace $out/share/applications/nrfconnect-bluetooth-low-energy.desktop \
+
--replace-fail 'Exec=AppRun' 'Exec=nrfconnect-bluetooth-low-energy'
+
'';
+
+
meta = {
+
description = "Nordic Semiconductor Bluetooth low energy app for nRF Connect for Desktop";
+
homepage = "https://docs.nordicsemi.com/bundle/nrf-connect-ble/page/index.html";
+
license = lib.licenses.unfree;
+
platforms = lib.platforms.linux;
+
maintainers = with lib.maintainers; [ stargate01 ];
+
mainProgram = "nrfconnect-bluetooth-low-energy";
+
};
+
}
+4 -2
pkgs/by-name/nr/nrfconnect/package.nix
···
{
lib,
fetchurl,
appimageTools,
}:
let
···
inherit pname version src;
extraPkgs = pkgs: [
-
pkgs.segger-jlink-headless
];
extraInstallCommands = ''
···
install -Dm444 ${appimageContents}/usr/share/icons/hicolor/512x512/apps/nrfconnect.png \
-t $out/share/icons/hicolor/512x512/apps
substituteInPlace $out/share/applications/nrfconnect.desktop \
-
--replace 'Exec=AppRun' 'Exec=nrfconnect'
'';
meta = {
···
{
lib,
+
stdenv,
fetchurl,
appimageTools,
+
segger-jlink-headless,
}:
let
···
inherit pname version src;
extraPkgs = pkgs: [
+
segger-jlink-headless
];
extraInstallCommands = ''
···
install -Dm444 ${appimageContents}/usr/share/icons/hicolor/512x512/apps/nrfconnect.png \
-t $out/share/icons/hicolor/512x512/apps
substituteInPlace $out/share/applications/nrfconnect.desktop \
+
--replace-fail 'Exec=AppRun' 'Exec=nrfconnect'
'';
meta = {
+7 -7
pkgs/by-name/se/segger-jlink/package.nix
···
installPhase = ''
runHook preInstall
-
mkdir -p $out/opt
${lib.optionalString (!headless) ''
-
# Install binaries and runtime files into /opt/
-
mv J* ETC GDBServer Firmwares $out/opt
# Link executables into /bin/
mkdir -p $out/bin
-
for binr in $out/opt/*Exe; do
-
binrlink=''${binr#"$out/opt/"}
ln -s $binr $out/bin/$binrlink
# Create additional symlinks without "Exe" suffix
binrlink=''${binrlink/%Exe}
···
done
# Copy special alias symlinks
-
for slink in $(find $out/opt/. -type l); do
cp -P -n $slink $out/bin || true
rm $slink
done
···
# Install libraries
install -Dm444 libjlinkarm.so* -t $out/lib
for libr in $out/lib/libjlinkarm.*; do
-
ln -s $libr $out/opt
done
# Install docs and examples
···
installPhase = ''
runHook preInstall
+
mkdir -p $out/opt/SEGGER/JLink
${lib.optionalString (!headless) ''
+
# Install binaries and runtime files into /opt/SEGGER/JLink
+
mv J* ETC GDBServer Firmwares $out/opt/SEGGER/JLink
# Link executables into /bin/
mkdir -p $out/bin
+
for binr in $out/opt/SEGGER/JLink/*Exe; do
+
binrlink=''${binr#"$out/opt/SEGGER/JLink/"}
ln -s $binr $out/bin/$binrlink
# Create additional symlinks without "Exe" suffix
binrlink=''${binrlink/%Exe}
···
done
# Copy special alias symlinks
+
for slink in $(find $out/opt/SEGGER/JLink/. -type l); do
cp -P -n $slink $out/bin || true
rm $slink
done
···
# Install libraries
install -Dm444 libjlinkarm.so* -t $out/lib
for libr in $out/lib/libjlinkarm.*; do
+
ln -s $libr $out/opt/SEGGER/JLink
done
# Install docs and examples