Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libalternatives for openSUSE:Factory checked in at 2021-06-25 15:00:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libalternatives (Old) and /work/SRC/openSUSE:Factory/.libalternatives.new.2625 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libalternatives" Fri Jun 25 15:00:32 2021 rev:2 rq:901232 version:1.1 Changes: -------- --- /work/SRC/openSUSE:Factory/libalternatives/libalternatives.changes 2021-06-11 00:19:09.673367739 +0200 +++ /work/SRC/openSUSE:Factory/.libalternatives.new.2625/libalternatives.changes 2021-06-25 15:00:41.196103905 +0200 @@ -1,0 +2,10 @@ +Mon Jun 21 22:00:23 UTC 2021 - adam.ma...@suse.de + +- Update to version v1.1: + * docs: Add broken manpage + * tests: unit tests configs + * tests: fix memory leak during tests + * list_binaries: initialize pointer that is later used in free + * libalts_exec_default() sets errno on not found + +------------------------------------------------------------------- Old: ---- libalternatives-v1.0.obscpio New: ---- libalternatives-v1.1.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libalternatives.spec ++++++ --- /var/tmp/diff_new_pack.5CjXgJ/_old 2021-06-25 15:00:41.872104730 +0200 +++ /var/tmp/diff_new_pack.5CjXgJ/_new 2021-06-25 15:00:41.876104735 +0200 @@ -1,7 +1,7 @@ # # spec file for package libalternatives # -# Copyright (c) 2021 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,21 +12,22 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # + %define sover 1 Name: libalternatives -Version: 1.0 +Version: 1.1 Release: 0 Summary: Executes preferred application based on user preferences License: GPL-3.0-or-later AND LGPL-3.0-or-later -Url: https://github.com/AdamMajer/libalternative.git +URL: https://github.com/AdamMajer/libalternative.git Source0: libalternatives-v%{version}.tar -BuildRequires: gcc BuildRequires: cmake > 3.8 BuildRequires: cunit-devel +BuildRequires: gcc %description libalternatives is a helper that executes an application based on preferences @@ -36,8 +37,8 @@ %package -n alts -License: GPL-3.0-or-later Summary: Executes preferred application based on user preferences +License: GPL-3.0-or-later %description -n alts This package contains a default helper and configuration application utility @@ -48,16 +49,16 @@ %package devel -License: LGPL-3.0-or-later Summary: Development headers for libalternatives +License: LGPL-3.0-or-later Requires: libalternatives%sover = %version %description devel This package contains development headers and library for libalternatives. %package -n libalternatives%sover -License: LGPL-3.0-or-later Summary: Runtime for libalternatives +License: LGPL-3.0-or-later %description -n libalternatives%sover This package contains the core logic and the runtime library for @@ -67,8 +68,8 @@ need to maintain system symlinks states. %package unit-test-helper -License: LGPL-3.0-or-later Summary: Verification helper for libalternatives +License: LGPL-3.0-or-later %description unit-test-helper This is a testing-only installation that may be used to verify that successful @@ -113,6 +114,7 @@ %license COPYING %doc README.md %_bindir/alts +%_mandir/man1/alts.1.* %files devel %_includedir/libalternatives.h ++++++ _service ++++++ --- /var/tmp/diff_new_pack.5CjXgJ/_old 2021-06-25 15:00:41.944104818 +0200 +++ /var/tmp/diff_new_pack.5CjXgJ/_new 2021-06-25 15:00:41.948104823 +0200 @@ -3,7 +3,7 @@ <param name="scm">git</param> <param name="url">https://github.com/openSUSE/libalternatives.git</param> <param name="versionformat">@PARENT_TAG@</param> - <param name="revision">v1.0</param> + <param name="revision">v1.1</param> <param name="changesgenerate">enable</param> </service> <service mode="buildtime" name="tar"/> ++++++ libalternatives-v1.0.obscpio -> libalternatives-v1.1.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libalternatives-v1.0/.gitignore new/libalternatives-v1.1/.gitignore --- old/libalternatives-v1.0/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/libalternatives-v1.1/.gitignore 2021-06-21 23:57:16.000000000 +0200 @@ -0,0 +1 @@ +build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libalternatives-v1.0/CMakeLists.txt new/libalternatives-v1.1/CMakeLists.txt --- old/libalternatives-v1.0/CMakeLists.txt 2021-06-09 16:10:17.000000000 +0200 +++ new/libalternatives-v1.1/CMakeLists.txt 2021-06-21 23:57:16.000000000 +0200 @@ -30,3 +30,4 @@ add_subdirectory(src) add_subdirectory(utils) add_subdirectory(test) +add_subdirectory(doc) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libalternatives-v1.0/doc/CMakeLists.txt new/libalternatives-v1.1/doc/CMakeLists.txt --- old/libalternatives-v1.0/doc/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/libalternatives-v1.1/doc/CMakeLists.txt 2021-06-21 23:57:16.000000000 +0200 @@ -0,0 +1,2 @@ +include(GNUInstallDirs) +install(FILES alts.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1/) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libalternatives-v1.0/doc/alts.1 new/libalternatives-v1.1/doc/alts.1 --- old/libalternatives-v1.0/doc/alts.1 1970-01-01 01:00:00.000000000 +0100 +++ new/libalternatives-v1.1/doc/alts.1 2021-06-21 23:57:16.000000000 +0200 @@ -0,0 +1,40 @@ +'\" -*- coding: UTF-8 -*- +.\" Man page for alts +.\" +.\" Copyright ??2021 SUSE LLC +.\" +.\" You may distribute under the terms of the GNU General Public +.\" License as specified in the COPYING file that comes with the +.\" libalterntaives distribution. +.\" +.pc +.TH ALTS 1 "2021-07-07" "1.0.0" "libalterntaives" + +.SH NAME +alts - manages preferred default commands + +.SH SYNOPSIS +alts [options] + +.SH DESCRIPTION + +alts is a defaul program manager and its aim is to provide an alternative to update-alternatives system +without relying on symlinks. Instead of symlinks, it relies on configuration files. This allows for +simple per-system or per-user override of default configuration. + +.SH OPTIONS + + alts -h --- this help screen + alts -l[name] --- list programs or just one with given name + alts [-u] [-s] -n <program> [-p <alt_priority>] + sets an override with a given priority as default + if priority is not set, then resets to default by removing override + -u -- user override, default for non-root users + -s -- system overrude, default for root users + -n -- program to override with a given priority alternative + + +.SH SEE ALSO +update-alternatives(1) + +. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libalternatives-v1.0/src/libalternatives.c new/libalternatives-v1.1/src/libalternatives.c --- old/libalternatives-v1.0/src/libalternatives.c 2021-06-09 16:10:17.000000000 +0200 +++ new/libalternatives-v1.1/src/libalternatives.c 2021-06-21 23:57:16.000000000 +0200 @@ -637,6 +637,7 @@ if (IS_DEBUG) fprintf(stderr, "execDefault() failed with target %s\n", (alts ? alts->target : NULL)); + errno = ENOENT; return -1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libalternatives-v1.0/test/alternatives_tests.c new/libalternatives-v1.1/test/alternatives_tests.c --- old/libalternatives-v1.0/test/alternatives_tests.c 2021-06-09 16:10:17.000000000 +0200 +++ new/libalternatives-v1.1/test/alternatives_tests.c 2021-06-21 23:57:16.000000000 +0200 @@ -21,6 +21,7 @@ #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> +#include <sys/wait.h> #include <fcntl.h> #include <unistd.h> #include <CUnit/CUnit.h> @@ -79,6 +80,7 @@ setConfigPath(full_path); free((void*)wd); + free(full_path); unlink(libalts_get_user_config_path()); unlink(libalts_get_system_config_path()); @@ -86,7 +88,7 @@ return 0; } -static int removeIOFiles() +static int cleanupTests() { if (CU_get_number_of_failures() == 0) { unlink(libalts_get_user_config_path()); @@ -154,7 +156,7 @@ char *args[] = {"app", "-l"}; CU_ASSERT_EQUAL(WRAP_CALL(args), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: multiple_alts\n\ Alternatives: 3\n\ Priority: 10 Target: /usr/bin/node10\n\ @@ -172,7 +174,7 @@ Alternatives: 2\n\ Priority: 10 Target: /usr/bin/false\n\ Priority: 20* Target: /usr/bin/true\n\ -"), 0); +"); } void listSpecificProgram() @@ -180,13 +182,13 @@ char *args[] = {"app", "-l", "multiple_alts"}; CU_ASSERT_EQUAL(WRAP_CALL(args), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: multiple_alts\n\ Alternatives: 3\n\ Priority: 10 Target: /usr/bin/node10\n\ Priority: 20 Target: /usr/bin/node20\n\ Priority: 30* Target: /usr/bin/node30\n\ -"), 0); +"); } void adjustPriorityForSpecificProgram() @@ -200,13 +202,13 @@ int src; CU_ASSERT_EQUAL(WRAP_CALL(args_read), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: multiple_alts\n\ Alternatives: 3\n\ Priority: 10 Target: /usr/bin/node10\n\ Priority: 20 Target: /usr/bin/node20\n\ Priority: 30* Target: /usr/bin/node30\n\ -"), 0); +"); CU_ASSERT_EQUAL(libalts_read_configured_priority(binary_name, &src), 0); @@ -214,13 +216,13 @@ CU_ASSERT_EQUAL(stdout_buffer[0], '\0'); CU_ASSERT_EQUAL(WRAP_CALL(args_read), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: multiple_alts\n\ Alternatives: 3\n\ Priority: 10 Target: /usr/bin/node10\n\ Priority: 20~ Target: /usr/bin/node20\n\ Priority: 30 Target: /usr/bin/node30\n\ -"), 0); +"); CU_ASSERT_EQUAL(libalts_read_configured_priority(binary_name, &src), 20); CU_ASSERT_EQUAL(src, 2); @@ -229,13 +231,13 @@ CU_ASSERT_EQUAL(stdout_buffer[0], '\0'); CU_ASSERT_EQUAL(WRAP_CALL(args_read), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: multiple_alts\n\ Alternatives: 3\n\ Priority: 10 Target: /usr/bin/node10\n\ Priority: 20~ Target: /usr/bin/node20\n\ Priority: 30 Target: /usr/bin/node30\n\ -"), 0); +"); CU_ASSERT_EQUAL(libalts_read_configured_priority(binary_name, &src), 20); CU_ASSERT_EQUAL(src, 2); @@ -244,13 +246,13 @@ CU_ASSERT_EQUAL(stdout_buffer[0], '\0'); CU_ASSERT_EQUAL(WRAP_CALL(args_read), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: multiple_alts\n\ Alternatives: 3\n\ Priority: 10! Target: /usr/bin/node10\n\ Priority: 20 Target: /usr/bin/node20\n\ Priority: 30 Target: /usr/bin/node30\n\ -"), 0); +"); CU_ASSERT_EQUAL(libalts_read_configured_priority(binary_name, &src), 10); CU_ASSERT_EQUAL(src, 1); @@ -259,13 +261,13 @@ CU_ASSERT_EQUAL(stdout_buffer[0], '\0'); CU_ASSERT_EQUAL(WRAP_CALL(args_read), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: multiple_alts\n\ Alternatives: 3\n\ Priority: 10 Target: /usr/bin/node10\n\ Priority: 20 Target: /usr/bin/node20\n\ Priority: 30* Target: /usr/bin/node30\n\ -"), 0); +"); CU_ASSERT_EQUAL(libalts_read_configured_priority(binary_name, &src), 0); } @@ -280,7 +282,7 @@ static int restoreGroupTestsAndRemoveIOFiles() { setConfigDirectory(CONFIG_DIR); - return removeIOFiles(); + return cleanupTests(); } static void listSpecificProgramInAGroup() @@ -288,7 +290,7 @@ char *args[] = {"app", "-l", "node"}; CU_ASSERT_EQUAL(WRAP_CALL(args), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: node\n\ Alternatives: 3\n\ Priority: 10 Target: /usr/bin/node10\n\ @@ -297,7 +299,7 @@ Group: node, npm\n\ Priority: 30* Target: /usr/bin/node30\n\ Group: node, npm\n\ -"), 0); +"); } static void showErrorsForInconsistentGroups() @@ -305,7 +307,7 @@ char *args[] = {"app", "-l", "node_bad"}; CU_ASSERT_EQUAL(WRAP_CALL(args), 1); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: node_bad\n\ Alternatives: 3\n\ Priority: 10 Target: /usr/bin/node10\n\ @@ -316,7 +318,7 @@ WARNING: shadows more complete Group with lower priority\n\ Priority: 30* Target: /usr/bin/node30\n\ WARNING: shadows more complete Group with lower priority\n\ -"), 0); +"); } static void setPrioritiesAffectEntireGroup() @@ -328,7 +330,7 @@ char *args_status[] = {"app", "-l", "npm"}; CU_ASSERT_EQUAL(WRAP_CALL(args_status), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: npm\n\ Alternatives: 3\n\ Priority: 10 Target: /usr/bin/npm10\n\ @@ -337,10 +339,16 @@ Group: node, npm\n\ Priority: 30* Target: /usr/bin/npm30\n\ Group: node, npm\n\ -"), 0); +"); + char **manpages = libalts_get_default_manpages("npm"); + CU_ASSERT_STRING_EQUAL(manpages[0], "npm30.1"); + CU_ASSERT_EQUAL(manpages[1], NULL); + free(manpages[0]); + free(manpages); + CU_ASSERT_EQUAL(WRAP_CALL(args_set), 0); CU_ASSERT_EQUAL(WRAP_CALL(args_status), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: npm\n\ Alternatives: 3\n\ Priority: 10~ Target: /usr/bin/npm10\n\ @@ -349,10 +357,16 @@ Group: node, npm\n\ Priority: 30 Target: /usr/bin/npm30\n\ Group: node, npm\n\ -"), 0); +"); + manpages = libalts_get_default_manpages("npm"); + CU_ASSERT_STRING_EQUAL(manpages[0], "npm10.1"); + CU_ASSERT_EQUAL(manpages[1], NULL); + free(manpages[0]); + free(manpages); + CU_ASSERT_EQUAL(WRAP_CALL(args_set_system), 0); CU_ASSERT_EQUAL(WRAP_CALL(args_status), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: npm\n\ Alternatives: 3\n\ Priority: 10~ Target: /usr/bin/npm10\n\ @@ -361,10 +375,11 @@ Group: node, npm\n\ Priority: 30 Target: /usr/bin/npm30\n\ Group: node, npm\n\ -"), 0); +"); + CU_ASSERT_EQUAL(WRAP_CALL(args_reset), 0); CU_ASSERT_EQUAL(WRAP_CALL(args_status), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: npm\n\ Alternatives: 3\n\ Priority: 10! Target: /usr/bin/npm10\n\ @@ -373,10 +388,16 @@ Group: node, npm\n\ Priority: 30 Target: /usr/bin/npm30\n\ Group: node, npm\n\ -"), 0); +"); + manpages = libalts_get_default_manpages("npm"); + CU_ASSERT_STRING_EQUAL(manpages[0], "npm10.1"); + CU_ASSERT_EQUAL(manpages[1], NULL); + free(manpages[0]); + free(manpages); + CU_ASSERT_EQUAL(WRAP_CALL(args_reset_system), 0); CU_ASSERT_EQUAL(WRAP_CALL(args_status), 0); - CU_ASSERT_EQUAL(strcmp(stdout_buffer, + CU_ASSERT_STRING_EQUAL(stdout_buffer, "Binary: npm\n\ Alternatives: 3\n\ Priority: 10 Target: /usr/bin/npm10\n\ @@ -385,12 +406,59 @@ Group: node, npm\n\ Priority: 30* Target: /usr/bin/npm30\n\ Group: node, npm\n\ -"), 0); +"); + manpages = libalts_get_default_manpages("npm"); + CU_ASSERT_STRING_EQUAL(manpages[0], "npm30.1"); + CU_ASSERT_EQUAL(manpages[1], NULL); + free(manpages[0]); + free(manpages); +} + + +static int setupExecTests() +{ + setConfigDirectory(CONFIG_DIR "/../test_exec"); + //setenv("LIBALTERNATIVES_DEBUG", "1", 1); + return setupTests(); +} + +static int cleanupExecTests() +{ + setConfigDirectory(CONFIG_DIR); + //unsetenv("LIBALTERNATIVES_DEBUG"); + return cleanupTests(); +} + +static void failedExecOfUnknown() +{ + char *command_not_found[] = { "/usr/some/something_not_there", "-param", NULL }; + CU_ASSERT_EQUAL(libalts_exec_default(command_not_found), -1); + CU_ASSERT_EQUAL(errno, ENOENT); +} + +static void validExecCommand() +{ + char *command_false[] = { "/usr/path/test42", NULL }; + pid_t child_pid = fork(); + int status = 1000; + + switch (child_pid) { + case -1: + CU_ASSERT_FATAL(-1); + return; + case 0: + libalts_exec_default(command_false); + exit(100); + default: + CU_ASSERT_EQUAL_FATAL(wait(&status), child_pid); + CU_ASSERT(WIFEXITED(status)); + CU_ASSERT_EQUAL(WEXITSTATUS(status), 1); + } } void addAlternativesAppTests() { - CU_pSuite suite = CU_add_suite_with_setup_and_teardown("Alternative App Tests", setupTests, removeIOFiles, storeErrorCount, printOutputOnErrorIncrease); + CU_pSuite suite = CU_add_suite_with_setup_and_teardown("Alternative App Tests", setupTests, cleanupTests, storeErrorCount, printOutputOnErrorIncrease); CU_ADD_TEST(suite, helpScreen); CU_ADD_TEST(suite, unknownParamsHelpScreen); CU_ADD_TEST(suite, moreThanOneCommand); @@ -403,4 +471,8 @@ CU_ADD_TEST(suite, listSpecificProgramInAGroup); CU_ADD_TEST(suite, showErrorsForInconsistentGroups); CU_ADD_TEST(suite, setPrioritiesAffectEntireGroup); + + suite = CU_add_suite_with_setup_and_teardown("Default Exec Tests", setupExecTests, cleanupExecTests, storeErrorCount, printOutputOnErrorIncrease); + CU_ADD_TEST(suite, failedExecOfUnknown); + CU_ADD_TEST(suite, validExecCommand); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libalternatives-v1.0/test/test_exec/test42/10.conf new/libalternatives-v1.1/test/test_exec/test42/10.conf --- old/libalternatives-v1.0/test/test_exec/test42/10.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/libalternatives-v1.1/test/test_exec/test42/10.conf 2021-06-21 23:57:16.000000000 +0200 @@ -0,0 +1,2 @@ +man=test +binary=/usr/bin/false \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libalternatives-v1.0/test/test_exec/test42/8.conf new/libalternatives-v1.1/test/test_exec/test42/8.conf --- old/libalternatives-v1.0/test/test_exec/test42/8.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/libalternatives-v1.1/test/test_exec/test42/8.conf 2021-06-21 23:57:16.000000000 +0200 @@ -0,0 +1,2 @@ +binary=/usr/bin/true +man=testing man \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libalternatives-v1.0/utils/list_binaries.c new/libalternatives-v1.1/utils/list_binaries.c --- old/libalternatives-v1.0/utils/list_binaries.c 2021-06-09 16:10:17.000000000 +0200 +++ new/libalternatives-v1.1/utils/list_binaries.c 2021-06-21 23:57:16.000000000 +0200 @@ -71,6 +71,7 @@ for (size_t i=0; i<*bin_size; i++) { struct InstalledBinaryData *binary = (*binaries_ptr) + i; binary->binary_name = binary_names_array[i]; + binary->alts = NULL; if (libalts_load_binary_priorities(binary->binary_name, &binary->priorities, &binary->num_priorities) != 0) { if (errno == ENOENT) { @@ -200,6 +201,7 @@ free(data->priorities); for (size_t i=0; i<data->num_priorities; i++) libalts_free_alternatives_ptr(&data->alts[i]); + free(data->alts); } int printInstalledBinariesAndTheirOverrideStates(const char *program) @@ -221,7 +223,6 @@ printInstalledBinaryAlternatives(binaries + i, errors, n_errors); freeInstalledBinaryDataStruct(binaries + i); } - free(binaries->alts); free(binaries); free(errors); ++++++ libalternatives.obsinfo ++++++ --- /var/tmp/diff_new_pack.5CjXgJ/_old 2021-06-25 15:00:42.104105013 +0200 +++ /var/tmp/diff_new_pack.5CjXgJ/_new 2021-06-25 15:00:42.104105013 +0200 @@ -1,5 +1,5 @@ name: libalternatives -version: v1.0 -mtime: 1623247817 -commit: c24417e035114db2f84a31a80bfaeedb8df234a0 +version: v1.1 +mtime: 1624312636 +commit: 1946f71a5240b605e558f9f2c29333088f07bcf5