Skip to content
Snippets Groups Projects
Commit 3613ba4e authored by Johannes Marbach's avatar Johannes Marbach
Browse files

Merge branch 'master' into 'main_loop'

# Conflicts:
#   CHANGELOG.md
parents a89df3a0 d5838377
No related branches found
No related tags found
No related merge requests found
Pipeline #217807 passed
build-and-test-with-drm:
image: alpine:3.19
script:
- set -e # Stop on first error
- apk -q add git bash build-base meson linux-headers inih-dev libinput-dev libxkbcommon-dev libdrm-dev scdoc
- git submodule init
- git submodule update
......@@ -9,6 +10,7 @@ build-and-test-with-drm:
build-and-test-without-drm:
image: alpine:3.19
script:
- set -e # Stop on first error
- apk -q add git bash build-base meson linux-headers inih-dev libinput-dev libxkbcommon-dev scdoc
- git submodule init
- git submodule update
......@@ -17,6 +19,7 @@ build-and-test-without-drm:
build-iskey:
image: alpine:3.19
script:
- set -e # Stop on first error
- apk -q add git bash build-base meson linux-headers libevdev-dev
- cd iskey
- meson setup _build
......
[submodule "lvgl"]
path = lvgl
url = https://github.com/littlevgl/lvgl.git
url = https://github.com/lvgl/lvgl.git
......@@ -21,6 +21,7 @@ If a change only affects particular applications, they are listed in parentheses
- feat(buffyboard): Add a buffyboard.service systemd service (!34, @uninsane)
- fix(unl0kr): Select an available DRM device instead of a hard-coded one (!35, thanks @Sorcus)
- feat(unl0kr): Enable software rotation (!32, thanks @xs5871 & @craftyguy)
- misc: do not hardcode endianess of a system (!41, thanks @vstoiakin)
- misc(unl0kr): Optimize the main loop (!38, thanks @vstoiakin)
## 3.2.0 (2024-06-03)
......
......@@ -313,9 +313,6 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
* COMPILER SETTINGS
*====================*/
/*For big endian systems set to 1*/
#define LV_BIG_ENDIAN_SYSTEM 0
/*Define a custom attribute to `lv_tick_inc` function*/
#define LV_ATTRIBUTE_TICK_INC
......
......@@ -32,7 +32,7 @@ password is printed to STDOUT. All other output happens on STDERR.
*-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*
*-d --dpi=N*
Override the display's DPI value.
*-r, --rotate=[0-3]*
Rotate the UI to the given orientation. The
......@@ -42,11 +42,13 @@ password is printed to STDOUT. All other output happens on STDERR.
* 1 - clockwise orientation (90 degrees)
* 2 - upside down orientation (180 degrees)
* 3 - counterclockwise orientation (270 degrees)
*-h, --help*
*-h, --help*
Print this message and exit.
*-v, --verbose*
*-n*
Do not append a newline character to a password.
*-v, --verbose*
Enable more detailed logging output on STDERR.
*-V, --version*
*-V, --version*
Print the unl0kr version and exit.
# EXAMPLES
......
......@@ -4,7 +4,11 @@ project('buffybox', 'c',
meson_version: '>= 0.59.0'
)
add_project_arguments('-DPROJECT_VERSION="@0@"'.format(meson.project_version()), language: 'c')
add_project_arguments(
'-DPROJECT_VERSION="@0@"'.format(meson.project_version()),
'-DLV_BIG_ENDIAN_SYSTEM=' + (host_machine.endian() == 'big'? '1' : '0'),
language: 'c'
)
depinih = dependency('inih')
deplibinput = dependency('libinput')
......
......@@ -58,8 +58,10 @@ function ok() {
function run_script() {
info "Executing $1"
"$1"
rc=0
"$1" || rc=1
echo
return $rc
}
function read_version_from_meson() {
......
......@@ -4,8 +4,12 @@ root=$(dirname "${BASH_SOURCE[0]}")
source "$root/helpers.sh"
run_script "$root/build-with-drm.sh"
run_script "$root/test-version-matches-meson-and-changelog.sh"
run_script "$root/test-uses-fb-backend-by-default.sh"
run_script "$root/test-uses-fb-backend-if-selected-via-config.sh"
run_script "$root/test-uses-drm-backend-if-selected-via-config-and-available.sh"
rc=0
run_script "$root/build-with-drm.sh" || rc=1
run_script "$root/test-version-matches-meson-and-changelog.sh" || rc=1
run_script "$root/test-uses-fb-backend-by-default.sh" || rc=1
run_script "$root/test-uses-fb-backend-if-selected-via-config.sh" || rc=1
run_script "$root/test-uses-drm-backend-if-selected-via-config-and-available.sh" || rc=1
exit $rc
......@@ -4,8 +4,12 @@ root=$(dirname "${BASH_SOURCE[0]}")
source "$root/helpers.sh"
run_script "$root/build-without-drm.sh"
run_script "$root/test-version-matches-meson-and-changelog.sh"
run_script "$root/test-uses-fb-backend-by-default.sh"
run_script "$root/test-uses-fb-backend-if-selected-via-config.sh"
run_script "$root/test-uses-fb-backend-if-drm-selected-via-config-but-unavailable.sh"
rc=0
run_script "$root/build-without-drm.sh" || rc=1
run_script "$root/test-version-matches-meson-and-changelog.sh" || rc=1
run_script "$root/test-uses-fb-backend-by-default.sh" || rc=1
run_script "$root/test-uses-fb-backend-if-selected-via-config.sh" || rc=1
run_script "$root/test-uses-fb-backend-if-drm-selected-via-config-but-unavailable.sh" || rc=1
exit $rc
......@@ -45,6 +45,7 @@ static void init_opts(ul_cli_opts *opts) {
opts->y_offset = 0;
opts->dpi = 0;
opts->rotation = LV_DISPLAY_ROTATION_0;
opts->newline = true;
opts->verbose = false;
}
......@@ -77,6 +78,7 @@ static void print_usage() {
" * 2 - upside down orientation (180 degrees)\n"
" * 3 - counterclockwise orientation (270 degrees)\n"
" -h, --help Print this message and exit\n"
" -n Do not append a newline character to a password\n"
" -v, --verbose Enable more detailed logging output on STDERR\n"
" -V, --version Print the unl0kr version and exit\n");
/*-------------------------------- 78 CHARS --------------------------------*/
......@@ -103,7 +105,7 @@ void ul_cli_parse_opts(int argc, char *argv[], ul_cli_opts *opts) {
int opt, index = 0;
while ((opt = getopt_long(argc, argv, "C:g:d:r:hvV", long_opts, &index)) != -1) {
while ((opt = getopt_long(argc, argv, "C:g:d:r:hnvV", long_opts, &index)) != -1) {
switch (opt) {
case 'C':
opts->config_files = realloc(opts->config_files, (opts->num_config_files + 1) * sizeof(char *));
......@@ -153,6 +155,9 @@ void ul_cli_parse_opts(int argc, char *argv[], ul_cli_opts *opts) {
case 'h':
print_usage();
exit(EXIT_SUCCESS);
case 'n':
opts->newline = false;
break;
case 'v':
opts->verbose = true;
break;
......
......@@ -30,6 +30,8 @@ typedef struct {
int dpi;
/* Display rotation */
lv_display_rotation_t rotation;
/* If true, append a newline character to a password */
bool newline;
/* Verbose mode. If true, provide more detailed logging output on STDERR. */
bool verbose;
} ul_cli_opts;
......
......@@ -207,9 +207,6 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
* COMPILER SETTINGS
*====================*/
/*For big endian systems set to 1*/
#define LV_BIG_ENDIAN_SYSTEM 0
/*Define a custom attribute to `lv_tick_inc` function*/
#define LV_ATTRIBUTE_TICK_INC
......
......@@ -331,7 +331,7 @@ static void textarea_ready_cb(lv_event_t *event) {
static void print_password_and_exit(lv_obj_t *textarea) {
/* Print the password to STDOUT */
printf("%s\n", lv_textarea_get_text(textarea));
printf(cli_opts.newline? "%s\n" : "%s", lv_textarea_get_text(textarea));
/* Clear the screen so that when the password field was unobscured, it cannot
* leak via stale display buffers after we've exited */
......
......@@ -418,7 +418,7 @@ int exec_unl0kr(char** ret_password)
exit(EXIT_FAILURE);
}
execl(UNL0KR_BINARY, "unl0kr", (char*) 0);
execl(UNL0KR_BINARY, UNL0KR_BINARY, "-n", (char*) 0);
perror("exec() is failed");
exit(EXIT_FAILURE);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment