unify build systems of buffyboard and unl0kr
This commit is contained in:
parent
20b084c0b4
commit
ec21e5ead9
14 changed files with 120 additions and 147 deletions
|
|
@ -126,7 +126,7 @@ void ul_cli_parse_opts(int argc, char *argv[], ul_cli_opts *opts) {
|
|||
opts->verbose = true;
|
||||
break;
|
||||
case 'V':
|
||||
fprintf(stderr, "unl0kr %s\n", UL_VERSION);
|
||||
fprintf(stderr, "unl0kr %s\n", PROJECT_VERSION);
|
||||
exit(0);
|
||||
default:
|
||||
print_usage();
|
||||
|
|
|
|||
|
|
@ -1,54 +0,0 @@
|
|||
unl0kr(1) "unl0kr"
|
||||
|
||||
# NAME
|
||||
|
||||
UNL0KR - LVGL based initramfs disk unlocker
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
unl0kr [OPTION]
|
||||
|
||||
# DESCRIPTION
|
||||
|
||||
UNL0KR is a disk unlocker for the initramfs based on LVGL. By using LVGL and
|
||||
rendering directly to the framebuffer it can work without relying on GPU
|
||||
hardware acceleration. This makes for much more managable initramfs sizes.
|
||||
|
||||
Unl0kr utilises the CRYPTTAB_TRIED variable. Upon completion, the entered
|
||||
password is printed to STDOUT. All other output happens on STDERR.
|
||||
|
||||
# OPTIONS
|
||||
|
||||
## Optional
|
||||
|
||||
*-C, --config-override*
|
||||
Path to a config override file. Can be supplied multiple times. Config
|
||||
files are merged in the following order:
|
||||
- /usr/share/unl0kr/unl0kr.conf
|
||||
- /usr/share/unl0kr/unl0kr.conf.d/\* (alphabetically)
|
||||
- /etc/unl0kr.conf
|
||||
- /etc/unl0kr.conf.d/\* (alphabetically)
|
||||
- Override files (in supplied order)
|
||||
*-g, --geometry=NxM[@X,Y]*
|
||||
Force a display size of N horizontal times M vertical pixels, offset
|
||||
horizontally by X pixels and vertically by Y pixels.
|
||||
*-d --dpi=N*
|
||||
Override the display's DPI value.
|
||||
*-h, --help*
|
||||
Print this message and exit.
|
||||
*-v, --verbose*
|
||||
Enable more detailed logging output on STDERR.
|
||||
*-V, --version*
|
||||
Print the unl0kr version and exit.
|
||||
|
||||
# EXAMPLES
|
||||
|
||||
*Decrypt /dev/sda1 to name "root"*
|
||||
CRYPTTAB_SOURCE="/dev/sda1" CRYPTTAB_TRIED="0" unl0kr | cryptsetup --perf-no_read_workqueue --perf-no_write_workqueue open "/dev/sda1" root -
|
||||
|
||||
# SEE ALSO
|
||||
*unl0kr.conf*(5)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
*Undef* <debian@undef.tools>
|
||||
|
|
@ -1,102 +0,0 @@
|
|||
unl0kr(5) "unl0kr"
|
||||
|
||||
# NAME
|
||||
|
||||
UNL0KR - configuration file
|
||||
|
||||
# DESCRIPTION
|
||||
|
||||
UNL0KR expects a configuration file with options in the following format, with
|
||||
one option/value pair per line:
|
||||
|
||||
```
|
||||
[section]
|
||||
<option>=<value>
|
||||
```
|
||||
|
||||
On launch, UNL0KR searches for configuration files in various locations and
|
||||
successively merges all files together into a single configuration. Files are searched
|
||||
for and, if found, merged in the following order:
|
||||
- /usr/share/unl0kr/unl0kr.conf
|
||||
- /usr/share/unl0kr/unl0kr.conf.d/ (alphabetically)
|
||||
- /etc/unl0kr.conf
|
||||
- /etc/unl0kr.conf.d/ (alphabetically)
|
||||
- Override files (in supplied order)
|
||||
|
||||
# OPTIONS
|
||||
|
||||
## General
|
||||
*animations* = <true|false>
|
||||
Enable or disable animations. Useful for slower devices. Default: false.
|
||||
|
||||
*backend* = <fbdev|drm>
|
||||
The rendering backend to use. Default: fbdev.
|
||||
|
||||
*timeout* = <value>
|
||||
The time in seconds before unl0kr will consider the entry a failure
|
||||
and shutdown. Setting timeout to 0 disables this feature. Default: 0.
|
||||
|
||||
## Keyboard
|
||||
*autohide* = <true|false>
|
||||
Whether to automatically hide the keyboard when a hardware keyboard
|
||||
is detected on launch. Default: true.
|
||||
|
||||
*layout* = <us|de|fr|...>
|
||||
The default layout to use. Can be changed from the UI at runtime.
|
||||
The available options are defined by the available keyboards at build time.
|
||||
Default: us.
|
||||
|
||||
*popovers* = <true|false>
|
||||
Enable or disable key press popovers showing the selected key.
|
||||
default: true.
|
||||
|
||||
## Textarea
|
||||
*obscured* = <true|false>
|
||||
Whether the password in the text entry box can be read. Selectable in
|
||||
the UI at runtime. Default: true.
|
||||
|
||||
*bullet* = <value>
|
||||
The character that will be used to obscure the password. Default: bullet.
|
||||
|
||||
## Theme
|
||||
*default* = <adwaita-light|adwaita-dark|breezy-light|breezy-dark|nord-light|nord-dark|pmos-light|pmos-dark>
|
||||
Selects the default theme on boot. Can be changed at runtime to the
|
||||
alternative theme. Default: breezy-dark.
|
||||
|
||||
*alternative* = <breezy-light|breezy-dark|pmos-light|pmos-dark>
|
||||
Selects the alternative theme which the user can then choose on boot.
|
||||
Default: breezy-light.
|
||||
|
||||
## Input
|
||||
*keyboard* = <true|false>
|
||||
Enable or disable the use of hardware keyboards. Default: true
|
||||
|
||||
*pointer* = <true|false>
|
||||
Enable or disable the use of a hardware mouse or other pointing device.
|
||||
Default: true.
|
||||
|
||||
*touchscreen* = <true|false>
|
||||
Enable or disable the use of the touchscreen.
|
||||
Default: true.
|
||||
|
||||
## Quirks
|
||||
*fbdev_force_refresh* = <true|false>
|
||||
If true and using the framebuffer backend, this triggers a display refresh
|
||||
after every draw operation. This has a negative performance impact.
|
||||
Default: false.
|
||||
|
||||
*terminal_prevent_graphics_mode* = <true|false>
|
||||
If true, this avoids setting the terminal into graphics mode. This will
|
||||
show the terminal command prompt. Default: false.
|
||||
|
||||
*terminal_allow_keyboard_input* = <true|false>
|
||||
If true, this avoids turning off terminal keyboard input. This will show
|
||||
your password on the terminal. Default: false.
|
||||
|
||||
# SEE ALSO
|
||||
*unl0kr*(1)
|
||||
|
||||
# AUTHORS
|
||||
|
||||
*Undef* <debian@undef.tools>
|
||||
*Johannes Marbach* <n0-0ne@mailbox.org>
|
||||
|
|
@ -377,7 +377,7 @@ int main(int argc, char *argv[]) {
|
|||
}
|
||||
|
||||
/* Announce ourselves */
|
||||
bbx_log(BBX_LOG_LEVEL_VERBOSE, "unl0kr %s", UL_VERSION);
|
||||
bbx_log(BBX_LOG_LEVEL_VERBOSE, "unl0kr %s", PROJECT_VERSION);
|
||||
|
||||
/* Parse config files */
|
||||
ul_config_init_opts(&conf_opts);
|
||||
|
|
|
|||
|
|
@ -1,76 +1,34 @@
|
|||
# Copyright 2021 Clayton Craft
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
depxkbcommon = dependency('xkbcommon')
|
||||
|
||||
unl0kr_sources = [
|
||||
'backends.c',
|
||||
'command_line.c',
|
||||
'config.c',
|
||||
'main.c',
|
||||
'sq2lv_layouts.c',
|
||||
'terminal.c',
|
||||
]
|
||||
|
||||
shared_sources = [
|
||||
'../shared/cursor/cursor.c',
|
||||
'../shared/fonts/font_32.c',
|
||||
'../shared/config.c',
|
||||
'../shared/indev.c',
|
||||
'../shared/log.c',
|
||||
'../shared/theme.c',
|
||||
'../shared/themes.c',
|
||||
]
|
||||
|
||||
squeek2lvgl_sources = [
|
||||
'../squeek2lvgl/sq2lv.c',
|
||||
]
|
||||
|
||||
man_files = [
|
||||
'doc/unl0kr.1',
|
||||
'doc/unl0kr.conf.5',
|
||||
]
|
||||
|
||||
unl0kr_dependencies = [
|
||||
dependency('inih'),
|
||||
dependency('libinput'),
|
||||
dependency('libudev'),
|
||||
dependency('xkbcommon'),
|
||||
]
|
||||
|
||||
libdrm_dep = dependency('libdrm', required: get_option('with-drm'))
|
||||
if libdrm_dep.found()
|
||||
unl0kr_dependencies += [libdrm_dep]
|
||||
add_project_arguments('-DLV_USE_LINUX_DRM=1', language: ['c'])
|
||||
endif
|
||||
|
||||
lvgl_sources = run_command('../find-lvgl-sources.sh', '../lvgl', check: true).stdout().strip().split('\n')
|
||||
|
||||
install_data(sources: 'unl0kr.conf', install_dir : get_option('sysconfdir'))
|
||||
|
||||
executable(
|
||||
'unl0kr',
|
||||
sources: unl0kr_sources + shared_sources + squeek2lvgl_sources + lvgl_sources,
|
||||
include_directories: ['..'],
|
||||
dependencies: unl0kr_dependencies,
|
||||
install: true
|
||||
unl0kr_sources = files(
|
||||
'backends.c',
|
||||
'command_line.c',
|
||||
'config.c',
|
||||
'main.c',
|
||||
'sq2lv_layouts.c',
|
||||
'terminal.c'
|
||||
)
|
||||
|
||||
scdoc = dependency('scdoc')
|
||||
scdoc_prog = find_program(scdoc.get_pkgconfig_variable('scdoc'), native : true)
|
||||
sh = find_program('sh', native : true)
|
||||
foreach file : man_files
|
||||
filename = file + '.scd'
|
||||
section = file.split('.')[-1]
|
||||
topic = file.split('.' + section)[-2].split('/')[-1]
|
||||
output = '@0@.@1@'.format(topic, section)
|
||||
unl0kr_dependencies = [
|
||||
common_dependencies,
|
||||
depxkbcommon
|
||||
]
|
||||
|
||||
deplibdrm = dependency('libdrm', required: get_option('with-drm'))
|
||||
if deplibdrm.found()
|
||||
unl0kr_dependencies += deplibdrm
|
||||
add_project_arguments('-DLV_USE_LINUX_DRM=1', language: 'c')
|
||||
endif
|
||||
|
||||
executable('unl0kr',
|
||||
include_directories: common_include_dirs,
|
||||
sources: unl0kr_sources + shared_sources + squeek2lvgl_sources + lvgl_sources,
|
||||
dependencies: unl0kr_dependencies,
|
||||
install: true
|
||||
)
|
||||
|
||||
install_data('unl0kr.conf', install_dir: get_option('sysconfdir'))
|
||||
|
||||
custom_target(
|
||||
output,
|
||||
input : filename,
|
||||
output : output,
|
||||
capture : true,
|
||||
command : [sh, '-c', scdoc_prog.path() + ' < @INPUT@'],
|
||||
install : true,
|
||||
install_dir : get_option('mandir') / 'man' + section
|
||||
)
|
||||
endforeach
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@
|
|||
|
||||
#include "lvgl/lvgl.h"
|
||||
|
||||
#ifndef UL_VERSION
|
||||
#define UL_VERSION "?" /* Just to silence IDE warning. Real version injected by meson during build. */
|
||||
#ifndef PROJECT_VERSION
|
||||
#define PROJECT_VERSION "?" /* Just to silence IDE warning. Real version injected by meson during build. */
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue