etc:20-lpm-gui
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| etc:20-lpm-gui [2022/05/14 05:21] – wikiadmin | etc:20-lpm-gui [2022/07/28 18:13] (current) – wikiadmin | ||
|---|---|---|---|
| Line 55: | Line 55: | ||
| As archive format, lpk uses gzip compressed cpio, prepended by a header containing the package information. The prepended header looks like this: | As archive format, lpk uses gzip compressed cpio, prepended by a header containing the package information. The prepended header looks like this: | ||
| - | * 11 bytes made from 5 bytes containing the version signature (EPLM20) and 6 bytes containing the zero-padded size of the following header | + | * 11 bytes made from 5 bytes containing the version signature (ELPM20) and 6 bytes containing the zero-padded size of the following header |
| * The package description, | * The package description, | ||
| Line 278: | Line 278: | ||
| - ekva_new: to create a new EKVA array \\ - ekva_addval: | - ekva_new: to create a new EKVA array \\ - ekva_addval: | ||
| + | |||
| + | ==== 8.3 LPA ==== | ||
| + | |||
| + | LPA arrays are used to store information about available updates in an easily parsable form: | ||
| + | |||
| + | < | ||
| + | struct s_lpa { | ||
| + | char action; | ||
| + | char status; | ||
| + | LPI *lpi; | ||
| + | char *candidate; | ||
| + | }; | ||
| + | typedef struct s_lpa LPA; | ||
| + | |||
| + | </ | ||
| + | |||
| + | - action is ' | ||
| ===== 9. important frontend functions ===== | ===== 9. important frontend functions ===== | ||
| Line 283: | Line 300: | ||
| All frontend functions are defined int lpm.h, the ones relevant to a frontend using plpm for privileged actions are: | All frontend functions are defined int lpm.h, the ones relevant to a frontend using plpm for privileged actions are: | ||
| - | lpm_open | + | - lpm_open: " |
| + | |||
| + | - lpmui_init: initializes the internally used lpmui, necessary, but has no effect… | ||
| + | |||
| + | - lpm_lpc_load: | ||
| + | |||
| + | - lpm_lpc_connect: | ||
| + | |||
| + | - lpm_lpc_cache_fill: | ||
| + | |||
| + | - lpm_lpc_release: | ||
| + | |||
| + | - lpm_cache_free: | ||
| + | |||
| + | - lpk_info_ekva: | ||
| + | |||
| + | - lpm_list_lpi: | ||
| + | |||
| + | - lpm_lpf_info: | ||
| + | |||
| + | - lpm_findpkg_new: | ||
| + | |||
| + | - lconf_read: reads the lpm config file | ||
| + | |||
| + | - log_init: initializes the internal logging mechanism, necessary | ||
| + | |||
| + | - lpm_pre_update: | ||
| + | |||
| + | - lpm_lpa_list_add_lpt: | ||
| + | |||
| + | ===== 10. Required globals ===== | ||
| + | |||
| + | In order for the frontend to be able to use all further funtions correctly, it has to define a set of global variables: | ||
| + | |||
| + | < | ||
| + | void *lpc_backend_handle; | ||
| + | EKVA **lpm_sys_conf = NULL; | ||
| + | LPC *lpc; | ||
| + | |||
| + | int dry_run = 0; | ||
| + | int vote_mode = LPM_VOTE_DEFAULT; | ||
| + | LPMUI *lpmui = NULL; | ||
| + | struct s_llog *llog; | ||
| + | |||
| + | LPI **lpc_cache; | ||
| + | |||
| + | </ | ||
| - | lpmui_init | + | ===== 11. Required initialization sequence ===== |
| - | lpm_lpc_load | + | Maybe in later releases, the initialisation sequence will be simplyfied and merged into some lpm_init function, but for the moment, the code from line 490 - 542 from lpmsh.c can be copied for that purpose. |
etc/20-lpm-gui.1652498485.txt.gz · Last modified: by wikiadmin
