mirror of
https://github.com/terrapkg/packages.git
synced 2026-06-02 01:42:18 +00:00
Compare commits
149 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f4eb259632 | |||
| 0eea2a2cba | |||
| cf85acf438 | |||
| 54af040ba7 | |||
| af2bf74318 | |||
| d840413f6e | |||
| eb0ae0720f | |||
| cdcdaf69bd | |||
| 61107bec55 | |||
| a8b4d978cf | |||
| 183bf2033c | |||
| 0f6cf45932 | |||
| e5a99bc2b9 | |||
| 9e3e227d3e | |||
| 2bc09f45d1 | |||
| 28a20935a9 | |||
| 056dad8dd6 | |||
| 3e457f763b | |||
| dd3ed8a7a9 | |||
| e6ff989382 | |||
| e2c592ac2f | |||
| 530a62ace6 | |||
| 8502a1ed58 | |||
| c3e24942b6 | |||
| 10832d9e1b | |||
| 18bdb11a88 | |||
| e3f3578260 | |||
| d4a7dc8523 | |||
| 49a59a08e6 | |||
| 380dc4b678 | |||
| a43286ef67 | |||
| c6025dc5a3 | |||
| bfd66c0808 | |||
| 8b67053be4 | |||
| a4cd214eb5 | |||
| 5cb73404de | |||
| 480c621d8d | |||
| e5ec54d2c5 | |||
| 5132e36da8 | |||
| aae1e3c43b | |||
| 836d20c41b | |||
| 1c97b78dab | |||
| f42a565398 | |||
| 48d7dd932d | |||
| 10b7f84269 | |||
| 8a4b553807 | |||
| 350d267363 | |||
| d71700367c | |||
| e4ef9bed83 | |||
| 828489bba5 | |||
| c5c3472c6c | |||
| 5c7283b2bd | |||
| 996ddc05a8 | |||
| f1284ab91c | |||
| 196421e363 | |||
| b8bc44fae1 | |||
| 89e5884931 | |||
| 3d875b65f4 | |||
| 4ddd6f3d02 | |||
| 80b14776bb | |||
| 047a4feff0 | |||
| 5f6e94e242 | |||
| 882c42f204 | |||
| 15d6cfd8ab | |||
| dab917b316 | |||
| 7b601705e9 | |||
| 6f9a111285 | |||
| 138cb7fee0 | |||
| e5a7ab8d1d | |||
| 5146738337 | |||
| 520d21437c | |||
| e9aa2584b5 | |||
| cc530b7cd7 | |||
| 1938ede867 | |||
| 8c6191a0a1 | |||
| ec84d19377 | |||
| 8477e2a5c2 | |||
| 4a776ba4b1 | |||
| 558f19ece3 | |||
| 1a706b7d6b | |||
| 1ac9432ada | |||
| 15066ddf59 | |||
| 09cec4185b | |||
| 0b71dce46b | |||
| e6819ccc08 | |||
| 8d331cc9e6 | |||
| 8804b81070 | |||
| 0e17d3e991 | |||
| ebb9d36756 | |||
| dd3142025b | |||
| 78e66d57da | |||
| 49e2dec9e4 | |||
| 36eb9d4f3f | |||
| 5ddeee3c5d | |||
| 091015322d | |||
| ad65b9bb22 | |||
| a5bf587c9c | |||
| d32501b193 | |||
| e42eac0ad5 | |||
| 34ca01b2f5 | |||
| 80aed38071 | |||
| 6a7f38b828 | |||
| 6f662431ca | |||
| feb40412c5 | |||
| f4fd5896ec | |||
| 27d2464029 | |||
| de8a42d54d | |||
| f59138968b | |||
| 2f2ffc2572 | |||
| 232db4988c | |||
| 08e203fbaa | |||
| 783ca7552f | |||
| a1181ae791 | |||
| ff8a9a3529 | |||
| fc1f39c8e1 | |||
| 8091ce3211 | |||
| ff3ec8bf39 | |||
| 14752341a8 | |||
| 59b00df647 | |||
| f2d49eae59 | |||
| f994f4232c | |||
| a72d68488c | |||
| 0d4b481ac6 | |||
| 76ff4eec52 | |||
| e337b7104e | |||
| d9ca1fc0de | |||
| 4a2431209c | |||
| 33e1e88dda | |||
| 385ef5dd28 | |||
| c53da81cce | |||
| 19d57b6828 | |||
| f5736ce4f4 | |||
| b3f0031efb | |||
| acaeb69ad6 | |||
| 2810b5c6dc | |||
| 4ec98f3e21 | |||
| 730d25fe35 | |||
| 0561fa8e11 | |||
| 2f437a9794 | |||
| d203658596 | |||
| 85babd8d1c | |||
| 3e20ea69c5 | |||
| 64d8eb5a76 | |||
| c7c4f27e1f | |||
| 7e046d459a | |||
| 9eab2d082e | |||
| c92c160d24 | |||
| afe577aadd | |||
| 04792c9d51 |
@@ -8,7 +8,7 @@ jobs:
|
|||||||
autoupdate:
|
autoupdate:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/terrapkg/builder:f38
|
image: ghcr.io/terrapkg/builder:f39
|
||||||
options: --cap-add=SYS_ADMIN --privileged
|
options: --cap-add=SYS_ADMIN --privileged
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@@ -38,13 +38,16 @@ jobs:
|
|||||||
git config user.signingkey "${{ runner.temp }}/signing_key"
|
git config user.signingkey "${{ runner.temp }}/signing_key"
|
||||||
msg="bump(nightly): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
msg="bump(nightly): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')"
|
||||||
git commit -S -a -m "$msg"
|
git commit -S -a -m "$msg"
|
||||||
f37 () {
|
copy_over () {
|
||||||
git format-patch HEAD^
|
git format-patch HEAD^
|
||||||
git checkout f37
|
git checkout $1
|
||||||
git apply *.patch || true
|
git apply *.patch || true
|
||||||
|
rm *.patch
|
||||||
git add *
|
git add *
|
||||||
git commit -S -a -m "$msg"
|
git commit -S -a -m "$msg"
|
||||||
}
|
}
|
||||||
f37 || true
|
copy_over f37 || true
|
||||||
|
copy_over f38 || true
|
||||||
|
copy_over frawhide || true
|
||||||
git push -u origin --all
|
git push -u origin --all
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -49,5 +49,6 @@ jobs:
|
|||||||
}
|
}
|
||||||
copy_over f37 || true
|
copy_over f37 || true
|
||||||
copy_over f38 || true
|
copy_over f38 || true
|
||||||
|
copy_over frawhide || true
|
||||||
git push -u origin --all
|
git push -u origin --all
|
||||||
fi
|
fi
|
||||||
|
|||||||
+4
-4
@@ -1,7 +1,7 @@
|
|||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
First of all, thanks for being interested in contributing to Terra! If you have any questions about contributing, please contact us on [Discord](https://discord.gg/5fdPuxTg5Q). Since we use a GitHub Wiki for [documention](https://github.com/terrapkg/packages/wiki), our guidelines may be found there. See the links below:
|
First of all, thanks for being interested in contributing to Terra! If you have any questions about contributing, please contact us on [Discord](https://discord.gg/5fdPuxTg5Q). Since we use a GitHub Wiki for [documentation](https://developer.fyralabs.com/terra), our guidelines may be found there. See the links below:
|
||||||
|
|
||||||
* [Contribution Guide](https://github.com/terrapkg/packages/wiki/Contribute)
|
* [Contribution Guide](https://developer.fyralabs.com/terra/contributing)
|
||||||
* [FAQ](https://github.com/terrapkg/packages/wiki/FAQ)
|
* [FAQ](https://developer.fyralabs.com/terra/faq)
|
||||||
* [Policy](https://github.com/terrapkg/packages/wiki/Policy)
|
* [Policy](https://developer.fyralabs.com/terra/policy)
|
||||||
+2
-2
@@ -3,7 +3,7 @@
|
|||||||
## Our Process
|
## Our Process
|
||||||
|
|
||||||
Fyra Labs is committed to ensuring user security and privacy.
|
Fyra Labs is committed to ensuring user security and privacy.
|
||||||
As such, we constantly try our best to ensure that our infrastructure and process are secure, which you may read about in our [FAQ](https://github.com/terrapkg/packages/wiki/FAQ#technical-details).
|
As such, we constantly try our best to ensure that our infrastructure and process are secure, which you may read about in our [FAQ](https://developer.fyralabs.com/terra/faq#technical-details).
|
||||||
|
|
||||||
As a part of Fyra Labs's transparency measures, we will publicize details of any known breaches. This information will include, but will not be limited to:
|
As a part of Fyra Labs's transparency measures, we will publicize details of any known breaches. This information will include, but will not be limited to:
|
||||||
* Affected users, infrastructure, and data.
|
* Affected users, infrastructure, and data.
|
||||||
@@ -11,7 +11,7 @@ As a part of Fyra Labs's transparency measures, we will publicize details of any
|
|||||||
* An in-depth explanation of how the breach occurred, including relevant security vulnerabilities.
|
* An in-depth explanation of how the breach occurred, including relevant security vulnerabilities.
|
||||||
* How Fyra Labs will better protect user data in the future, ensuring our commitment to security and privacy.
|
* How Fyra Labs will better protect user data in the future, ensuring our commitment to security and privacy.
|
||||||
|
|
||||||
We will publish these updates on our [Twitter](https://twitter.com/TeamFyraLabs) and [Discord](https://discord.gg/5fdPuxTg5Q).
|
We will publish these updates on our [Twitter](https://twitter.com/TeamFyraLabs), [Fedi](https://fedi.fyralabs.com/@hq), and [Discord](https://discord.gg/5fdPuxTg5Q).
|
||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
%global __provides_exclude_from %{_datadir}/armcord/.*\\.so
|
%global __provides_exclude_from %{_datadir}/armcord/.*\\.so
|
||||||
|
|
||||||
Name: armcord-bin
|
Name: armcord-bin
|
||||||
Version: 3.2.5
|
Version: 3.2.6
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
License: OSL-3.0
|
License: OSL-3.0
|
||||||
Summary: Custom lightweight Discord client designed to enhance your experience
|
Summary: Custom lightweight Discord client designed to enhance your experience
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
%define debug_package %nil
|
%define debug_package %nil
|
||||||
|
|
||||||
Name: armcord
|
Name: armcord
|
||||||
Version: 3.2.5
|
Version: 3.2.6
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
License: OSL-3.0
|
License: OSL-3.0
|
||||||
Summary: Custom lightweight Discord client designed to enhance your experience
|
Summary: Custom lightweight Discord client designed to enhance your experience
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||||
|
|
||||||
Name: discord-canary-openasar
|
Name: discord-canary-openasar
|
||||||
Version: 0.0.248
|
Version: 0.0.267
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||||
License: MIT AND https://discord.com/terms
|
License: MIT AND https://discord.com/terms
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||||
|
|
||||||
Name: discord-canary
|
Name: discord-canary
|
||||||
Version: 0.0.248
|
Version: 0.0.267
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Free Voice and Text Chat for Gamers
|
Summary: Free Voice and Text Chat for Gamers
|
||||||
URL: discord.com
|
URL: discord.com
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||||
|
|
||||||
Name: discord-openasar
|
Name: discord-openasar
|
||||||
Version: 0.0.40
|
Version: 0.0.42
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||||
License: MIT AND https://discord.com/terms
|
License: MIT AND https://discord.com/terms
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||||
|
|
||||||
Name: discord-ptb-openasar
|
Name: discord-ptb-openasar
|
||||||
Version: 0.0.64
|
Version: 0.0.66
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||||
License: MIT AND https://discord.com/terms
|
License: MIT AND https://discord.com/terms
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||||
|
|
||||||
Name: discord-ptb
|
Name: discord-ptb
|
||||||
Version: 0.0.64
|
Version: 0.0.66
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Free Voice and Text Chat for Gamers.
|
Summary: Free Voice and Text Chat for Gamers.
|
||||||
URL: https://discord.com
|
URL: https://discord.com
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||||
|
|
||||||
Name: discord
|
Name: discord
|
||||||
Version: 0.0.40
|
Version: 0.0.42
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Free Voice and Text Chat for Gamers
|
Summary: Free Voice and Text Chat for Gamers
|
||||||
URL: https://discord.com
|
URL: https://discord.com
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
Name: vencord-desktop
|
Name: vencord-desktop
|
||||||
Provides: VencordDesktop = %{version}-%{release}
|
Provides: VencordDesktop = %{version}-%{release}
|
||||||
Version: 0.4.4
|
Version: 1.5.0
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPL-3.0
|
License: GPL-3.0
|
||||||
Summary: Vesktop is a cross platform desktop app aiming to give you a snappier Discord experience with Vencord pre-installed
|
Summary: Vesktop is a cross platform desktop app aiming to give you a snappier Discord experience with Vencord pre-installed
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
%global nodev 16.17.0
|
%global nodev 18.13.0
|
||||||
%global npmv 8.11.0
|
%global npmv 8.19.3
|
||||||
%global ver 0.14.10
|
%global ver 0.15.2
|
||||||
%define debug_package %nil
|
%define debug_package %nil
|
||||||
%global _build_id_links none
|
%global _build_id_links none
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
%define _ubuntu_rel 22.10.20220822-0ubuntu4
|
%define _ubuntu_rel 22.10.20220822-0ubuntu6
|
||||||
%global _hardened_build 0
|
%global _hardened_build 0
|
||||||
|
|
||||||
Name: compiz9
|
Name: compiz9
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
Name: elementary-code
|
Name: elementary-code
|
||||||
Summary: Code editor from elementary
|
Summary: Code editor from elementary
|
||||||
Version: 7.1.0
|
Version: 7.2.0
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPL-3.0
|
License: GPL-3.0
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ License: GPL-3.0-or-later
|
|||||||
URL: https://github.com/elementary/switchboard-plug-network
|
URL: https://github.com/elementary/switchboard-plug-network
|
||||||
Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
||||||
|
|
||||||
Patch0: https://github.com/elementary/switchboard-plug-network/pull/357.patch
|
|
||||||
|
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
BuildRequires: libappstream-glib
|
BuildRequires: libappstream-glib
|
||||||
BuildRequires: meson
|
BuildRequires: meson
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
%global forgeurl https://github.com/KDE/latte-dock/
|
%global forgeurl https://github.com/KDE/latte-dock/
|
||||||
|
|
||||||
%global commit ca6af594204460bd90309141c6e95494f65c46bd
|
%global commit 131ee4d39ce8913b2de8f9a673903225345c7a38
|
||||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||||
%global commit_date %(date '+%Y%m%d')
|
%global commit_date %(date '+%Y%m%d')
|
||||||
%global snapshot_info %{commit_date}.%{shortcommit}
|
%global snapshot_info %{commit_date}.%{shortcommit}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-app-launch
|
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-app-launch
|
||||||
%global commit 1a7a0ef6a8ab966b664f3515aba539b422f35849
|
%global commit d3bc3b7296a01f6b020e32080c9c40dd1c656b05
|
||||||
%forgemeta
|
%forgemeta
|
||||||
|
|
||||||
Name: lomiri-app-launch
|
Name: lomiri-app-launch
|
||||||
Version: 0.1.8
|
Version: 0.1.9
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Provides the Lomiri App Launch user space daemon
|
Summary: Provides the Lomiri App Launch user space daemon
|
||||||
License: GPL-3.0
|
License: GPL-3.0
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-indicator-network
|
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-indicator-network
|
||||||
%global commit 7d0fd44108cfb74da3fcb26e7de07f7610302f5c
|
%global commit a4522caf548d7e7f63f98f9e5c98314ee8d4c8fb
|
||||||
%forgemeta
|
%forgemeta
|
||||||
|
|
||||||
Name: lomiri-indicator-network
|
Name: lomiri-indicator-network
|
||||||
Version: 1.0.1
|
Version: 1.0.2
|
||||||
Release: %autorelease
|
Release: 1%{?dist}
|
||||||
Summary: The Network indicator for Ubuntu Touch
|
Summary: The Network indicator for Ubuntu Touch
|
||||||
License: GPL-3.0 AND LGPL-3.0
|
License: GPL-3.0 AND LGPL-3.0
|
||||||
URL: https://gitlab.com/ubports/development/core/lomiri-indicator-network
|
URL: https://gitlab.com/ubports/development/core/lomiri-indicator-network
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-schemas
|
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-schemas
|
||||||
%global commit fed68d63df86c0b39654b66c31e02be25018f5f1
|
%global commit 6acdde9e890685bd5a5d6fbd4446d9e8b3e6c698
|
||||||
%forgemeta
|
%forgemeta
|
||||||
|
|
||||||
Name: lomiri-schemas
|
Name: lomiri-schemas
|
||||||
Version: 0.1.3
|
Version: 0.1.4
|
||||||
Release: %autorelease
|
Release: 1%{?dist}
|
||||||
Summary: Configuration schemas for lomiri
|
Summary: Configuration schemas for lomiri
|
||||||
License: LGPL-2.0-or-later
|
License: LGPL-2.0-or-later
|
||||||
URL: https://gitlab.com/ubports/development/core/lomiri-schemas
|
URL: https://gitlab.com/ubports/development/core/lomiri-schemas
|
||||||
|
|||||||
+3
-3
@@ -1,10 +1,10 @@
|
|||||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-settings-components
|
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-settings-components
|
||||||
%global commit a2ce1155d385218a4b493f801867a45d2a41df02
|
%global commit 2bd84b9a59563dce7a791e0c882e2533ecdd4812
|
||||||
%forgemeta
|
%forgemeta
|
||||||
|
|
||||||
Name: lomiri-settings-components
|
Name: lomiri-settings-components
|
||||||
Version: 1.1.0
|
Version: 1.1.1
|
||||||
Release: %autorelease
|
Release: 1%{?dist}
|
||||||
Summary: The system settings components for Lomiri
|
Summary: The system settings components for Lomiri
|
||||||
License: GPLv3 AND LGPLv3
|
License: GPLv3 AND LGPLv3
|
||||||
URL: https://gitlab.com/ubports/development/core/lomiri-settings-components
|
URL: https://gitlab.com/ubports/development/core/lomiri-settings-components
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings
|
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings
|
||||||
%global commit 2abbbdaedf243fc1629628b6c1ba764db4253840
|
%global commit ad39d8a88e71320c2d6f1a39a96bfe421f644519
|
||||||
%forgemeta
|
%forgemeta
|
||||||
|
|
||||||
Name: lomiri-system-settings
|
Name: lomiri-system-settings
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-ui-toolkit
|
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-ui-toolkit
|
||||||
%global commit d09e76d2b3040b6d23fc42c6114db81332298c8e
|
%global commit 28178b0be8fc2c66934da155dee1c6238ecc98c0
|
||||||
%forgemeta
|
%forgemeta
|
||||||
|
|
||||||
Name: lomiri-ui-toolkit
|
Name: lomiri-ui-toolkit
|
||||||
Version: 1.3.5011
|
Version: 1.3.5012
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: QML components to ease the creation of beautiful applications in QML for Lomiri
|
Summary: QML components to ease the creation of beautiful applications in QML for Lomiri
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri
|
%global forgeurl https://gitlab.com/ubports/development/core/lomiri
|
||||||
%global commit ec65759f56e7eba4f084ecf031bde5d64da1cf35
|
%global commit a083a14fe65105fc1996ceb1b92165ca3b0cb94e
|
||||||
%forgemeta
|
%forgemeta
|
||||||
|
|
||||||
Name: lomiri
|
Name: lomiri
|
||||||
Version: 0.1.4
|
Version: 0.2.1
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: A convergent desktop environment by Ubports
|
Summary: A convergent desktop environment by Ubports
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
%define archive unity_7.7.0+23.04.20230222.2-0ubuntu2.tar.xz
|
%define archive unity_7.7.0+23.04.20230222.2-0ubuntu4.tar.xz
|
||||||
|
|
||||||
Name: unity-shell
|
Name: unity-shell
|
||||||
Version: 7.7.0
|
Version: 7.7.0
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Name: ayatana-indicator-datetime
|
Name: ayatana-indicator-datetime
|
||||||
Summary: A GTK implementation of the StatusNotifierItem Specification
|
Summary: A GTK implementation of the StatusNotifierItem Specification
|
||||||
Version: 23.10.0
|
Version: 23.10.1
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPL-3.0
|
License: GPL-3.0
|
||||||
URL: https://github.com/AyatanaIndicators/ayatana-indicator-datetime
|
URL: https://github.com/AyatanaIndicators/ayatana-indicator-datetime
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: codium
|
Name: codium
|
||||||
Version: 1.85.1.23348
|
Version: 1.85.2.24019
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Code editing. Redefined.
|
Summary: Code editing. Redefined.
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Name: flutter
|
Name: flutter
|
||||||
Version: 3.16.7
|
Version: 3.19.0.0.3.pre
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: SDK for crafting beautiful, fast user experiences from a single codebase
|
Summary: SDK for crafting beautiful, fast user experiences from a single codebase
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
%define debug_package %nil
|
%define debug_package %nil
|
||||||
|
|
||||||
Name: neovide
|
Name: neovide
|
||||||
Version: 0.12.1
|
Version: 0.12.2
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: No Nonsense Neovim Client in Rust
|
Summary: No Nonsense Neovim Client in Rust
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
project pkg {
|
||||||
|
rpm {
|
||||||
|
spec = "terra-rgbds.spec"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
Name: terra-rgbds
|
||||||
|
Version: 0.7.0
|
||||||
|
Release: 1%{?dist}
|
||||||
|
Summary: A development package for the Game Boy, including an assembler
|
||||||
|
|
||||||
|
# See LICENSE for details
|
||||||
|
License: DWPL and ISC and MIT and BSD
|
||||||
|
URL: https://github.com/gbdev/rgbds
|
||||||
|
Source0: %{url}/archive/v%{version}/rgbds-%{version}.tar.gz
|
||||||
|
|
||||||
|
BuildRequires: make
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: g++
|
||||||
|
BuildRequires: byacc
|
||||||
|
BuildRequires: bison
|
||||||
|
BuildRequires: flex
|
||||||
|
BuildRequires: git-core
|
||||||
|
BuildRequires: pkgconfig(libpng)
|
||||||
|
|
||||||
|
%description
|
||||||
|
RGBDS (Rednex Game Boy Development System) is a free assembler/linker package
|
||||||
|
for the Game Boy and Game Boy Color.
|
||||||
|
|
||||||
|
It consists of:
|
||||||
|
|
||||||
|
* rgbasm (assembler)
|
||||||
|
* rgblink (linker)
|
||||||
|
* rgbfix (checksum/header fixer)
|
||||||
|
* rgbgfx (PNG‐to‐2bpp graphics converter)
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -S git -n rgbds-%version
|
||||||
|
|
||||||
|
%build
|
||||||
|
%make_build Q="" CFLAGS="%{optflags}" VERSION_STRING=""
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install PREFIX=%{_prefix} bindir=%{_bindir} mandir=%{_mandir} STRIP="-p" MANMODE="644 -p" Q=""
|
||||||
|
|
||||||
|
%files
|
||||||
|
%{_bindir}/rgbasm
|
||||||
|
%{_bindir}/rgblink
|
||||||
|
%{_bindir}/rgbfix
|
||||||
|
%{_bindir}/rgbgfx
|
||||||
|
%{_mandir}/man1/rgbasm.1.*
|
||||||
|
%{_mandir}/man1/rgblink.1.*
|
||||||
|
%{_mandir}/man1/rgbfix.1.*
|
||||||
|
%{_mandir}/man1/rgbgfx.1.*
|
||||||
|
%{_mandir}/man5/rgbds.5.*
|
||||||
|
%{_mandir}/man5/rgbasm.5.*
|
||||||
|
%{_mandir}/man5/rgblink.5.*
|
||||||
|
%{_mandir}/man7/rgbds.7.*
|
||||||
|
%{_mandir}/man7/gbz80.7.*
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.rst
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
%autochangelog
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
rpm.version(gh("gbdev/rgbds"));
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
# https://github.com/containerd/containerd
|
# https://github.com/containerd/containerd
|
||||||
%global goipath github.com/containerd/containerd
|
%global goipath github.com/containerd/containerd
|
||||||
Version: 1.6.27
|
Version: 1.7.13
|
||||||
|
|
||||||
%gometa
|
%gometa
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
|
|
||||||
Name: moby-compose
|
Name: moby-compose
|
||||||
Version: 2.24.0
|
Version: 2.24.5
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Define and run multi-container applications with Docker
|
Summary: Define and run multi-container applications with Docker
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
%global debug_package %{nil}
|
%global debug_package %{nil}
|
||||||
|
|
||||||
Name: iosevka-fusion-fonts
|
Name: iosevka-fusion-fonts
|
||||||
Version: 28.0.5
|
Version: 28.0.7
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: A custom font based on iosevka
|
Summary: A custom font based on iosevka
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Name: sarasa-gothic-fonts
|
Name: sarasa-gothic-fonts
|
||||||
Version: 1.0.3
|
Version: 1.0.5
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
URL: https://github.com/be5invis/Sarasa-Gothic
|
URL: https://github.com/be5invis/Sarasa-Gothic
|
||||||
Source0: %url/releases/download/v%version/Sarasa-TTC-%version.7z
|
Source0: %url/releases/download/v%version/Sarasa-TTC-%version.7z
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
%define osuresver 2023.1228.0
|
%define osuresver 2024.129.0
|
||||||
%global debug_package %{nil}
|
%global debug_package %{nil}
|
||||||
|
|
||||||
Name: osu-lazer
|
Name: osu-lazer
|
||||||
Version: 2024.114.0
|
Version: 2024.131.0
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: The future of osu! and the beginning of an open era! Commonly known by the codename osu!lazer. Pew pew.
|
Summary: The future of osu! and the beginning of an open era! Commonly known by the codename osu!lazer. Pew pew.
|
||||||
ExclusiveArch: x86_64
|
ExclusiveArch: x86_64
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
%global real_name prismlauncher
|
%global real_name prismlauncher
|
||||||
%global nice_name PrismLauncher
|
%global nice_name PrismLauncher
|
||||||
|
|
||||||
%global commit 5a0240e709856c3cc4e2ebeeebcf6e56ab544bfc
|
%global commit 5d223f6f9359c7b9017583c13c5f538032380b73
|
||||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||||
%global libnbtplusplus_commit a5e8fd52b8bf4ab5d5bcc042b2a247867589985f
|
%global libnbtplusplus_commit a5e8fd52b8bf4ab5d5bcc042b2a247867589985f
|
||||||
%global quazip_commit 6117161af08e366c37499895b00ef62f93adc345
|
%global quazip_commit 6117161af08e366c37499895b00ef62f93adc345
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
%global real_name prismlauncher
|
%global real_name prismlauncher
|
||||||
%global nice_name PrismLauncher
|
%global nice_name PrismLauncher
|
||||||
|
|
||||||
%global commit 5a0240e709856c3cc4e2ebeeebcf6e56ab544bfc
|
%global commit 5d223f6f9359c7b9017583c13c5f538032380b73
|
||||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||||
%global libnbtplusplus_commit a5e8fd52b8bf4ab5d5bcc042b2a247867589985f
|
%global libnbtplusplus_commit a5e8fd52b8bf4ab5d5bcc042b2a247867589985f
|
||||||
%global quazip_commit 6117161af08e366c37499895b00ef62f93adc345
|
%global quazip_commit 6117161af08e366c37499895b00ef62f93adc345
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
%define debug_package %nil
|
%define debug_package %nil
|
||||||
|
|
||||||
Name: crystal
|
Name: crystal
|
||||||
Version: 1.11.1
|
Version: 1.11.2
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: The Crystal Programming Language
|
Summary: The Crystal Programming Language
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
|
|
||||||
Name: dart
|
Name: dart
|
||||||
Version: 3.2.4
|
Version: 3.2.6
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: The Dart Language
|
Summary: The Dart Language
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Name: groovy-docs
|
Name: groovy-docs
|
||||||
Version: 4.0.17
|
Version: 4.0.18
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Documentation for the Groovy programming language
|
Summary: Documentation for the Groovy programming language
|
||||||
URL: https://groovy-lang.org/
|
URL: https://groovy-lang.org/
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Name: groovy
|
Name: groovy
|
||||||
Version: 4.0.17
|
Version: 4.0.18
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: A multi-faceted language for the Java platform
|
Summary: A multi-faceted language for the Java platform
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
%global csrc_commit 561b417c65791cd8356b5f73620914ceff845d10
|
%global csrc_commit 561b417c65791cd8356b5f73620914ceff845d10
|
||||||
%global commit ab4278d2179639f19967431a7aa1be858046f7a7
|
%global commit 7d9721007c8c82804450bd32bbf3bbaf806a52f2
|
||||||
%global ver 2.1.1
|
%global ver 2.1.1
|
||||||
%global debug_package %nil
|
%global debug_package %nil
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
|
|
||||||
Name: python3-ruff
|
Name: python3-ruff
|
||||||
Version: 0.1.13
|
Version: 0.2.0
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: An extremely fast Python linter, written in Rust
|
Summary: An extremely fast Python linter, written in Rust
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
%global crate bandwhich
|
%global crate bandwhich
|
||||||
|
|
||||||
Name: rust-bandwhich
|
Name: rust-bandwhich
|
||||||
Version: 0.21.1
|
Version: 0.22.2
|
||||||
Release: %autorelease
|
Release: 1%{?dist}
|
||||||
Summary: Display current network utilization by process, connection and remote IP/hostname
|
Summary: Display current network utilization by process, connection and remote IP/hostname
|
||||||
|
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
%global crate felix
|
%global crate felix
|
||||||
|
|
||||||
Name: rust-felix
|
Name: rust-felix
|
||||||
Version: 2.11.1
|
Version: 2.12.0
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Tui file manager with vim-like key mapping
|
Summary: Tui file manager with vim-like key mapping
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Name: youki
|
Name: youki
|
||||||
Version: 0.3.1
|
Version: 0.3.2
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: A container runtime written in Rust
|
Summary: A container runtime written in Rust
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
%global priority 90
|
%global priority 90
|
||||||
|
|
||||||
%global real_name vala
|
%global real_name vala
|
||||||
%global commit 729d2993dc1844f7120b7123de8f41c4be0111cd
|
%global commit fee6dadcd4a8cc772c190a3e6bf9820f8fe2041e
|
||||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||||
%global repo https://gitlab.gnome.org/GNOME/%{real_name}.git
|
%global repo https://gitlab.gnome.org/GNOME/%{real_name}.git
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
%global forgeurl https://gitlab.com/ubports/development/core/deviceinfo
|
%global forgeurl https://gitlab.com/ubports/development/core/deviceinfo
|
||||||
%global commit 7e819c16e28b785f1ea1a2cf85b4d1376cc79f19
|
%global commit e42f12b96d1745286f3c3c88b4a19bd7c3ead9ef
|
||||||
%forgemeta
|
%forgemeta
|
||||||
|
|
||||||
Name: deviceinfo
|
Name: deviceinfo
|
||||||
Version: 0.2.1
|
Version: 0.2.2
|
||||||
Release: %autorelease
|
Release: 1%{?dist}
|
||||||
Summary: Library to detect and configure devices
|
Summary: Library to detect and configure devices
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: https://gitlab.com/ubports/development/core/deviceinfo
|
URL: https://gitlab.com/ubports/development/core/deviceinfo
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
%global forgeurl https://gitlab.com/ubports/development/core/geonames
|
%global forgeurl https://gitlab.com/ubports/development/core/geonames
|
||||||
%global commit 73c5dfca7d5a8935f7a9f8fe2656d24f8f8fe00a
|
%global commit 447653042655072bdd5e539ed509623e56c418ec
|
||||||
%forgemeta
|
%forgemeta
|
||||||
|
|
||||||
Name: geonames
|
Name: geonames
|
||||||
Version: 0.3.0
|
Version: 0.3.1
|
||||||
Release: 2%?dist
|
Release: 1%{?dist}
|
||||||
Summary: Parse and query the geonames database
|
Summary: Parse and query the geonames database
|
||||||
License: GPL-3.0
|
License: GPL-3.0
|
||||||
URL: https://gitlab.com/ubports/development/core/geonames
|
URL: https://gitlab.com/ubports/development/core/geonames
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Summary: The Application Framework for tauOS apps
|
Summary: The Application Framework for tauOS apps
|
||||||
Name: libhelium
|
Name: libhelium
|
||||||
Version: 1.8.2
|
Version: 1.8.10
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPL-3.0
|
License: GPL-3.0
|
||||||
URL: https://github.com/tau-OS/libhelium
|
URL: https://github.com/tau-OS/libhelium
|
||||||
@@ -56,6 +56,7 @@ rm -rf %{buildroot}%{_datadir}/themes/*
|
|||||||
%doc README.md
|
%doc README.md
|
||||||
%{_libdir}/libhelium-1.so.*
|
%{_libdir}/libhelium-1.so.*
|
||||||
%{_libdir}/girepository-1.0
|
%{_libdir}/girepository-1.0
|
||||||
|
%{_datadir}/glib-2.0/schemas/com.fyralabs.desktop.appearance.gschema.xml
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%{_libdir}/libhelium-1.so
|
%{_libdir}/libhelium-1.so
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
%global commit1 e7d30b921df736a1121a0c8e0cf3ab1ce5b8a4b7
|
%global commit1 e7d30b921df736a1121a0c8e0cf3ab1ce5b8a4b7
|
||||||
%global shortcommit1 %(c=%{commit1}; echo ${c:0:7})
|
%global shortcommit1 %(c=%{commit1}; echo ${c:0:7})
|
||||||
|
|
||||||
%global openh264_version 2.4.0
|
%global openh264_version 2.4.1
|
||||||
%global gst_version 1.22.8
|
%global gst_version 1.22.9
|
||||||
|
|
||||||
Name: openh264
|
Name: openh264
|
||||||
Version: %{openh264_version}
|
Version: %{openh264_version}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Name: terra-libplacebo
|
Name: terra-libplacebo
|
||||||
Version: 6.338.1
|
Version: 6.338.2
|
||||||
Release: %autorelease
|
Release: 1%{?dist}
|
||||||
Summary: Reusable library for GPU-accelerated video/image rendering primitives
|
Summary: Reusable library for GPU-accelerated video/image rendering primitives
|
||||||
|
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
%global commit 0f98d766837c9ec2875470d2f71a8acdea5eb2d5
|
%global commit 6c4804b5911a50eae2471a2fcd74ed6ab9f727d0
|
||||||
%global ver 1.8.23
|
%global ver 1.8.24
|
||||||
Name: tdlib-nightly
|
Name: tdlib-nightly
|
||||||
Version: %ver^%commit
|
Version: %ver^%commit
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
%define _build_id_links none
|
%define _build_id_links none
|
||||||
|
|
||||||
Name: sass
|
Name: sass
|
||||||
Version: 1.69.7
|
Version: 1.70.0
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: The reference implementation of Sass, written in Dart
|
Summary: The reference implementation of Sass, written in Dart
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Name: limine
|
Name: limine
|
||||||
Version: 7.0.0
|
Version: 7.0.2
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Modern, advanced, portable, multiprotocol bootloader
|
Summary: Modern, advanced, portable, multiprotocol bootloader
|
||||||
License: BSD-2-Clause
|
License: BSD-2-Clause
|
||||||
|
|||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/sh
|
||||||
|
|
||||||
|
# close everything which is not busy
|
||||||
|
rm -f -- /etc/udev/rules.d/70-luks.rules > /dev/null 2>&1
|
||||||
|
|
||||||
|
if ! getarg rd.luks.uuid -d rd_LUKS_UUID > /dev/null 2>&1 && getargbool 1 rd.luks -d -n rd_NO_LUKS > /dev/null 2>&1; then
|
||||||
|
while true; do
|
||||||
|
local do_break="y"
|
||||||
|
for i in /dev/mapper/luks-*; do
|
||||||
|
cryptsetup luksClose "$i" > /dev/null 2>&1 && do_break=n
|
||||||
|
done
|
||||||
|
[ "$do_break" = "y" ] && break
|
||||||
|
done
|
||||||
|
fi
|
||||||
Executable
+279
@@ -0,0 +1,279 @@
|
|||||||
|
#!/usr/bin/sh
|
||||||
|
|
||||||
|
command -v getarg > /dev/null || . /lib/dracut-lib.sh
|
||||||
|
|
||||||
|
# check if the crypttab contains an entry for a LUKS UUID
|
||||||
|
crypttab_contains() {
|
||||||
|
local luks="$1"
|
||||||
|
local dev="$2"
|
||||||
|
local l d rest
|
||||||
|
if [ -f /etc/crypttab ]; then
|
||||||
|
while read -r l d rest || [ -n "$l" ]; do
|
||||||
|
strstr "${l##luks-}" "${luks##luks-}" && return 0
|
||||||
|
strstr "$d" "${luks##luks-}" && return 0
|
||||||
|
if [ -n "$dev" ]; then
|
||||||
|
for _dev in $(devnames "$d"); do
|
||||||
|
[ "$dev" -ef "$_dev" ] && return 0
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if [ -e /etc/block_uuid.map ]; then
|
||||||
|
# search for line starting with $d
|
||||||
|
_line=$(sed -n "\,^$d .*$,{p}" /etc/block_uuid.map)
|
||||||
|
[ -z "$_line" ] && continue
|
||||||
|
# get second column with uuid
|
||||||
|
_uuid="$(echo "$_line" | sed 's,^.* \(.*$\),\1,')"
|
||||||
|
strstr "$_uuid" "${luks##luks-}" && return 0
|
||||||
|
fi
|
||||||
|
done < /etc/crypttab
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# ask_for_password
|
||||||
|
#
|
||||||
|
# Wraps around plymouth ask-for-password and adds fallback to tty password ask
|
||||||
|
# if plymouth is not present.
|
||||||
|
#
|
||||||
|
# --cmd command
|
||||||
|
# Command to execute. Required.
|
||||||
|
# --prompt prompt
|
||||||
|
# Password prompt. Note that function already adds ':' at the end.
|
||||||
|
# Recommended.
|
||||||
|
# --tries n
|
||||||
|
# How many times repeat command on its failure. Default is 3.
|
||||||
|
# --ply-[cmd|prompt|tries]
|
||||||
|
# Command/prompt/tries specific for plymouth password ask only.
|
||||||
|
# --tty-[cmd|prompt|tries]
|
||||||
|
# Command/prompt/tries specific for tty password ask only.
|
||||||
|
# --tty-echo-off
|
||||||
|
# Turn off input echo before tty command is executed and turn on after.
|
||||||
|
# It's useful when password is read from stdin.
|
||||||
|
ask_for_password() {
|
||||||
|
local ply_cmd
|
||||||
|
local ply_prompt
|
||||||
|
local ply_tries=3
|
||||||
|
local tty_cmd
|
||||||
|
local tty_prompt
|
||||||
|
local tty_tries=3
|
||||||
|
local ret
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
--cmd)
|
||||||
|
ply_cmd="$2"
|
||||||
|
tty_cmd="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--ply-cmd)
|
||||||
|
ply_cmd="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--tty-cmd)
|
||||||
|
tty_cmd="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--prompt)
|
||||||
|
ply_prompt="$2"
|
||||||
|
tty_prompt="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--ply-prompt)
|
||||||
|
ply_prompt="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--tty-prompt)
|
||||||
|
tty_prompt="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--tries)
|
||||||
|
ply_tries="$2"
|
||||||
|
tty_tries="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--ply-tries)
|
||||||
|
ply_tries="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--tty-tries)
|
||||||
|
tty_tries="$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--tty-echo-off) tty_echo_off=yes ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
{
|
||||||
|
flock -s 9
|
||||||
|
# Prompt for password with plymouth, if installed and running.
|
||||||
|
if type plymouth > /dev/null 2>&1 && plymouth --ping 2> /dev/null; then
|
||||||
|
#plymouth ask-for-password \
|
||||||
|
# --prompt "$ply_prompt" --number-of-tries="$ply_tries" \
|
||||||
|
# --command="$ply_cmd"
|
||||||
|
unl0kr
|
||||||
|
ret=$?
|
||||||
|
else
|
||||||
|
if [ "$tty_echo_off" = yes ]; then
|
||||||
|
stty_orig="$(stty -g)"
|
||||||
|
stty -echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
local i=1
|
||||||
|
while [ $i -le "$tty_tries" ]; do
|
||||||
|
[ -n "$tty_prompt" ] \
|
||||||
|
&& printf "%s" "$tty_prompt [$i/$tty_tries]:" >&2
|
||||||
|
eval "$tty_cmd" && ret=0 && break
|
||||||
|
ret=$?
|
||||||
|
i=$((i + 1))
|
||||||
|
[ -n "$tty_prompt" ] && printf '\n' >&2
|
||||||
|
done
|
||||||
|
|
||||||
|
[ "$tty_echo_off" = yes ] && stty "$stty_orig"
|
||||||
|
fi
|
||||||
|
} 9> /.console_lock
|
||||||
|
|
||||||
|
[ $ret -ne 0 ] && echo "Wrong password" >&2
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
|
# Try to mount specified device (by path, by UUID or by label) and check
|
||||||
|
# the path with 'test'.
|
||||||
|
#
|
||||||
|
# example:
|
||||||
|
# test_dev -f LABEL="nice label" /some/file1
|
||||||
|
test_dev() {
|
||||||
|
local test_op=$1
|
||||||
|
local dev="$2"
|
||||||
|
local f="$3"
|
||||||
|
local ret=1
|
||||||
|
local mount_point
|
||||||
|
|
||||||
|
mount_point=$(mkuniqdir /mnt testdev)
|
||||||
|
[ -n "$dev" -a -n "$*" ] || return 1
|
||||||
|
[ -d "$mount_point" ] || die 'Mount point does not exist!'
|
||||||
|
|
||||||
|
if mount -r "$dev" "$mount_point" > /dev/null 2>&1; then
|
||||||
|
test "$test_op" "${mount_point}/${f}"
|
||||||
|
ret=$?
|
||||||
|
umount "$mount_point"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rmdir "$mount_point"
|
||||||
|
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
|
# match_dev devpattern dev
|
||||||
|
#
|
||||||
|
# Returns true if 'dev' matches 'devpattern'. Both 'devpattern' and 'dev' are
|
||||||
|
# expanded to kernel names and then compared. If name of 'dev' is on list of
|
||||||
|
# names of devices matching 'devpattern', the test is positive. 'dev' and
|
||||||
|
# 'devpattern' may be anything which function 'devnames' recognizes.
|
||||||
|
#
|
||||||
|
# If 'devpattern' is empty or '*' then function just returns true.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# match_dev UUID=123 /dev/dm-1
|
||||||
|
# Returns true if /dev/dm-1 UUID starts with "123".
|
||||||
|
match_dev() {
|
||||||
|
[ -z "$1" -o "$1" = '*' ] && return 0
|
||||||
|
local devlist
|
||||||
|
local dev
|
||||||
|
|
||||||
|
devlist="$(devnames "$1")" || return 255
|
||||||
|
dev="$(devnames "$2")" || return 255
|
||||||
|
|
||||||
|
strstr "
|
||||||
|
$devlist
|
||||||
|
" "
|
||||||
|
$dev
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
# getkey keysfile for_dev
|
||||||
|
#
|
||||||
|
# Reads file <keysfile> produced by probe-keydev and looks for first line to
|
||||||
|
# which device <for_dev> matches. The successful result is printed in format
|
||||||
|
# "<keydev>:<keypath>". When nothing found, just false is returned.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# getkey /tmp/luks.keys /dev/sdb1
|
||||||
|
# May print:
|
||||||
|
# /dev/sdc1:/keys/some.key
|
||||||
|
getkey() {
|
||||||
|
local keys_file="$1"
|
||||||
|
local for_dev="$2"
|
||||||
|
local luks_dev
|
||||||
|
local key_dev
|
||||||
|
local key_path
|
||||||
|
|
||||||
|
[ -z "$keys_file" -o -z "$for_dev" ] && die 'getkey: wrong usage!'
|
||||||
|
[ -f "$keys_file" ] || return 1
|
||||||
|
|
||||||
|
while IFS=: read -r luks_dev key_dev key_path _ || [ -n "$luks_dev" ]; do
|
||||||
|
if match_dev "$luks_dev" "$for_dev"; then
|
||||||
|
echo "${key_dev}:${key_path}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done < "$keys_file"
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# readkey keypath keydev device
|
||||||
|
#
|
||||||
|
# Mounts <keydev>, reads key from file <keypath>, optionally processes it (e.g.
|
||||||
|
# if encrypted with GPG) and prints to standard output which is supposed to be
|
||||||
|
# read by cryptsetup. <device> is just passed to helper function for
|
||||||
|
# informational purpose.
|
||||||
|
readkey() {
|
||||||
|
local keypath="$1"
|
||||||
|
local keydev="$2"
|
||||||
|
local device="$3"
|
||||||
|
|
||||||
|
# No mounting needed if the keyfile resides inside the initrd
|
||||||
|
if [ "/" = "$keydev" ]; then
|
||||||
|
local mntp=/
|
||||||
|
else
|
||||||
|
# This creates a unique single mountpoint for *, or several for explicitly
|
||||||
|
# given LUKS devices. It accomplishes unlocking multiple LUKS devices with
|
||||||
|
# a single password entry.
|
||||||
|
local mntp
|
||||||
|
mntp="/mnt/$(str_replace "keydev-$keydev-$keypath" '/' '-')"
|
||||||
|
|
||||||
|
if [ ! -d "$mntp" ]; then
|
||||||
|
mkdir -p "$mntp"
|
||||||
|
mount -r "$keydev" "$mntp" || die 'Mounting rem. dev. failed!'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "${keypath##*.}" in
|
||||||
|
gpg)
|
||||||
|
if [ -f /lib/dracut-crypt-gpg-lib.sh ]; then
|
||||||
|
. /lib/dracut-crypt-gpg-lib.sh
|
||||||
|
gpg_decrypt "$mntp" "$keypath" "$keydev" "$device"
|
||||||
|
else
|
||||||
|
die "No GPG support to decrypt '$keypath' on '$keydev'."
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
img)
|
||||||
|
if [ -f /lib/dracut-crypt-loop-lib.sh ]; then
|
||||||
|
. /lib/dracut-crypt-loop-lib.sh
|
||||||
|
loop_decrypt "$mntp" "$keypath" "$keydev" "$device"
|
||||||
|
printf "%s\n" "umount \"$mntp\"; rmdir \"$mntp\";" > "${hookdir}/cleanup/crypt-loop-cleanup-99-${mntp##*/}".sh
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
die "No loop file support to decrypt '$keypath' on '$keydev'."
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*) cat "$mntp/$keypath" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# No unmounting if the keyfile resides inside the initrd
|
||||||
|
if [ "/" != "$keydev" ]; then
|
||||||
|
# General unmounting mechanism, modules doing custom cleanup should return earlier
|
||||||
|
# and install a pre-pivot cleanup hook
|
||||||
|
umount "$mntp"
|
||||||
|
rmdir "$mntp"
|
||||||
|
fi
|
||||||
|
}
|
||||||
+31
@@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/sh
|
||||||
|
|
||||||
|
. /lib/dracut-lib.sh
|
||||||
|
type crypttab_contains > /dev/null 2>&1 || . /lib/dracut-crypt-lib.sh
|
||||||
|
|
||||||
|
dev=$1
|
||||||
|
luks=$2
|
||||||
|
|
||||||
|
crypttab_contains "$luks" "$dev" && exit 0
|
||||||
|
|
||||||
|
allowdiscards="-"
|
||||||
|
|
||||||
|
# parse for allow-discards
|
||||||
|
if [ -n "$DRACUT_SYSTEMD" ] || strstr "$(cryptsetup --help)" "allow-discards"; then
|
||||||
|
if discarduuids=$(getargs "rd.luks.allow-discards"); then
|
||||||
|
discarduuids=$(str_replace "$discarduuids" 'luks-' '')
|
||||||
|
if strstr " $discarduuids " " ${luks##luks-}"; then
|
||||||
|
allowdiscards="discard"
|
||||||
|
fi
|
||||||
|
elif getargbool 0 rd.luks.allow-discards; then
|
||||||
|
allowdiscards="discard"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$luks $dev - timeout=0,$allowdiscards" >> /etc/crypttab
|
||||||
|
|
||||||
|
if command -v systemctl > /dev/null; then
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl start cryptsetup.target
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
Executable
+207
@@ -0,0 +1,207 @@
|
|||||||
|
#!/usr/bin/sh
|
||||||
|
|
||||||
|
PATH=/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
NEWROOT=${NEWROOT:-"/sysroot"}
|
||||||
|
|
||||||
|
# do not ask, if we already have root
|
||||||
|
[ -f "$NEWROOT"/proc ] && exit 0
|
||||||
|
|
||||||
|
. /lib/dracut-lib.sh
|
||||||
|
|
||||||
|
mkdir -p -m 0700 /run/cryptsetup
|
||||||
|
|
||||||
|
# if device name is /dev/dm-X, convert to /dev/mapper/name
|
||||||
|
if [ "${1##/dev/dm-}" != "$1" ]; then
|
||||||
|
device="/dev/mapper/$(dmsetup info -c --noheadings -o name "$1")"
|
||||||
|
else
|
||||||
|
device="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# default luksname - luks-UUID
|
||||||
|
luksname=$2
|
||||||
|
|
||||||
|
# is_keysource - ask for passphrase even if a rd.luks.key argument is set
|
||||||
|
is_keysource=${3:-0}
|
||||||
|
|
||||||
|
# number of tries
|
||||||
|
numtries=${4:-10}
|
||||||
|
|
||||||
|
# TODO: improve to support what cmdline does
|
||||||
|
if [ -f /etc/crypttab ] && getargbool 1 rd.luks.crypttab -d -n rd_NO_CRYPTTAB; then
|
||||||
|
while read -r name dev luksfile luksoptions || [ -n "$name" ]; do
|
||||||
|
# ignore blank lines and comments
|
||||||
|
if [ -z "$name" -o "${name#\#}" != "$name" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# PARTUUID used in crypttab
|
||||||
|
if [ "${dev%%=*}" = "PARTUUID" ]; then
|
||||||
|
if [ "luks-${dev##PARTUUID=}" = "$luksname" ]; then
|
||||||
|
luksname="$name"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
# UUID used in crypttab
|
||||||
|
elif [ "${dev%%=*}" = "UUID" ]; then
|
||||||
|
if [ "luks-${dev##UUID=}" = "$luksname" ]; then
|
||||||
|
luksname="$name"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ID used in crypttab
|
||||||
|
elif [ "${dev%%=*}" = "ID" ]; then
|
||||||
|
if [ "luks-${dev##ID=}" = "$luksname" ]; then
|
||||||
|
luksname="$name"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
# path used in crypttab
|
||||||
|
else
|
||||||
|
cdev=$(readlink -f "$dev")
|
||||||
|
mdev=$(readlink -f "$device")
|
||||||
|
if [ "$cdev" = "$mdev" ]; then
|
||||||
|
luksname="$name"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done < /etc/crypttab
|
||||||
|
unset name dev
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if destination already exists
|
||||||
|
[ -b /dev/mapper/"$luksname" ] && exit 0
|
||||||
|
|
||||||
|
# we already asked for this device
|
||||||
|
asked_file=/tmp/cryptroot-asked-$luksname
|
||||||
|
[ -f "$asked_file" ] && exit 0
|
||||||
|
|
||||||
|
# load dm_crypt if it is not already loaded
|
||||||
|
[ -d /sys/module/dm_crypt ] || modprobe dm_crypt
|
||||||
|
|
||||||
|
. /lib/dracut-crypt-lib.sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Open LUKS device
|
||||||
|
#
|
||||||
|
|
||||||
|
info "luksOpen $device $luksname $luksfile $luksoptions"
|
||||||
|
|
||||||
|
OLD_IFS="$IFS"
|
||||||
|
IFS=,
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
set -- $luksoptions
|
||||||
|
IFS="$OLD_IFS"
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case $1 in
|
||||||
|
noauto)
|
||||||
|
# skip this
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
swap)
|
||||||
|
# skip this
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
tmp)
|
||||||
|
# skip this
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
allow-discards)
|
||||||
|
allowdiscards="--allow-discards"
|
||||||
|
;;
|
||||||
|
header=*)
|
||||||
|
cryptsetupopts="${cryptsetupopts} --${1}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# parse for allow-discards
|
||||||
|
if strstr "$(cryptsetup --help)" "allow-discards"; then
|
||||||
|
if discarduuids=$(getargs "rd.luks.allow-discards"); then
|
||||||
|
discarduuids=$(str_replace "$discarduuids" 'luks-' '')
|
||||||
|
if strstr " $discarduuids " " ${luksdev##luks-}"; then
|
||||||
|
allowdiscards="--allow-discards"
|
||||||
|
fi
|
||||||
|
elif getargbool 0 rd.luks.allow-discards; then
|
||||||
|
allowdiscards="--allow-discards"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if strstr "$(cryptsetup --help)" "allow-discards"; then
|
||||||
|
cryptsetupopts="$cryptsetupopts $allowdiscards"
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset allowdiscards
|
||||||
|
|
||||||
|
# fallback to passphrase
|
||||||
|
ask_passphrase=1
|
||||||
|
|
||||||
|
if [ -n "$luksfile" -a "$luksfile" != "none" -a -e "$luksfile" ]; then
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
if readkey "$luksfile" / "$device" \
|
||||||
|
| cryptsetup -d - $cryptsetupopts luksOpen "$device" "$luksname"; then
|
||||||
|
ask_passphrase=0
|
||||||
|
fi
|
||||||
|
elif [ "$is_keysource" -ne 0 ]; then
|
||||||
|
info "Asking for passphrase because $device is a keysource."
|
||||||
|
else
|
||||||
|
while [ -n "$(getarg rd.luks.key)" ]; do
|
||||||
|
if tmp=$(getkey /tmp/luks.keys "$device"); then
|
||||||
|
keydev="${tmp%%:*}"
|
||||||
|
keypath="${tmp#*:}"
|
||||||
|
else
|
||||||
|
if [ "$numtries" -eq 0 ]; then
|
||||||
|
warn "No key found for $device. Fallback to passphrase mode."
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
info "No key found for $device. Will try $numtries time(s) more later."
|
||||||
|
initqueue --unique --onetime --settled \
|
||||||
|
--name cryptroot-ask-"$luksname" \
|
||||||
|
"$(command -v cryptroot-ask)" "$device" "$luksname" "$is_keysource" "$((numtries - 1))"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
unset tmp
|
||||||
|
|
||||||
|
info "Using '$keypath' on '$keydev'"
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
readkey "$keypath" "$keydev" "$device" \
|
||||||
|
| cryptsetup -d - $cryptsetupopts luksOpen "$device" "$luksname" \
|
||||||
|
&& ask_passphrase=0
|
||||||
|
unset keypath keydev
|
||||||
|
break
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ask_passphrase -ne 0 ]; then
|
||||||
|
luks_open="$(command -v cryptsetup) $cryptsetupopts luksOpen"
|
||||||
|
_timeout=$(getargs "rd.luks.timeout")
|
||||||
|
_timeout=${_timeout:-0}
|
||||||
|
ask_for_password --ply-tries 5 \
|
||||||
|
--ply-cmd "$luks_open -T1 $device $luksname" \
|
||||||
|
--ply-prompt "Password ($device)" \
|
||||||
|
--tty-tries 1 \
|
||||||
|
--tty-cmd "$luks_open -T5 -t $_timeout $device $luksname"
|
||||||
|
unset luks_open
|
||||||
|
unset _timeout
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$is_keysource" -ne 0 -a "${luksname##luks-}" != "$luksname" ]; then
|
||||||
|
luks_close="$(command -v cryptsetup) close"
|
||||||
|
{
|
||||||
|
printf -- '[ -e /dev/mapper/%s ] && ' "$luksname"
|
||||||
|
printf -- '%s "%s"\n' "$luks_close" "$luksname"
|
||||||
|
} >> "$hookdir/cleanup/31-crypt-keysource.sh"
|
||||||
|
unset luks_close
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset device luksname luksfile
|
||||||
|
|
||||||
|
# mark device as asked
|
||||||
|
: >> "$asked_file"
|
||||||
|
|
||||||
|
need_shutdown
|
||||||
|
udevsettle
|
||||||
|
|
||||||
|
exit 0
|
||||||
@@ -0,0 +1,182 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# called by dracut
|
||||||
|
check() {
|
||||||
|
local fs
|
||||||
|
# if cryptsetup is not installed, then we cannot support encrypted devices.
|
||||||
|
require_any_binary "$systemdutildir"/systemd-cryptsetup cryptsetup || return 1
|
||||||
|
|
||||||
|
[[ $hostonly ]] || [[ $mount_needs ]] && {
|
||||||
|
for fs in "${host_fs_types[@]}"; do
|
||||||
|
[[ $fs == "crypto_LUKS" ]] && return 0
|
||||||
|
done
|
||||||
|
return 255
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# called by dracut
|
||||||
|
depends() {
|
||||||
|
local deps
|
||||||
|
deps="dm rootfs-block"
|
||||||
|
if [[ $hostonly && -f "$dracutsysrootdir"/etc/crypttab ]]; then
|
||||||
|
if grep -q -e "fido2-device=" -e "fido2-cid=" "$dracutsysrootdir"/etc/crypttab; then
|
||||||
|
deps+=" fido2"
|
||||||
|
fi
|
||||||
|
if grep -q "pkcs11-uri" "$dracutsysrootdir"/etc/crypttab; then
|
||||||
|
deps+=" pkcs11"
|
||||||
|
fi
|
||||||
|
if grep -q "tpm2-device=" "$dracutsysrootdir"/etc/crypttab; then
|
||||||
|
deps+=" tpm2-tss"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "$deps"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# called by dracut
|
||||||
|
installkernel() {
|
||||||
|
hostonly="" instmods drbg
|
||||||
|
instmods dm_crypt
|
||||||
|
|
||||||
|
# in case some of the crypto modules moved from compiled in
|
||||||
|
# to module based, try to install those modules
|
||||||
|
# best guess
|
||||||
|
if [[ $hostonly ]] || [[ $mount_needs ]]; then
|
||||||
|
# dmsetup returns s.th. like
|
||||||
|
# cryptvol: 0 2064384 crypt aes-xts-plain64 :64:logon:cryptsetup:....
|
||||||
|
dmsetup table | while read -r name _ _ is_crypt cipher _; do
|
||||||
|
[[ $is_crypt == "crypt" ]] || continue
|
||||||
|
# get the device name
|
||||||
|
name=/dev/$(dmsetup info -c --noheadings -o blkdevname "${name%:}")
|
||||||
|
# check if the device exists as a key in our host_fs_types (even with null string)
|
||||||
|
# shellcheck disable=SC2030 # this is a shellcheck bug
|
||||||
|
if [[ ${host_fs_types[$name]+_} ]]; then
|
||||||
|
# split the cipher aes-xts-plain64 in pieces
|
||||||
|
IFS='-:' read -ra mods <<< "$cipher"
|
||||||
|
# try to load the cipher part with "crypto-" prepended
|
||||||
|
# in non-hostonly mode
|
||||||
|
hostonly='' instmods "${mods[@]/#/crypto-}" "crypto-$cipher"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
instmods "=crypto"
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# called by dracut
|
||||||
|
cmdline() {
|
||||||
|
local dev UUID
|
||||||
|
# shellcheck disable=SC2031
|
||||||
|
for dev in "${!host_fs_types[@]}"; do
|
||||||
|
[[ ${host_fs_types[$dev]} != "crypto_LUKS" ]] && continue
|
||||||
|
|
||||||
|
UUID=$(
|
||||||
|
blkid -u crypto -o export "$dev" \
|
||||||
|
| while read -r line || [ -n "$line" ]; do
|
||||||
|
[[ ${line#UUID} == "$line" ]] && continue
|
||||||
|
printf "%s" "${line#UUID=}"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
)
|
||||||
|
[[ ${UUID} ]] || continue
|
||||||
|
printf "%s" " rd.luks.uuid=luks-${UUID}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# called by dracut
|
||||||
|
install() {
|
||||||
|
|
||||||
|
if [[ $hostonly_cmdline == "yes" ]]; then
|
||||||
|
local _cryptconf
|
||||||
|
_cryptconf=$(cmdline)
|
||||||
|
[[ $_cryptconf ]] && printf "%s\n" "$_cryptconf" >> "${initdir}/etc/cmdline.d/90crypt.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
inst_hook cmdline 29 "$moddir/parse-crypt.sh"
|
||||||
|
if ! dracut_module_included "systemd"; then
|
||||||
|
inst_multiple cryptsetup rmdir readlink umount
|
||||||
|
inst_script "$moddir"/cryptroot-ask.sh /sbin/cryptroot-ask
|
||||||
|
inst_script "$moddir"/probe-keydev.sh /sbin/probe-keydev
|
||||||
|
inst_hook cmdline 9 "$moddir/parse-keydev.sh"
|
||||||
|
inst_hook cleanup 29 "$moddir/crypt-cleanup.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $hostonly ]] && [[ -f $dracutsysrootdir/etc/crypttab ]]; then
|
||||||
|
# filter /etc/crypttab for the devices we need
|
||||||
|
while read -r _mapper _dev _luksfile _luksoptions || [ -n "$_mapper" ]; do
|
||||||
|
[[ $_mapper == \#* ]] && continue
|
||||||
|
[[ $_dev ]] || continue
|
||||||
|
|
||||||
|
[[ $_dev == PARTUUID=* ]] \
|
||||||
|
&& _dev="/dev/disk/by-partuuid/${_dev#PARTUUID=}"
|
||||||
|
|
||||||
|
[[ $_dev == UUID=* ]] \
|
||||||
|
&& _dev="/dev/disk/by-uuid/${_dev#UUID=}"
|
||||||
|
|
||||||
|
[[ $_dev == ID=* ]] \
|
||||||
|
&& _dev="/dev/disk/by-id/${_dev#ID=}"
|
||||||
|
|
||||||
|
echo "$_dev $(blkid "$_dev" -s UUID -o value)" >> "${initdir}/etc/block_uuid.map"
|
||||||
|
|
||||||
|
# loop through the options to check for the force option
|
||||||
|
luksoptions=${_luksoptions}
|
||||||
|
OLD_IFS="${IFS}"
|
||||||
|
IFS=,
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
set -- ${luksoptions}
|
||||||
|
IFS="${OLD_IFS}"
|
||||||
|
|
||||||
|
forceentry=""
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case $1 in
|
||||||
|
force)
|
||||||
|
forceentry="yes"
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# include the entry regardless
|
||||||
|
if [ "${forceentry}" = "yes" ]; then
|
||||||
|
echo "$_mapper $_dev $_luksfile $_luksoptions"
|
||||||
|
else
|
||||||
|
# shellcheck disable=SC2031
|
||||||
|
for _hdev in "${!host_fs_types[@]}"; do
|
||||||
|
[[ ${host_fs_types[$_hdev]} == "crypto_LUKS" ]] || continue
|
||||||
|
if [[ $_hdev -ef $_dev ]] || [[ /dev/block/$_hdev -ef $_dev ]]; then
|
||||||
|
echo "$_mapper $_dev $_luksfile $_luksoptions"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done < "$dracutsysrootdir"/etc/crypttab > "$initdir"/etc/crypttab
|
||||||
|
mark_hostonly /etc/crypttab
|
||||||
|
fi
|
||||||
|
|
||||||
|
inst_simple "$moddir/crypt-lib.sh" "/lib/dracut-crypt-lib.sh"
|
||||||
|
inst_script "$moddir/crypt-run-generator.sh" "/sbin/crypt-run-generator"
|
||||||
|
|
||||||
|
if dracut_module_included "systemd"; then
|
||||||
|
# the cryptsetup targets are already pulled in by 00systemd, but not
|
||||||
|
# the enablement symlinks
|
||||||
|
inst_multiple -o \
|
||||||
|
"$tmpfilesdir"/cryptsetup.conf \
|
||||||
|
"$systemdutildir"/system-generators/systemd-cryptsetup-generator \
|
||||||
|
"$systemdutildir"/systemd-cryptsetup \
|
||||||
|
"$systemdsystemunitdir"/systemd-ask-password-console.path \
|
||||||
|
"$systemdsystemunitdir"/systemd-ask-password-console.service \
|
||||||
|
"$systemdsystemunitdir"/cryptsetup.target \
|
||||||
|
"$systemdsystemunitdir"/sysinit.target.wants/cryptsetup.target \
|
||||||
|
"$systemdsystemunitdir"/remote-cryptsetup.target \
|
||||||
|
"$systemdsystemunitdir"/initrd-root-device.target.wants/remote-cryptsetup.target \
|
||||||
|
systemd-ask-password systemd-tty-ask-password-agent
|
||||||
|
fi
|
||||||
|
|
||||||
|
dracut_need_initqueue
|
||||||
|
|
||||||
|
inst /usr/bin/unl0kr /bin/unl0kr
|
||||||
|
}
|
||||||
Executable
+197
@@ -0,0 +1,197 @@
|
|||||||
|
#!/usr/bin/sh
|
||||||
|
|
||||||
|
type crypttab_contains > /dev/null 2>&1 || . /lib/dracut-crypt-lib.sh
|
||||||
|
|
||||||
|
_cryptgetargsname() {
|
||||||
|
debug_off
|
||||||
|
local _o _found _key
|
||||||
|
unset _o
|
||||||
|
unset _found
|
||||||
|
_key="$1"
|
||||||
|
set --
|
||||||
|
for _o in $(getargs rd.luks.name); do
|
||||||
|
if [ "${_o%=*}" = "${_key%=}" ]; then
|
||||||
|
[ -n "${_o%=*}" ] && set -- "$@" "${_o#*=}"
|
||||||
|
_found=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ -n "$_found" ]; then
|
||||||
|
[ $# -gt 0 ] && printf '%s' "$*"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if ! getargbool 1 rd.luks -d -n rd_NO_LUKS; then
|
||||||
|
info "rd.luks=0: removing cryptoluks activation"
|
||||||
|
rm -f -- /etc/udev/rules.d/70-luks.rules
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo 'SUBSYSTEM!="block", GOTO="luks_end"'
|
||||||
|
echo 'ACTION!="add|change", GOTO="luks_end"'
|
||||||
|
} > /etc/udev/rules.d/70-luks.rules.new
|
||||||
|
|
||||||
|
PARTUUID=$(getargs rd.luks.partuuid -d rd_LUKS_PARTUUID)
|
||||||
|
SERIAL=$(getargs rd.luks.serial -d rd_LUKS_SERIAL)
|
||||||
|
LUKS=$(getargs rd.luks.uuid -d rd_LUKS_UUID)
|
||||||
|
tout=$(getarg rd.luks.key.tout)
|
||||||
|
|
||||||
|
if [ -e /etc/crypttab ]; then
|
||||||
|
while read -r _ _dev _ || [ -n "$_dev" ]; do
|
||||||
|
set_systemd_timeout_for_dev "$_dev"
|
||||||
|
done < /etc/crypttab
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$PARTUUID" ]; then
|
||||||
|
for uuid in $PARTUUID; do
|
||||||
|
|
||||||
|
is_keysource=0
|
||||||
|
_uuid=$uuid
|
||||||
|
uuid=${uuid#keysource:}
|
||||||
|
[ "$uuid" != "$_uuid" ] && is_keysource=1
|
||||||
|
unset _uuid
|
||||||
|
|
||||||
|
uuid=${uuid##luks-}
|
||||||
|
if luksname=$(_cryptgetargsname "$uuid="); then
|
||||||
|
luksname="${luksname#$uuid=}"
|
||||||
|
else
|
||||||
|
luksname="luks-$uuid"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$DRACUT_SYSTEMD" ]; then
|
||||||
|
{
|
||||||
|
printf -- 'ENV{ID_PART_ENTRY_UUID}=="*%s*", ' "$uuid"
|
||||||
|
printf -- 'RUN+="%s --settled --unique --onetime ' "$(command -v initqueue)"
|
||||||
|
printf -- '--name cryptroot-ask-%%k %s ' "$(command -v cryptroot-ask)"
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
printf -- '$env{DEVNAME} %s %s %s"\n' "$luksname" "$is_keysource" "$tout"
|
||||||
|
} >> /etc/udev/rules.d/70-luks.rules.new
|
||||||
|
else
|
||||||
|
luksname=$(dev_unit_name "$luksname")
|
||||||
|
# shellcheck disable=SC1003
|
||||||
|
luksname="$(str_replace "$luksname" '\' '\\')"
|
||||||
|
|
||||||
|
if ! crypttab_contains "$uuid"; then
|
||||||
|
{
|
||||||
|
printf -- 'ENV{ID_PART_ENTRY_UUID}=="*%s*", ' "$uuid"
|
||||||
|
printf -- 'RUN+="%s --settled --unique --onetime ' "$(command -v initqueue)"
|
||||||
|
printf -- '--name systemd-cryptsetup-%%k %s start ' "$(command -v systemctl)"
|
||||||
|
printf -- 'systemd-cryptsetup@%s.service"\n' "$luksname"
|
||||||
|
} >> /etc/udev/rules.d/70-luks.rules.new
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
elif [ -n "$SERIAL" ]; then
|
||||||
|
for serialid in $SERIAL; do
|
||||||
|
|
||||||
|
is_keysource=0
|
||||||
|
_serialid=$serialid
|
||||||
|
serialid=${serialid#keysource:}
|
||||||
|
[ "$serialid" != "$_serialid" ] && is_keysource=1
|
||||||
|
unset _serialid
|
||||||
|
|
||||||
|
serialid=${serialid##luks-}
|
||||||
|
if luksname=$(_cryptgetargsname "$serialid="); then
|
||||||
|
luksname="${luksname#$serialid=}"
|
||||||
|
else
|
||||||
|
luksname="luks-$serialid"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$DRACUT_SYSTEMD" ]; then
|
||||||
|
{
|
||||||
|
printf -- 'ENV{ID_SERIAL_SHORT}=="*%s*", ' "$serialid"
|
||||||
|
printf -- 'RUN+="%s --settled --unique --onetime ' "$(command -v initqueue)"
|
||||||
|
printf -- '--name cryptroot-ask-%%k %s ' "$(command -v cryptroot-ask)"
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
printf -- '$env{DEVNAME} %s %s %s"\n' "$luksname" "$is_keysource" "$tout"
|
||||||
|
} >> /etc/udev/rules.d/70-luks.rules.new
|
||||||
|
else
|
||||||
|
luksname=$(dev_unit_name "$luksname")
|
||||||
|
# shellcheck disable=SC1003
|
||||||
|
luksname="$(str_replace "$luksname" '\' '\\')"
|
||||||
|
|
||||||
|
if ! crypttab_contains "$serialid"; then
|
||||||
|
{
|
||||||
|
printf -- 'ENV{ID_SERIAL_SHORT}=="*%s*", ' "$serialid"
|
||||||
|
printf -- 'RUN+="%s --settled --unique --onetime ' "$(command -v initqueue)"
|
||||||
|
printf -- '--name systemd-cryptsetup-%%k %s start ' "$(command -v systemctl)"
|
||||||
|
printf -- 'systemd-cryptsetup@%s.service"\n' "$luksname"
|
||||||
|
} >> /etc/udev/rules.d/70-luks.rules.new
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
elif [ -n "$LUKS" ]; then
|
||||||
|
for luksid in $LUKS; do
|
||||||
|
|
||||||
|
is_keysource=0
|
||||||
|
_luksid=$luksid
|
||||||
|
luksid=${luksid#keysource:}
|
||||||
|
[ "$luksid" != "$_luksid" ] && is_keysource=1
|
||||||
|
unset _luksid
|
||||||
|
|
||||||
|
luksid=${luksid##luks-}
|
||||||
|
if luksname=$(_cryptgetargsname "$luksid="); then
|
||||||
|
luksname="${luksname#$luksid=}"
|
||||||
|
else
|
||||||
|
luksname="luks-$luksid"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$DRACUT_SYSTEMD" ]; then
|
||||||
|
{
|
||||||
|
printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", '
|
||||||
|
printf -- 'ENV{ID_FS_UUID}=="*%s*", ' "$luksid"
|
||||||
|
printf -- 'RUN+="%s --settled --unique --onetime ' "$(command -v initqueue)"
|
||||||
|
printf -- '--name cryptroot-ask-%%k %s ' "$(command -v cryptroot-ask)"
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
printf -- '$env{DEVNAME} %s %s %s"\n' "$luksname" "$is_keysource" "$tout"
|
||||||
|
} >> /etc/udev/rules.d/70-luks.rules.new
|
||||||
|
else
|
||||||
|
luksname=$(dev_unit_name "$luksname")
|
||||||
|
# shellcheck disable=SC1003
|
||||||
|
luksname="$(str_replace "$luksname" '\' '\\')"
|
||||||
|
|
||||||
|
if ! crypttab_contains "$luksid"; then
|
||||||
|
{
|
||||||
|
printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", '
|
||||||
|
printf -- 'ENV{ID_FS_UUID}=="*%s*", ' "$luksid"
|
||||||
|
printf -- 'RUN+="%s --settled --unique --onetime ' "$(command -v initqueue)"
|
||||||
|
printf -- '--name systemd-cryptsetup-%%k %s start ' "$(command -v systemctl)"
|
||||||
|
printf -- 'systemd-cryptsetup@%s.service"\n' "$luksname"
|
||||||
|
} >> /etc/udev/rules.d/70-luks.rules.new
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $is_keysource -eq 0 ]; then
|
||||||
|
uuid=$luksid
|
||||||
|
while [ "$uuid" != "${uuid#*-}" ]; do uuid=${uuid%%-*}${uuid#*-}; done
|
||||||
|
printf -- '[ -e /dev/disk/by-id/dm-uuid-CRYPT-LUKS?-*%s*-* ] || exit 1\n' "$uuid" \
|
||||||
|
>> "$hookdir/initqueue/finished/90-crypt.sh"
|
||||||
|
{
|
||||||
|
printf -- '[ -e /dev/disk/by-uuid/*%s* ] || ' "$luksid"
|
||||||
|
printf -- 'warn "crypto LUKS UUID "%s" not found"\n' "$luksid"
|
||||||
|
} >> "$hookdir/emergency/90-crypt.sh"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
elif getargbool 0 rd.auto; then
|
||||||
|
if [ -z "$DRACUT_SYSTEMD" ]; then
|
||||||
|
{
|
||||||
|
printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="%s ' "$(command -v initqueue)"
|
||||||
|
printf -- '--unique --settled --onetime --name cryptroot-ask-%%k '
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
printf -- '%s $env{DEVNAME} luks-$env{ID_FS_UUID} 0 %s"\n' "$(command -v cryptroot-ask)" "$tout"
|
||||||
|
} >> /etc/udev/rules.d/70-luks.rules.new
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="%s ' "$(command -v initqueue)"
|
||||||
|
printf -- '--unique --settled --onetime --name crypt-run-generator-%%k '
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
printf -- '%s $env{DEVNAME} luks-$env{ID_FS_UUID}"\n' "$(command -v crypt-run-generator)"
|
||||||
|
} >> /etc/udev/rules.d/70-luks.rules.new
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'LABEL="luks_end"' >> /etc/udev/rules.d/70-luks.rules.new
|
||||||
|
mv /etc/udev/rules.d/70-luks.rules.new /etc/udev/rules.d/70-luks.rules
|
||||||
|
fi
|
||||||
Executable
+44
@@ -0,0 +1,44 @@
|
|||||||
|
#!/usr/bin/sh
|
||||||
|
|
||||||
|
if getargbool 1 rd.luks -n rd_NO_LUKS \
|
||||||
|
&& [ -n "$(getarg rd.luks.key)" ]; then
|
||||||
|
exec 7> /etc/udev/rules.d/65-luks-keydev.rules
|
||||||
|
echo 'SUBSYSTEM!="block", GOTO="luks_keydev_end"' >&7
|
||||||
|
echo 'ACTION!="add|change", GOTO="luks_keydev_end"' >&7
|
||||||
|
|
||||||
|
for arg in $(getargs rd.luks.key); do
|
||||||
|
unset keypath keydev luksdev
|
||||||
|
splitsep : "$arg" keypath keydev luksdev
|
||||||
|
|
||||||
|
info "rd.luks.key: keypath='$keypath' keydev='$keydev' luksdev='$luksdev'"
|
||||||
|
|
||||||
|
if [ -z "$keypath" ]; then
|
||||||
|
warn 'keypath required!'
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# A keydev of '/' is treated as the initrd itself
|
||||||
|
if [ "/" = "$keydev" ]; then
|
||||||
|
[ -z "$luksdev" ] && luksdev='*'
|
||||||
|
echo "$luksdev:$keydev:$keypath" >> /tmp/luks.keys
|
||||||
|
continue
|
||||||
|
elif [ -n "$keydev" ]; then
|
||||||
|
udevmatch "$keydev" >&7 || {
|
||||||
|
warn 'keydev incorrect!'
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
printf ', ' >&7
|
||||||
|
fi
|
||||||
|
|
||||||
|
{
|
||||||
|
printf -- 'RUN+="%s --unique --onetime ' "$(command -v initqueue)"
|
||||||
|
printf -- '--name probe-keydev-%%k '
|
||||||
|
printf -- '%s /dev/%%k %s %s"\n' \
|
||||||
|
"$(command -v probe-keydev)" "${keypath}" "${luksdev}"
|
||||||
|
} >&7
|
||||||
|
done
|
||||||
|
unset arg keypath keydev luksdev
|
||||||
|
|
||||||
|
echo 'LABEL="luks_keydev_end"' >&7
|
||||||
|
exec 7>&-
|
||||||
|
fi
|
||||||
Executable
+16
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/sh
|
||||||
|
|
||||||
|
. /lib/dracut-crypt-lib.sh
|
||||||
|
|
||||||
|
real_keydev="$1"
|
||||||
|
keypath="$2"
|
||||||
|
luksdev="$3"
|
||||||
|
|
||||||
|
[ -z "$real_keydev" -o -z "$keypath" ] && die 'probe-keydev: wrong usage!'
|
||||||
|
[ -z "$luksdev" ] && luksdev='*'
|
||||||
|
|
||||||
|
info "Probing $real_keydev for $keypath..."
|
||||||
|
test_dev -f "$real_keydev" "$keypath" || exit 1
|
||||||
|
|
||||||
|
info "Found $keypath on $real_keydev"
|
||||||
|
echo "$luksdev:$real_keydev:$keypath" >> /tmp/luks.keys
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
project pkg {
|
||||||
|
rpm {
|
||||||
|
spec = "unl0kr.spec"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
Name: unl0kr
|
||||||
|
Version: 2.0.3
|
||||||
|
Release: %autorelease
|
||||||
|
Summary: Disk unlocker for the initramfs based on LVGL.
|
||||||
|
|
||||||
|
License: GPL-v3.0
|
||||||
|
URL: https://gitlab.com/postmarketOS/buffybox
|
||||||
|
Source0: 90unl0kr
|
||||||
|
|
||||||
|
BuildRequires: pkgconfig(inih) pkgconfig(libinput) pkgconfig(libudev) pkgconfig(xkbcommon) pkgconfig(libdrm) pkgconfig(scdoc) git meson gcc
|
||||||
|
Requires: inih libxkbcommon libinput systemd libdrm cryptsetup
|
||||||
|
Conflicts: osk-sdl
|
||||||
|
|
||||||
|
%description
|
||||||
|
Unl0kr is an osk-sdl clone written in LVGL and rendering directly to the Linux framebuffer. As a result, it doesn't depend on GPU hardware acceleration.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
git clone --recursive --shallow-submodules --branch unl0kr-%version %url.git .
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
%meson
|
||||||
|
%meson_build
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
%meson_install
|
||||||
|
mkdir -p "%{buildroot}%{_prefix}/lib/dracut/modules.d"
|
||||||
|
install -Dm755 "%{SOURCE0}/*" "%{buildroot}%{_prefix}/lib/dracut/modules.d/90unl0kr/"
|
||||||
|
|
||||||
|
|
||||||
|
%check
|
||||||
|
%meson_test
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license COPYING
|
||||||
|
%doc doc/*
|
||||||
|
%{_bindir}/unl0kr
|
||||||
|
%{_sysconfdir}/unl0kr.conf
|
||||||
|
%{_mandir}/man1/unl0kr.1.gz
|
||||||
|
%{_mandir}/man5/unl0kr.conf.5.gz
|
||||||
|
%{_prefix}/lib/dracut/modules.d/90unl0kr
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Feb 2 2024 infinitebash <infinitebash@fyralabs.com>
|
||||||
|
- Initial package
|
||||||
|
%autochangelog
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
let txt = get("https://gitlab.com/api/v4/projects/52322952/repository/tags");
|
||||||
|
fn get_ver(json) {
|
||||||
|
for release in json {
|
||||||
|
if "unl0kr" in release.name {
|
||||||
|
return release.name.split("-")[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let ver = get_ver(txt.json_arr());
|
||||||
|
rpm.version(ver);
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
%global coreutils_ver 9.3
|
%global coreutils_ver 9.3
|
||||||
|
|
||||||
Name: uutils-coreutils
|
Name: uutils-coreutils
|
||||||
Version: 0.0.23
|
Version: 0.0.24
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Cross-platform Rust rewrite of the GNU coreutils
|
Summary: Cross-platform Rust rewrite of the GNU coreutils
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Name: bibata-cursor-theme
|
Name: bibata-cursor-theme
|
||||||
Version: 2.0.5
|
Version: 2.0.6
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
URL: https://github.com/ful1e5/Bibata_Cursor
|
URL: https://github.com/ful1e5/Bibata_Cursor
|
||||||
Source0: %{url}/releases/download/v%{version}/Bibata.tar.xz
|
Source0: %{url}/releases/download/v%{version}/Bibata.tar.xz
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Summary: tauOS GTK/GNOME Shell Themes
|
Summary: tauOS GTK/GNOME Shell Themes
|
||||||
Name: tau-helium
|
Name: tau-helium
|
||||||
Version: 1.5.10
|
Version: 1.8.10.1
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPL-3.0
|
License: GPL-3.0
|
||||||
URL: https://github.com/tau-OS/tau-helium
|
URL: https://github.com/tau-OS/tau-helium
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
%global crate anda
|
%global crate anda
|
||||||
|
|
||||||
Name: rust-anda
|
Name: rust-anda
|
||||||
Version: 0.1.21
|
Version: 0.1.22
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Andaman Build toolchain
|
Summary: Andaman Build toolchain
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Name: gradle
|
Name: gradle
|
||||||
Version: 8.5.0
|
Version: 8.6.0
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Powerful build system for the JVM
|
Summary: Powerful build system for the JVM
|
||||||
URL: https://gradle.org/
|
URL: https://gradle.org/
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
|
|
||||||
Name: subatomic
|
Name: subatomic
|
||||||
Version: 0.3.1
|
Version: 0.4.0
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: A modern package delivery system
|
Summary: A modern package delivery system
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
%global __provides_exclude_from %{_libdir}/%{name}/.*\\.so
|
%global __provides_exclude_from %{_libdir}/%{name}/.*\\.so
|
||||||
|
|
||||||
Name: electron
|
Name: electron
|
||||||
Version: 28.1.3
|
Version: 28.2.1
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Build cross platform desktop apps with web technologies
|
Summary: Build cross platform desktop apps with web technologies
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|||||||
Reference in New Issue
Block a user