Martchus
55c7c62c7c
Speed up returning build actions table by avoiding deserializing whole obj
2022-05-31 20:54:02 +02:00
Martchus
645bb0fe54
Use arch-specific sub-directory within cache dir when conducting build
2022-05-31 20:27:42 +02:00
Martchus
f2902f1d08
Apply clang-format
2022-05-31 20:13:21 +02:00
Martchus
ecebf9fbde
Fix showing arch of packages after optimization
...
* Move the binary package arch truly into the base package
2022-05-31 20:13:15 +02:00
Martchus
b74392c34d
Speed up deserialization when serving providing packages as well
2022-05-31 19:40:12 +02:00
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
ae44624989
Rebuild package DBs as well when fixing DBs
2022-05-15 00:32:46 +02:00
Martchus
40cfe9883c
Ensure there are no more leftovers in "clean-repository-" DBs
2022-05-15 00:07:39 +02:00
Martchus
f37739ec07
Avoid compilation error with GCC 12
...
Make operator<< for iteratable objects visible prior to call site like it
is already done in other places.
2022-05-12 21:01:58 +02:00
Martchus
438fccd6cd
Avoid fatal warning about potential null pointer deref from GCC 12
...
It is about code included from Boost.Asio (some io_uring related code) so
let's just not treat it as fatal error.
2022-05-12 20:45:25 +02:00
Martchus
4c98887b02
Fix warning about possibly unused value
2022-05-12 20:33:23 +02:00
Martchus
5a6d68b318
Fix using files DB in CleanRepository
2022-05-07 01:59:14 +02:00
Martchus
c2d5e2f749
Use DB path when checking timestamps in repo cleanup
...
Otherwise it can break if files DBs are used.
2022-05-02 22:23:35 +02:00
Martchus
1950619f21
Add link to UI in root page
2022-05-01 22:21:42 +02:00
Martchus
e343b3ca44
Split `ResourceUsage` into `MemoryUsage` and setup specific stats
2022-04-24 18:25:22 +02:00
Martchus
142f6466ae
Show resource usage in UI
2022-04-23 19:56:22 +02:00
Martchus
a780b26ef6
Log package cache size on startup
2022-04-20 22:47:29 +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
2ca6ce1eec
Prevent crash in package search when index is broken
2022-04-19 00:24:31 +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
edb014011c
Make package search more efficient
...
* Avoid keeping list of all packages in memory by pushing each package
directly to the JSON array
* Avoid check for database before pushing each package; do it only before
reaching the next database
* Remove no longer required functions
2022-04-17 23:39:25 +02:00
Martchus
4578b30ea2
Remove hard-coded build directories in test data
2022-04-15 19:58:35 +02:00
Martchus
eae8af6571
Avoid big build action IDs by reusing older/lower ones
2022-04-15 19:20:01 +02:00
Martchus
e15f65ac16
Extend tests for conducting build
2022-04-07 23:18:14 +02:00
Martchus
08421fa719
Don't rely on local pkg dir when reloading library deps
...
Since 11f1849fde
the cache dir is also set as local pkg dir
so we cannot rely on packages really existing there.
2022-04-07 21:35:05 +02:00
Martchus
7c627e6a12
Use `auto` in `getPackages()`
2022-03-22 21:03:56 +01:00
Martchus
56afe0c710
Fix returning newly retrieved AUR packages
2022-03-22 21:03:01 +01:00
Martchus
d163f56abf
Log whether `io_uring` is used/configured
2022-03-20 17:37:33 +01:00
Martchus
d5e2b5489d
Provide filename for artefact downloads
2022-03-15 23:22:34 +01:00
Martchus
69a81f7583
Remove unused function declaration
2022-03-15 22:27:50 +01:00
Martchus
83c7426fce
Allow specifying output path for license info
2022-03-15 22:23:34 +01:00
Martchus
13cccd3bc9
Improve creating license info
2022-03-15 01:10:15 +01:00
Martchus
f87829ba85
Save state after reloading configuration
2022-03-15 01:07:51 +01:00
Martchus
11f1849fde
Keep local pkg paths deduced from pacman config
...
It makes the setup easier and shouldn't hurt otherwise.
2022-03-15 01:07:36 +01:00
Martchus
b0234ff02e
Improve MIME-type when serving artefacts
2022-03-15 00:21:08 +01:00
Martchus
59cd593a3b
Display template name
2022-03-12 22:46:42 +01:00
Martchus
70a98ffedc
Make name of build action to execute custom command shorter
2022-03-12 21:37:59 +01:00
Martchus
ac0d64fe3e
Allow everyone to see build action details
2022-03-10 23:19:02 +01:00
Martchus
55f081153e
Add command to delete invalid build actions from DB
2022-03-07 23:36:48 +01:00
Martchus
7ade757c8d
Avoid locking whole config when updating DBs
...
* Only lock the config for writing the reloading the config file
* Make sure all write operations to the database acquire an "update mutex"
to ensure only one write operation happens at a time
* Do *not* acquire any additional locks when reading from a database as it
should be safe to do so even when a write operation happens because
* LMDB read and write transactions can happen at the same time
* The package cache has its own mutex anyways
* Write ops to the package cache try to lock the "update mutex" to
prevent writing "old" data to the cache during updates
* Make "lastUpdate" atomic to avoid locking the config when accessing it
2022-03-05 18:55:52 +01:00
Martchus
afc61bcad6
Speed up AUR updates using `PackageUpdater`
2022-03-05 16:10:33 +01:00
Martchus
8fdf7bfb04
Print certain resource limits on server startup
2022-03-05 12:34:26 +01:00
Martchus
9acd10fa4c
Catch `boost::exception`s
2022-03-05 12:34:05 +01:00
Martchus
9b6be51dd3
Allow reloading library dependencies of specific packages
2022-03-04 21:51:25 +01:00
Martchus
4293eb92bf
Ignore libs for cross-compilation when checking any packages for binaries
...
Not really generic yet (e.g. doesn't cover `aarch64-linux-gnu-glibc`) but
good enough for now.
2022-03-04 21:50:56 +01:00
Martchus
c633eea607
Add any-packages containing binaries as problem when checking for errors
2022-03-03 23:08:14 +01:00
Martchus
c2e7f40767
Fix typos
2022-03-01 00:43:06 +01:00
Martchus
79123e4cd9
Improve error handling of server
...
* Return with non-zero exit code when an exception occurred
* Handle exceptions when terminating the service
2022-03-01 00:39:50 +01:00
Martchus
0343685910
Adapt tests for limiting
2022-02-25 23:18:26 +01:00
Martchus
67fa8def0b
Name additional threads
2022-02-25 23:09:46 +01:00