Github messages for voidlinux
 help / color / mirror / Atom feed
From: TinfoilSubmarine <TinfoilSubmarine@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] New packages: vaultwarden-web-2.28.1, vaultwarden-1.25.0
Date: Mon, 23 May 2022 22:32:38 +0200	[thread overview]
Message-ID: <20220523203238.FFDVLUcjWfN19cJgQ09X9OCJHoklVu9uMizBMNkJJEQ@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-37258@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 1277 bytes --]

There is an updated pull request by TinfoilSubmarine against master on the void-packages repository

https://github.com/TinfoilSubmarine/void-packages maint/vaultwarden
https://github.com/void-linux/void-packages/pull/37258

New packages: vaultwarden-web-2.28.1, vaultwarden-1.25.0
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/37258.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-maint/vaultwarden-37258.patch --]
[-- Type: text/x-diff, Size: 26078 bytes --]

From b8146a4311b4ca302d76197ccce17631f445687b Mon Sep 17 00:00:00 2001
From: Joel Beckmeyer <joel@beckmeyer.us>
Date: Sat, 26 Mar 2022 20:55:52 -0400
Subject: [PATCH 1/2] New package: vaultwarden-web-2.28.1

---
 srcpkgs/vaultwarden-web/patches/v2.28.0.patch | 271 ++++++++++++++++++
 srcpkgs/vaultwarden-web/template              |  34 +++
 2 files changed, 305 insertions(+)
 create mode 100644 srcpkgs/vaultwarden-web/patches/v2.28.0.patch
 create mode 100644 srcpkgs/vaultwarden-web/template

