117 Commits

Author SHA1 Message Date
Andreas Müller
510508c16a Let all our images log volatile (not only xfce4-music-image)
should have done this much earlier:

* Don't ruin sd-cards on machines running 24/7
* On Raspi4 it buys us boot time reduced by ~2s
* Was never happy about the misleading entries in journal from boots long ago

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2020-05-10 13:23:13 +02:00
Andreas Müller
add8cea9aa console-net-image: add networkmanager-openvpn
In times of home-office users might want to tunnel to copmpany's network

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2020-03-18 18:20:26 +01:00
Andreas Müller
feb55c3052 instant-sysroot-target: move task copy_to_target_sysroot out of conflict zone
First results from scratch showed that previous commit did not work and set
copy_to_target_sysroot at a very early position beginning.

With default PACKAGE_CLASSES = "package_ipk" (no package_deb / package_rpm)
task order looks as expected without bb.utils.contains-dance

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
(cherry picked from commit 549b52ed48)
2020-02-03 11:41:55 +01:00
Andreas Müller
d0ed2eca11 instant-sysroot-target: move task copy_to_target_sysroot out of conflict zone
Task copy_to_target_sysroot creates hardlinks and can run in parallell to e.g
package_ipk which causes sporadic failures as:

| Subprocess output:tar: ./usr/bin/.debug/guitarix: file changed as we read it
| ERROR: Logfile of failure stored in: <...>/temp/log.do_package_write_ipk.25489

