dandified way to package management in yocto …...introduction of dnf-plugin-tui we redeveloped the...

31
Jun 18th, 2019 Wang Mingyu, Fujitsu [email protected] Dandified way to package management in Yocto Project Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Upload: others

Post on 04-Jul-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Jun 18th, 2019

Wang Mingyu, Fujitsu

[email protected]

Dandified way to package management

in Yocto Project

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Page 2: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Wang Mingyu, Fujitsu Ltd.

Embedded Linux Developer

In-House Embedded Linux Distro of Fujitsu

Our Distribution includes LTSI Kernel and is built with YoctoProject

Our Distribution is used for

IVI, Server System Controller, Storage System, Network Equipment, Printer, etc.

whoami

IVI:In-Vehicle Infotainment

1

Page 3: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Fujitsu’s contributions to Yocto community

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Layers Changesets

1 poky 46

2 oe-core 48

3 meta-oe 109

4 meta-cloud-services 50

5 bitbake 0

46 48

109

50

0

Contributions in yocto

Changesets

Data comes from yocto (2018-07-01 ~ 2019-07-01)

2

Maintain meta-spdxscanner

Page 4: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Fujitsu’s contributions to Yocto community

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

No. Our Developer Changesets

poky

30 Zang Ruochen 25 (0.6%)

40 Hong Liu 11 (0.3%)

71 Lei Maohui 7 (0.2%)

oe-core

30 Zang Ruochen 25 (0.4%)

50 Hong Liu 12 (0.2%)

63 Lei Maohui 7 (0.1%)

Meta-oe

8 Zang Ruochen 72 (3.7%)

17 Hong Liu 23 (1.2%)

29 Lei Maohui 11 (0.6%)

meta-cloud-services

1 Zang Ruochen 26 (22.6%)

2 Hong Liu 20 (17.4%)

Developers with the most changesets

Data comes from yocto (2018-07-01 ~ 2019-07-01)

3

Page 5: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Agenda

• Background

• Overview

• Features

What is dnf-plugin-tui

• Getting started

• Demo

How to use dnf-plugin-tui

• Oe-core

• Meta-oe

Contribution

• Support more package types

• Make TUI more user friendly

• Contribution plan

• ClearlyDefined and Cve-check-tool

Future

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED4

Page 7: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Background

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

DNF in Yocto

• In Yocto, DNF is the default Package management to generate rootfs and SDK.

Image

Generation

SDK

Generation

RootfsApplication

Development

SDK

Output Packages

Here is where DNF works

After packages were

generated,

The Yocto Build System will

use DNF to generate the

rootfs and SDK by installing

Packages.

6

Page 8: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Background

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Issues we met

Yocto Build System

Rootfs

Application

Development

SDK

User Configuration

Not the proper

rootfs you want?

Reconfigure the

image bb file

Rebuild the image

again

Typical case you meet when you try to modify your rootfs.

New Rootfs

7

Page 9: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Overview

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Introduction of dnf-plugin-tui

We redeveloped the DNF and Yocto to solve the issues mentioned above. We call

it dnf-plugin-tui which means it can work on the Cross-Development environment

in your host for package management as a plugin of DNF.

Git-Repo: https://github.com/ubinux/dnf-plugin-tui.git

Status: Support Yocto 2.6

8

Page 10: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Overview

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Build and Deploy for Each Targets

Build Once, Deploy Anywhere

……

Build Deploy

Build Deploy

Build Deploy

Build Deploy

……

Host

Yocto Build server

Packages

SDK

dnf-host Deploy

9

Page 11: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Features

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Work as a plugin of dnf

Support TUI

Manage Bom

Support config file

Support multiple formats of image

Support command line

10

Page 12: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Features(1/6)

Work as a plugin of DNF

You can use the dnf-plugin-tui as a plugin of DNF

11

Dnf-plugin-tui

Rootfs SPDX file

User Configuration

DNF

……

The code is

independent

of DNF

Packages

Call DNF

Results

11

Page 13: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Features(2/6)

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Support TUI

You can use the Text-based UI to manage packages

12

Page 14: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Features(3/6)

dnf-plugin-tui

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

DeployUpgrade

Upgrade

Build

SRPM packages

SPDX files

Packages

Deploy

Recipe files

Create

Create

archives

archives

Manage Bom

archives

13

Page 15: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Features(3/6)

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

About Openchain

14

