updater issueshttps://gitlab.nic.cz/turris/updater/updater/-/issues2020-11-12T02:24:11+01:00https://gitlab.nic.cz/turris/updater/updater/-/issues/44Compare the desired and installed list of packages2020-11-12T02:24:11+01:00Ghost UserCompare the desired and installed list of packagesCompare the lists and produce a list of packages to install and remove.
- [x] Depends on #43.Compare the lists and produce a list of packages to install and remove.
- [x] Depends on #43.https://gitlab.nic.cz/turris/updater/updater/-/issues/43DFS dependency traversal2019-05-06T17:47:02+02:00Ghost UserDFS dependency traversalGo through the dependencies of installation requests, get list of all the relevant packages.
- [x] Depends on #41 (Repository object)
- [x] Depends on #42 (Installation request)Go through the dependencies of installation requests, get list of all the relevant packages.
- [x] Depends on #41 (Repository object)
- [x] Depends on #42 (Installation request)https://gitlab.nic.cz/turris/updater/updater/-/issues/42Installation request2020-11-12T02:24:10+01:00Ghost UserInstallation requestCommand requesting installation of a package, producing the package match object from #40 and storing it somewhere in a global table.
- [x] Depends on #37 (Morphers)
- [x] Depends on #40 (Package object)Command requesting installation of a package, producing the package match object from #40 and storing it somewhere in a global table.
- [x] Depends on #37 (Morphers)
- [x] Depends on #40 (Package object)https://gitlab.nic.cz/turris/updater/updater/-/issues/41Repository command and object2020-11-12T02:24:13+01:00Ghost UserRepository command and objectImplement the repository command, downloading of the repositories and parsing it. Provide some list of parsed packages.
- [x] Depends on #41 (Morphers)
- [x] Depends on #40 (Package object)Implement the repository command, downloading of the repositories and parsing it. Provide some list of parsed packages.
- [x] Depends on #41 (Morphers)
- [x] Depends on #40 (Package object)https://gitlab.nic.cz/turris/updater/updater/-/issues/40Package object2020-11-12T02:24:11+01:00Ghost UserPackage objectCreate an object representing packages.
Actually, there should be two different objects. One describing concrete package from a repository, with all the information available. The other is just a description how the package should look ...Create an object representing packages.
Actually, there should be two different objects. One describing concrete package from a repository, with all the information available. The other is just a description how the package should look like when it is ready. Be able to morph the second into the first or link them somehow (would meta tables help? Or write it in C with some meta-table magic?).
- [x] Depends on #37 (Morphers)https://gitlab.nic.cz/turris/updater/updater/-/issues/39URI manager2020-11-12T02:24:13+01:00Ghost UserURI managerAdd an event to get any supported URI. This would either load it from corresponding local source or call a download.
Consider if the caller is allowed to get the URI as per the context.
Note that, in case .sig is to be checked, it may ...Add an event to get any supported URI. This would either load it from corresponding local source or call a download.
Consider if the caller is allowed to get the URI as per the context.
Note that, in case .sig is to be checked, it may need to download/acquire another resource.
Consider if it would be easier to be accessible from lua only, or if we use some hybrid mode.
- [x] Depends on #36 (Sandboxes)
- [x] Depends on #38 (Download event)https://gitlab.nic.cz/turris/updater/updater/-/issues/38Download manager2019-05-06T17:47:00+02:00Ghost UserDownload managerExtend the events interface (both C and lua) to be able to download a http or https file. Use wget or curl for now. Do https certificate validation.
Limit the number of parallel downloads somehow.Extend the events interface (both C and lua) to be able to download a http or https file. Use wget or curl for now. Do https certificate validation.
Limit the number of parallel downloads somehow.https://gitlab.nic.cz/turris/updater/updater/-/issues/37Morphers2020-11-12T02:24:15+01:00Ghost UserMorphersProvide support for the „morpher“ functions (see docs/morpher.html). Be able to generate them into the environments of #36.
- [x] Depends on #36 (sandboxes).Provide support for the „morpher“ functions (see docs/morpher.html). Be able to generate them into the environments of #36.
- [x] Depends on #36 (sandboxes).https://gitlab.nic.cz/turris/updater/updater/-/issues/36Lua sandbox & contexts2020-11-12T02:24:13+01:00Ghost UserLua sandbox & contextsPrepare the contexts for running the configuration scripts. They should inherit some parameters from parent contexts, with the ability to override stuff. Also, prepare the environments to run the chunks inside.Prepare the contexts for running the configuration scripts. They should inherit some parameters from parent contexts, with the ability to override stuff. Also, prepare the environments to run the chunks inside.https://gitlab.nic.cz/turris/updater/updater/-/issues/34Integrate opkg update2020-11-12T02:24:13+01:00Ghost UserIntegrate opkg updateCurrently, there's a cron job that does opkg update. But it sometimes collides with the updater. Integrate it into updater itself (and get rid of that cron job), so it is run sequentially.Currently, there's a cron job that does opkg update. But it sometimes collides with the updater. Integrate it into updater itself (and get rid of that cron job), so it is run sequentially.https://gitlab.nic.cz/turris/updater/updater/-/issues/32Logging configuration2020-11-12T02:24:14+01:00Ghost UserLogging configurationMake it possible to configure how much is logged (all debug, just errors, etc) and where it goes (stderr, syslog, multiple locations). It seems nice if we could make the amount of logging configurable per destination.Make it possible to configure how much is logged (all debug, just errors, etc) and where it goes (stderr, syslog, multiple locations). It seems nice if we could make the amount of logging configurable per destination.https://gitlab.nic.cz/turris/updater/updater/-/issues/31uclibc → musl migration2019-05-06T17:47:26+02:00Ghost Useruclibc → musl migrationTest what is needed and if it works (possibly even in the case of power failure) for the upgrade from uclibc to musl.
- [x] Depends on #15 (LibC replacement support)
- [x] Depends on #29 (Reinstall everything flag)
- [x] Depends on t...Test what is needed and if it works (possibly even in the case of power failure) for the upgrade from uclibc to musl.
- [x] Depends on #15 (LibC replacement support)
- [x] Depends on #29 (Reinstall everything flag)
- [x] Depends on turris/openwrt#9 (Turris packages with musl)https://gitlab.nic.cz/turris/updater/updater/-/issues/30Support for linking statically2019-05-06T17:47:31+02:00Ghost UserSupport for linking staticallyMake sure we can link the updater statically. This mostly means making sure `make STATIC=1` works and integrating it into the OpenWRT build root.
- [x] Depends on turris/openwrt#10 (Packages for statically linked libraries)Make sure we can link the updater statically. This mostly means making sure `make STATIC=1` works and integrating it into the OpenWRT build root.
- [x] Depends on turris/openwrt#10 (Packages for statically linked libraries)https://gitlab.nic.cz/turris/updater/updater/-/issues/29Reinstall everything flag2019-05-06T17:46:58+02:00Ghost UserReinstall everything flagWe need to be able to reinstall all packages in case one given package is installed (in our case, musl).
- [x] #143 Support abi_change package optionWe need to be able to reinstall all packages in case one given package is installed (in our case, musl).
- [x] #143 Support abi_change package optionhttps://gitlab.nic.cz/turris/updater/updater/-/issues/27Harness for system-level tests2020-11-12T02:24:14+01:00Ghost UserHarness for system-level testsAdd some support for tests (like, running everything under some root directory with a `-P` flag, or such).
Write some basic tests to install a package, to remove it, etc. Also, run that thing in valgrind.
- [x] Depends on #25Add some support for tests (like, running everything under some root directory with a `-P` flag, or such).
Write some basic tests to install a package, to remove it, etc. Also, run that thing in valgrind.
- [x] Depends on #25https://gitlab.nic.cz/turris/updater/updater/-/issues/26Handle config files2020-11-12T02:24:10+01:00Ghost UserHandle config filesWe need to handle config files specially. This means checking their hashes (note that newer opkg seems to use sha1 instead of md5), and don't overwrite if they are changed. Also, don't delete them if they are not changed.
Think what hap...We need to handle config files specially. This means checking their hashes (note that newer opkg seems to use sha1 instead of md5), and don't overwrite if they are changed. Also, don't delete them if they are not changed.
Think what happens if we remove a package, leave a modified config file in place and a new package comes with the same config file. Should we overwrite it? If not, how do we know it has been modified and has been a config file, if no package currently claims it? We should probably be able to handle this at least during a single transaction.https://gitlab.nic.cz/turris/updater/updater/-/issues/25Integrate transaction.perfom into the main app2020-11-12T02:24:14+01:00Ghost UserIntegrate transaction.perfom into the main appSomehow collect what needs to be fed into the transaction, load the packages into memory and fire it. Check for the result and provide some output.
This would make opkg-trans actually do some stuff.Somehow collect what needs to be fed into the transaction, load the packages into memory and fire it. Check for the result and provide some output.
This would make opkg-trans actually do some stuff.https://gitlab.nic.cz/turris/updater/updater/-/issues/23Lint-style checks2019-05-06T17:46:57+02:00Ghost UserLint-style checksIntegrate some static check analyzers (into `make check`). Something for C definitely exists (and choosing the best one is part of the task), there's luacheck and luac for lua (the second being just compiler, but we do want to check for ...Integrate some static check analyzers (into `make check`). Something for C definitely exists (and choosing the best one is part of the task), there's luacheck and luac for lua (the second being just compiler, but we do want to check for syntax errors).https://gitlab.nic.cz/turris/updater/updater/-/issues/22Coverity scan for the updater2019-05-06T17:46:56+02:00Ghost UserCoverity scan for the updaterThere are some non-trivial parts of updater-ng written in C, therefore it might benefit from a coverity scan. Automate the submission through jenkins.There are some non-trivial parts of updater-ng written in C, therefore it might benefit from a coverity scan. Automate the submission through jenkins.https://gitlab.nic.cz/turris/updater/updater/-/issues/21Restart updater even in offline mode2019-05-06T17:46:56+02:00Michal HruseckyRestart updater even in offline modeMake it possible to restart updater even if it is run after boot in offline mode. Implementation in merge request !14 Make it possible to restart updater even if it is run after boot in offline mode. Implementation in merge request !14 Michal HruseckyMichal Hrusecky