etc:30-gtk3-lpm
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| etc:30-gtk3-lpm [2022/06/01 15:15] – wikiadmin | etc:30-gtk3-lpm [2022/06/23 21:41] (current) – removed wikiadmin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Missing features for the gtk3 lpm frontend ====== | ||
| - | |||
| - | This document lists features that might yet be implemented in glpm, the gtk3 front-end to lpm. It is divided into the sections | ||
| - | |||
| - | * important missing features | ||
| - | * important changes | ||
| - | * desirable missing features | ||
| - | * desirable changes | ||
| - | * wishlist | ||
| - | |||
| - | The document is currently based on commit // f1cfe59// | ||
| - | |||
| - | (Above commit name corresponds to the value retrurn by: ** | ||
| - | < | ||
| - | |||
| - | If any change or feature description has the remark (needs core change), the implementation would require a change to liblpm and/or plpm and therefore needs to be coordinated accordingly. | ||
| - | |||
| - | ===== 1. Important missing features ===== | ||
| - | |||
| - | There are currently no recognized important missing features | ||
| - | |||
| - | ===== 2. Important changes ===== | ||
| - | |||
| - | ===== 3. Desirable missing features ===== | ||
| - | |||
| - | ==== 3.2. install one package with specified version and variant ==== | ||
| - | |||
| - | ==== ==== | ||
| - | |||
| - | It is already mentioned under 2.1 that if the user chooses to display not only the newest available packages, but all available versions, he could then choose exactly one package from the list for installation. | ||
| - | |||
| - | In that case, the frontend would have to supply not only the name but also both version and the eventual variant to plpm. | ||
| - | |||
| - | It seems that the current implementation of plpm_execute has not yet implemented that functionality: | ||
| - | |||
| - | < | ||
| - | for (GList *lp = packages; lp != NULL; lp = lp-> | ||
| - | LPI *lpi = lp-> | ||
| - | g_string_append_c (command, ' '); | ||
| - | g_string_append (command, lpi-> | ||
| - | } | ||
| - | |||
| - | </ | ||
| - | |||
| - | In lpmsh.c, this is handled as follows: | ||
| - | |||
| - | < | ||
| - | if (num_pkgs == 1) { | ||
| - | if ( (optver != NULL) && ((optvar != NULL) ) ) { | ||
| - | sprintf(optstr," | ||
| - | } else if (optver != NULL) { | ||
| - | sprintf(optstr," | ||
| - | } else if (optvar != NULL) { | ||
| - | sprintf(optstr," | ||
| - | } | ||
| - | if (strlen(optstr)> | ||
| - | strncat(syscmd, | ||
| - | } | ||
| - | } | ||
| - | strcat(syscmd, | ||
| - | } else { | ||
| - | pkgstr = arr2str(packages,' | ||
| - | strncat(syscmd, | ||
| - | free(pkgstr); | ||
| - | } | ||
| - | |||
| - | </ | ||
| - | |||
| - | Therefore, a corresponding plpm_execute implementation would look something like that: | ||
| - | |||
| - | < | ||
| - | if (number_of_elements_in_packages == 1) { | ||
| - | GList *lp = packages; | ||
| - | LPI *lpi = lp-> | ||
| - | if (lpi-> | ||
| - | sprintf(optstr," | ||
| - | } else { | ||
| - | sprintf(optstr," | ||
| - | } | ||
| - | g_string_append (command, | ||
| - | g_string_append (command, | ||
| - | } else { | ||
| - | for (GList *lp = packages; lp != NULL; lp = lp-> | ||
| - | LPI *lpi = lp-> | ||
| - | g_string_append_c (command, ' '); | ||
| - | g_string_append (command, lpi-> | ||
| - | } | ||
| - | } | ||
| - | |||
| - | </ | ||
| - | |||
| - | This code would then also work for a downgrade of package, by just passing the desired lpi wrapped in this GList thing. | ||
| - | |||
| - | ==== 3.5. Downgrade a package ==== | ||
| - | |||
| - | A downgrade of a package should take place at the GLPM_PACKAGE_VIEW_MODE_INSTALLED view, either by an option in a package' | ||
| - | |||
| - | lpm_findpkg_new(lpm, | ||
| - | |||
| - | The call to lpm_findpkg_new should be made with: | ||
| - | |||
| - | * lpm, lpc set to as usual | ||
| - | * lpk_name with the package name | ||
| - | * variant with the variant | ||
| - | * ext_attributes is NUL | ||
| - | * newvers is 1 | ||
| - | |||
| - | char *lpk_variant = NULL; | ||
| - | |||
| - | 4. Desirable changes | ||
| - | |||
| - | ==== 4.1 Application startup ==== | ||
| - | |||
| - | ===== 5. Wishlist ===== | ||
| - | |||
| - | * verify package contents by hash (needs core change) | ||
| - | |||
| - | - view install log \\ | ||
| - | - remove installed packages \\ | ||
| - | - downgrade installed packages \\ | ||
| - | - new LPM logo \\ | ||
| - | - application startup \\ | ||
| - | - update-only startup (maybe using notify) \\ | ||
| - | - group-privileged refresh \\ | ||
| - | - show package contents \\ | ||
| - | - verify package contents by hash \\ | ||
| - | - show dependend packages \\ | ||
| - | - debug mode \\ | ||
| - | - remove unneeded code | ||
| - | |||
| - | 1.4 Application startup | ||
| - | |||
| - | Currently, glpm performs a cataologue update at startup before displaying its main window. As the refresh may take some time, especially when using the lpc-http backend, it might be nicer if glpm only does the previous initialisation steps before and performs the refresh after displaying the main window. It then could also already display above plpm otubut block, and above maybe just a cool png picture, configurable at build time. | ||
| - | |||
| - | 2. Package actions | ||
| - | |||
| - | The three main actions of glpm are: | ||
| - | |||
| - | * update: update all or selected package where an update is available | ||
| - | * install: install available packages that are not yet installed | ||
| - | * remove: remove installed packages that are no longer needed | ||
| - | |||
| - | 2.2 Install new packages | ||
| - | |||
| - | In order to install new packages, the user should be presented with a searchable/ | ||
| - | |||
| - | === 2.2.1 Install multiple packages === | ||
| - | |||
| - | The most simple solution is to call the function with the flag // | ||
| - | |||
| - | The package lists…. | ||
| - | |||
etc/30-gtk3-lpm.1654089338.txt.gz · Last modified: by wikiadmin
