1 Commits

Author SHA1 Message Date
Andreas Müller
f62fa64eca update-recipe-checksums: Repeat update procedure as checksums were replaced
There are two cases which are enhanced:

1. A recipe contains one tarball with new checksums: After replacement the
   script fetches again so a valid tarball is available right after running
   this script.
2. A recipe contains multiple tarballs with new checksums: All checksums are
   corrected and on exit tarballs are usable immedately without further fetch.

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2020-06-10 17:09:28 +02:00
28 changed files with 68 additions and 223 deletions

3
TODO
View File

@@ -1,5 +1,8 @@
These are tasks are planned:
OE:
* Introduce security_flags.inc
Scripts:
* get rid of bashisms
* dialog -> ncurses?

View File

@@ -1,5 +0,0 @@
# In our environment dnsmasq is used by networkmanager only. That takes care
# of all the configuration parameters necessary. Unfortunately this is broken
# by dnsmasq running as service: It is set-up by configuration files and that
# are not matching networkmanagers's needs.
SYSTEMD_AUTO_ENABLE_${PN} = "disable"

View File

@@ -1,3 +1 @@
inherit instant-sysroot-native
INSANE_SKIP += "native-last"

View File

@@ -7,11 +7,6 @@ PACKAGECONFIG_DISTRO += " \
inherit instant-paths
do_install_append() {
# at least KDE's extra-cmake-modules expect qmake-qt5
ln -s qmake ${D}/${bindir}/qmake-qt5
}
do_copy_to_target_sysroot_append() {
# ---------- qt.conf ----------
# create

View File

@@ -3,6 +3,8 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
BASEFILESISSUEINSTALL = "do_install_mortsgnaissue"
do_install_mortsgnaissue () {
echo ${MACHINE} > ${D}${sysconfdir}/hostname
install -m 644 ${WORKDIR}/issue* ${D}${sysconfdir}
if [ -n "${DISTRO_NAME}" ]; then
echo -n "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue

View File

@@ -1,3 +1 @@
inherit instant-sysroot-native
INSANE_SKIP += "native-last"

View File

@@ -1,5 +0,0 @@
# we want xf86-input-libinput and some BSP layers exceed their allowed limits :(
XSERVER_remove = " xf86-input-evdev "
# at least for test add xserver's standard xf86-video-modesetting
XSERVER_append = " xf86-video-modesetting"

View File

@@ -16,7 +16,7 @@ instant_sysroot_copy () {
hardlinkdir ${RECIPE_SYSROOT_NATIVE} ${INSTANT_NATIVE_PATH}
}
do_populate_sysroot[postfuncs] += "${INSTANTPOPULATE} "
do_populate_sysroot[postfuncs] += "${INSTANTPOPULATE}"
INSTANTPOPULATE = ""
INSTANTPOPULATE_class-native = "instant_populate_sysroot"
INSTANTPOPULATE_class-cross = "instant_populate_sysroot"

View File

@@ -114,16 +114,15 @@ ENABLE_BINARY_LOCALE_GENERATION_ep9312 = "0"
ENABLE_BINARY_LOCALE_GENERATION_armeb = "0"
# blacklist policy
PNBLACKLIST[pn-fso-apm] = "regular apmd is good enough"
PNBLACKLIST[weston-init] = "A passwordless root session reachable by two keys - security???"
PNBLACKLIST[packagegroup-core-x11] = "Conflicts with mortsgna-images"
PNBLACKLIST[xserver-nodm-init] = "Mortsgna-images use graphical display managers"
PNBLACKLIST[pn-fso-apm] = "regular apmd is good enough"
###############################################################################
# Quality & security hardening
###############################################################################
require conf/distro/include/security_flags.inc
# uncomment to enable security flags - images tested had issues
#require conf/distro/include/security_flags.inc
# disable static libs
require conf/distro/include/no-static-libs.inc
@@ -145,6 +144,8 @@ WARN_TO_ERROR_QA = " \
WARN_QA_remove = "${WARN_TO_ERROR_QA}"
ERROR_QA_append = " ${WARN_TO_ERROR_QA}"
PNBLACKLIST[weston-init] = "A passwordless root session reachable by two keys - security???"
###############################################################################
# Image defaults
###############################################################################

View File

@@ -8,7 +8,7 @@ BBFILE_COLLECTIONS += "mortsgna-layer"
BBFILE_PATTERN_mortsgna-layer := "^${LAYERDIR}/"
BBFILE_PRIORITY_mortsgna-layer = "7"
LAYERSERIES_COMPAT_mortsgna-layer = "dunfell gatesgarth hardknott"
LAYERSERIES_COMPAT_mortsgna-layer = "zeus dunfell"
# This is a compromise: Because of dynamic appends it needs oe-core only. Our
# images have a huge dependency list (see README). So the layers set here are

View File

@@ -1,64 +0,0 @@
Setup new image:
* BACKUP CURRENT HOME
* REMOVE NETWORK PLUG
* 1st login xfce
* copy this file to /home/morona / open with gedit / setup colour theme
As root:
* systemctl disable serial-getty@ttyS0
* systemctl disable serial-getty@ttyAMA0
* create /home/<user>/.asoundrc with (soundcards can be sndrpihifiberry/audioinjectorpi...)
pcm.!default {
type hw
card sndrpihifiberry
}
ctl.!default {
type hw
card sndrpihifiberry
}
* audioinjector: enable mixer control "Output Mixer HiFi"
* passwd
As user:
* passwd
* check session autostart (evt. disable blueman/baloo/tracker/scrensaver..)
* datetime: timezone
* optionally for a tiny better performance: reduce screen resolution (yes really tested: 1280x1024 / 1280x720 are fine)
* check /var/log/postinstall.log
* restart
* network plug
* check journalctl output
* check systemd-analyze: Can be 8-9s
* glmark2-es2: On Pi3 (no B+) ~145 / On Pi 4 ~269
* chromium unselect 'Allow Chromium-sign-in / add ad-blocker / check youtube music-video
* libreoffice: open documents to set libreoffice default
* jack setup
* qtractor midiimport / open reference-project and check all instruments
* ardour5/6
* qmmp/projectm
* mixxx
* vlc
* supercollider
* krita/kdenlive/kalzium
* set-up git (.gitconfig) / ssh-keygen -> github
* qt-creator
standard build directory:
/home/morona/tmp/qtbuilds/build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}
help/about plugins
disable ClangCodeModel
kit/compiler:
set gcc explicitly - clang causes trouble on qml-register functions
kit/cmake:
CMAKE_INSTALL_PREFIX:STRING=/home/morona/tmp/qtinstalls/usr
CMAKE_PREFIX_PATH:STRING=/home/morona/tmp/qtinstalls/usr;%{Qt:QT_INSTALL_PREFIX}
OE_QMAKE_PATH_EXTERNAL_HOST_BINS:STRING=/usr/bin
* clone avr projects & build them
* kicad: open example / check 3d preview
* mame: set video opengl / test some ROMs
* vice: select cairo
* dosbox / dosbox-x / stella
* supertux(kart??)
* open all gnome- / all kde-plasma- / lxqt- / liri- / lumina-sessions

View File

@@ -1,4 +1,4 @@
favorites=exo-terminal-emulator.desktop,exo-file-manager.desktop,exo-web-browser.desktop,qjackctl.desktop,ardour5.desktop,ardour6.desktop,lmms.desktop,muse.desktop,qtractor.desktop,rosegarden.desktop,mixxx.desktop,cgenie.desktop,vice_64.desktop
favorites=exo-terminal-emulator.desktop,exo-file-manager.desktop,exo-web-browser.desktop,qjackctl.desktop,ardour5.desktop,lmms.desktop,muse.desktop,qtractor.desktop,rosegarden.desktop,mixxx.desktop,cgenie.desktop,vice_64.desktop
recent=
button-title=Anwendungen
button-icon=xfce4-whiskermenu

View File

@@ -4,7 +4,6 @@ Show_Labels=false
str_fontsize=small
val_fontsize=1
Font=Sans 11
Update_Interval=1
Show_Units=true
Small_Spacings=false
Command_Name=xfce4-sensors

View File

@@ -1,38 +0,0 @@
SUMMARY = "GNOME disk utility"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SECTION = "x11/gnome"
DEPENDS = " \
gtk+3 \
libdvdread \
libcanberra \
libnotify \
libsecret \
libpwquality \
udisks2 \
"
GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gsettings gtk-icon-cache gettext features_check upstream-version-is-even mime-xdg
REQUIRED_DISTRO_FEATURES = "x11"
EXTRA_OEMESON = " \
-Dman=false \
"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
# As soon as elogind is of interest this needs rework: meson option is combo
PACKAGECONFIG[systemd] = "-Dlogind=libsystemd,-Dlogind=none,systemd"
SRC_URI[archive.sha256sum] = "dd033d3f36ab070bc72317cf3045e5b4927765543f1bce7612b2c7f96595167a"
FILES_${PN} += " \
${datadir}/metainfo \
${datadir}/dbus-1 \
"

View File

@@ -5,6 +5,7 @@ export IMAGE_BASENAME = "allgui-dev-image"
IMAGE_INSTALL += " \
packagegroup-gui-dev \
\
exo-csource \
xfce4-dev-tools \
libxfce4ui-glade \
"

View File

@@ -12,12 +12,9 @@ IMAGE_INSTALL += " \
systemd-bash-completion \
systemd-analyze \
cpufrequtils \
findutils \
htop \
util-linux-lsblk \
nano \
rsync \
wget \
"
IMAGE_DEV_MANAGER = "udev"

View File

@@ -5,27 +5,27 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
inherit packagegroup
RDEPENDS_${PN} = " \
qt5-creator qtwebengine-dev \
qt5-creator \
qtquickcontrols2-examples qtwayland-examples \
hexedit \
glade \
umbrello \
lokalize \
geany-plugins \
gtk+3-demo \
gtk-demo gtk+3-demo \
\
weston weston-xwayland \
\
unzip xz tar bzip2 \
make cmake extra-cmake-modules meson \
make cmake meson \
automake autoconf libtool m4 \
gcc-symlinks g++-symlinks cpp-symlinks libgomp-dev \
gcc-symlinks g++-symlinks cpp-symlinks \
dtc \
pkgconfig binutils-symlinks elfutils gnu-config \
gdb gdbserver \
valgrind \
git git-bash-completion git-perltools subversion \
python3-core \
git git-bash-completion subversion \
python python-shell python-subprocess \
python3 \
perl php vala lua php json-glib \
texinfo gettext \
patch quilt ncurses dialog \
@@ -34,18 +34,12 @@ RDEPENDS_${PN} = " \
chrpath \
nodejs nodejs-npm nodejs-systemtap \
\
ruby ruby-dev \
\
libeigen-dev \
\
wireshark \
nfs-utils-client \
lmsensors-sensord lmsensors-sensorsdetect \
\
pulseview qtiohelper \
\
${@bb.utils.contains_any('BBFILE_COLLECTIONS', 'browser-layer chromium-browser-layer', 'chromium-x11', '', d)} \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-microcontroller', 'meta-microcontroller-world', '', d)} \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'browser-layer', 'chromium-x11', '', d)} \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-microcontroller', 'packagegroup-avr', '', d)} \
"
RDEPENDS_${PN}_append_libc-glibc = " \
@@ -53,5 +47,5 @@ RDEPENDS_${PN}_append_libc-glibc = " \
"
# qemu
#
# valgrind

