Commit Graph

17 Commits

Author SHA1 Message Date
Martchus 68d67f543f Refactor to optimize deserialization of base-data
* Break backwards compatibility
* Allow to deserialize only base-data of packages and build
  actions to potentially speed up showing tables
* Speed up package search in many cases by only deserializing
  base-data (unless details are actually wanted)
2022-05-31 19:04:57 +02:00
Martchus 0294bc241e Support static-compat package variant 2022-05-01 21:02:04 +02:00
Martchus 5c2f007589 Use auto consistently in PackageNameData 2022-05-01 20:56:38 +02:00
Martchus 6965d9b40b Pass package pointer by reference when parsing database file 2022-04-20 23:14:49 +02:00
Martchus 26caa78956 Reduce memory usage when loading packages
* Avoid creation of map with all archive contents; instead parse packages
  while walking though the archive
* Avoid instantiation of std::string in come cases (using std::string_view)
* Reuse libarchive's archive entry when walking though archive
* Use visitor-based database parser in all places to avoid intermediate big
  array with all package objects
2022-04-20 22:47:10 +02:00
Martchus 1f3f0b0df1 Avoid high memory usage when reloading database
Especially when enabling files DBs it is quite problematic to store all
package objects of a database within one big array. This change avoids the
array and instead adds the packages directly. The disadvantage is that
clearing the database isn't as simple anymore.
2022-04-19 00:23:46 +02:00
Martchus 30e3d0343e Fix condition in `Package::isPkgInfoFileOrBinary()` 2022-03-10 23:04:18 +01:00
Martchus 1f3abd5596 Distinguish Android libs from GNU/Linux libs 2022-03-04 21:48:28 +01:00
Martchus 8e18b4747f Assume the filename as library name for ELF libraries without soname field 2022-03-03 23:00:16 +01:00
Martchus 6456273951 Fix early return for special handling of `mingw-w64-crt` 2022-03-03 22:43:31 +01:00
Martchus 22cfb4bb29 Use std::string_view when parsing pkg info 2022-02-25 23:08:12 +01:00
Martchus fd35aa0da6 Parse sources and size from pkg info 2022-02-25 23:07:55 +01:00
Martchus 2ffa6629c8 lmdb: Use lmdb to store packages and dependency indices 2022-01-18 21:50:53 +01:00
Martchus 1cc8a3d6db Add warnings about missing DLLs to the build action's result 2021-08-28 15:06:24 +02:00
Martchus 2ad4a39aea Handle case when a split package overrides the archs from the base 2021-08-28 00:25:09 +02:00
Martchus fa969270c1 Fix warnings 2021-03-22 15:08:41 +01:00
Martchus c1554f4c87 Initial import 2021-02-08 23:53:56 +01:00