Package Details: stm32cubeprog 2.16.0-2

Git Clone URL: https://aur.archlinux.org/stm32cubeprog.git (read-only, click to copy)
Package Base: stm32cubeprog
Description: An all-in-one multi-OS software tool for programming STM32 products.
Upstream URL: https://www.st.com/en/development-tools/stm32cubeprog.html
Keywords: programmer stm32
Licenses: custom:SLA0048
Provides: stm32cubeprogrammer
Submitter: yjun
Maintainer: taotieren (GPereira, akumaexs)
Last Packager: GPereira
Votes: 8
Popularity: 0.43
First Submitted: 2021-01-15 20:39 (UTC)
Last Updated: 2024-03-24 02:35 (UTC)

Dependencies (7)

Required by (0)

Sources (2)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6

apaulsen commented on 2021-12-03 15:59 (UTC)

It's still failing for me. I'm seeing a different sha256sum than the old one and the new one that you changed to.

yjun commented on 2021-12-03 08:02 (UTC)

@apaulsen ok, fixed.

apaulsen commented on 2021-12-02 15:31 (UTC)

They may have re-rolled en.stsw-link007_V2-38-27.zip because that's failing the checksum test.

sl1pkn07 commented on 2021-10-28 23:00 (UTC) (edited on 2021-10-28 23:58 (UTC) by sl1pkn07)

there is my approach for this package.