View File

@@ -12,8 +12,6 @@ RDEPENDS_${PN} = " \
source-han-sans-kr-fonts \
source-han-sans-jp-fonts \
source-han-sans-tw-fonts \
ttf-noto-emoji-color \
ttf-noto-emoji-regular \
\
tzdata-misc tzdata-africa \
tzdata-americas tzdata-antarctica tzdata-arctic tzdata-asia \
@@ -24,7 +22,6 @@ RDEPENDS_${PN} = " \
menulibre \
\
gparted \
gnome-disk-utility \
\
mpd \
vlc \
@@ -37,19 +34,19 @@ RDEPENDS_${PN} = " \
\
${MACHINE_SPECIFICS_FULL} \
\
${@bb.utils.contains_any('BBFILE_COLLECTIONS', 'browser-layer chromium-browser-layer', 'chromium-x11', '', d)} \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'browser-layer', 'chromium-x11', '', d)} \
\
${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-retro', 'mame dosbox dosbox-x cage cass80 z80 vice stella opentyrian d1x-rebirth', '', d)} \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-retro', 'mame dosbox cass80 z80 vice stella opentyrian d1x-rebirth', '', d)} \
\
${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'libreoffice abiword-meta', '', d)} \
\
${@bb.utils.contains('BBFILE_COLLECTIONS', 'games-layer', 'pingus supertuxkart supertux2 freeciv wesnoth-all astromenace chromium-bsu maelstrom scummvm', '', d)} \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'games-layer', 'pingus supertux2 freeciv wesnoth-all astromenace chromium-bsu maelstrom', '', d)} \
\
${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-musicians', 'packagegroup-gui-musicians', '', d)} \
\
${@bb.utils.contains('BBFILE_COLLECTIONS', 'sdr-layer', 'packagegroup-sdr-python-extended packagegroup-sdr-gnuradio-base packagegroup-sdr-gnuradio-extended packagegroup-sdr-rtlsdr packagegroup-sdr-uhd', '', d)} \
\
${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-qt5-extra', 'gottcode-world kde-apps-world qmlarkdown quaternion spectral', '', d)} \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-qt5-extra', 'gottcode-world kde-apps-world qmlarkdown', '', d)} \
"
# firefox