Page 16: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Features(4/6)

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Support config file

Like kernel config, selected package list can be saved and reused.

$ cat .config

base-passwd

bc

base-passwd-

updateate

host1

Load package list

(Optional)

[ ] acl

[ ] attr

[ ] base-files

[*] base-passwd

[*] base-passwd-update

[ ] bash

[ ] bash-bashbug

[ ] bash-completion

[ ] bash-completion-extra

[*] bc

[ ] busybox

15

Sample for config fileSelect install type

New --->

Load package file --->

Reference1 (busybox based root file system) --->

Reference2 (systemd based root file system) --->

host2

host3

Page 17: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Support more image format, e.g EXT4, Squashfs, UBIFS and so on.

Rootfs

Features(5/6)

Support multiple formats of image

16

UBIFS

Squashfs

JFFS2

INITRAMFS

INITRD

RAW

Page 18: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Features(6/6)

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Support command line

New options

# dnf tui --command install bash --nosave

# dnf tui --command remove bash –nosave

After init, you can use dnf tui command line to manage packages.

# dnf tui --command list

# dnf tui --command search <spec>

# dnf tui --command info <spec>

# dnf tui --command repolist

# dnf tui --command install <spec>

# dnf tui --command remove <spec>

# dnf tui --command upgrade <spec>

--nosave

--pkg_list

# dnf tui --command install --pkg_list pkg.list //Install packages that list in pkg.list

# dnf tui --command remove --pkg_list pkg.list //Remove packages that list in pkg.list

17

Page 20: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Get the Source Code

Apply these patches

Bitbake the SDK

Getting Started

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Add dnf-plugin-tui into toolchain

$ git clone https://github.com/ubinux/dnf-plugin-tui.git

$ ls dnf-plugin-tui/poky-patches/

0001-meta-oe-patch-dnf-plugin-tui-new-recipe.patch

0001-poky-2.6-Added-some-nativesdk-oss-for-nativesdk-

dnf.patch

0002-poky-2.6-Dnf-tui-plugin-patch-for-upstream-dnf.patch

Build meta-toolchain to get sdk

that includes dnf-host

$ bitbake meta-toolchain

$ cd poky

$ patch -p1 < XXX.patch

First you need to add dnf-plugin-tui into your Yocto Project.

19

Page 21: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Getting Started

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

How to use dnf-plugin-tui

$ sh poky-glibc-x86_64-meta-toolchain-i586-qemux86-

toolchain-2.6+snapshot.sh

Install the toolchain

Source the toolchain

Init the environment

dnf-host tui

Prepare your rpm repo, then:

$ dnf tui --init

$ . /opt/poky/2.6.1/environment-setup-i586-poky-

linux

Then you can use dnf-plugin-tui on the Cross-Development environment.

Use TUI

$ dnf tui

20

Page 22: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Demo

You can reference to:

https://github.com/ubinux/dnf-plugin-tui/blob/master/README.md

Demo

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED20

Page 24: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Contribution

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

oe-core

commit content : Make dnf-nativesdk work

commit status : dnf-nativesdk is acceped

meta-oe

commit content : Add recipe of dnf-plugin-tui

commit status : in discussion

23

Get the Source Code from github

Add meta-oe to build system

Bitbake the SDK

Page 26: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

[*] Base → [ ] Bash

[*] Base-files

[ ] Base-passwd

……

[*] Utils → [ ] Coreutils

[*] Util-linux

……

[ ] Web Server →[ ] Httpd

……

[ ] Bash

[*] Base-files

[ ] Base-passwd

……

[ ] Coreutils

[*] Util-linux

……

[ ] Httpd

……

25

Future

Make TUI more user friendly

Page 27: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Continuous development.

Release dnf-plugin-tui follow the step of Yocto.

26

Future

Contribution plan

Page 28: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

ClearlyDefined

27

Future

Manage result of

cve-check-tool

Manage spdx file

Package

information

Page 29: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Manage the cve result file of packages installed by dnf-tui-plugin.

Cve result file is the result of checking packages by cve-check-tool.

28

Future

Cve-check-tool

Page 30: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Q&A

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Any Questions?

[email protected]

29

Page 31: Dandified way to package management in Yocto …...Introduction of dnf-plugin-tui We redeveloped the DNF and Yocto to solve the issues mentioned above. We call it dnf-plugin-tui which

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES LIMITED30