-- Use system jdk17 (yes, no need jdk8), and unbundled java.
-- Use system Qt5.
-- Uses custom "installer" made by bash and use 'expect' program. using the original installer method. not need run any xorg method . all automagic.
-- And use fakeuser-git for make a fakeHOME as garbage collector :P.`
pkgname=stm32cubeprogrammer
pkgver=2.8.0
_pkg_file_name=en.stm32cubeprg-lin_v${pkgver//./-}_v${pkgver}.zip
pkgrel=1
pkgdesc='All-in-one multi-OS software tool for programming STM32 products.'
arch=("x86_64")
makedepends=('setconf'
             'chrpath'
             'expect'
             'fakeuser-git'
             )
depends=('java-runtime'
         'java-openjfx'
         'pcsclite'
         'openssl-1.0'
         'qt5-serialport'
         )
url='https://www.st.com/en/development-tools/stm32cubeprog.html'
license=('custom:ST')
options=(!strip)

_DOWNLOADS_DIR=`xdg-user-dir DOWNLOAD`
if [ ! -f ${PWD}/${_pkg_file_name} ]; then
  if [ -f $_DOWNLOADS_DIR/${_pkg_file_name} ]; then
    ln -sfn $_DOWNLOADS_DIR/${_pkg_file_name} ${PWD}
  else
    msg2 ""
    msg2 "The package can be downloaded here: "
    msg2 "Please remember to put a downloaded package ${_pkg_file_name} into the build directory ${PWD} or $_DOWNLOADS_DIR"
    msg2 ""
  fi
fi

source=("local://${_pkg_file_name}"
        'installer'
        )
sha256sums=('c896a9e2cd6c43c9d98a7271c52934eb7151c22117afdf6e8175e7c6a83fdc40'
            'SKIP'
            )
# noextract=("${_pkg_file_name}")

prepare(){
  cd "${srcdir}"
  export _FAKEUSER_DIR_="${srcdir}/garbage_collector"
  fakeadd -U -n garbage_collector -u 1000 -g 1000 -d "${srcdir}/garbage_collector"
}

build() {
  cd "${srcdir}"
  fakeuser ./installer "${srcdir}/SetupSTM32CubeProgrammer-${pkgver}.linux" "-console"
}

package() {
  cd "${srcdir}"
  eval "_files=($(find opt -type f -printf '"%h/%f" '))"
  for i in "${_files[@]}"; do install -Dm644 "${i}" "${pkgdir}/${i}"; done
  for i in $(find ${pkgdir}/opt/stm32cubeprogrammer/bin -maxdepth 1 -type f); do chmod 755 "${i}"; done
  for i in $(find ${pkgdir}/opt/stm32cubeprogrammer/lib -maxdepth 1 -name *.so -type f); do chmod 755 "${i}"; done

  # set system jre-17
  sed 's|\$DIR/jre/bin/java|/usr/lib/jvm/java-17-openjdk/bin/java \\\n --module-path /usr/lib/jvm/java-17-openjdk/lib/javafx.controls.jar:/usr/lib/jvm/java-17-openjdk/lib/javafx.fxml.jar:/usr/lib/jvm/java-17-openjdk/lib/javafx.web.jar:/usr/lib/jvm/java-17-openjdk/lib/javafx.graphics.jar:/usr/lib/jvm/java-17-openjdk/lib/javafx.base.jar:/usr/lib/jvm/java-17-openjdk/lib/javafx.media.jar \\\n --add-modules javafx.controls,javafx.fxml,javafx.web \\\n --add-exports javafx.graphics/com.sun.javafx.text=ALL-UNNAMED \\\n --add-exports javafx.graphics/com.sun.javafx.scene.text=ALL-UNNAMED \\\n --add-opens javafx.graphics/javafx.scene.text=ALL-UNNAMED \\\n --add-opens javafx.graphics/com.sun.javafx.text=ALL-UNNAMED \\\n|g' \
    -i "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32CubeProgrammer"

  cp "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32_Programmer.sh" "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32MP_SigningTool_CLI.sh"
  cp "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32_Programmer.sh" "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32MP_KeyGen_CLI.sh"
  cp "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32_Programmer.sh" "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32TrustedPackageCreator_CLI.sh"
  cp "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32_Programmer.sh" "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32TrustedPackageCreator.sh"
  mv "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32_Programmer.sh" "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32_Programmer_CLI.sh"
  mv "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32CubeProgrammer" "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32CubeProgrammer.sh"
  mv "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32CubeProgrammerLauncher" "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32CubeProgrammer"

  _sh=('STM32_Programmer_CLI.sh'
       'STM32CubeProgrammer.sh'
       'STM32MP_SigningTool_CLI.sh'
       'STM32MP_KeyGen_CLI.sh'
       'STM32TrustedPackageCreator.sh'
       'STM32TrustedPackageCreator_CLI.sh'
       )
  for i in ${_sh[@]}; do
    case ${i} in
      STM32CubeProgrammer.sh)
        sed 's|DIR|MYROOTDIR|g' -i "${pkgdir}/opt/stm32cubeprogrammer/bin/${i}"
        setconf "${pkgdir}/opt/stm32cubeprogrammer/bin/${i}" MYROOTDIR=/opt/stm32cubeprogrammer
        ;;
      *)
        setconf "${pkgdir}/opt/stm32cubeprogrammer/bin/${i}" MYROOTDIR=/opt/stm32cubeprogrammer
        ;;
    esac
    sed 's|\.\./||g' -i "${pkgdir}/opt/stm32cubeprogrammer/bin/${i}"
  done

  sed 's|STM32_Programmer|bin/STM32_Programmer|g' -i "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32_Programmer_CLI.sh"
  sed 's|STM32CubeProgrammerLauncher|bin/STM32CubeProgrammer|g' -i "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32CubeProgrammer.sh"
  sed 's|STM32_Programmer|bin/STM32MP_SigningTool|g' -i "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32MP_SigningTool_CLI.sh"
  sed 's|STM32_Programmer|bin/STM32MP_KeyGen|g' -i "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32MP_KeyGen_CLI.sh"
  sed 's|STM32_Programmer|bin/STM32TrustedPackageCreator|g' -i "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32TrustedPackageCreator_CLI.sh"
  sed 's|STM32_Programmer_CLI|bin/STM32TrustedPackageCreator|g' -i "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32TrustedPackageCreator.sh"

  install -d "${pkgdir}/usr/bin"
  ln -s /opt/stm32cubeprogrammer/bin/STM32_Programmer_CLI.sh "${pkgdir}/usr/bin/STM32_Programmer_CLI"
  ln -s /opt/stm32cubeprogrammer/bin/STM32CubeProgrammer.sh "${pkgdir}/usr/bin/STM32CubeProgrammer"
  ln -s /opt/stm32cubeprogrammer/bin/STM32MP_KeyGen_CLI.sh "${pkgdir}/usr/bin/STM32MP_KeyGen_CLI"
  ln -s /opt/stm32cubeprogrammer/bin/STM32MP_SigningTool_CLI.sh "${pkgdir}/usr/bin/STM32MP_SigningTool_CLI"
  ln -s /opt/stm32cubeprogrammer/bin/STM32TrustedPackageCreator.sh "${pkgdir}/usr/bin/STM32TrustedPackageCreator"
  ln -s /opt/stm32cubeprogrammer/bin/STM32TrustedPackageCreator_CLI.sh "${pkgdir}/usr/bin/STM32TrustedPackageCreator_CLI"

  install -d "${pkgdir}/usr/share/applications"
  cp "${srcdir}/garbage_collector/.local/share/applications/STM32CubeProgrammer.desktop" "${pkgdir}/usr/share/applications/STM32CubeProgrammer.desktop"
  cp "${srcdir}/garbage_collector/.local/share/applications/STM32TrustedPackageCreator.desktop" "${pkgdir}/usr/share/applications/STM32TrustedPackageCreator.desktop"
  sed -e "s|${srcdir}||g" \
      -e '/Encoding/d' \
      -e '/ServiceTypes/d' \
      -e '/SwallowExec/d' \
      -e '/SwallowTitle/d' \
      -e '/TerminalOptions/d' \
      -i "${pkgdir}/usr/share/applications/"*.desktop
  setconf "${pkgdir}/usr/share/applications/STM32CubeProgrammer.desktop" Terminal=false
  setconf "${pkgdir}/usr/share/applications/STM32CubeProgrammer.desktop" Categories=Development
  sed 's|bin/STM32CubeProgrammer|&.sh|g' -i "${pkgdir}/usr/share/applications/STM32CubeProgrammer.desktop"
  setconf "${pkgdir}/usr/share/applications/STM32TrustedPackageCreator.desktop" Terminal=false
  setconf "${pkgdir}/usr/share/applications/STM32TrustedPackageCreator.desktop" Categories=Development
  sed 's|bin/STM32TrustedPackageCreator|&.sh|g' -i "${pkgdir}/usr/share/applications/STM32TrustedPackageCreator.desktop"

  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/bin/jre"
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/doc/CLI_TREE.txt"
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/util/populateApi.bat"
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/util/"rights*.sh
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/util/copy_jre_linux.sh"
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/uninstaller"
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/.installationinformation"
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/IzPackLocaleEnabledXdgDesktopIconScript.sh"

  for i in lib bin; do
    setconf "${pkgdir}/opt/stm32cubeprogrammer/${i}/libstp11_SAM.so.conf" OutputFolder=/opt/stm32cubeprogrammer/bin/HSM/data/
    setconf "${pkgdir}/opt/stm32cubeprogrammer/${i}/libstp11_SAM.so.conf" InputFolder=/opt/stm32cubeprogrammer/bin/HSM/data/
  done

  chrpath -d "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32_Programmer_CLI"
  chrpath -d "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32MP_KeyGen_CLI"
  chrpath -d "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32MP_SigningTool_CLI"
  chrpath -d "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32TrustedPackageCreator"
  chrpath -d "${pkgdir}/opt/stm32cubeprogrammer/bin/STM32TrustedPackageCreator_CLI"

  chrpath -d "${pkgdir}/opt/stm32cubeprogrammer/lib/libPreparation.so.1"
  chrpath -d "${pkgdir}/opt/stm32cubeprogrammer/lib/libCubeProgrammer_API.so"
  chrpath -d "${pkgdir}/opt/stm32cubeprogrammer/lib/libCubeProgrammer_API.so.1"
  chrpath -d "${pkgdir}/opt/stm32cubeprogrammer/lib/libFileManager.so.1"

  chrpath -d "${pkgdir}/opt/stm32cubeprogrammer/updater/STM32CubePrgUpd"

  #unbundle Qt5
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/lib/"libQt5*
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/lib/"libicu*
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/"{bin,lib}/libcrypto.so*
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/bin/libssl.so"
  rm -fr "${pkgdir}/opt/stm32cubeprogrammer/bin/platforms"

  install -d "${pkgdir}/usr/share/licenses/stm32cubeprogrammer"
  ln -s /opt/stm32cubeprogrammer/doc/license.txt "${pkgdir}/usr/share/licenses/stm32cubeprogrammer/licence.txt"

}

installer

#!/usr/bin/expect -f
set APP [lindex $argv 0]
set OPT [lindex $argv 1]

set timeout 4
spawn $APP $OPT
  expect "Press 1" {
    send "1\n"
    exp_continue
  }
  expect "Select the installation path" {
    send "opt/stm32cubeprogrammer\n"
    exp_continue
  }
  expect {
    "Enter O" { send -- "O\n" ;  exp_continue }
    "Enter Y" { send -- "Y\n" ;  exp_continue }
  }
  expect "Press 1" {
    send "1\n"
    exp_continue
  }
  expect "Enter Y for" {
    send "Y\n"
    exp_continue
  }
  expect "Press 1" {
    send "1\n"
    exp_continue
  }
  expect "1/4" {
    set timeout 6
    exp_continue
  }
  expect "2/4" {
    exp_continue
  }
  expect "3/4" {
    exp_continue
  }
  expect "4/4" {
    exp_continue
  }
  expect "Create shortcuts" {
    send "Y\n"
    exp_continue
  }
  expect "Create additional shortcuts" {
    send "N\n"
    exp_continue
  }

greetings

yjun commented on 2021-09-01 17:19 (UTC)

@H0lmEd thanks! fixed.

H0lmEd commented on 2021-09-01 15:53 (UTC)

Crashing under wayland on KDE Plasma 5.22.5

Fixed by changing /usr/share/applications/stm32cubeprog.desktop:11

Exec=env GDK_BACKEND=x11 /opt/stm32cubeprog/bin/STM32CubeProgrammer

taotieren commented on 2021-07-20 13:06 (UTC)

Could you help me pack a stm8cubemx? Thank you!

https://my.st.com/content/my_st_com/en/products/development-tools/software-development-tools/stm8-software-development-tools/stm8-configurators-and-code-generators/stm8cubemx.html

not_anonymous commented on 2021-03-16 16:28 (UTC)

[XXXXX@parrot stm32cubeprog]$ makepkg ==> Making package: stm32cubeprog 2.7.0-1 (Tue 16 Mar 2021 10:24:55 AM MDT) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Retrieving sources... -> Found en.stm32cubeprg-lin_v2-7-0.zip -> Found stm32cubeprog.xdotool ==> Validating source files with sha256sums... en.stm32cubeprg-lin_v2-7-0.zip ... Passed stm32cubeprog.xdotool ... Passed ==> Extracting sources... -> Extracting en.stm32cubeprg-lin_v2-7-0.zip with bsdtar ==> Starting prepare()... ==> Starting build()...

please wait for minutes ......

./SetupSTM32CubeProgrammer-2.7.0.linux /home/XXXXX/.cache/yay/stm32cubeprog/src chdir /home/XXXXX/.cache/yay/stm32cubeprog/src/. current dir /home/XXXXX/.cache/yay/stm32cubeprog/src Command line arguments: icotool: /home/XXXXX/.cache/yay/stm32cubeprog/src/build/util/Programmer.ico: cannot open file ==> Entering fakeroot environment... ==> Starting package()... cp: cannot stat '/home/XXXXX/.cache/yay/stm32cubeprog/src/build/*': No such file or directory ==> ERROR: A failure occurred in package(). Aborting... [XXXXX@parrot stm32cubeprog]$ ls -al src/build/ total 8 drwxr-xr-x 2 XXXXX XXXXX4096 Mar 16 10:25 . drwxr-xr-x 5 XXXXX XXXXX 4096 Mar 16 10:25 .. [XXXXX@parrot stm32cubeprog]$

not_anonymous commented on 2021-03-16 16:22 (UTC) (edited on 2021-03-16 16:26 (UTC) by not_anonymous)

==> Starting build()...

please wait for minutes ......

./SetupSTM32CubeProgrammer-2.7.0.linux /home/XXXXX/.cache/yay/stm32cubeprog/src chdir /home/XXXXX/.cache/yay/stm32cubeprog/src/. current dir /home/XXXXX/.cache/yay/stm32cubeprog/src Error: Can't open display: (null) Failed creating new xdo instance ==> ERROR: A failure occurred in build(). Aborting... error making: stm32cubeprog [XXXXX@parrot ~]$ Command line arguments: Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using ':99' as the value of the DISPLAY variable. at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65) at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:115) at java.security.AccessController.doPrivileged(Native Method) at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:103) at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82) at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:132) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at java.awt.Toolkit$2.run(Toolkit.java:860) at java.awt.Toolkit$2.run(Toolkit.java:855) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:854) at javax.swing.UIManager.getSystemLookAndFeelClassName(UIManager.java:611)