View File

@@ -7,9 +7,11 @@ inherit packagegroup
# Those listed here are either ugly or nonworking
RDEPENDS_${PN} = " \
atanks \
scummvm \
etr \
gnome-chess \
gnome-robots \
supertuxkart \
\
gnome-games \
mog \

View File

@@ -7,6 +7,7 @@ export IMAGE_BASENAME = "xfce4-dev-image"
IMAGE_INSTALL += " \
packagegroup-gui-dev \
\
exo-csource \
xfce4-dev-tools \
libxfce4ui-glade \
"

View File

@@ -1,30 +0,0 @@
require xfce4-music-image.bb
export IMAGE_BASENAME = "xfce4-music-dev-image"
XFCE_DM = "sddm sddm-morona-autologin"
IMAGE_INSTALL += " \
packagegroup-gui-dev \
\
xfce4-dev-tools \
libxfce4ui-glade \
\
packagegroup-gui-musicians \
\
${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'libreoffice', '', d)} \
${@bb.utils.contains_any('BBFILE_COLLECTIONS', 'browser-layer chromium-browser-layer', 'chromium-x11', '', d)} \
\
jack-dev \
lv2-dev \
libvorbis-dev \
aubio-dev \
libmad-dev \
libsamplerate0-dev \
rubberband-dev \
liblo-dev \
lilv-dev \
suil-dev \
serd-dev \
sord-dev \
"