There is not much we can do about host's tar
(see https://lists.gnu.org/archive/html/bug-tar/2007-08/msg00013.html) so
ensure copy_to_target_sysroot does not run parallel to package_deb /
package_ipk / package_rpm (depending on what PACKAGE_CLASSES sets).

Fixes [1]

[1] https://github.com/schnitzeltony/meta-mortsgna/issues/12

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
(cherry picked from commit 0cf33d763e)
2020-02-03 11:41:29 +01:00
Andreas Müller
16e566b32a Upgrade DISTRO_VERSION
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2020-01-02 16:37:25 +01:00
Andreas Müller
bb5833ad59 libxfce4ui: give up glade for gtk2 support
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-12-10 18:10:29 +01:00
Andreas Müller
9883633e4f mortsgna-libc-musl: remove ldconfig from distro-features
| Nothing RPROVIDES 'ldconfig' (but openembedded-core/meta/recipes-core/systemd/systemd_243.bb RDEPENDS on or otherwise requires it)

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-12-08 15:38:37 +01:00
Andreas Müller
63d5a3b6ab libsoup: give up gnome PACKAGECONFIG
It is not necessary and cause me trouble upstreaming meta-gnome patches

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-12-08 01:43:56 +01:00
Andreas Müller
aa68922983 xfce4-default-config: rework terminal's defaults
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-11-26 15:10:16 +01:00
Andreas Müller
f90d639dfa Extend nodejs to full installation
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-11-26 15:10:04 +01:00
Andreas Müller
851fc4da51 allgui-full-/-dev-images: add nodejs
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-11-22 08:07:37 +01:00
Andreas Müller
a33b93ac66 Add developer packages to our full images
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-11-14 08:49:10 +01:00
Andreas Müller
598e4004a6 README.md: fix typo
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-11-13 19:25:10 +01:00
Andreas Müller
2442ec1ee0 update-recipe-checksums.sh: add optional -d param to set directory
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-10-18 00:59:34 +02:00
Andreas Müller
1b9960f253 Mark zeus as compatible release
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-10-10 00:18:39 +02:00
Andreas Müller
56b6d11605 scripts: prepare scipts to write bbone images based upon wic
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-09-19 12:43:58 +02:00
Andreas Müller
6553814e86 instant-sysroot-target.bbclass: Minor corrections on remote debug instructions
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-09-10 22:03:47 +02:00
Andreas Müller
1847519cf3 packagegroup-gui-tiny: remove eglinfo-x11 - it was removed in oe-core
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-09-08 01:11:31 +02:00
Andreas Müller
d4c5383948 packagegroup-xfce-extended: add imsettings
Maybe this should go to meta-xfce

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-09-03 00:41:34 +02:00
Andreas Müller
1760eea00f evolution-data-server: disable introspection
qemu runs with 100% CPU load and never returns

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-08-29 00:24:21 +02:00
Andreas Müller
84ad5be0a9 xfce4-settings: remove datetime-setter from PACKAGECONFIG
It is included automatically

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-08-12 08:42:28 +02:00
Andreas Müller
92bd1073c6 udisks_%.bbappend: remove - udisks is gone and we use udisks2 for ages
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-08-11 13:56:38 +02:00
Andreas Müller
fe42ec1128 xfce4-default-config: disable xfce4-screensaver
All my machines do not properly come back from black screen

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-06-04 13:35:09 +02:00
Andreas Müller
3ca852b598 Make src-uri-bad an error
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-05-26 02:34:43 +02:00
Andreas Müller
4801bf3cd5 libxfce4ui: build gtk3 variant of glade lib
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-05-21 23:31:25 +02:00
Andreas Müller
aa09cecd96 packagegroup-gui-dev: add glade
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-05-21 23:21:28 +02:00
Andreas Müller
1d155d9d88 packagegroup-gui-tiny: remove bind
In the current state is just slows down boot and creates scary messages:

| May 07 14:08:10 raspberrypi3 named[205]: listening on IPv6 interfaces, port 53
| May 07 14:08:10 raspberrypi3 named[205]: binding TCP socket: address in use
| May 07 14:08:10 raspberrypi3 named[205]: listening on IPv4 interface lo, 127.0.0.1#53
| May 07 14:08:10 raspberrypi3 systemd[1]: Received SIGRTMIN+21 from PID 155 (plymouthd).
| May 07 14:08:10 raspberrypi3 named[205]: binding TCP socket: address in use
| May 07 14:08:10 raspberrypi3 named[205]: unable to listen on any configured interfaces
| May 07 14:08:10 raspberrypi3 named[205]: loading configuration: failure
| May 07 14:08:10 raspberrypi3 named[205]: exiting (due to fatal error)
| May 07 14:08:10 raspberrypi3 systemd[1]: plymouth-start.service: Succeeded.
| May 07 14:08:10 raspberrypi3 NetworkManager[165]: <info>  [1557230890.2486] manager: (eth0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2)
| May 07 14:08:10 raspberrypi3 dbus-daemon[162]: [system] Activating via systemd: service name='org.freedesktop.PolicyKit1' unit='polkit.service' requested by ':1.5' (uid=0 p>
| May 07 14:08:10 raspberrypi3 NetworkManager[165]: <info>  [1557230890.2729] ovsdb: Could not connect: No such file or directory
| May 07 14:08:10 raspberrypi3 systemd[1]: named.service: Control process exited, code=exited, status=1/FAILURE
| May 07 14:08:10 raspberrypi3 systemd[1]: named.service: Failed with result 'exit-code'.
| May 07 14:08:10 raspberrypi3 systemd[1]: Failed to start Berkeley Internet Name Domain (DNS).

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-05-07 15:14:04 +02:00
Andreas Müller
05a420b9d4 allgui-base-image: replace lumina by lumina-world
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-29 22:59:20 +02:00
Andreas Müller
2c73bd74f9 README.md: add missing meta-rust
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-29 22:25:12 +02:00
Andreas Müller
4609be5aa2 Follow Yocto version scheme
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-27 19:29:56 +02:00
Andreas Müller
2d846191c0 rework IMAGE_LINGUAS to enable musl-crap builds
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-24 13:37:52 +02:00
Andreas Müller
6ed688828b vlc: add qt5 to PACKAGECONFIG
* Attempts to  enable qt5 by default failed [1]
* Requires meta-oe patch [2]

[1] http://lists.openembedded.org/pipermail/openembedded-devel/2019-April/199331.html
[2] https://patchwork.openembedded.org/patch/160618/

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-23 13:57:24 +02:00
Andreas Müller
82ab133fda packagegroup-gui-full: add vlc
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-20 23:45:14 +02:00
Andreas Müller
81f899aee6 Another default language rework
* re-add fallback in profile: currently no LANG is set by systemd
* Fix typos in locale.conf

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-19 13:30:06 +02:00
Andreas Müller
fd2831e6fb Rework default language handling
* install locale.conf to override systemd/oe-core default
* remove profile hacks
* ensure there is a default UTF-8 lingua installed (selection might change when
  C.UTF-8 is established

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-19 01:06:28 +02:00
Andreas Müller
a735f099a6 instant-sysroot-target: rework our qtcreator remote debug instructions
Had some trouble to make it run - so write down what's necessary for next time

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-13 00:41:33 +02:00
Andreas Müller
3f10ead336 Now that that my patch was applied harden patch-fuzz to error
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-12 02:10:37 +02:00
Andreas Müller
85f4695cff xfce4-default-config: remove useless or broken presets
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-11 14:47:57 +02:00
Andreas Müller
ab38d6e19f Move gnome-system-monitor packagegroup-gui-full -> packagegroup-gui-tiny
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-11 14:18:07 +02:00
Andreas Müller
7e73138dbb xfce4-default-config: set default icon- and cursor-theme to adwaita
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-11 14:18:07 +02:00
Andreas Müller
57d6439f6b packagegroup-gui-full: add all gstreamer plugins found
Am tired of guessing what parole might need to show videos. With all
gstreamer-plugins installed parole now plays local video files.

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-10 23:28:06 +02:00
Andreas Müller
9657f9bbfa Make 'invalid-packageconfig' sabnity check an error
Avoid these warning to be overseen

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-03 16:58:59 +02:00
Andreas Müller
723f54fb82 gst-plugins: Move to right place and remove 'mad' from PACKAGECONFIG in -ugly
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-03 16:53:52 +02:00
Andreas Müller
11764a3c93 layer.conf: Add warrior to compatible release series
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-02 16:38:57 +02:00
Andreas Müller
fe7b051c0b move glibc-utils console-base-image -> packagegroup-gui-dev
Add for libc glibc only

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-04-02 03:09:10 +02:00
Andreas Müller
c374bfe685 Revert "mortsgna-libc-musl.inc: disable gobject-introspection for musl"
Before disabling all we need to check if this is a correct assumption.

This reverts commit 95189c7710.
2019-04-01 18:04:23 +02:00
Andreas Müller
95189c7710 mortsgna-libc-musl.inc: disable gobject-introspection for musl
My opinion: This should go to oe-core/goblcect-introspection-data.bbclass
instead of ajusting recipes all over - but...

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-31 22:18:50 +02:00
Andreas Müller
b67d620c97 mortsgna-distro-features.inc: prettify list of distro features
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-31 22:17:45 +02:00
Andreas Müller
c77b7e05cd mortsgna-libc-glibc.inc: Remove TARGET_OS overrides
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-29 01:23:18 +01:00
Andreas Müller
a841a014c3 mortsgna-libc-*.inc: remove unused paramaters from getVar
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-28 21:41:32 +01:00
Andreas Müller
684f765d27 mortsgna-libc-*.inc: Do not override TARGET_LINK_HASH_STYLE
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-28 21:33:45 +01:00
Andreas Müller
b2f57e0f17 mortsgna-armv7-tune.inc: remove True option in getVar calls
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-28 21:26:41 +01:00
Andreas Müller
ab5bf122e9 base-files: Found LANG"='C.UTF-8' culprit - drop as note
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-27 16:00:22 +01:00
Andreas Müller
b4d2e1834d base-files: Fix german umlaute and more (again)
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-27 15:41:23 +01:00
Andreas Müller
010614c7b9 README rework layer info III 2019-03-26 12:48:13 +01:00
Andreas Müller
d09afce6f8 README rework layer info II 2019-03-26 12:44:17 +01:00
Andreas Müller
9efa80d926 README rework layer info 2019-03-26 12:40:14 +01:00
Andreas Müller
9a8ab2f035 another pretification for README 2019-03-26 12:31:02 +01:00
Andreas Müller
7de041956a README: more links 2019-03-26 01:45:15 +01:00
Andreas Müller
8dceec4bbb README: copy & paste... 2019-03-26 01:34:15 +01:00
Andreas Müller
23ebf7f38f Prettify README II 2019-03-26 01:31:34 +01:00
Andreas Müller
5ad14a2d73 Prettify README 2019-03-26 01:22:56 +01:00
Andreas Müller
51c94f5066 README -> README.md
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-26 00:16:06 +01:00
Andreas Müller
20ac15f967 xfce4-default-config: remove xfce4-mixer defaults
Wow: they contained gumstix overo defaults!!!

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-21 00:05:37 +01:00
Andreas Müller
98de75b63b Add cmake to our native sysroot
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-20 13:49:15 +01:00
Andreas Müller
769a0e0f32 instant-sysroot-native.bbclass: handle filenames with spaces properly
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-20 13:29:07 +01:00
Andreas Müller
a7ae6d978b Follow split of meta-qt5-extra -> meta-musicians
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-17 18:57:36 +01:00
Andreas Müller
4f7eb763c8 libsdl2: append jack to PACKAGECONFIG
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-14 21:53:22 +01:00
Andreas Müller
9fc26f7ba0 libsoup: append gnome to PACKAGECONFIG
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-14 21:51:54 +01:00
Andreas Müller
ed61a8799f replace oe-core's image-buildinfo by image-buildinfo-mortsgna
OE-cores's version is missing important information and it is not that I did
not try it...

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-03-14 18:02:10 +01:00
Andreas Müller
9583c42495 base-files: remove unwanted ']' in bash prompt
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-27 15:33:04 +01:00
Andreas Müller
202192d55a enable examples for qtquickcontrols2/qtwayland and add to packagegroup-gui-dev
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-27 14:23:22 +01:00
Andreas Müller
ef94f5cac4 instant-sysroot-native.bbclass: add a sentence of what this class is doing
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-22 23:42:16 +01:00
Andreas Müller
0d0764b1a7 base-files: extend colour to all grep variants
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-22 18:04:18 +01:00
Andreas Müller
a321532a82 grep with color
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-22 10:26:04 +01:00
Andreas Müller
2afa50d1f0 packagegroup-gui-dev: add weston
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-22 09:46:02 +01:00
Andreas Müller
590b8ca8bb rework bash defaults
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-20 18:55:20 +01:00
Andreas Müller
e7a7e65c17 base-passwd: let bash be the default shell for root
* we prefer bash in our images anyway
* makes default configuration more simple

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-20 17:47:30 +01:00
Andreas Müller
d916915ce3 Revert "base-files: make bash-completion work"
This reverts commit a16e65298a.
2019-02-20 11:16:39 +01:00
Andreas Müller
e0ce02ae9c packagegroup-gui-dev: add chromium-x11
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-20 10:03:37 +01:00
Andreas Müller
49bed45070 Add more bash-completion to our images
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-20 00:23:59 +01:00
Andreas Müller
35a709c7e6 Move bash-completion packagegroup-gui-tiny -> console-base-image
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-20 00:16:37 +01:00
Andreas Müller
a16e65298a base-files: make bash-completion work
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-20 00:04:27 +01:00
Andreas Müller
eaecabbc59 xfce4-dev-image/xfce4-full-image: login with sddm instead of lxdm
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-18 18:09:29 +01:00
Andreas Müller
5f0aa504e4 xfce4-dev-image: derive from xfce4-tiny-image
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-18 11:32:06 +01:00
Andreas Müller
0389e6a080 packagegroup-gui-dev: rework
* remove qt dependencies - qt5-creator takes care / don't install -dbg packages
  they explode image size
* add python3

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-18 11:27:32 +01:00
Andreas Müller
2eacce9896 packagegroup-gui: add maelstrom
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-14 18:13:39 +01:00
Andreas Müller
48dfeb0ce2 packagegroup-gui-full: add astromenace / chromium-bsu
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-12 17:28:04 +01:00
Andreas Müller
e602738f22 packagegroup-gui-music: add pulseaudio -> jack modules
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-10 23:56:00 +01:00
Andreas Müller
0f00f37c8d chromium%.bbappend: Split to more specific appends
Avoid conflict with upcoming chromium-bsu

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-02-08 17:40:58 +01:00
Andreas Müller
3c4eb9919d packagegroup-gui-full: replace single recipes by gottcode-world
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-01-25 14:06:23 +01:00
Andreas Müller
5ee9a3271c update-recipe-checksums.sh: accept multiple recipes
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-01-23 23:30:15 +01:00
Andreas Müller
21b2447183 Add polkit to DISTRO_FEATURES
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-01-23 17:51:27 +01:00
Andreas Müller
6b4c68e8c4 gstreamer1.0-plugins-bad: remove gtk from PACKAGECONFIG - it is gone
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-01-17 21:52:42 +01:00
Andreas Müller
ebd94e2afd re-add openssh-sftp to TASK_BASIC_SSHDAEMON
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-01-11 14:05:40 +01:00
Andreas Müller
0184428974 Rework network/ssh package addings
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-01-10 18:45:26 +01:00
Andreas Müller
3161bf4239 console-net-image: allow users to select a alternate networkmanager
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-01-10 18:16:45 +01:00
Andreas Müller
7f2ea5ab33 Furher work on instant sdk
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2019-01-02 09:37:07 +01:00
Andreas Müller
565e1a19cd liri-base-image: re-add
liri is not yet starting but we are working on it

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-22 15:56:51 +01:00
Andreas Müller
d3c9bdef55 xfce4-default-config: remove xfce4-xkb-plugin from panel
It was alway a workaround. Now that libxklavier works fine with xfce4-settings
xfce4-xkb-plugin can go.

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-16 21:00:57 +01:00
Andreas Müller
aa892ad0fc instant-sysroot-native: copy (broken) symlinks too
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-14 13:52:16 +01:00
Andreas Müller
635aadf003 allgui-base-image: add liri world
Up to now there are only apps and libs building. As soon as liri-shell is back
there will be liri-only images.

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-13 02:42:49 +01:00
Andreas Müller
cfb70c1ddf qtbase: Adjust path to HostBinaries
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-10 10:52:38 +01:00
Andreas Müller
835bfa17ab qtcreator-sdk-prepare: Initial add
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-07 15:52:37 +01:00
Andreas Müller
f3c630d617 console-net-image: remove openssh-sftp-server
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-07 15:44:53 +01:00
Andreas Müller
8832368b22 qtbase: do not effective paths to qt.conf - qtcreator does not like them
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-07 15:21:30 +01:00
Andreas Müller
6d38466293 Use more consistent names for our instant-classes
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-07 14:11:10 +01:00
Andreas Müller
30da1979e6 qtbase / sysroots: Fix qt.conf / adjust mkspecs
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-07 13:32:24 +01:00
Andreas Müller
7b6f297ad0 instant-remote-debug.bbclass: overall enhancements
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-07 13:31:03 +01:00
Andreas Müller
17e7b655c1 instant-remote: rename task do_copytocrosssysroot -> do_copy_to_cross_sysroot
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-07 11:33:11 +01:00
Andreas Müller
6003d4d3b5 TODOText
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-06 19:02:33 +01:00
Andreas Müller
8b8213afad qtbase: ship a valid qmake configuration in our cross sysroot
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-06 18:54:54 +01:00
Andreas Müller
dc93483c39 instant-remote-debug.bbclass: rename copysourcestosysroot -> copytocrosssysroot
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-06 18:25:18 +01:00
Andreas Müller
30f117019f instant-*.bbclass: split out path settings to common instant-paths.bbclass
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-06 18:10:44 +01:00
Andreas Müller
ed6923ecef instant-remote-debug: Add -dev and -mkspecs to cross sysroot
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-06 17:57:00 +01:00
Andreas Müller
79f7f61ce1 Get qtbase-native in our sysroot / rename sysroot variables
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-06 17:22:24 +01:00
Andreas Müller
6e75bd8c4a instant-remote-debug: rework
* make sure sysroot is filled when package or machine changes
* use hardlinkdir from utils.bbclass instead of slow loop
* design decissopn: do not use sstate cache - it copies files instead of using
  cheap hardlinks
* rework cleanup

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-12-06 01:23:18 +01:00
69 changed files with 950 additions and 579 deletions

177
README
View File

@@ -1,177 +0,0 @@
.-. .-.
| \ / | .-.
| \/ |.-----.----.| | .-----.-----.-----..----.
| || | .-'| '--.| ---' __ | |.-- |
| | || ' | | | --'|--- | | | | ' \
'----'---''-----'--' '----''-----'--. |--'--''--`--`
.-' |
'----'
meta-mortsgna is yet another distribution layer. It is based on Ångström
distribution - check https://github.com/Angstrom-distribution/meta-angstrom.
The target of this layer is to build images with the best out-of-the-box
experience and to support developers with helpers for common tasks.
-------------------------------------------------------------------------------
Layer maintainer: Andreas Müller <schnitzeltony@gmail.com>
-------------------------------------------------------------------------------
Additionally this layer checks the following variable in local.conf:
* MORTSGNA_ARMV7_TUNE:
If this variable is set to "1", all armv7a / cortex variants are build as
armv7a.
+ Reduce build time/disk-space required when building for multiple machines
- Build optimization (e.g vfp/NEON) is not the best your machine can get
Rules of thumb:
* If you build images for multiple armv7 machines and don't need to tickle
the last quarter of your machine's performance:
Set MORTSGNA_ARMV7_TUNE="1"
* If you are looking for best optimization for your machine and/or you have
a fast build host with lots of disk-space: don't!
see conf/distro/include/mortsgna-armv7-tune.inc for more information
-------------------------------------------------------------------------------
The following image-features are (re-)added:
* x11-base: Let systemd boot into grahical target
* volatile-log: If set, journal goes to volatile /run/log and /var/log is
linked to /run/log which is volatile.
NOTE: We change OE-Core's default here: In bitbake.conf VOLATILE_LOG_DIR is
enabled so that all images are build for volatile log. Since this is far off
what others do change the default.
See conf/distro/include/mortsgna-image-logfile-volatile.inc for more
information.
-------------------------------------------------------------------------------
This layer contains the following folders:
appends:
All bbappends are stored in this folder. For each layer a sub-folder exists
and the appends are dynamic: If a layer is not in bblayers.conf the folder
for the layer is ignored (see conf/layer.conf).
classes:
* instant-remote-debug.bbclass: Create a sysroot for remote debugging -
Yocto's suggested workflows are cumbersome for ad-hoc remote debugging.
* instant-native-sysroot.bbclass: Native recipes inheriting this class
install everything necessary to run into a native sysroot. It's like a
quick & minimal native SDK. Currently gcc-cross and gdb-cross inherit this
class to enable instant remote debugging.
* user-with-full-skel.bbclass: Helper to populate /etc/skel in user's
home at image creation time.
conf:
layer.conf / and distro configurations
recipes-defaultconfig:
* default configurations for lxqt and xfce to get a preconfigured
environment. Note that all data is stored in th image at /etc/skel
* unpriv-user: A default non root user (named morona) member of many groups
required for daily operations. It is shipped with home folder populated
form /etc/skel.
recipes-image:
All images for console / kde / lxqt / xfce ar found. allgui-images build
images for all graphical environments.
recipes-utlis:
* udev-rules-udisks-hide-bootpart: Hide boot partition from udisks
* Some tools (these are the only left from angstrom). Honestly: Have never
used them but kept them if users come from angstrom and might miss
them.
scripts:
A script collection
* to write images or kernel only to sdcards
* for changing recipe checksums automatically after version bump
-------------------------------------------------------------------------------
This layer depends on:
URI: git://git.openembedded.org/openembedded-core
branch: master
revision: HEAD
For building console images:
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-oe
branch: master
revision: HEAD
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-networking
branch: master
revision: HEAD
-------------------------------------------------------------------------------
Other layers are required when building 'GUI images'
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-gnome
branch: master
revision: HEAD
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-multimedia
branch: master
revision: HEAD
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-python
branch: master
revision: HEAD
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-xfce
branch: master
revision: HEAD
URI: git://github.com/meta-qt5/meta-qt5.git
branch: master
revision: HEAD
URI: git://github.com/schnitzeltony/meta-qt5-extra.git
branch: master
revision: HEAD
URI: git://github.com/schnitzeltony/meta-office.git
branch: master
revision: HEAD
URI: git://github.com/OSSystems/meta-browser.git
branch: master
revision: HEAD
URI: git://github.com/cazfi/meta-games.git
branch: master
revision: HEAD
URI: git://github.com/schnitzeltony/meta-retro
branch: master
revision: HEAD
-------------------------------------------------------------------------------
To add plymouth to 'GUI images'
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-initramfs
branch: master
revision: HEAD
-------------------------------------------------------------------------------
To hear radio
URI: git://github.com/balister/meta-sdr.git
Layer: meta-initramfs
branch: master
revision: HEAD

230
README.md Normal file
View File

@@ -0,0 +1,230 @@
# meta-mortsgna: (more than) yet another distro layer
The target of this layer is to build images with the best out-of-the-box experience and to support developers with helpers for common tasks.
It has its origin Ångström distribution - check https://github.com/Angstrom-distribution/meta-angstrom.
----------------------------------------------
### Additional global variable for local.conf:
* MORTSGNA_ARMV7_TUNE:
If this variable is set to "1", all armv7a / cortex variants are build as
armv7a.
\+ Reduce build time/disk-space required when building for multiple machines
\- Build optimization (e.g vfp/NEON) is not the best your machine can get
Rules of thumb:
* If you build images for multiple armv7 machines and don't need to tickle
the last quarter of your machine's performance:
Set MORTSGNA_ARMV7_TUNE="1"
* If you are looking for best optimization for your machine and/or you have
a fast build host with lots of disk-space: don't!
see [mortsgna-armv7-tune.inc](conf/distro/include/mortsgna-armv7-tune.inc) for more information
------------------------------------------------
### The following image-features are (re-)added:
* x11-base:
Let systemd boot into grahical target
* volatile-log:
If set, journal goes to volatile /run/log and /var/log is linked to /run/log
which is volatile. NOTE: We change OE-Core's default here: In bitbake.conf
VOLATILE_LOG_DIR is enabled so that all images are build for volatile log.
Since this is far off what others do change the default. See
[mortsgna-image-logfile-volatile.inc](conf/distro/include/mortsgna-image-logfile-volatile.inc) for more
information.
----------------------------------------------
### This layer contains the following folders:
[appends](appends):
* All bbappends are stored in this folder. For each layer a sub-folder exists
and the appends are dynamic: If a layer is not in bblayers.conf the folder
for the layer is ignored (see conf/layer.conf).
[classes](classes):
* [instant-sysroot-target.bbclass](classes/instant-sysroot-target.bbclass): Create a sysroot for target remote
building/debugging - Yocto's suggested workflows are cumbersome for ad-hoc
usage.
* [instant-sysroot-native.bbclass](classes/instant-sysroot-native.bbclass): Native recipes inheriting this class
install everything necessary to run into a native sysroot. For a
quick & minimal native SDK gcc-cross and gdb-cross inherit this class.
class to enable instant remote debugging.
* [user-with-full-skel.bbclass](classes/user-with-full-skel.bbclass): Helper to populate /etc/skel in user's
home at image creation time.
[conf](conf):
* layer.conf / and distro configurations
[recipes-defaultconfig](recipes-defaultconfig):
* default configurations for lxqt and xfce to get a preconfigured
environment. Note that all data is stored in th image at /etc/skel
* unpriv-user: A default non root user (named morona) member of many groups
required for daily operations. It is shipped with home folder populated
form /etc/skel.
[recipes-image](recipes-image):
* All images for console / kde / lxqt / xfce ar found. allgui-images build
images for all graphical environments.
[recipes-utils](recipes-utils):
* udev-rules-udisks-hide-bootpart: Hide boot partition from udisks
* Some tools (these are the only left from angstrom). Honestly: Have never
used them but kept them if users come from angstrom and might miss
them.
[scripts](scripts):
A script collection
* to write images or kernel only to sdcards
* for changing recipe checksums automatically after version bump -> [update-recipe-checksums.sh](scripts/update-recipe-checksums.sh)
--------------------------
### This layer depends on:
```
URI: git://git.openembedded.org/openembedded-core
branch: master
revision: HEAD
```
#### For building console-images:
```
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-oe
branch: master
revision: HEAD
```
```
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-networking
branch: master
revision: HEAD
```
#### For building GUI-images:
```
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-gnome
branch: master
revision: HEAD
```
```
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-multimedia
branch: master
revision: HEAD
```
```
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-python
branch: master
revision: HEAD
```
```
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-xfce
branch: master
revision: HEAD
```
```
URI: git://github.com/meta-qt5/meta-qt5.git
branch: master
revision: HEAD
```
```
URI: git://github.com/schnitzeltony/meta-qt5-extra.git
branch: master
revision: HEAD
```
#### To add plymouth to GUI-images:
```
URI: git://git.openembedded.org/meta-openembedded
Layer: meta-initramfs
branch: master
revision: HEAD
```
#### To surf the internet:
```
URI: git://github.com/OSSystems/meta-browser.git
branch: master
revision: HEAD
```
```
URI: git://github.com/meta-rust/meta-rust.git
branch: master
revision: HEAD
```
#### To pretend work:
```
URI: git://github.com/schnitzeltony/meta-office.git
branch: master
revision: HEAD
```
#### To produce music:
```
URI: git://github.com/schnitzeltony/meta-musicians.git
branch: master
revision: HEAD
```
#### To hear radio:
```
URI: git://github.com/balister/meta-sdr.git
branch: master
revision: HEAD
```
#### To happily waste time:
```
URI: git://github.com/cazfi/meta-games.git
branch: master
revision: HEAD
```
```
URI: git://github.com/schnitzeltony/meta-retro
branch: master
revision: HEAD
```
------------
Contributing
------------
* Submit any patches against the `meta-mortsgna` layer by using the GitHub pull-request feature.
--------
Policies
--------
* Please do not send private emails to maintainers. For questions/suggestions.. use GitHub issues.
* Pull requests should follow [OE-Styleguide](https://www.openembedded.org/wiki/Styleguide) with the following additions:
* Use 4 spaces for indention always
* For splitting of long list values use four-space indentation on sucessive lines set the closing quote as the first character ([OE-Styleguide](https://www.openembedded.org/wiki/Styleguide) - second example)
-----------
Maintainers
-----------
Layer maintainer: Andreas Müller <schnitzeltony@gmail.com>

View File

@@ -0,0 +1 @@
PACKAGECONFIG_append = " use-egl impl-side-painting proprietary-codecs"

View File

@@ -0,0 +1 @@
PACKAGECONFIG_remove = "introspection"

View File

@@ -1 +0,0 @@
RRECOMMENDS_${PN} += "udev-rules-udisks-hide-bootpart"

View File

@@ -0,0 +1 @@
inherit instant-sysroot-native

View File

@@ -4,3 +4,34 @@ PACKAGECONFIG_DISTRO += " \
gtk \
harfbuzz \
"
inherit instant-paths
do_copy_to_target_sysroot_append() {
# ---------- qt.conf ----------
# create
generate_qt_config_file_paths
# move to target sysroot
qtconf=`basename ${OE_QMAKE_QTCONF_PATH}`
targetpath=${INSTANT_TARGET_PATH}${OE_QMAKE_PATH_HOST_BINS}
rm -f "$targetpath/$qtconf"
mv "${OE_QMAKE_QTCONF_PATH}" "$targetpath"
echo "${OE_QMAKE_PATH_HOST_BINS}/$qtconf" >> ${INSTANT_MANIFEST}
# adjust to instant sysroot
sed -i \
-e 's:${STAGING_DIR_NATIVE}:${INSTANT_NATIVE_PATH}:g' \
-e 's:${STAGING_DIR_HOST}:${INSTANT_TARGET_PATH}:g' \
-e 's:^HostBinaries =.*:HostBinaries = ${INSTANT_NATIVE_PATH}${bindir}${QT_DIR_NAME}:g' \
"$targetpath/$qtconf"
# ---------- mkspecs qmake.conf ----------
rm ${INSTANT_TARGET_PATH}${libdir}${QT_DIR_NAME}/mkspecs/${XPLATFORM}/qmake.conf
cp -f "${WORKDIR}/packages-split/${PN}-mkspecs${libdir}${QT_DIR_NAME}/mkspecs/${XPLATFORM}/qmake.conf" \
"${INSTANT_TARGET_PATH}${libdir}${QT_DIR_NAME}/mkspecs/${XPLATFORM}/"
sed -i \
-e 's:${DEBUG_PREFIX_MAP}:-fdebug-prefix-map=${INSTANT_TARGET_PATH}= -fdebug-prefix-map=${INSTANT_NATIVE_PATH}=:g' \
"${INSTANT_TARGET_PATH}${libdir}${QT_DIR_NAME}/mkspecs/${XPLATFORM}/qmake.conf"
}

View File

@@ -0,0 +1 @@
PACKAGECONFIG_append = " examples"

View File

@@ -0,0 +1 @@
PACKAGECONFIG_append = " examples"

View File

@@ -0,0 +1,3 @@
# VLC is not part of meta-qt5. We add append here so the append will work only
# in case meta-qt5 is in layers
PACKAGECONFIG_append = " qt5"

View File

@@ -1 +1 @@
PACKAGECONFIG_append = " startup-notification gladeui"
PACKAGECONFIG_append = " startup-notification gladeui2"

View File

@@ -0,0 +1,3 @@
RRECOMMENDS_${PN} += " \
imsettings \
"

View File

@@ -1 +1 @@
PACKAGECONFIG_append = " datetime-setter sound-setter notify"
PACKAGECONFIG_append = " sound-setter notify"

View File

@@ -3,14 +3,12 @@
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"
EDITOR="vi" # needed for packages like cron, git-commit
TERM="xterm-256color"
# Set the prompt for bash and ash (no other shells known to be in use here)
# Set the prompt for bash
PS1='\u@\h:\W\$ '
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
# loop profile.d scriptlets
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -f $i -a -r $i ]; then
@@ -20,15 +18,44 @@ if [ -d /etc/profile.d ]; then
unset i
fi
if command -v resize >/dev/null && command -v tty >/dev/null; then
# Make sure we are on a serial console (i.e. the device used starts with
# /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which
# tries do use ssh
case $(tty) in
/dev/tty[A-z]*) resize >/dev/null;;
esac
# set locale fallback - all our images contain en_US
if [ -z "$LANG" ]; then
LANG="en_US.utf8"
export LANG
fi
export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM PROMPT_COMMAND
# `ls' enhancements:
export LS_OPTIONS='--color=auto'
eval `dircolors`
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
# colorize all grep variants
alias grep='grep --color'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias xzegrep='xzegrep --color=auto'
alias xzfgrep='xzfgrep --color=auto'
alias xzgrep='xzgrep --color=auto'
alias zegrep='zegrep --color=auto'
alias zfgrep='zfgrep --color=auto'
alias zgrep='zgrep --color=auto'
# Turn on parallel history
shopt -s histappend
history -a
HOSTNAME=`hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
# Turn on checkwinsize
shopt -s checkwinsize
export PATH TERM PS1 PROMPT_COMMAND HOSTNAME HISTSIZE
umask 022

View File

@@ -1,13 +1,5 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# ~/.bashrc: executed by bash(1) for interactive non-login shells.
PS1='\u@\h:\W\$ '
# `ls' enhancements:
export LS_OPTIONS='--color=auto'
eval `dircolors`
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
# REVISIT - do not change path
alias su='su --login'
umask 022
if [ -f /etc/profile ]; then
. /etc/profile
fi

View File

@@ -1,14 +1,5 @@
# ~/.profile: executed by Bourne-compatible login shells.
# ~/.profile: executed by interactive login shells.
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# Might fail after "su - myuser" when /dev/tty* is not writable by "myuser".
mesg n 2>/dev/null
# locale fallback for UTF8
if [ -z "$LANG" ]; then
LANG="en_US.utf8"
export LANG
fi

View File

@@ -0,0 +1,3 @@
do_install_append() {
sed -i 's|root::0:0:root:/home/root:/bin/sh|root::0:0:root:/home/root:/bin/bash|' ${D}${datadir}/${BPN}/passwd.master
}

View File

@@ -0,0 +1 @@
inherit instant-sysroot-native

View File

@@ -1 +1 @@
inherit instant-native-sysroot
inherit instant-sysroot-native

View File

@@ -1 +1 @@
inherit instant-native-sysroot
inherit instant-sysroot-native

View File

@@ -3,5 +3,4 @@ PACKAGECONFIG_append = " \
libmms \
faad \
fluidsynth \
gtk \
"

View File

@@ -0,0 +1 @@
PACKAGECONFIG_append_class-target = " jack"

View File

@@ -1 +0,0 @@
PACKAGECONFIG ?= "gnome"

View File

@@ -0,0 +1 @@
PACKAGECONFIG_append = " jack"

View File

@@ -0,0 +1,86 @@
#
# Writes build information to target filesystem on /etc/buildinfo
#
# Copyright (C) 2014 Intel Corporation
# Author: Alejandro Enedino Hernandez Samaniego <alejandro.hernandez@intel.com>
#
# Licensed under the MIT license, see COPYING.MIT for details
#
# Usage: add INHERIT += "image-buildinfo_mortsgna-mortsgna" to your conf file
#
# This is a slightly reworked version oe-core's version. Patch was sent [1]
# but...
# [1] http://lists.openembedded.org/pipermail/openembedded-core/2018-September/274747.html
# Desired variables to display
IMAGE_BUILDINFO_MORTSGNA_VARS ?= "DISTRO DISTRO_VERSION"
# Desired location of the output file in the image.
IMAGE_BUILDINFO_MORTSGNA_FILE ??= "${sysconfdir}/buildinfo"
# Gets git branch's status (clean or dirty)
def get_layer_mortsgna_git_status(path):
import subprocess
try:
subprocess.check_output("""cd %s; export PSEUDO_UNLOAD=1; set -e;
git diff --quiet --no-ext-diff
git diff --quiet --no-ext-diff --cached""" % path,
shell=True,
stderr=subprocess.STDOUT)
return ""
except subprocess.CalledProcessError as ex:
# Silently treat errors as "modified", without checking for the
# (expected) return code 1 in a modified git repo. For example, we get
# output and a 129 return code when a layer isn't a git repo at all.
return "-- modified"
# Returns layer revisions along with their respective status
def get_layer_mortsgna_revs(d):
layers = (d.getVar("BBLAYERS") or "").split()
medadata_revs = ["%-17s = %s:%s %s" % (os.path.basename(i), \
base_get_metadata_git_branch(i, None).strip(), \
base_get_metadata_git_revision(i, None), \
get_layer_mortsgna_git_status(i)) \
for i in layers]
return '\n'.join(medadata_revs)
def buildinfo_mortsgna_target(d):
# Get context
if d.getVar('BB_WORKERCONTEXT') != '1':
return ""
# taken from base.bbclass
localdata = bb.data.createCopy(d)
statuslines = []
g = globals()
func = 'buildcfg_vars'
if func not in g:
bb.warn("Build configuration function '%s' does not exist" % func)
else:
flines = g[func](localdata)
if flines:
statuslines.extend(flines)
return ('\n%s\n' % '\n'.join(statuslines))
# Write build information to target filesystem
python buildinfo_mortsgna () {
if not d.getVar('IMAGE_BUILDINFO_MORTSGNA_FILE'):
return
with open(d.expand('${IMAGE_ROOTFS}${IMAGE_BUILDINFO_MORTSGNA_FILE}'), 'w') as build:
build.writelines((
'''-----------------------
Build Configuration: |
-----------------------
''',
buildinfo_mortsgna_target(d),
'''
-----------------------
Layer Revisions: |
-----------------------
''',
get_layer_mortsgna_revs(d),
'''
'''
))
}
IMAGE_PREPROCESS_COMMAND += "buildinfo_mortsgna;"

View File

@@ -0,0 +1,5 @@
# This is where instant native sysroot is installed to
INSTANT_NATIVE_PATH = "${TMPDIR}/sysroot-instant-native"
# This is where instant target sysroot is installed to
INSTANT_TARGET_PATH = "${TMPDIR}/sysroot-instant-target-${MACHINE_ARCH}"

View File

@@ -1,171 +0,0 @@
#------------------------------------------------------------------------------
# class for instant remote debugging by building a debug sysroot
#
# It adresses a use case seen umptenth times: After creating or changing a
# recipe, the build result crashes on target e.g with segfault or without
# dropping helpful information. In these situations one wants to debug NOW
# without further waiting or quirky activities.
#
# To achieve, a debug sysroot is build with low cost:
#
# * All files are hard-linked to recipe's ${WORKDIR}/package
# * Additional build time for task do_copysourcestosysroot for most recipes is < 1s
#
# to enable debug sysroot build set:
# 'INHERIT += "instant-remote-debug"'
# in your local.conf
#
# to debug by remote do:
#
# ON TARGET:
# * install gdbserver (build automatically for images if this class enabled - see
# EXTRA_IMAGEDEPENDS below)
# * open a shell and enter 'gdbserver :<IP-Port> <full path of executable with optional args>' e.g
# 'gdbserver :5000 /usr/bin/thunar'
#
# ON BUILD HOST (suggested IDE: QtCreator)
# * build gdb-cross-<TARGET_ARCH> (done automatically on images if this class
# enabled - see EXTRA_IMAGEDEPENDS below)
# * in QtCreator select Menu Debug/Start Debugging/Attach to Running Debug Server
# -> Dialog 'Start Debugger' opens
# * At the first session a so called 'Kit' has to be set up (1st line -> 'Manage').
# The settings are kept so 1.-6. have to be done once only.
# 1. Create a Kit by 'Add' -> further dilaog opens
# 2. Select an name for the Kit e.g 'OE'
# 3. Set sysroot (see INSTANT_REMOTE_PATH below):
# ${TMPDIR}/sysroot-instant-remote-${MACHINE}
# 4. Select compilers (it is not necessary for debug but without QTCreator won't enable Kit) for C and C++ e.g:
# C: '<TMDIR>/sysroot-instant-native/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-gcc'
# C++: '<TMDIR>/sysroot-instant-native/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-g++'
# 5. Select debugger e.g:
# GDB: '<TMDIR>/sysroot-instant-native/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-gdb'
# 6. Select 'OK' in Options dialog -> 'Start Debugger' should be back on top
# * Make sure 'OE' Kit is selected
# * Browse for executable e.g '<TMDIR>/sysroot-instant-remote/usr/bin/thunar'
# * Set IP:Port of target machine e.g '192.168.2.108:5000'
# * Select 'OK'
#
# Happy debugging!!
#
# TODO:
# * Class won't work with rm_work.bbclass / rm_work_and_downloads.bbclass
# -> Implement error message
# * Class does not work properly when package data is taken from sstate cache
# -> Help appreciated
# * Class does not work properly for when changing machine
#------------------------------------------------------------------------------
# ensure necessary gdb recipes are build
EXTRA_IMAGEDEPENDS += "gdb-cross-${TARGET_ARCH} gdb"
# This is where instant sysroot is installed into
INSTANT_REMOTE_PATH = "${TMPDIR}/sysroot-instant-remote-${MACHINE}"
addtask copysourcestosysroot before do_packagedata after do_package
do_copysourcestosysroot() {
# remove old source code / files in old manifest
rm -rf ${INSTANT_REMOTE_PATH}/usr/src/debug/${PN}
if [ -f ${INSTANT_REMOTE_PATH}/manifests/${PN} ] ; then
# remove old files from sysroot
for file in `cat ${INSTANT_REMOTE_PATH}/manifests/${PN}` ; do
rm -f ${INSTANT_REMOTE_PATH}/$file
done
# remove old manifest
rm ${INSTANT_REMOTE_PATH}/manifests/${PN}
fi
# ---------- link source code files ----------
if [ -d ${WORKDIR}/package/usr/src/debug/${PN} ] ; then
mkdir -p ${INSTANT_REMOTE_PATH}/usr/src/debug/${PN}
cd ${WORKDIR}/package/usr/src/debug/${PN}
find . -print0 | cpio --null -pdlu ${INSTANT_REMOTE_PATH}/usr/src/debug/${PN}
fi
# ---------- names of binaries and debuginfo -> manifest ----------
mkdir -p ${INSTANT_REMOTE_PATH}/manifests
# get path to library-link once only
if [ "${PN}" = "glibc-locale" ] ; then
PACK_SPLIT_LIB_LINK_SEARCH_PATH=`find ${WORKDIR}/packages-split -mindepth 1 -maxdepth 1 -type d ! -name '*-dbg' ! -name '*-dev' ! -name '*-staticdev' ! -name '*-doc' ! -name 'glibc*-localedata-*' ! -name 'glibc-charmap-*' ! -name 'locale-base-*'`
# other specials go here
# elif...
else
PACK_SPLIT_LIB_LINK_SEARCH_PATH=`find ${WORKDIR}/packages-split -mindepth 1 -maxdepth 1 -type d ! -name '*-dbg' ! -name '*-dev' ! -name '*-staticdev' ! -name '*-doc' ! -name '${PN}*-locale-*'`
fi
echo "Search so-link in $PACK_SPLIT_LIB_LINK_SEARCH_PATH.."
# add new
for pkgdbg in `find ${WORKDIR}/packages-split -mindepth 1 -maxdepth 1 -type d -name '*-dbg'` ; do
debug_binaries=
# Note: hardcoding is used in package.bbclass either (search for PACKAGE_DEBUG_SPLIT_STYLE)
if [ "${PACKAGE_DEBUG_SPLIT_STYLE}" = "debug-file-directory" ] ; then
if [ -d $pkgdbg/usr/lib/debug ] ; then
debug_binaries=`find $pkgdbg/usr/lib/debug -name '*.debug'`
fi
else
debug_binaries=`find $pkgdbg -wholename '*.debug/*'`
fi
for file in $debug_binaries; do
# do 'root' path
file=`echo $file | sed -e 's:'$pkgdbg'::'`
# stripped binary (non debug)
if [ "${PACKAGE_DEBUG_SPLIT_STYLE}" = "debug-file-directory" ] ; then
filestripped=`echo $file | sed -e 's:/usr/lib/debug::' -e 's:\.debug::'`
else
filestripped=`echo $file | sed -e 's:\.debug/::'`
fi
# keep files in manifest
echo $file >> ${INSTANT_REMOTE_PATH}/manifests/${PN}
echo $filestripped >> ${INSTANT_REMOTE_PATH}/manifests/${PN}
# check for so-file links
if echo $filestripped | grep -q '\.so'; then
soname=`basename $filestripped`
for packsplit in $PACK_SPLIT_LIB_LINK_SEARCH_PATH; do
for link in `find $packsplit -lname $soname` ; do
# do 'root' path
link=`echo $link | sed -e 's:'$packsplit'::'`
echo $link >> ${INSTANT_REMOTE_PATH}/manifests/${PN}
done
done
fi
done
done
# ---------- names of includes (they might contain debuggable code) -> manifest ----------
if [ -d ${WORKDIR}/packages-split/${PN}-dev/${includedir} ]; then
for include in `find ${WORKDIR}/packages-split/${PN}-dev/${includedir} -type f` ; do
# do 'root' path
include=`echo $include | sed -e 's:'${WORKDIR}/packages-split/${PN}-dev/'::'`
echo $include >> ${INSTANT_REMOTE_PATH}/manifests/${PN}
done
fi
# ---------- link to files in package folder from manifest ----------
if [ -f ${INSTANT_REMOTE_PATH}/manifests/${PN} ] ; then
cd ${WORKDIR}/package
for file in `cat ${INSTANT_REMOTE_PATH}/manifests/${PN}` ; do
file=`echo $file | cut -c 2-`
if [ -e $file ] ; then
echo -n $file | cpio --null -pdlu ${INSTANT_REMOTE_PATH}
fi
done
fi
}
# remove source code links
do_clean[cleandirs] += "${INSTANT_REMOTE_PATH}/usr/src/debug/${PN}"
do_clean_append() {
# remove binaries from mainfest
manifest = "%s/manifests/%s" % (d.expand("${INSTANT_REMOTE_PATH}"), d.expand("${PN}"))
if os.path.isfile(manifest):
bb.note("Removing all files from manifest " + manifest)
manifestfile = open(manifest, "r")
for filetoremove in manifestfile:
filetoremove = filetoremove.rstrip()
filetoremove = d.expand("${INSTANT_REMOTE_PATH}") + filetoremove
if os.path.isfile(filetoremove):
os.remove(filetoremove)
manifestfile.close()
os.remove(manifest)
}

View File

@@ -1,11 +1,10 @@
#------------------------------------------------------------------------------
# class for instant native sysroot
#
# Hardlink recipe sysroot and generated sysroot to instant native sysroot
#------------------------------------------------------------------------------
inherit utils
# This is where instant sysroot is installed into
INSTANT_SYSROOT_PATH ??= "${TMPDIR}/sysroot-instant-native"
inherit utils instant-paths
do_prepare_recipe_sysroot[postfuncs] += "${INSTANTSYSROOTFUNC}"
INSTANTSYSROOTFUNC = ""
@@ -13,8 +12,8 @@ INSTANTSYSROOTFUNC_class-native = "instant_sysroot_copy"
INSTANTSYSROOTFUNC_class-cross = "instant_sysroot_copy"
instant_sysroot_copy () {
mkdir -p ${INSTANT_SYSROOT_PATH}
hardlinkdir ${RECIPE_SYSROOT_NATIVE} ${INSTANT_SYSROOT_PATH}
mkdir -p ${INSTANT_NATIVE_PATH}
hardlinkdir ${RECIPE_SYSROOT_NATIVE} ${INSTANT_NATIVE_PATH}
}
do_populate_sysroot[postfuncs] += "${INSTANTPOPULATE}"
@@ -23,10 +22,10 @@ INSTANTPOPULATE_class-native = "instant_populate_sysroot"
INSTANTPOPULATE_class-cross = "instant_populate_sysroot"
instant_populate_sysroot () {
for executable in `find ${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE} -type f`; do
alignedpath=`echo ${executable} | sed 's:${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE}::'`
targetdir=`dirname ${INSTANT_SYSROOT_PATH}/${alignedpath}`
find "${SYSROOT_DESTDIR}${STAGING_DIR_NATIVE}" -type f -o -type l | while read file; do
alignedpath=`echo "$file" | sed 's:${SYSROOT_DESTDIR}${STAGING_DIR_NATIVE}::'`
targetdir=`dirname "${INSTANT_NATIVE_PATH}/${alignedpath}"`
mkdir -p "$targetdir"
cp -fl "${executable}" "${targetdir}"
cp -fld "${file}" "${targetdir}"
done
}

View File

@@ -0,0 +1,183 @@
#------------------------------------------------------------------------------
# class for instant remote debugging by building a debug sysroot
#
# It adresses a use case seen umptenth times: After creating or changing a
# recipe, the build result crashes on target e.g with segfault or without
# dropping helpful information. In these situations one wants to debug NOW
# without further waiting or quirky activities.
#
# To achieve, a debug sysroot is build with low cost:
#
# * All files are hard-linked to recipe's ${WORKDIR}/package
# * Additional build time for task do_copy_to_target_sysroot for most recipes is < 1s
#
# to enable debug sysroot build set:
# 'INHERIT += "instant-sysroot-target"'
# in your local.conf
#
# to debug by remote do:
#
# ON TARGET:
# * install gdbserver (build automatically for images if this class enabled - see
# EXTRA_IMAGEDEPENDS below)
# * open a shell and enter 'gdbserver :<IP-Port> <full path of executable with optional args>' e.g
# 'gdbserver :5000 /usr/bin/thunar'
#
# ON BUILD HOST (suggested IDE: QtCreator)
# * 'bitbake gdb-cross-<TARGET_ARCH>' (done automatically on images if this class
# is enabled - see EXTRA_IMAGEDEPENDS below)
# * 'bitbake qtcreator-sdk-prepare' once to create a valid qt.conf for qmake
# * in QtCreator select Menu Debug/Start Debugging/Attach to Running Debug Server
# -> Dialog 'Start Debugger' opens
# * At the first session a so called 'Kit' has to be set up (1st line -> 'Manage').
# The settings are kept so 1.- 8. have to be done once only.
# 1. Create a Kit by 'Add' -> further dialog opens
# 2. Select an name for the Kit e.g 'OE'
# 3. On recent QtCreators select 'Generic Linux Device' for 'Device type' -
# otherwise QtCreator won't let you select the kit later
# 4. Set sysroot (see INSTANT_TARGET_PATH in instant-path.bbclass):
# ${TMPDIR}/sysroot-instant-target-${MACHINE_ARCH}
# 5. Select compilers (it is not necessary for debug but without QTCreator won't enable Kit) for C and C++ e.g:
# C: '${TMPDIR}/sysroot-instant-native/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-gcc'
# C++: '${TMPDIR}/sysroot-instant-native/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-g++'
# 6. Select debugger e.g:
# GDB: '${TMPDIR}/sysroot-instant-native/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-gdb'
# 7. To avoid qtcreator stopping on certain signals Select 'Debugger' in left list and in
# * 'GDB'-tab unselect 'Show a message box when reciving a signal'
# * 'Locals & Expressions' add in 'Debugging Helper Customization' lines as
# 'handle SIG32 pass nostop noprint' to pass SIG32 to application without
# running int breaks
# 8. Select 'OK' in Options dialog -> 'Start Debugger' should be back on top
# * Make sure 'OE' Kit is selected
# * Browse for executable e.g '${TMPDIR}/sysroot-instant-target-${MACHINE_ARCH}/usr/bin/thunar'
# * Set IP:Port of target machine e.g '192.168.2.108:5000'
# * Select 'OK'
#
# Happy debugging!!
#
#------------------------------------------------------------------------------
inherit utils instant-paths
# ensure necessary gdb recipes are build
EXTRA_IMAGEDEPENDS += "gdb-cross-${TARGET_ARCH} gdb"
python __anonymous () {
if d.getVar('CLASSOVERRIDE') != 'class-target':
bb.build.deltask('do_copy_to_target_sysroot', d)
}
INSTANT_MANIFEST = "${INSTANT_TARGET_PATH}/manifests/${PN}"
do_copy_to_target_sysroot() {
# ---------- bail out on package-less recipes ----------
if [ ! -d "${WORKDIR}/packages-split" -o ! -d ${WORKDIR}/package ]; then
exit 0
fi
# ---------- remove old sources ----------
rm -rf ${INSTANT_TARGET_PATH}/usr/src/debug/${PN}
# ---------- remove old files in manifest and manifest ----------
if [ -f ${INSTANT_MANIFEST} ] ; then
echo "Old manifest ${INSTANT_MANIFEST} found - remove files..."
# remove old files from sysroot
for file in `cat ${INSTANT_MANIFEST}` ; do
if ! rm "${INSTANT_TARGET_PATH}/$file" 2> /dev/null; then
echo "Tried to delete '${INSTANT_TARGET_PATH}/$file' but it is not there! A look into mainfest creation at '${INSTANT_MANIFEST}' might help."
fi
done
# remove old manifest
rm ${INSTANT_MANIFEST}
fi
# ---------- hard link source code files ----------
if [ -d ${WORKDIR}/package/usr/src/debug/${PN} ] ; then
mkdir -p ${INSTANT_TARGET_PATH}/usr/src/debug/${PN}
hardlinkdir ${WORKDIR}/package/usr/src/debug/${PN} ${INSTANT_TARGET_PATH}/usr/src/debug/${PN}
fi
# ---------- names of binaries and debuginfo -> manifest ----------
mkdir -p ${INSTANT_TARGET_PATH}/manifests
# get path to library-link once only
if [ "${PN}" = "glibc-locale" ] ; then
PACK_SPLIT_LIB_LINK_SEARCH_PATH=`find ${WORKDIR}/packages-split -mindepth 1 -maxdepth 1 -type d ! -name '*-dbg' ! -name '*-dev' ! -name '*-staticdev' ! -name '*-doc' ! -name 'glibc*-localedata-*' ! -name 'glibc-charmap-*' ! -name 'locale-base-*'`
# other specials go here
# elif...
else
PACK_SPLIT_LIB_LINK_SEARCH_PATH=`find ${WORKDIR}/packages-split -mindepth 1 -maxdepth 1 -type d ! -name '*-dbg' ! -name '*-dev' ! -name '*-staticdev' ! -name '*-doc' ! -name '${PN}*-locale-*'`
fi
echo "Search so-links in:"
echo "$PACK_SPLIT_LIB_LINK_SEARCH_PATH"
echo
# add new
for pkgdbg in `find ${WORKDIR}/packages-split -mindepth 1 -maxdepth 1 -type d -name '*-dbg'` ; do
debug_binaries=
# Note: hardcoding is used in package.bbclass either (search for PACKAGE_DEBUG_SPLIT_STYLE)
if [ "${PACKAGE_DEBUG_SPLIT_STYLE}" = "debug-file-directory" ] ; then
if [ -d $pkgdbg/usr/lib/debug ] ; then
debug_binaries=`find $pkgdbg/usr/lib/debug -name '*.debug'`
fi
else
debug_binaries=`find $pkgdbg -wholename '*.debug/*'`
fi
for file in $debug_binaries; do
# do 'root' path
file=`echo $file | sed -e 's:'$pkgdbg'::'`
# stripped binary (non debug)
if [ "${PACKAGE_DEBUG_SPLIT_STYLE}" = "debug-file-directory" ] ; then
filestripped=`echo $file | sed -e 's:/usr/lib/debug::' -e 's:\.debug::'`
else
filestripped=`echo $file | sed -e 's:\.debug/::'`
fi
# keep files in manifest
echo $file >> ${INSTANT_MANIFEST}
echo $filestripped >> ${INSTANT_MANIFEST}
# check for so-file links
if echo $filestripped | grep -q '\.so'; then
soname=`basename $filestripped`
for packsplit in $PACK_SPLIT_LIB_LINK_SEARCH_PATH; do
for link in `find $packsplit -lname $soname` ; do
# do 'root' path
link=`echo $link | sed -e 's:'$packsplit'::'`
echo $link >> ${INSTANT_MANIFEST}
done
done
fi
done
done
# ---------- get -dev/-mkspecs packet contents -> manifest ----------
for package in "${PN}-dev" "${PN}-mkspecs" ; do
if [ -d ${WORKDIR}/packages-split/$package ]; then
echo "Add files from ${WORKDIR}/packages-split/$package to manifest..."
for file in `find ${WORKDIR}/packages-split/$package -type f` ; do
# do 'root' path
file=`echo $file | sed -e 's:${WORKDIR}/packages-split/'$package'::'`
echo $file >> ${INSTANT_MANIFEST}
done
fi
done
# ---------- manifest: do the hardlinks (optimization welcome..) ----------
if [ -f ${INSTANT_MANIFEST} ] ; then
echo "Create hardlinks from manifest ${INSTANT_MANIFEST}..."
cd ${WORKDIR}/package
for file in `cat ${INSTANT_MANIFEST}` ; do
file=`echo $file | cut -c 2-`
if [ -e $file ] ; then
echo -n $file | cpio --null -pdlu ${INSTANT_TARGET_PATH} > /dev/null 2>&1
fi
done
fi
}
addtask copy_to_target_sysroot after do_package_write_deb do_package_write_ipk do_package_write_rpm before do_build
# same as do package
do_copy_to_target_sysroot[vardeps] = "${PACKAGEBUILDPKGD} ${PACKAGESPLITFUNCS} ${PACKAGEFUNCS} ${@gen_packagevar(d)}"
do_copy_to_target_sysroot[stamp-extra-info] = "${MACHINE_ARCH}"
do_build[recrdeptask] += "do_copy_to_target_sysroot"

View File

@@ -0,0 +1,28 @@
#------------------------------------------------------------------------------
# class for instant toolchain
#------------------------------------------------------------------------------
inherit instant-paths
PACKAGE_ARCH = "${MACHINE_ARCH}"
do_compile[postfuncs] += "${COMPILE_POST_TARGET}"
COMPILE_POST_TARGET = ""
COMPILE_POST_TARGET_class-target = "instant_compile_target"
INSTANTPOPULATE_TOOLCHAIN_VARS = " \
CC \
CFLAGS \
"
python instant_compile_target () {
# create sourceable script that exports variables necessary
for envvar in d.getVar('INSTANTPOPULATE_TOOLCHAIN_VARS').split():
content = d.getVar(envvar).strip()
line = 'export %s="%s"' % (envvar, content)
line = line.replace(d.getVar('DEBUG_PREFIX_MAP'),'-fdebug-prefix-map=%s= -fdebug-prefix-map=%s=' % (d.getVar('INSTANT_TARGET_PATH'), d.getVar('INSTANT_NATIVE_PATH') ))
line = line.replace(d.getVar('STAGING_DIR_NATIVE'),d.getVar('INSTANT_NATIVE_PATH'))
line = line.replace(d.getVar('STAGING_DIR_HOST'),d.getVar('INSTANT_TARGET_PATH'))
print(line)
print(d.getVar('DEBUG_PREFIX_MAP'))
}

View File

@@ -1,9 +1,9 @@
def armv7_tune_handler(d):
tune = d.getVar('DEFAULTTUNE', True)
tune = d.getVar('DEFAULTTUNE')
# set MORTSGNA_ARMV7_TUNE="1" in your local.conf to reduce all cortex variants
# to common tune value
if d.getVar('MORTSGNA_ARMV7_TUNE', True) == '1':
features = d.getVar('TUNE_FEATURES', True).split()
if d.getVar('MORTSGNA_ARMV7_TUNE') == '1':
features = d.getVar('TUNE_FEATURES').split()
if 'armv7a' in features or 'armv7ve' in features:
tune = 'armv7athf'
if 'bigendian' in features:
@@ -11,7 +11,7 @@ def armv7_tune_handler(d):
if 'neon' in features:
tune += '-neon'
else:
tune = d.getVar('DEFAULTTUNE', True)
tune = d.getVar('DEFAULTTUNE')
return tune

View File

@@ -1,5 +1,29 @@
# We want images supporting the following features (for packagegroup(-core)-base)
DISTRO_FEATURES = "alsa argp bluetooth ext2 ipv4 ipv6 irda largefile nfs pam pci pcmcia ppp smbfs systemd usbgadget usbhost vfat wifi xattr zeroconf gobject-introspection-data"
DISTRO_FEATURES = " \
alsa \
argp \
bluetooth \
ext2 \
ipv4 \
ipv6 \
irda \
largefile \
nfs \
pam \
pci \
pcmcia \
ppp \
smbfs \
systemd \
usbgadget \
usbhost \
vfat \
wifi \
xattr \
zeroconf \
gobject-introspection-data \
"
# Disable sysvinit for recipes with systemd support
DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit"
@@ -13,6 +37,7 @@ DISTRO_FEATURES += "x11"
DISTRO_FEATURES += "3g"
DISTRO_FEATURES += "pulseaudio"
DISTRO_FEATURES += "ldconfig"
DISTRO_FEATURES += "polkit"
# OpenGL support
DISTRO_FEATURES += "opengl"

View File

@@ -20,7 +20,7 @@ INHERIT += "insane"
INHERIT += "sstate"
# drop buildinfo to /etc/build
INHERIT += "image-buildinfo"
INHERIT += "image-buildinfo-mortsgna"
# Prelink images
INHERIT += "image-prelink"

View File

@@ -1,17 +1,2 @@
# glibc:
PNBLACKLIST[libiconv] = "the glibc provided iconv library is used"
TARGET_OS = "linux"
# sane-toolchain.inc has this, and explains the GNU and ABI suffices:
#TARGET_OS = "${@compute_os_portion_of_target_triplet(d)}"
TARGET_OS .= "${@['','-gnueabi'][d.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb']]}"
TARGET_OS .= "${@['','-gnuspe'][d.getVar('TUNE_PKGARCH',d,1) in ['ppce500', 'ppce500v2']]}"
# perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616
# [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
TARGET_LINK_HASH_STYLE = "${@['-Wl,--hash-style=gnu',''][d.getVar('TARGET_ARCH',d,1) in ['mips', 'mipsel', 'mips64', 'mips64el']]}"

View File

@@ -2,10 +2,10 @@
# The things musl can provide. We default to wanting musl to provide them.
# libc settings
DISTRO_FEATURES += "${@['', ' nls'][d.getVar('ENABLE_BINARY_LOCALE_GENERATION', 1) == '1']}"
DISTRO_FEATURES += "${@['', ' nls'][d.getVar('ENABLE_BINARY_LOCALE_GENERATION') == '1']}"
DISTRO_FEATURES_remove = "ldconfig"
USE_NLS_glib-2.0 = "yes"
USE_NLS_glib-2.0-native = "yes"
USE_NLS_gcc-cross = "no"
TARGET_LINK_HASH_STYLE = "${@['-Wl,--hash-style=gnu',''][d.getVar('TARGET_ARCH',1) in ['mips', 'mipsel', 'mips64', 'mips64el', 'avr32']]}"

View File

@@ -9,7 +9,8 @@
# Global settings
###############################################################################
DISTRO_VERSION = "v0.1"
# follow Yocto version scheme
DISTRO_VERSION = "v3.0"
# With Angstrom we had DISTRO_TYPE = "debug"/"release". No recipe except
# good old lxdm takes care (yes it was me). OE-Core way is setting
@@ -130,9 +131,12 @@ require conf/distro/include/no-static-libs.inc
# 1. They make sense
# 2. Many poky users out there might complain about my other layers or patches
# sent
WARN_TO_ERROR_QA = "already-stripped compile-host-path install-host-path \
installed-vs-shipped ldflags pn-overrides rpaths staticdev \
unknown-configure-option useless-rpaths host-user-contaminated"
WARN_TO_ERROR_QA = " \
already-stripped compile-host-path install-host-path \
installed-vs-shipped ldflags pn-overrides rpaths staticdev \
unknown-configure-option useless-rpaths host-user-contaminated \
invalid-packageconfig patch-fuzz src-uri-bad \
"
WARN_QA_remove = "${WARN_TO_ERROR_QA}"
ERROR_QA_append = " ${WARN_TO_ERROR_QA}"
@@ -162,6 +166,7 @@ DISTRO_GUI_USER ?= "unpriv-user"
# DEBUG_APPS: ship strace and procpc to make simple debugging a lot easier
DISTRO_EXTRA_RRECOMMENDS += " \
os-release \
default-locale \
\
kernel-module-vfat \
kernel-module-ext2 \
@@ -175,7 +180,12 @@ DISTRO_EXTRA_RRECOMMENDS += " \
"
# In case one wants to use packagegroup-basic: Prefer openssh over dropbear
TASK_BASIC_SSHDAEMON = "openssh-ssh openssh-sshd openssh-scp openssh-sftp openssh-sftp-server"
# Note: to avoid redundancies TASK_BASIC_SSHDAEMON is used in this layer
TASK_BASIC_SSHDAEMON = " \
openssh-ssh openssh-sshd \
openssh-scp \
openssh-sftp openssh-sftp-server \
"
# Image features strongly suggested
EXTRA_IMAGE_FEATURES += " \
@@ -183,6 +193,7 @@ EXTRA_IMAGE_FEATURES += " \
empty-root-password \
allow-empty-password \
post-install-logging \
volatile-log \
"
# make x11-base a valid IMAGE_FEATURES
@@ -210,7 +221,7 @@ IMAGE_BOOT ?= "${IMAGE_INITSCRIPTS} \
IMAGE_INSTALL += "${IMAGE_BOOT}"
# some default locales
IMAGE_LINGUAS ?= "de-de fr-fr en-gb en-us es-es it-it"
IMAGE_LINGUAS_libc-glibc ?= "de-de fr-fr en-us en-gb es-es it-it"
# there are important missing I bet
IMAGE_LINGUAS_FULL ?= " \

View File

@@ -8,7 +8,7 @@ BBFILE_COLLECTIONS += "mortsgna-layer"
BBFILE_PATTERN_mortsgna-layer := "^${LAYERDIR}/"
BBFILE_PRIORITY_mortsgna-layer = "7"
LAYERSERIES_COMPAT_mortsgna-layer = "sumo thud"
LAYERSERIES_COMPAT_mortsgna-layer = "sumo thud warrior zeus"
# 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
@@ -25,6 +25,7 @@ BBFILES_DYNAMIC += " \
openembedded-layer:${LAYERDIR}/appends/meta-oe/*.bbappend \
\
qt5-layer:${LAYERDIR}/appends/meta-qt5/*.bbappend \
qt5-layer:${LAYERDIR}/qt5-sdk-recipes/*.bb \
\
xfce-layer:${LAYERDIR}/appends/meta-xfce/*.bbappend \
\

View File

@@ -0,0 +1,32 @@
SUMMARY = "Prepare environment for cross building/debugging with QtCreator"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
inherit qmake5_base instant-toolchain-target
DEPENDS = "qtbase"
deltask do_prepare_recipe_sysroot
do_install[depends] = "qtbase:do_copy_to_target_sysroot"
do_install[nostamp] = "1"
do_install() {
# inject qt.conf into native sysroot
qtconf=`basename ${OE_QMAKE_QTCONF_PATH}`
sourcepath=${INSTANT_TARGET_PATH}${OE_QMAKE_PATH_HOST_BINS}
targetpath=${INSTANT_NATIVE_PATH}${OE_QMAKE_PATH_HOST_BINS}
# be sure we remove old link (if any...)
rm -f $targetpath/$qtconf
cp $sourcepath/$qtconf $targetpath/
}
ALLOW_EMPTY_${PN} = "1"
# An image installing this requires the following packages at least for working
# instant sdk support
RDEPENDS_${PN} = " \
qtbase \
gdbserver \
${TASK_BASIC_SSHDAEMON} \
"

View File

@@ -0,0 +1,3 @@
[Desktop Entry]
Hidden=true

View File

@@ -1,8 +1,10 @@
[Configuration]
ColorForeground=#ffffffffffff
ColorBackground=#000000000000
ColorCursor=#a0a0a0a0a0a0
FontName=Monospace 9
MiscAlwaysShowTabs=FALSE
MiscBell=FALSE
MiscBellUrgent=FALSE
MiscBordersDefault=TRUE
MiscCursorBlinks=FALSE
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
@@ -10,7 +12,6 @@ MiscDefaultGeometry=80x24
MiscInheritGeometry=FALSE
MiscMenubarDefault=FALSE
MiscMouseAutohide=FALSE
MiscMouseWheelZoom=TRUE
MiscToolbarDefault=TRUE
MiscConfirmClose=TRUE
MiscCycleTabs=TRUE
@@ -18,12 +19,5 @@ MiscTabCloseButtons=TRUE
MiscTabCloseMiddleClick=TRUE
MiscTabPosition=GTK_POS_TOP
MiscHighlightUrls=TRUE
MiscMiddleClickOpensUri=FALSE
MiscCopyOnSelect=FALSE
MiscDefaultWorkingDir=
MiscRewrapOnResize=TRUE
MiscUseShiftArrowsToScroll=FALSE
MiscSlimTabs=FALSE
ColorForeground=#000000000000
ColorBackground=#fae0f4f1a311
ScrollingLines=1000000

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="pointers" version="1.0">
<property name="ADS7846_Touchscreen" type="empty">
<property name="TouchscreenPointer" type="bool" value="true"/>
</property>
<property name="eGalax_Inc_USB_TouchController" type="empty">
<property name="TouchscreenPointer" type="bool" value="true"/>
</property>
</channel>

View File

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="ristretto" version="1.0">
<property name="window" type="empty">
<property name="navigationbar" type="empty">
<property name="position" type="string" value="left"/>
</property>
</property>
<property name="desktop" type="empty">
<property name="type" type="string" value="xfce"/>
</property>
</channel>

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="thunar-volman" version="1.0">
<property name="automount-drives" type="empty">
<property name="enabled" type="bool" value="true"/>
</property>
<property name="automount-media" type="empty">
<property name="enabled" type="bool" value="true"/>
</property>
</channel>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-appfinder" version="1.0">
<property name="last" type="empty">
<property name="window-height" type="int" value="343"/>
<property name="window-width" type="int" value="750"/>
<property name="pane-position" type="int" value="180"/>
</property>
</channel>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-mixer" version="1.0">
<property name="sound-card" type="string" value="overoAlsamixer"/>
<property name="sound-cards" type="empty">
<property name="overoAlsamixer" type="array">
<value type="string" value="DAC1 Analog"/>
<value type="string" value="Headset"/>
<value type="string" value="HeadsetL Mixer AudioL1"/>
<value type="string" value="HeadsetR Mixer AudioR1"/>
</property>
</property>
<property name="window-height" type="int" value="400"/>
<property name="window-width" type="int" value="659"/>
</channel>

View File

@@ -23,7 +23,6 @@
<value type="int" value="11"/>
<value type="int" value="12"/>
<value type="int" value="1"/>
<value type="int" value="7"/>
</property>
<property name="mode" type="uint" value="2"/>
<property name="background-alpha" type="uint" value="17"/>
@@ -84,9 +83,6 @@
</property>
<property name="plugin-3" type="string" value="whiskermenu"/>
<property name="plugin-1" type="string" value="cpugraph"/>
<property name="plugin-7" type="string" value="xkb">
<property name="group-policy" type="uint" value="0"/>
</property>
<property name="plugin-11" type="string" value="cpufreq"/>
<property name="plugin-12" type="string" value="systemload"/>
</property>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-settings-editor" version="1.0">
<property name="last" type="empty">
<property name="window-width" type="int" value="640"/>
<property name="window-height" type="int" value="500"/>
<property name="paned-position" type="int" value="180"/>
</property>
</channel>

View File

@@ -3,7 +3,7 @@
<channel name="xsettings" version="1.0">
<property name="Net" type="empty">
<property name="ThemeName" type="string" value="Adwaita-dark"/>
<property name="IconThemeName" type="empty"/>
<property name="IconThemeName" type="string" value="Adwaita"/>
<property name="DoubleClickTime" type="empty"/>
<property name="DoubleClickDistance" type="empty"/>
<property name="DndDragThreshold" type="empty"/>
@@ -31,7 +31,7 @@
<property name="MenuImages" type="empty"/>
<property name="ButtonImages" type="empty"/>
<property name="MenuBarAccel" type="empty"/>
<property name="CursorThemeName" type="string" value="default"/>
<property name="CursorThemeName" type="string" value="Adwaita"/>
<property name="CursorThemeSize" type="empty"/>
<property name="DecorationLayout" type="empty"/>
<property name="TouchscreenMode" type="bool" value="false"/>

View File

@@ -0,0 +1,21 @@
# Since systemd 240 LANG="C.UTF-8" is set if no /etc/locale.conf
# is found and mentions that 'This locale is supported by various
# distributions' and 'upstream glibc is going to make it available too' [1].
#
# And oe-core makes situation worse by setting default locale to 'C' (although
# I aske for a change and was ignored as ususal [2]).
#
# [1] https://lists.freedesktop.org/archives/systemd-devel/2018-December/041852.html
# [2] http://lists.openembedded.org/pipermail/openembedded-core/2019-April/281327.html
#
# Neither default is working properly:
#
# * german Umlaute cannot be displayed anymore
# * at least menulibre does not start anymore and complains with
# | File "/usr/lib/python3.7/site-packages/menulibre/MenulibreApplication.py", line 390, in configure_application_actions
# | label=_('Add _Launcher<65><72><EFBFBD>'),
# | UnicodeDecodeError: 'locale' codec can't decode byte 0xe2 in position 13: decoding error
#
# so set locale default - all our images contain en_US
LANG="en_US.UTF-8"

View File

@@ -0,0 +1,16 @@
DESCRIPTION = "Set default locale"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
inherit allarch
SRC_URI = "file://locale.conf"
do_configure[noexec] = '1'
do_compile[noexec] = '1'
do_install() {
install -d ${D}${sysconfdir}
install -m 644 ${WORKDIR}/locale.conf ${D}${sysconfdir}/
}

View File

@@ -20,7 +20,9 @@ IMAGE_INSTALL += " \
packagegroup-lxqt-base \
lxqt-default-config \
\
lumina \
liri-world \
\
lumina-world \
\
weston weston-xwayland \
"

View File

@@ -13,6 +13,15 @@ IMAGE_INSTALL += " \
\
orage \
xfce4-orageclock-plugin \
\
pkgconfig binutils-symlinks elfutils gnu-config \
cmake meson \
gdbserver \
git git-bash-completion \
qt5-creator \
qwt-qt5 \
\
nodejs nodejs-npm nodejs-systemtap \
"
IMAGE_LINGUAS = "${IMAGE_LINGUAS_FULL}"
IMAGE_LINGUAS_libc-glibc = "${IMAGE_LINGUAS_FULL}"

View File

@@ -7,11 +7,13 @@ IMAGE_INSTALL += " \
${ROOTFS_PKGMANAGE} \
update-alternatives-opkg \
coreutils \
bash \
bash-completion \
systemd-bash-completion \
systemd-analyze \
cpufrequtils \
htop \
fixmac \
glibc-utils \
util-linux-lsblk \
nano \
"

View File

@@ -1,13 +1,16 @@
require console-base-image.bb
IMAGE_INSTALL += " \
NETWORKPACKS ?= " \
${TASK_BASIC_SSHDAEMON} \
avahi-autoipd \
networkmanager \
openssh-sftp-server \
openssh-sshd \
openssh-ssh \
openssh-scp \
iputils \
networkmanager \
networkmanager-openvpn \
networkmanager-bash-completion \
"
IMAGE_INSTALL += " \
${NETWORKPACKS} \
"
export IMAGE_BASENAME = "console-net-image"

View File

@@ -7,4 +7,4 @@ IMAGE_INSTALL += " \
packagegroup-gui-full \
"
IMAGE_LINGUAS = "${IMAGE_LINGUAS_FULL}"
IMAGE_LINGUAS_libc-glibc = "${IMAGE_LINGUAS_FULL}"

View File

@@ -0,0 +1,14 @@
require recipes-image/console/console-net-image.bb
require recipes-image/include/x11-base.inc
export IMAGE_BASENAME = "liri-base-image"
IMAGE_INSTALL += " \
${X11_BASE_INSTALL} \
sddm \
\
liri-world \
"
# reenable graphical target
IMAGE_FEATURES += "x11-base"

View File

@@ -6,4 +6,4 @@ IMAGE_INSTALL += " \
packagegroup-gui-full \
"
IMAGE_LINGUAS = "${IMAGE_LINGUAS_FULL}"
IMAGE_LINGUAS_libc-glibc = "${IMAGE_LINGUAS_FULL}"

View File

@@ -6,13 +6,16 @@ inherit packagegroup
RDEPENDS_${PN} = " \
qt5-creator \
qtquickcontrols2-examples qtwayland-examples \
hexedit \
glade3 \
glade3 glade \
umbrello \
lokalize \
geany-plugins \
gtk-demo gtk+3-demo \
\
weston weston-xwayland \
\
unzip xz tar bzip2 \
make cmake \
automake autoconf libtool m4 \
@@ -21,44 +24,25 @@ RDEPENDS_${PN} = " \
pkgconfig binutils-symlinks elfutils gnu-config \
gdb gdbserver \
git git-bash-completion subversion \
python-shell python-subprocess \
python perl php vala lua php json-glib \
python python-shell python-subprocess \
python3 \
perl php vala lua php json-glib \
texinfo gettext \
patch quilt ncurses dialog \
man man-pages \
gawk \
chrpath \
\
qtbase-tools \
qtbase-plugins \
qtbase-examples \
qtbase-doc \
qtdeclarative-tools \
qtdeclarative-qmlplugins \
qtscript \
qtgraphicaleffects-qmlplugins \
qtquickcontrols-qmlplugins \
qtsvg-plugins \
\
qtbase-dbg \
qt3d-dbg \
qtconnectivity-dbg \
qtdeclarative-dbg \
qtenginio-dbg \
qtimageformats-dbg \
qtlocation-dbg \
qtmultimedia-dbg \
qtsensors-dbg \
qtsvg-dbg \
qtsystems-dbg \
qttools-dbg \
qtwebsockets-dbg \
qtwebchannel-dbg \
qtquickcontrols-dbg \
nodejs nodejs-npm nodejs-systemtap \
\
wireshark \
nfs-utils-client \
lmsensors-sensord lmsensors-sensorsdetect \
\
${@bb.utils.contains('BBFILE_COLLECTIONS', 'browser-layer', 'chromium-x11', '', d)} \
"
RDEPENDS_${PN}_append_libc-glibc = " \
glibc-utils \
"
# qemu

View File

@@ -8,8 +8,6 @@ MACHINE_SPECIFICS_FULL = ""
MACHINE_SPECIFICS_FULL_mx6 = "gstreamer1.0-plugins-imx"
RDEPENDS_${PN} = " \
packagegroup-gui-music \
\
source-han-sans-cn-fonts \
source-han-sans-kr-fonts \
source-han-sans-jp-fonts \
@@ -28,10 +26,10 @@ RDEPENDS_${PN} = " \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'browser-layer', 'chromium-x11', '', d)} \
\
gparted \
gnome-system-monitor \
\
mpd \
parole \
vlc \
parole gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-omx gstreamer1.0-libav \
dragon \
gstreamer1.0-plugins-base-meta gstreamer1.0-plugins-good-meta \
pulseaudio-misc \
@@ -44,19 +42,19 @@ RDEPENDS_${PN} = " \
\
kde-apps-world \
\
gottet \
hexalate \
peg-e \
simsu \
gottcode-world \
\
qwt-qt5-examples \
gnuplot gnuplot-x11 \
qskinny \
\
${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-retro', 'mame dosbox z80 vice stella opentyrian d1x-rebirth', '', d)} \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'games-layer', 'pingus supertux2 freeciv wesnoth-all', '', 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', 'qmlarkdown', '', d)} \
"
# firefox

View File

@@ -1,15 +1,21 @@
SUMMARY = "All packages required for a music image"
SUMMARY = "All packages required for musician image"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
inherit packagegroup
RDEPENDS_${PN} = " \
meta-qt5-extra-music-world \
musicians-world \
mixxx \
qmmp \
alsa-utils alsa-utils-scripts \
jack-utils \
pulseaudio-module-alsa-card \
pulseaudio-module-jack-sink \
pulseaudio-module-jack-source \
pulseaudio-module-jackdbus-detect \
sox \
a2jmidid \
fluidsynth-bin \
xfce4-mixer \
"

View File

@@ -15,11 +15,10 @@ RDEPENDS_${PN} = " \
ntp ntp-utils \
tzdata \
dnsmasq \
bind \
devilspie2 \
\
bash-completion \
gnome-system-monitor \
dconf-editor \
\
glmark2 mesa-demos eglinfo-x11 \
glmark2 mesa-demos \
"

View File

@@ -1,4 +1,6 @@
require recipes-image/xfce4/xfce4-full-image.bb
require recipes-image/xfce4/xfce4-tiny-image.bb
XFCE_DM = "sddm sddm-morona-autologin"
export IMAGE_BASENAME = "xfce4-dev-image"

View File

@@ -1,5 +1,7 @@
require xfce4-tiny-image.bb
XFCE_DM = "sddm sddm-morona-autologin"
export IMAGE_BASENAME = "xfce4-full-image"
IMAGE_INSTALL += " \

View File

@@ -4,11 +4,8 @@ export IMAGE_BASENAME = "xfce4-music-image"
XFCE_DM = "sddm sddm-morona-autologin"
# Saving to SDCard creates delays/underruns
IMAGE_FEATURES += "volatile-log"
IMAGE_INSTALL += " \
packagegroup-gui-music \
packagegroup-gui-musicians \
\
${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'libreoffice', '', d)} \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'browser-layer', 'chromium-x11', '', d)} \

14
scripts/bbone-card-write.sh Executable file
View File

@@ -0,0 +1,14 @@
#! /bin/bash
# bbone-card-write.sh
# (c) Copyright 2019 Andreas Müller <schnitzeltony@gmail.com>
# Licensed under terms of GPLv2
#
# This script writes image to sdcard and aligns rootfs partition to max size.
# Includes
. `dirname $0`/include/common-helpers.inc
. `dirname $0`/include/card-helpers.inc
. `dirname $0`/include/machine-bbone.inc
StartCardWrite

View File

@@ -0,0 +1,75 @@
#! /bin/bash
# machine-bbone.inc
# (c) Copyright 2019 Andreas Müller <schnitzeltony@gmail.com>
# Licensed under terms of GPLv2
#
# This script contains settings and callbacks for TI beagle boards
# default settings
DEFAULT_MACHINE_FAMILY='*bone*'
DEFAULT_FIND_ROOTFS='-name *.wic -o -name *.wic.gz -type l'
DEFAULT_KERNEL_IMAGE_TYPE='zImage'
# callback for card-write
RootCardWriteCallback() {
# rootfs write/resize to card fit
time(
# evt. write partition table
CheckPartitionTable "$DevicePath"
# write
StartMessage="\nWrite $DeployedFile to $DevicePath..."
if echo $DeployedFile | grep -q '.wic.gz'; then
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 oflag=nocache bs=1024K" "$StartMessage"
else
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..."
# resize II
EvalExAuto "resize2fs ${DevicePath}2" "\nResize II ${DevicePath}2..."
)
}
# callback for card-kernel-write (WIP)
RootCardKernelWriteCallback() {
tmpdir=`mktemp -d`
# mount boot partition
EvalExAuto "mount ${DevicePath}1 $tmpdir" "\nMount boot partition ${DevicePath}1 to $tmpdir..."
# initial kernel
EvalExAuto "rm -f $tmpdir/${KernelImageType}*" "\nRemove old kernels..."
EvalExAuto "cp $DeployedFile $tmpdir/$KernelImageType" "\nCopy new kernel $KernelImageType..."
# devicetrees
EvalExAuto "rm -f $tmpdir/*.dtb" "\nRemove old devicetrees..."
echo
for dtb in `find ${DeployFileDir} -name "${KernelImageType}*.dtb" -type l`; do
dtbname=`basename $dtb | sed 's:'${KernelImageType}'-::'`
EvalExAuto "cp $dtb $tmpdir/${dtbname}" "Copy $dtb -> $tmpdir/${dtbname}..."
done
# unmount boot partition
EvalExAuto "sleep 1 && umount ${DevicePath}1" "\nUnmount boot partition..."
# mount rootfs
EvalExAuto "mount ${DevicePath}2 $tmpdir" "\nMount rootfs ${DevicePath}2 to $tmpdir..."
# rootfs/boot kernel
EvalExAuto "rm -f $tmpdir/boot/${KernelImageType}*" "\nRemove old kernels..."
EvalExAuto "cp $DeployedFile $tmpdir/boot/$KernelWithAbiName" "\nCopy new kernel to /boot/$KernelWithAbiName..."
EvalExAuto "ln -sf $KernelWithAbiName $tmpdir/boot/$KernelImageType" "\nLink kernel to /boot/$KernelImageType -> $KernelWithAbiName..."
# kernel modules
CopyKernelModules
RegisterKernelModules
# unmount rootfs
EvalExAuto "sleep 1 && umount ${DevicePath}2" "\nUnmount rootfs..."
rm -rf $tmpdir
}
CheckPrerequisite "time"
CheckPrerequisite "gunzip"
CheckPrerequisite "tar"
CheckPrerequisite "dd"
CheckPrerequisite "parted"
CheckPrerequisite "resize2fs"

View File

@@ -7,25 +7,33 @@
# This script updates checksums in recipes after version bump. It is supposed
# to run run in same environment as bitbake:
#
# update-recipe-checksums.sh <recipe>
# update-recipe-checksums.sh [-d <recipedir> <recipes>
#
# where <recipe> can be a single recipe, a packagegroup an image or...
# Includes
. `dirname $0`/include/common-helpers.inc
echo
if [ "$1" = "-d" ]; then
shift
_TOPDIR="$1"
echo -e "${style_bold}Use $1 as recipe directory...${style_normal}"
shift
else
echo -e "${style_bold}Ask bitbake for recipe directory...${style_normal}"
GetBitbakeEnvVar "TOPDIR"
_TOPDIR="$BitbakeEnvVar"
fi
if [ -z "$1" ]; then
ErrorOut "No fetch target set in first parameter!"
fi
# Ask bitbake for recipe directory
GetBitbakeEnvVar "TOPDIR"
_TOPDIR="$BitbakeEnvVar"
echo
echo -e "${style_bold}Run bitbake -k --runall=fetch ${1}...${style_normal}"
echo -e "${style_bold}Run bitbake -k --runall=fetch $@...${style_normal}"
bitbake -k --runall=fetch $1 2>&1 | while read line; do
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 ::'`