diff --git a/srcpkgs/vaultwarden-web/patches/v2.28.0.patch b/srcpkgs/vaultwarden-web/patches/v2.28.0.patch
new file mode 100644
index 000000000000..77ae1affb2b4
--- /dev/null
+++ b/srcpkgs/vaultwarden-web/patches/v2.28.0.patch
@@ -0,0 +1,271 @@
+Submodule jslib contains modified content
+diff --git a/jslib/angular/src/components/register.component.ts b/jslib/angular/src/components/register.component.ts
+index d4b99e17..c1626200 100644
+--- a/jslib/angular/src/components/register.component.ts
++++ b/jslib/angular/src/components/register.component.ts
+@@ -28,7 +28,7 @@ export class RegisterComponent extends CaptchaProtectedComponent implements OnIn
+   formPromise: Promise<any>;
+   masterPasswordScore: number;
+   referenceData: ReferenceEventRequest;
+-  showTerms = true;
++  showTerms = false;
+   acceptPolicies = false;
+ 
+   protected successRoute = "login";
+@@ -47,7 +47,7 @@ export class RegisterComponent extends CaptchaProtectedComponent implements OnIn
+     protected logService: LogService
+   ) {
+     super(environmentService, i18nService, platformUtilsService);
+-    this.showTerms = !platformUtilsService.isSelfHost();
++    this.showTerms = false;
+   }
+ 
+   async ngOnInit() {
+@@ -85,6 +85,15 @@ export class RegisterComponent extends CaptchaProtectedComponent implements OnIn
+   }
+ 
+   async submit() {
++    if (typeof crypto.subtle === 'undefined') {
++      this.platformUtilsService.showToast(
++        "error",
++        "This browser requires HTTPS to use the web vault",
++        "Check the Vaultwarden wiki for details on how to enable it"
++      );
++      return;
++    }
++
+     if (!this.acceptPolicies && this.showTerms) {
+       this.platformUtilsService.showToast(
+         "error",
+diff --git a/src/404.html b/src/404.html
+index 6cf5e363..54d11495 100644
+--- a/src/404.html
++++ b/src/404.html
+@@ -42,11 +42,10 @@
+         </a>
+       </p>
+       <p>
+-        You can <a href="/">return to the web vault</a>, check our
+-        <a href="https://status.bitwarden.com/">status page</a> or
+-        <a href="https://bitwarden.com/contact/">contact us</a>.
++        You can <a href="/">return to the web vault</a>, or
++        <a href="https://github.com/dani-garcia/vaultwarden">contact us</a>.
+       </p>
+     </div>
+-    <div class="container footer text-muted content">© Copyright 2022 Bitwarden, Inc.</div>
++    <div class="container footer text-muted content">© Copyright 2022 Bitwarden, Inc. (Powered by Vaultwarden)</div>
+   </body>
+ </html>
+diff --git a/src/app/app.component.ts b/src/app/app.component.ts
+index cd94408f..56bc4bdb 100644
+--- a/src/app/app.component.ts
++++ b/src/app/app.component.ts
+@@ -159,6 +159,10 @@ export class AppComponent implements OnDestroy, OnInit {
+             break;
+           }
+           case "showToast":
++            if (typeof message.text === "string" && typeof crypto.subtle === 'undefined') {
++              message.title="This browser requires HTTPS to use the web vault";
++              message.text="Check the Vaultwarden wiki for details on how to enable it";
++            }
+             this.showToast(message);
+             break;
+           case "setFullWidth":
+diff --git a/src/app/layouts/footer.component.html b/src/app/layouts/footer.component.html
+index 8601e123..22a0248b 100644
+--- a/src/app/layouts/footer.component.html
++++ b/src/app/layouts/footer.component.html
+@@ -1,6 +1,6 @@
+ <div class="container footer text-muted">
+   <div class="row">
+-    <div class="col">&copy; {{ year }}, Bitwarden Inc.</div>
++    <div class="col">&copy; {{ year }}, Bitwarden Inc. (Powered by Vaultwarden)</div>
+     <div class="col text-center"></div>
+     <div class="col text-right">
+       {{ "versionNumber" | i18n: version }}
+diff --git a/src/app/layouts/frontend-layout.component.html b/src/app/layouts/frontend-layout.component.html
+index 479302d3..84930683 100644
+--- a/src/app/layouts/frontend-layout.component.html
++++ b/src/app/layouts/frontend-layout.component.html
+@@ -1,5 +1,5 @@
+ <router-outlet></router-outlet>
+ <div class="container my-5 text-muted text-center">
+-  &copy; {{ year }}, Bitwarden Inc. <br />
++  &copy; {{ year }}, Bitwarden Inc. (Powered by Vaultwarden)<br />
+   {{ "versionNumber" | i18n: version }}
+ </div>
+diff --git a/src/app/layouts/navbar.component.html b/src/app/layouts/navbar.component.html
+index c03c2bdf..a074e0c2 100644
+--- a/src/app/layouts/navbar.component.html
++++ b/src/app/layouts/navbar.component.html
+@@ -65,7 +65,7 @@
+           </a>
+           <a
+             class="dropdown-item"
+-            href="https://bitwarden.com/help/"
++            href="https://github.com/dani-garcia/vaultwarden"
+             target="_blank"
+             rel="noopener"
+           >
+diff --git a/src/app/organizations/vault/vault.component.ts b/src/app/organizations/vault/vault.component.ts
+index ea7d683e..2b534e05 100644
+--- a/src/app/organizations/vault/vault.component.ts
++++ b/src/app/organizations/vault/vault.component.ts
+@@ -68,11 +68,7 @@ export class VaultComponent implements OnInit, OnDestroy {
+   ) {}
+ 
+   ngOnInit() {
+-    this.trashCleanupWarning = this.i18nService.t(
+-      this.platformUtilsService.isSelfHost()
+-        ? "trashCleanupWarningSelfHosted"
+-        : "trashCleanupWarning"
+-    );
++    this.trashCleanupWarning = this.i18nService.t("trashCleanupWarningSelfHosted");
+     this.route.parent.params.pipe(first()).subscribe(async (params) => {
+       this.organization = await this.organizationService.get(params.organizationId);
+       this.groupingsComponent.organization = this.organization;
+diff --git a/src/app/send/access.component.html b/src/app/send/access.component.html
+index 19bc107b..7e1dbcc7 100644
+--- a/src/app/send/access.component.html
++++ b/src/app/send/access.component.html
+@@ -137,15 +137,6 @@
+     <div class="col-12 text-center mt-5 text-muted">
+       <p class="mb-0">
+         {{ "sendAccessTaglineProductDesc" | i18n }}<br />
+-        {{ "sendAccessTaglineLearnMore" | i18n }}
+-        <a href="https://www.bitwarden.com/products/send?source=web-vault" target="_blank"
+-          >Bitwarden Send</a
+-        >
+-        {{ "sendAccessTaglineOr" | i18n }}
+-        <a href="https://vault.bitwarden.com/#/register" target="_blank">{{
+-          "sendAccessTaglineSignUp" | i18n
+-        }}</a>
+-        {{ "sendAccessTaglineTryToday" | i18n }}
+       </p>
+     </div>
+   </div>
+diff --git a/src/app/services/services.module.ts b/src/app/services/services.module.ts
+index c8e95320..88f5240c 100644
+--- a/src/app/services/services.module.ts
++++ b/src/app/services/services.module.ts
+@@ -65,11 +65,23 @@ export function initFactory(
+   platformUtilsService: PlatformUtilsServiceAbstraction,
+   cryptoService: CryptoServiceAbstraction
+ ): () => void {
++  function getBaseUrl() {
++      // If the base URL is `https://vaultwarden.example.com/base/path/`,
++      // `window.location.href` should have one of the following forms:
++      //
++      // - `https://vaultwarden.example.com/base/path/`
++      // - `https://vaultwarden.example.com/base/path/#/some/route[?queryParam=...]`
++      //
++      // We want to get to just `https://vaultwarden.example.com/base/path`.
++      let baseUrl = window.location.href;
++      baseUrl = baseUrl.replace(/#.*/, '');  // Strip off `#` and everything after.
++      baseUrl = baseUrl.replace(/\/+$/, ''); // Trim any trailing `/` chars.
++      return baseUrl;
++  }
+   return async () => {
+     await stateService.init();
+ 
+-    const urls = process.env.URLS as Urls;
+-    urls.base ??= window.location.origin;
++    const urls = {base: getBaseUrl()};
+     environmentService.setUrls(urls);
+ 
+     setTimeout(() => notificationsService.init(), 3000);
+diff --git a/src/app/vault/vault.component.ts b/src/app/vault/vault.component.ts
+index c3730bfa..3fab9245 100644
+--- a/src/app/vault/vault.component.ts
++++ b/src/app/vault/vault.component.ts
+@@ -91,11 +91,7 @@ export class VaultComponent implements OnInit, OnDestroy {
+   async ngOnInit() {
+     this.showVerifyEmail = !(await this.tokenService.getEmailVerified());
+     this.showBrowserOutdated = window.navigator.userAgent.indexOf("MSIE") !== -1;
+-    this.trashCleanupWarning = this.i18nService.t(
+-      this.platformUtilsService.isSelfHost()
+-        ? "trashCleanupWarningSelfHosted"
+-        : "trashCleanupWarning"
+-    );
++    this.trashCleanupWarning = this.i18nService.t('trashCleanupWarningSelfHosted');
+ 
+     this.route.queryParams.pipe(first()).subscribe(async (params) => {
+       await this.syncService.fullSync(false);
+diff --git a/src/scss/styles.scss b/src/scss/styles.scss
+index d2678ac8..fb467a7e 100644
+--- a/src/scss/styles.scss
++++ b/src/scss/styles.scss
+@@ -56,3 +56,55 @@
+ @import "./plugins";
+ @import "./tables";
+ @import "./toasts";
++
++
++/**** START Vaultwarden CHANGES ****/
++/* This combines all selectors extending it into one */
++%vw-hide { display: none !important; }
++
++/* This allows searching for the combined style in the browsers dev-tools (look into the head tag) */
++#vw-hide, head { @extend %vw-hide; }
++
++/* Hide any link pointing to billing */
++a[href$="/settings/billing"] { @extend %vw-hide; }
++
++/* Hide any link pointing to subscriptions */
++a[href$="/settings/subscription"] { @extend %vw-hide; }
++
++/* Hide any link pointing to Sponsored Families */
++a[href$="/settings/sponsored-families"] { @extend %vw-hide; }
++
++/* Hide the `Enterprise Single Sign-On` button on the login page */
++a[href$="/sso"] { @extend %vw-hide; }
++
++/* Hide the info box that advertises Bitwarden Send */
++app-send-info.d-block { @extend %vw-hide; }
++
++/* Hide Two-Factor menu in Organization settings */
++app-org-settings a[href$="/settings/two-factor"] { @extend %vw-hide; }
++
++/* Hide organization plans */
++app-organization-plans > form > div.form-check { @extend %vw-hide; }
++app-organization-plans > form > h2.mt-5 { @extend %vw-hide; }
++
++/* Hide the `This account is owned by a business` checkbox and label */
++#ownedBusiness, label[for^=ownedBusiness] { @extend %vw-hide; }
++
++/* Hide External Id field for Collections */
++app-collection-add-edit form div.form-group:nth-child(2) { @extend %vw-hide; }
++
++/* Hide the radio button and label for the `Custom` org user type */
++#userTypeCustom, label[for^=userTypeCustom] { @extend %vw-hide; }
++
++/* Hide the warning that policy config is moving to Business Portal */
++app-org-policies > app-callout { @extend %vw-hide; }
++
++/* Hide Business Name and Identifier */
++app-org-account form div.form-group:nth-child(3) { display: none; }
++app-org-account form div.form-group:nth-child(4) { display: none; }
++
++/* Hide Tax Info and Form in Organization settings */
++app-org-account > div.secondary-header:nth-child(3) { @extend %vw-hide; }
++app-org-account > div.secondary-header:nth-child(3) + p { @extend %vw-hide; }
++app-org-account > div.secondary-header:nth-child(3) + p + form { @extend %vw-hide; }
++/**** END Vaultwarden CHANGES ****/
+diff --git a/src/services/webPlatformUtils.service.ts b/src/services/webPlatformUtils.service.ts
+index 0c9b56fa..297d4bc5 100644
+--- a/src/services/webPlatformUtils.service.ts
++++ b/src/services/webPlatformUtils.service.ts
+@@ -238,11 +238,11 @@ export class WebPlatformUtilsService implements PlatformUtilsService {
+   }
+ 
+   isDev(): boolean {
+-    return process.env.NODE_ENV === "development";
++    return false;
+   }
+ 
+   isSelfHost(): boolean {
+-    return process.env.ENV.toString() === "selfhosted";
++    return false;
+   }
+ 
+   copyToClipboard(text: string, options?: any): void | boolean {
diff --git a/srcpkgs/vaultwarden-web/template b/srcpkgs/vaultwarden-web/template
new file mode 100644
index 000000000000..3f825f076fcb
--- /dev/null
+++ b/srcpkgs/vaultwarden-web/template
@@ -0,0 +1,34 @@
+# Template file for 'vaultwarden-web'
+pkgname=vaultwarden-web
+version=2.28.1
+revision=1
+wrksrc="web-${version}"
+_jslib_commit=e595c0548ed1a481dbd024ec66975e3a453bd471
+hostmakedepends="git nodejs"
+short_desc="Web vault builds for vaultwarden"
+maintainer="Joel Beckmeyer <joel@beckmeyer.us>"
+license="GPL-3.0-or-later"
+homepage="https://github.com/dani-garcia/bw_web_builds"
+distfiles="https://github.com/bitwarden/web/archive/v${version}.tar.gz
+ https://github.com/bitwarden/jslib/archive/${_jslib_commit}.tar.gz"
+checksum="143a32842219e3a25f9a91cc29c4595a177e4a7915938938f3d4c2776b19bb0e
+ 604a3696fccf315fedeeda2a2547eee88f74b8067ba21ed58717173820719f62"
+
+post_extract() {
+	pwd
+	rmdir jslib
+	mv ../jslib-* jslib
+}
+
+do_configure() {
+	npm ci --ignore-scripts
+}
+
+do_build() {
+	npm run dist:oss:selfhost
+}
+
+do_install() {
+	vmkdir usr/share/webapps/vaultwarden-web
+	vcopy build/* usr/share/webapps/vaultwarden-web
+}

From aecac143c3d080e3a8a900b85eceea85f84cfdcb Mon Sep 17 00:00:00 2001
From: Joel Beckmeyer <joel@beckmeyer.us>
Date: Thu, 17 Feb 2022 13:25:21 -0500
Subject: [PATCH 2/2] New package: vaultwarden-1.25.0

---
 srcpkgs/vaultwarden/files/vaultwarden/log/run |  1 +
 srcpkgs/vaultwarden/files/vaultwarden/run     |  6 ++
 srcpkgs/vaultwarden/patches/Cargo.toml.patch  | 25 ++++++
 srcpkgs/vaultwarden/patches/config.patch      | 41 +++++++++
 .../dashmap_available_parallelism.patch       | 31 +++++++
 .../vaultwarden/patches/format_strings.patch  | 89 +++++++++++++++++++
 srcpkgs/vaultwarden/template                  | 33 +++++++
 7 files changed, 226 insertions(+)
 create mode 120000 srcpkgs/vaultwarden/files/vaultwarden/log/run
 create mode 100644 srcpkgs/vaultwarden/files/vaultwarden/run
 create mode 100644 srcpkgs/vaultwarden/patches/Cargo.toml.patch
 create mode 100644 srcpkgs/vaultwarden/patches/config.patch
 create mode 100644 srcpkgs/vaultwarden/patches/dashmap_available_parallelism.patch
 create mode 100644 srcpkgs/vaultwarden/patches/format_strings.patch
 create mode 100644 srcpkgs/vaultwarden/template

diff --git a/srcpkgs/vaultwarden/files/vaultwarden/log/run b/srcpkgs/vaultwarden/files/vaultwarden/log/run
new file mode 120000
index 000000000000..3a5b4a586051
--- /dev/null
+++ b/srcpkgs/vaultwarden/files/vaultwarden/log/run
@@ -0,0 +1 @@
+/usr/bin/vlogger
\ No newline at end of file
diff --git a/srcpkgs/vaultwarden/files/vaultwarden/run b/srcpkgs/vaultwarden/files/vaultwarden/run
new file mode 100644
index 000000000000..ff5d0c6af46d
--- /dev/null
+++ b/srcpkgs/vaultwarden/files/vaultwarden/run
@@ -0,0 +1,6 @@
+#!/bin/sh
+[ -r ./conf ] && . ./conf
+ENV_FILE=${ENV_FILE:-/etc/vaultwarden.conf}
+export ENV_FILE
+
+exec chpst -u _vaultwarden:_vaultwarden vaultwarden
diff --git a/srcpkgs/vaultwarden/patches/Cargo.toml.patch b/srcpkgs/vaultwarden/patches/Cargo.toml.patch
new file mode 100644
index 000000000000..bdd64d443e21
--- /dev/null
+++ b/srcpkgs/vaultwarden/patches/Cargo.toml.patch
@@ -0,0 +1,25 @@
+diff --git a/Cargo.toml b/Cargo.toml
+index e9dc2aa..e3736f2 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -3,7 +3,7 @@ name = "vaultwarden"
+ version = "1.0.0"
+ authors = ["Daniel García <dani-garcia@users.noreply.github.com>"]
+ edition = "2021"
+-rust-version = "1.60"
++rust-version = "1.57"
+ resolver = "2"
+ 
+ repository = "https://github.com/dani-garcia/vaultwarden"
+@@ -154,10 +154,10 @@ mimalloc = { version = "0.1.29", features = ["secure"], default-features = false
+ # that wasn't previously supported (https://github.com/zslayton/cron/pull/64).
+ # 2022-05-04: Forked/Updated the job_scheduler again use the latest dependencies and some fixes.
+ job_scheduler = { git = 'https://github.com/BlackDex/job_scheduler', rev = '9100fc596a083fd9c0b560f8f11f108e0a19d07e' }
++dashmap = { path = './dashmap' }
+ 
+ # Strip debuginfo from the release builds
+ # Also enable thin LTO for some optimizations
+ [profile.release]
+-strip = "debuginfo"
+ lto = "thin"
+ patch.crates-io.dashmap = { path = './dashmap' }
diff --git a/srcpkgs/vaultwarden/patches/config.patch b/srcpkgs/vaultwarden/patches/config.patch
new file mode 100644
index 000000000000..c71af0eb1b12
--- /dev/null
+++ b/srcpkgs/vaultwarden/patches/config.patch
@@ -0,0 +1,41 @@
+diff --git a/.env.template b/.env.template
+index 6af6b53..18b7f98 100644
+--- a/.env.template
++++ b/.env.template
+@@ -5,7 +5,7 @@
+ ## in the admin interface. Those overrides are stored within DATA_FOLDER/config.json .
+ 
+ ## Main data folder
+-# DATA_FOLDER=data
++DATA_FOLDER=/var/lib/vaultwarden
+ 
+ ## Database URL
+ ## When using SQLite, this is the path to the DB file, default to %DATA_FOLDER%/db.sqlite3
+@@ -46,8 +46,8 @@
+ # ICON_CACHE_NEGTTL=259200
+ 
+ ## Web vault settings
+-# WEB_VAULT_FOLDER=web-vault/
+-# WEB_VAULT_ENABLED=true
++# WEB_VAULT_FOLDER=/usr/share/webapps/vaultwarden-web
++WEB_VAULT_ENABLED=false
+ 
+ ## Enables websocket notifications
+ # WEBSOCKET_ENABLED=false
+@@ -103,7 +103,7 @@
+ 
+ ## Logging to file
+ ## It's recommended to also set 'ROCKET_CLI_COLORS=off'
+-# LOG_FILE=/path/to/log
++# LOG_FILE=/var/log/vaultwarden.log
+ 
+ ## Logging to Syslog
+ ## This requires extended logging
+@@ -291,6 +291,7 @@
+ # ROCKET_PORT=80  # Defaults to 80 in the Docker images, or 8000 otherwise.
+ # ROCKET_WORKERS=10
+ # ROCKET_TLS={certs="/path/to/certs.pem",key="/path/to/key.pem"}
++ROCKET_LIMITS={json=10485760}
+ 
+ ## Mail specific settings, set SMTP_HOST and SMTP_FROM to enable the mail service.
+ ## To make sure the email links are pointing to the correct host, set the DOMAIN variable.
diff --git a/srcpkgs/vaultwarden/patches/dashmap_available_parallelism.patch b/srcpkgs/vaultwarden/patches/dashmap_available_parallelism.patch
new file mode 100644
index 000000000000..8601dac8b4ea
--- /dev/null
+++ b/srcpkgs/vaultwarden/patches/dashmap_available_parallelism.patch
@@ -0,0 +1,31 @@
+commit 1008b24de43aabaaa87d35171d588d09aba0865d
+Author: Joel Beckmeyer <joel@beckmeyer.us>
+Date:   Mon May 23 13:04:15 2022 -0400
+
+    Use `num_cpus` in place of `std::thread::available_parallelism`
+
+diff --git a/dashmap/Cargo.toml b/dashmap/Cargo.toml
+index 5786133..bc1f076 100644
+--- a/dashmap/Cargo.toml
++++ b/dashmap/Cargo.toml
+@@ -16,6 +16,7 @@ categories = ["concurrency", "algorithms", "data-structures"]
+ raw-api = []
+ 
+ [dependencies]
++num_cpus = "1.13.1"
+ lock_api = "0.4.7"
+ hashbrown = { version = "0.12.0", default-features = false }
+ serde = { version = "1.0.136", optional = true, features = ["derive"] }
+diff --git a/dashmap/src/lib.rs b/src/lib.rs
+index 627b513..4b8875a 100644
+--- a/dashmap/src/lib.rs
++++ b/src/lib.rs
+@@ -52,7 +52,7 @@ cfg_if! {
+ pub(crate) type HashMap<K, V, S> = hashbrown::HashMap<K, SharedValue<V>, S>;
+ 
+ fn default_shard_amount() -> usize {
+-    (std::thread::available_parallelism().map_or(1, usize::from) * 4).next_power_of_two()
++    (num_cpus::get() * 4).next_power_of_two()
+ }
+ 
+ fn ncb(shard_amount: usize) -> usize {
diff --git a/srcpkgs/vaultwarden/patches/format_strings.patch b/srcpkgs/vaultwarden/patches/format_strings.patch
new file mode 100644
index 000000000000..a20ab1ca812b
--- /dev/null
+++ b/srcpkgs/vaultwarden/patches/format_strings.patch
@@ -0,0 +1,89 @@
+diff --git a/src/api/icons.rs b/src/api/icons.rs
+index 71c4899..75e45ee 100644
+--- a/src/api/icons.rs
++++ b/src/api/icons.rs
+@@ -60,7 +60,7 @@ static CLIENT: Lazy<Client> = Lazy::new(|| {
+     match client.build() {
+         Ok(client) => client,
+         Err(e) => {
+-            error!("Possible trust-dns error, trying with trust-dns disabled: '{e}'");
++            error!("Possible trust-dns error, trying with trust-dns disabled: '{}'", e);
+             get_reqwest_client_builder()
+                 .cookie_provider(cookie_store)
+                 .timeout(Duration::from_secs(CONFIG.icon_download_timeout()))
+@@ -454,7 +454,7 @@ async fn get_favicons_node(
+                     }
+                 } else if tag.name == TAG_BASE && tag.attributes.contains_key(ATTR_HREF) {
+                     let href = std::str::from_utf8(tag.attributes.get(ATTR_HREF).unwrap()).unwrap_or_default();
+-                    debug!("Found base href: {href}");
++                    debug!("Found base href: {}", href);
+                     base_url = match base_url.join(href) {
+                         Ok(inner_url) => inner_url,
+                         _ => url.clone(),
+@@ -503,8 +503,8 @@ struct IconUrlResult {
+ /// ```
+ async fn get_icon_url(domain: &str) -> Result<IconUrlResult, Error> {
+     // Default URL with secure and insecure schemes
+-    let ssldomain = format!("https://{domain}");
+-    let httpdomain = format!("http://{domain}");
++    let ssldomain = format!("https://{}", domain);
++    let httpdomain = format!("http://{}", domain);
+ 
+     // First check the domain as given during the request for both HTTPS and HTTP.
+     let resp = match get_page(&ssldomain).or_else(|_| get_page(&httpdomain)).await {
+@@ -522,20 +522,20 @@ async fn get_icon_url(domain: &str) -> Result<IconUrlResult, Error> {
+                     base = domain_parts.next_back().unwrap()
+                 );
+                 if is_valid_domain(&base_domain).await {
+-                    let sslbase = format!("https://{base_domain}");
+-                    let httpbase = format!("http://{base_domain}");
+-                    debug!("[get_icon_url]: Trying without subdomains '{base_domain}'");
++                    let sslbase = format!("https://{}", base_domain);
++                    let httpbase = format!("http://{}", base_domain);
++                    debug!("[get_icon_url]: Trying without subdomains '{}'", base_domain);
+ 
+                     sub_resp = get_page(&sslbase).or_else(|_| get_page(&httpbase)).await;
+                 }
+ 
+             // When the domain is not an IP, and has less then 2 dots, try to add www. infront of it.
+             } else if is_ip.is_err() && domain.matches('.').count() < 2 {
+-                let www_domain = format!("www.{domain}");
++                let www_domain = format!("www.{}", domain);
+                 if is_valid_domain(&www_domain).await {
+-                    let sslwww = format!("https://{www_domain}");
+-                    let httpwww = format!("http://{www_domain}");
+-                    debug!("[get_icon_url]: Trying with www. prefix '{www_domain}'");
++                    let sslwww = format!("https://{}", www_domain);
++                    let httpwww = format!("http://{}", www_domain);
++                    debug!("[get_icon_url]: Trying with www. prefix '{}'", www_domain);
+ 
+                     sub_resp = get_page(&sslwww).or_else(|_| get_page(&httpwww)).await;
+                 }
+@@ -567,10 +567,10 @@ async fn get_icon_url(domain: &str) -> Result<IconUrlResult, Error> {
+         get_favicons_node(dom, &mut iconlist, &url).await;
+     } else {
+         // Add the default favicon.ico to the list with just the given domain
+-        iconlist.push(Icon::new(35, format!("{ssldomain}/favicon.ico")));
+-        iconlist.push(Icon::new(40, format!("{ssldomain}/apple-touch-icon.png")));
+-        iconlist.push(Icon::new(35, format!("{httpdomain}/favicon.ico")));
+-        iconlist.push(Icon::new(40, format!("{httpdomain}/apple-touch-icon.png")));
++        iconlist.push(Icon::new(35, format!("{}/favicon.ico", ssldomain)));
++        iconlist.push(Icon::new(40, format!("{}/apple-touch-icon.png", ssldomain)));
++        iconlist.push(Icon::new(35, format!("{}/favicon.ico", httpdomain)));
++        iconlist.push(Icon::new(40, format!("{}/apple-touch-icon.png", httpdomain)));
+     }
+ 
+     // Sort the iconlist by priority
+diff --git a/src/util.rs b/src/util.rs
+index de61a35..d8cc111 100644
+--- a/src/util.rs
++++ b/src/util.rs
+@@ -619,7 +619,7 @@ pub fn get_reqwest_client() -> Client {
+     match get_reqwest_client_builder().build() {
+         Ok(client) => client,
+         Err(e) => {
+-            error!("Possible trust-dns error, trying with trust-dns disabled: '{e}'");
++            error!("Possible trust-dns error, trying with trust-dns disabled: '{}'", e);
+             get_reqwest_client_builder().trust_dns(false).build().expect("Failed to build client")
+         }
+     }
diff --git a/srcpkgs/vaultwarden/template b/srcpkgs/vaultwarden/template
new file mode 100644
index 000000000000..965cf510465f
--- /dev/null
+++ b/srcpkgs/vaultwarden/template
@@ -0,0 +1,33 @@
+# Template file for 'vaultwarden'
+pkgname=vaultwarden
+version=1.25.0
+revision=1
+build_style=cargo
+configure_args="--features sqlite,mysql,postgresql"
+hostmakedepends="pkg-config"
+makedepends="openssl-devel libmysqlclient-devel postgresql-libs-devel
+ sqlite-devel"
+short_desc="Unofficial Bitwarden compatible server written in Rust"
+maintainer="Joel Beckmeyer <joel@beckmeyer.us>"
+license="GPL-3.0-or-later"
+homepage="https://github.com/dani-garcia/vaultwarden"
+# Need to patch dashmap to be 1.57 compatible, can be removed when Rust >=1.59 
+# in repo, otherwise bump dashmap version if it changes in Cargo.lock
+distfiles="https://github.com/dani-garcia/vaultwarden/archive/${version}.tar.gz
+ https://github.com/xacrimon/dashmap/archive/v5.3.3.tar.gz>dashmap-${version}.tar.gz"
+checksum="5391f60b3afa9b66cad03cc19903ccc5ad229cbfde142041c7f910d60fd2d2cf
+ 687847d079c6dabac7d6b2bc4954a75278465a3591e5e501d5a0e01b14175e47"
+
+system_accounts="_vaultwarden"
+_vaultwarden_homedir="/var/lib/vaultwarden"
+
+make_dirs="/var/lib/vaultwarden 0750 _vaultwarden _vaultwarden"
+
+post_extract() {
+	mv ../dashmap-* dashmap
+}
+
+post_install() {
+	vsconf .env.template vaultwarden.conf
+	vsv vaultwarden
+}

  parent reply	other threads:[~2022-05-23 20:32 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-23 17:23 [PR PATCH] " TinfoilSubmarine
2022-05-23 17:28 ` [PR PATCH] [Updated] " TinfoilSubmarine
2022-05-23 18:07 ` [PR REVIEW] " classabbyamp
2022-05-23 18:07 ` classabbyamp
2022-05-23 18:07 ` classabbyamp
2022-05-23 19:02 ` TinfoilSubmarine
2022-05-23 19:22 ` classabbyamp
2022-05-23 19:23 ` classabbyamp
2022-05-23 20:30 ` [PR PATCH] [Updated] " TinfoilSubmarine
2022-05-23 20:32 ` TinfoilSubmarine [this message]
2022-05-24 11:58 ` TinfoilSubmarine
2022-06-06 13:10 ` TinfoilSubmarine
2022-06-07 18:13 ` [PR PATCH] [Updated] New packages: vaultwarden-web-2022.05.0, vaultwarden-1.25.0 TinfoilSubmarine
2022-06-08 12:23 ` TinfoilSubmarine
2022-06-28 13:48 ` [PR PATCH] [Updated] " TinfoilSubmarine
2022-06-28 13:49 ` TinfoilSubmarine
2022-07-11 13:00 ` [PR PATCH] [Updated] New packages: vaultwarden-web-2022.5.2, vaultwarden-1.25.0 TinfoilSubmarine
2022-07-19 15:53 ` [PR PATCH] [Updated] New packages: vaultwarden-web-2022.6.0, vaultwarden-1.25.0 TinfoilSubmarine
2022-07-28 19:40 ` [PR PATCH] [Updated] New packages: vaultwarden-web-2022.6.2, vaultwarden-1.25.1 TinfoilSubmarine
2022-09-04 22:49 ` TinfoilSubmarine
2022-09-06  5:27 ` New packages: vaultwarden-web-2022.8.1, vaultwarden-1.25.1 classabbyamp
2022-09-06  5:27 ` classabbyamp
2022-09-06  5:32 ` [PR REVIEW] " classabbyamp
2022-09-06 13:37 ` [PR PATCH] [Updated] " TinfoilSubmarine
2022-09-06 16:49 ` [PR PATCH] [Merged]: " classabbyamp

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220523203238.FFDVLUcjWfN19cJgQ09X9OCJHoklVu9uMizBMNkJJEQ@z \
    --to=tinfoilsubmarine@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).