View File

@@ -8,5 +8,5 @@ IMAGE_INSTALL += " \
packagegroup-gui-musicians \
\
${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'libreoffice', '', d)} \
${@bb.utils.contains_any('BBFILE_COLLECTIONS', 'browser-layer chromium-browser-layer', 'chromium-x11', '', d)} \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'browser-layer', 'chromium-x11', '', d)} \
"

View File

@@ -12,7 +12,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
# Feel free to add more...
BOOTPARTSPEC = "boot,vfat BOOT,vfat"
BOOTPARTSPEC_rpi = "rpi*,vfat"
BOOTPARTSPEC_rpi = "raspberrypi,vfat"
do_install () {
install -d ${D}${nonarch_base_libdir}/udev/rules.d

View File

@@ -83,8 +83,7 @@ SelectCardDevice() {
ErrorOut 'Cancel selected at SelectCardDevice().'
fi
DevicePath=${DevicePathArr[$menuitem]}
DeviceSize=`lsblk --nodeps --raw --noheadings --output SIZE --bytes $DevicePath`
DeviceSize=`lsblk --nodeps --raw --noheadings --output SIZE --bytes $dev`
unset menuitem
unset menuitems
fi
@@ -99,24 +98,16 @@ SelectCardDevice() {
# DeployFileDir: Path of the file selected
SelectDeployedFile() {
if [ -z "$DeployedFile" ]; then
if [ -z "$BITBAKE_TMPDIR" ]; then
GetBitbakeEnvVar "TMPDIR"
BITBAKE_TMPDIR="$BitbakeEnvVar"
fi
GetBitbakeEnvVar "TMPDIR"
_TMPDIR="$BitbakeEnvVar"
# bitbake environment found?
if [ -z "$BITBAKE_TMPDIR" ]; then
if [ -z "$_TMPDIR" ]; then
ErrorOut "Bitbake environment variable TMPDIR not found!"
fi
DeployPath=${BITBAKE_TMPDIR}/deploy/images/${Machine}
if [ ! -e ${DeployPath} ]; then
echo "${style_yellow}${style_bold}DeployPath: ${DeployPath}${style_normal}"
ErrorOut "Deploy path for ${Machine} not found! Wrong script started?"
fi
for FilePath in `find ${DeployPath} $FindString | sort` ; do
for FilePath in `find ${_TMPDIR}/deploy/images/${Machine} $FindString | sort` ; do
iCount=`expr $iCount + 1`
RootFileNameArr[${iCount}]="$FilePath"
FileSize=`du -Dbh "$FilePath" | cut -f1`
FileSize=`du -Dh "$FilePath" | cut -f1`
menuitems+=( "$iCount" "`basename $FilePath` / size: $FileSize" )
done

View File

@@ -20,11 +20,11 @@ RootCardWriteCallback() {
# write
StartMessage="\nWrite $DeployedFile to $DevicePath..."
if echo $DeployedFile | grep -q '.wic.gz'; then
EvalExAuto "gunzip -c $DeployedFile | dd of=$DevicePath status=progress oflag=nocache bs=1024K" "$StartMessage"
EvalExAuto "gunzip -c $DeployedFile | dd of=$DevicePath oflag=nocache bs=1024K" "$StartMessage"
elif echo $DeployedFile | grep -q '.wic.xz'; then
EvalExAuto "tar -x -f $DeployedFile --to-stdout | dd of=$DevicePath status=progress oflag=nocache bs=1024K" "$StartMessage"
EvalExAuto "tar -x -f $DeployedFile --to-stdout | dd of=$DevicePath oflag=nocache bs=1024K" "$StartMessage"
else
EvalExAuto "dd of=$DevicePath status=progress oflag=nocache if=$DeployedFile bs=1024K" "$StartMessage"
EvalExAuto "dd of=$DevicePath oflag=nocache if=$DeployedFile bs=1024K" "$StartMessage"
fi
# resize I
EvalExAuto "parted -s $DevicePath -- resizepart 2 -0" "\nResize I ${DevicePath}2..."

View File

@@ -20,9 +20,9 @@ RootCardWriteCallback() {
# write
StartMessage="\nWrite $DeployedFile to $DevicePath..."
if echo $DeployedFile | grep -q '.wic.gz'; then
EvalExAuto "gunzip -c $DeployedFile | dd of=$DevicePath status=progress oflag=nocache bs=1024K" "$StartMessage"
EvalExAuto "gunzip -c $DeployedFile | dd of=$DevicePath oflag=nocache bs=1024K" "$StartMessage"
else
EvalExAuto "dd of=$DevicePath status=progress oflag=nocache if=$DeployedFile bs=1024K" "$StartMessage"
EvalExAuto "dd of=$DevicePath oflag=nocache if=$DeployedFile bs=1024K" "$StartMessage"
fi
# resize I
EvalExAuto "parted -s $DevicePath -- resizepart 2 -0" "\nResize I ${DevicePath}2..."

View File

@@ -18,7 +18,7 @@ RootCardWriteCallback() {
# evt. write partition table
CheckPartitionTable "$DevicePath"
# write
EvalExAuto "dd of=$DevicePath status=progress oflag=nocache if=$DeployedFile bs=1024K" "\nWrite $DeployedFile to $DevicePath..."
EvalExAuto "dd of=$DevicePath oflag=nocache if=$DeployedFile bs=1024K" "\nWrite $DeployedFile to $DevicePath..."
# resize I
EvalExAuto "parted -s $DevicePath -- resizepart 2 -0" "\nResize I ${DevicePath}2..."
# resize II

View File

@@ -35,18 +35,26 @@ fi
echo
echo -e "${style_bold}Run bitbake -k --runall=fetch $@...${style_normal}"
bitbake -k --runall=fetch "$@" 2>&1 | while read line; do
if echo "$line" | grep -q "was expected"; then
# Shorten line to ensure not being confused by filenames containing spaces
line=`echo "$line" | sed 's:.*checksum ::'`
# Extract checksums
newchecksum=`echo "$line" | awk '{print $1}'`
oldchecksum=`echo "$line" | awk '{print $3}'`
# Lazy way: just grep for old checksums to find recipes
for recipe in `grep -rl "$oldchecksum" "${_TOPDIR}"`; do
if [ -f "$recipe" ]; then
EvalExAuto "sed -i '"s:$oldchecksum:$newchecksum:"' "$recipe"" "Change checksum in $recipe to $newchecksum"
fi
done
fi
while true; do
replaced=""
bitbake -k --runall=fetch "$@" 2>&1 | while read line; do
if echo "$line" | grep -q "was expected"; then
# Shorten line to ensure not being confused by filenames containing spaces
line=`echo "$line" | sed 's:.*checksum ::'`
# Extract checksums
newchecksum=`echo "$line" | awk '{print $1}'`
oldchecksum=`echo "$line" | awk '{print $3}'`
# Lazy way: just grep for old checksums to find recipes
for recipe in `grep -rl "$oldchecksum" "${_TOPDIR}"`; do
if [ -f "$recipe" ]; then
replaced="1"
EvalExAuto "sed -i '"s:$oldchecksum:$newchecksum:"' "$recipe"" "Change checksum in $recipe to $newchecksum"
fi
done
fi
done
if [ $replaced != "1" ]
break
fi
done