Commit Graph

242 Commits

Author SHA1 Message Date
Martchus fd35aa0da6 Parse sources and size from pkg info 2022-02-25 23:07:55 +01:00
Martchus 90ff9678fe Limit results returned by the API for better scalability 2022-02-25 00:29:43 +01:00
Martchus ff7f039519 Ensure problems of repos with different archs but the same name aren't mixed up 2022-02-22 22:50:51 +01:00
Martchus 382169ab6e Fix varoius build action related problems
* Fix crashes in some situations
* Fix aborting reloading library dependencies
2022-02-22 22:49:40 +01:00
Martchus 9e15129d9d Ignore null-dereference warning
It is about
```
return result_type{ storageEntry.id, storageEntry.ref.relatedStorage };
```
but it isn't clear why the compiler thinks there's a problem.
2022-02-22 22:46:53 +01:00
Martchus 5c62014b3b Fix variable name in fallback code when BOOST_ASIO_HAS_FILE 2022-02-22 20:22:00 +01:00
Martchus a25db1f9e0 Log usage of `io_uring` 2022-02-22 00:08:21 +01:00
Martchus 839a4b0831 Fix wrong variable name in `buildactionlivestreaming.cpp` 2022-02-22 00:05:35 +01:00
Martchus 3dfdce58af lmdb: Update subrepo 2022-02-21 23:49:09 +01:00
Martchus 8ea2f5fd62 Reintroduce cache file as it is still required for "lastUpdate" for DBs
Maybe it makes more sense to use LMDB for this as well. On the other hand
it is an easy way of keeping the remaining state persistent.
2022-02-20 20:17:42 +01:00
Martchus 9c4f0277bd Unlock output lock early
The following things are read-only or guarded by other mutex.
2022-02-20 19:51:46 +01:00
Martchus bdbfd42e5e Avoid package object being reused after 3d7310af3 2022-02-20 19:50:44 +01:00
Martchus d11ba43bf0 lmdb: Avoid getting packages with empty name, can lead to exception 2022-02-20 19:28:44 +01:00
Martchus 334bb1faa9 Use io_uring for async file I/O 2022-02-20 18:44:07 +01:00
Martchus 8115721913 Fix handling error computing db order when reloading dependencies 2022-02-20 00:18:49 +01:00
Martchus 93afb3883d Write build action "output" log to a logfile like for sub-processes 2022-02-20 00:11:23 +01:00
Martchus a7de520549 Use lazy-deserialization and package cache when searching in package name 2022-02-19 00:11:59 +01:00
Martchus 3d7310af30 lmdb: Get `std::shared_ptr` directly from iterator 2022-02-18 19:23:00 +01:00
Martchus 68c11be6bb Call `addDepsAndProvidesFromOtherPackage` *before* clearing existing packages 2022-02-16 19:54:21 +01:00
Martchus b3b396df5f Allow ignoring copying errors due to existing files when moving packages 2022-02-16 19:47:25 +01:00
Martchus 8949b5f3c1 Fix resetting running build actions on server startup 2022-02-16 19:17:29 +01:00
Martchus 557fd1a738 lmdb: Use lmdb to store build actions 2022-02-13 21:04:54 +01:00
Martchus 3c4f81bd55 lmdb: Declare use of lmdb on level of lmdb-safe 2022-02-05 21:52:20 +01:00
Martchus 4fbe3df095 Allow enabling Boost.Asio's support for using `io_uring`
It won't likely do much regarding file handling as code is currently still
using `boost::asio::posix::stream_descriptor` or Boost.Beast's file
handling (which uses blocking I/O). I suppose one needs to use the new file
API described here under "Asio 1.22.0 / Boost 1.78":
https://www.boost.org/doc/libs/1_78_0/doc/html/boost_asio/history.html
2022-02-05 20:31:11 +01:00
Martchus 9f0ff84bba lmdb: Update submodule 2022-02-04 17:57:22 +01:00
Martchus ff8b644221 Avoid redundant code in PackageUpdaterPrivate::submit() applying previous commit in all versions 2022-02-04 17:57:11 +01:00
Martchus e5a3b5f311 Fix accidentally removing dependency from index when already provided by existing package 2022-02-03 22:10:22 +01:00
Martchus e582d5f406 Remove useless blank line 2022-02-03 22:07:22 +01:00
Martchus 4ed645be94 Fix handling of head requests
* Fix condition for skipping
* Open destination file only if the request is not skipped (when doing a
  head request first)
2022-02-02 21:18:07 +01:00
Martchus 90379678ad Improve error handling when opening archive
* Treat an empty archive buffer/file as error as this should never happen
  and it is better to fail early than replacing existing data with nothing
* Query error message also when opening archive from file
2022-02-02 21:16:56 +01:00
Martchus d1d65dac80 Use `CacheRef(storage, entry)` c'tor as it is generally preferred
Passing any string here is more likely a mistake, see previous commit
2022-02-01 22:59:09 +01:00
Martchus 2a256e6ac1 Fix using dangling ref of package name as hash key 2022-02-01 22:57:13 +01:00
Martchus 3f9f5eae3f Avoid exceeding txn limit when pulling deps by avoiding recursion 2022-02-01 21:51:19 +01:00
Martchus bb9aaf7839 lmdb: Update subproject 2022-02-01 20:27:00 +01:00
Martchus 82eaae5d36 Remove unused object 2022-01-31 21:39:57 +01:00
Martchus 66f59fecb9 Make storing lib deps more efficient and allow for intermediate reads 2022-01-31 21:32:07 +01:00
Martchus 4b70682ab5 Fix querying package details by making corresponding function accessible 2022-01-31 21:32:07 +01:00
Martchus 162f56c5e3 Fix passing around different versions of PackageSpec
The way this is passed has gotten a bit inconsistent; let's just make it
compatible both ways.
2022-01-31 21:32:07 +01:00
Martchus 92f83fadb6 Fix/simplify move c'tor/assignment of Database 2022-01-31 20:48:02 +01:00
Martchus cca0db2d1f Install `main.js` 2022-01-30 22:37:50 +01:00
Martchus a0a1744611 lmdb: Update submodule 2022-01-30 22:37:31 +01:00
Martchus 3db350ce30 Fix finding bundled lmdb-safe when package config suffix is used 2022-01-30 22:03:28 +01:00
Martchus 43552dc9ae Fix triggering toolbar actions in Firefox 2022-01-30 21:40:35 +01:00
Martchus ac8976bf0b lmdb: Update submodule 2022-01-30 21:33:03 +01:00
Martchus eafa797262 lmdb: Avoid installing lmdb-safe when building it as part of this project
* Build lmdb-safe always as static library
* Disable install targets of lmdb-safe
2022-01-30 21:11:39 +01:00
Martchus ecf25ca260 lmdb: Build lmdb-safe as own CMake project/library 2022-01-30 01:28:03 +01:00
Martchus fa2ba49915 lmdb: Update subrepo 2022-01-26 00:47:25 +01:00
Martchus cd98c39c54 lmdb: Test clearing all packages 2022-01-26 00:47:12 +01:00
Martchus 0e61a726e1 Set `lastUpdate` to zero when clearing packages
Since reloading packages is now avoided clearing packages should not itself
count as update as it would prevent loading packages again.
2022-01-26 00:46:36 +01:00
Martchus 66d3e7b301 lmdb: Remove unused function 2022-01-26 00:44:07 +01:00