aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add code coverage supportfor-masterDenis 'GNUtoo' Carikli2023-02-143-3/+91
| | | | | | | | | | Usage: $ ./configure --enable-code-coverage-tests --enable-debug \ --enable-samsung-ipc-device=fifo [...] $ make check $ sudo make install [...] Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* configure.ac: fix the python3 interpreter detection.Denis 'GNUtoo' Carikli2023-02-144-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | Guix system users need to use guix shell and the provided scripts/manifest.scm to do local builds and testing. However 'guix shell --container' doesn't have /usr/bin/env, so tests don't work if we rely on what is in the sheebang (#!). In various Makefile.am we had: PY_LOG_COMPILER = $(PYTHON) but PYTHON was undefined, so for some reasons that made 'make check' rely on the sheebang instead of just using 'python'. With this fix, with 'guix shell --pure --container -f scripts/manifest.scm', ./configure now properly detect the 'python3' that is in the path: Interpreters paths: PYTHON3..................: python3 And 'python3' is then used to run the python test scripts, which makes then makes 'make check' succeed. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: manifest.scm: fix missing bzip2, gzip, tar and xzDenis 'GNUtoo' Carikli2023-02-141-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In configure.ac we already build xz, bzip2 and gzip archives as we have the following: AM_INIT_AUTOMAKE([dist-bzip2 dist-xz subdir-objects]) and that in the commit aedf4ffd7d16721b522df2d20b1f41f8574c3940 ("Add tests for builds using tarballs") we automatically built these archives during make check. But we forgot to add the required utilities in scripts/manifest.scm. Without tar and xz, when running make check with 'guix shell --pure --container -f scripts/manifest.scm', we have the following error: tardir=libsamsung-ipc-0.7.0 && ${TAR-tar} chof - "$tardir" | \ XZ_OPT=${XZ_OPT--e} xz -c >libsamsung-ipc-0.7.0.tar.xz /bin/sh: line 1: xz: command not found /bin/sh: line 1: tar: command not found And if we don't add bzip2 we still have the following error: 'guix shell --pure --container -f scripts/manifest.scm', we have the following error: tardir=libsamsung-ipc-0.7.0 && ${TAR-tar} chof - "$tardir" | \ BZIP2=${BZIP2--9} bzip2 -c >libsamsung-ipc-0.7.0.tar.bz2 /bin/sh: line 1: bzip2: command not found And we also need gzip: tardir=libsamsung-ipc-0.7.0 && ${TAR-tar} chof - "$tardir" | \ eval GZIP= gzip --best -c >libsamsung-ipc-0.7.0.tar.gz /bin/sh: line 1: gzip: command not found Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: manifest.scm: fix missing findDenis 'GNUtoo' Carikli2023-02-141-0/+1
| | | | | | | | | | | | | | | | | Without that fix, when running make check with 'guix shell --pure --container -f scripts/manifest.scm', we have the following error: test -n "" \ || find "libsamsung-ipc-0.7.0" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec /bin/sh [...]/install-sh \ -c -m a+r {} {} \; \ || chmod -R a+r "libsamsung-ipc-0.7.0" /bin/sh: line 2: find: command not found Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: manifest.scm: fix missing cmpDenis 'GNUtoo' Carikli2023-02-141-0/+1
| | | | | | | | | | Without that fix, when running ./configure with 'guix shell --pure --container -f scripts/manifest.scm', we have the following warning: checking for a working dd... ./configure: line 7277: cmp: command not found Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: manifest.scm: Add missing curlDenis 'GNUtoo' Carikli2023-02-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Without that fix, when running ./configure with 'guix shell --pure --container -f scripts/manifest.scm', we have the following error: checking for libcurl >= 7.62.0... no configure: error: Package requirements (libcurl >= 7.62.0) were not met: No package 'libcurl' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBCURL_CFLAGS and LIBCURL_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. This issue wasn't found before because builds in guix shell weren't often tested with --container. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: libsamsung-ipc-gcc-autotools: use new arguments styleDenis 'GNUtoo' Carikli2023-02-141-8/+8
| | | | | | This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: libsamsung-ipc-clang-autotools: use new arguments styleDenis 'GNUtoo' Carikli2023-02-141-9/+9
| | | | | | This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync packages list with guix styleDenis 'GNUtoo' Carikli2023-02-141-2/+1
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the packages list definition with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync with-fixed-android-make-stub definition with guix styleDenis 'GNUtoo' Carikli2023-02-141-4/+1
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the with-fixed-android-make-stub definition with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync parse-android.mk definition with guix styleDenis 'GNUtoo' Carikli2023-02-141-10/+7
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the parse-android.mk definition with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync android-local-modules-list definition with guix styleDenis 'GNUtoo' Carikli2023-02-141-3/+2
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the android-local-modules-list definition with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync cflags definitions with guix styleDenis 'GNUtoo' Carikli2023-02-141-5/+3
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the cflags definitions with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync %commit definition with guix styleDenis 'GNUtoo' Carikli2023-02-141-3/+2
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the %commit definition with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync %local-source definition with guix styleDenis 'GNUtoo' Carikli2023-02-141-3/+2
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the %local-source definition with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync android-make definition with guix styleDenis 'GNUtoo' Carikli2023-02-141-35/+24
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the android-make definition with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync android-phases definition with guix styleDenis 'GNUtoo' Carikli2023-02-141-7/+10
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the android-phases definition with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync libsamsung-ipc with guix styleDenis 'GNUtoo' Carikli2023-02-141-1/+2
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the libsamsung-ipc package with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync libsamsung-ipc-gcc-android with guix styleDenis 'GNUtoo' Carikli2023-02-141-4/+4
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the libsamsung-ipc-gcc-android package with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync libsamsung-ipc-gcc-autotools with guix styleDenis 'GNUtoo' Carikli2023-02-141-13/+11
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the libsamsung-ipc-gcc-autotools package with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync libsamsung-ipc-clang-autotools with guix styleDenis 'GNUtoo' Carikli2023-02-141-10/+9
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the libsamsung-ipc-clang-autotools package with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync libsamsung-ipc-clang-android with guix styleDenis 'GNUtoo' Carikli2023-02-141-4/+4
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the libsamsung-ipc-clang-android package with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: sync package imports with guix styleDenis 'GNUtoo' Carikli2023-02-141-27/+27
| | | | | | | | | | | | The guix style command reformats a package or a file to use the code style used by Guix. This commits sync the package imports with the output produced by guix style. This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: libcurl is an input, not a native-inputDenis 'GNUtoo' Carikli2023-02-141-3/+1
| | | | | | | The https-send-sms tool is linked to libcurl, so libcurl is needed at runtime. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: Use new input styleDenis 'GNUtoo' Carikli2023-02-141-49/+35
| | | | | | This commit should contain no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* tools: ipc-modem: modem_exec_power_normal: don't hardcode command valueDenis 'GNUtoo' Carikli2023-02-141-1/+1
| | | | | | This makes the code easier to read. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* Add tests for builds using tarballsDenis 'GNUtoo' Carikli2022-08-252-0/+35
| | | | | | | | This enables to spot issues that prevents build or tests from working when using tarballs, like when required files not tracked by automake are added to git but not to EXTRA_DIST. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* python tests: use python3Denis 'GNUtoo' Carikli2022-08-255-10/+5
| | | | | | | | | | | | | Using python instead of python3 has several issues: - Distributions and users can choose python2 as their default python interpreter. For users this can be done by making a symlink in /usr/local for instance. - Guix doesn't have python but has python3 in the PATH. Changing to python3 makes tests work for Guix system users that use the scripts/manifest.scm file with guix shell / guix environment. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* tests: open_android_modem_partition: cleanup after creating fileDenis 'GNUtoo' Carikli2022-08-251-1/+78
| | | | | | | Without that fix, the file being created isn't deleted at the end of the test, so over time the leftover files accumulate in /tmp. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* tests: nv_data-imei: cleanup after creating fileDenis 'GNUtoo' Carikli2022-08-251-0/+4
| | | | | | | Without that fix, the file being created isn't deleted at the end of the test, so over time the leftover files accumulate in /tmp. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* tests: nv_data-md5: cleanup after creating fileDenis 'GNUtoo' Carikli2022-08-251-0/+2
| | | | | | | Without that fix, the file being created isn't deleted at the end of the test, so over time the leftover files accumulate in /tmp. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* utils: network_iface_{up,down}: fix truncated character arrayDenis 'GNUtoo' Carikli2022-08-251-2/+2
| | | | | | | | | | | In the netdevice(7) manual we have a character array of a fixed size: struct ifreq { char ifr_name[IFNAMSIZ]; /* Interface name */ [...] }; so we don't need a terminating null byte ('\0'). Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: guix.scm: fix whitespace issuesDenis 'GNUtoo' Carikli2022-08-251-18/+18
| | | | | | | Tabs were added by the commit 43983cdb532303224be896ec37e67fa515d87e3e ("Android.mk: fix missing files and build local-modules in guix.scm"). Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* autotools: ship python test programsDenis 'GNUtoo' Carikli2022-07-263-0/+6
| | | | | | | | | | | | | | Without that fix, we don't ship any of the python test programs: $ make dist $ tar tf libsamsung-ipc-0.7.0.tar.xz | grep "\.py$" so 'make check' fail with the following error when building from a tarball: make[4]: Leaving directory '/tmp/libsamsung-ipc/libsamsung-ipc-0.7.0/samsung-ipc/tests' fatal: making test-suite.log: failed to create libsamsung-ipc-test.trs fatal: making test-suite.log: failed to create libsamsung-ipc-test.log Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* autotools: ship generated install instructionsDenis 'GNUtoo' Carikli2022-07-261-0/+1
| | | | | | | Having installation instructions should make it easier to install libsamsung-ipc. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* CONTRIBUTING: fix gramatical errorDenis 'GNUtoo' Carikli2022-07-261-1/+1
| | | | | | Replicant (the Replicant project) is third-person singular. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* autotools: ship CONTRIBUTINGDenis 'GNUtoo' Carikli2022-07-261-0/+1
| | | | | | | While contributing requires to use the git repository (for up to date code), having a file that mentions that in the tarballs is useful. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* autotools: ship Android.mk (and its dependency) in tarballsDenis 'GNUtoo' Carikli2022-07-261-0/+2
| | | | | | | | | | While Android mainly use git, it still enables users to drop a tarball in an Android tree to build libsamsung-ipc. In addition Android.mk is mentioned in CONTRIBUTING, so it is useful to ship along with CONTRIBUTING. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* tools: ipc-modem: autotools: fix missing headerDenis 'GNUtoo' Carikli2022-07-261-1/+6
| | | | | | | | | | | | | | | | | | | Without that fix, nv_data-imei compiles fine in git, but if we build from a tarball, nv_data-imei.h is missing from the tarball: $ make dist $ tar tf libsamsung-ipc-0.7.0.tar.xz | grep "ipc-modem.*\.[ch]" libsamsung-ipc-0.7.0/tools/ipc-modem/ipc-modem-sms.c libsamsung-ipc-0.7.0/tools/ipc-modem/ipc-modem-log.c libsamsung-ipc-0.7.0/tools/ipc-modem/ipc-modem.c libsamsung-ipc-0.7.0/tools/ipc-modem/tests/ipc-modem-sms-test.c libsamsung-ipc-0.7.0/tools/ipc-modem/tests/ipc-modem-sms-fuzz.c which then results in a compilation failure: ipc-modem-log.c:28:10: fatal error: ipc-modem-log.h: No such file or directory 28 | #include "ipc-modem-log.h" | ^~~~~~~~~~~~~~~~~ Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* tools: nv_data-imei: autotools: fix missing headerDenis 'GNUtoo' Carikli2022-07-261-1/+1
| | | | | | | | | | | | | | | | | Without that fix, nv_data-imei compiles fine in git, but if we build from a tarball, nv_data-imei.h is missing from the tarball: $ make dist $ tar tf libsamsung-ipc-0.7.0.tar.xz | grep nv_data-imei libsamsung-ipc-0.7.0/tools/nv_data-imei.c which then results in a compilation failure: CC nv_data-imei.o nv_data-imei.c:39:10: fatal error: nv_data-imei.h: No such file or directory 39 | #include "nv_data-imei.h" | ^~~~~~~~~~~~~~~~ compilation terminated. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* scripts: PKGBUILD: use --enable-strict-cflagsDenis 'GNUtoo' Carikli2022-07-261-1/+1
| | | | | | | This should help us catch more issues as the PKGBUILD doesn't necessarily use the same compiler versions than in the guix.scm. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* gprs: ipc_gprs_pdp_context_request_set_setup: fix truncated stringsDenis 'GNUtoo' Carikli2022-07-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without that fix, when compiling libsamsung-ipc with --enable-strict-cflags, we have the following error: gprs.c: In function 'ipc_gprs_pdp_context_request_set_setup': gprs.c:59:17: error: 'strncpy' specified bound 32 equals destination size [-Werror=stringop-truncation] 59 | strncpy((char *) data->username, username, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 60 | sizeof(data->username)); | ~~~~~~~~~~~~~~~~~~~~~~~ gprs.c:61:17: error: 'strncpy' specified bound 32 equals destination size [-Werror=stringop-truncation] 61 | strncpy((char *) data->password, password, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 62 | sizeof(data->password)); | ~~~~~~~~~~~~~~~~~~~~~~~ It comes from the fact that the size of the username and password fields are fixed (to 32) in include/gprs.h: struct ipc_gprs_pdp_context_request_set_data { unsigned char enable; unsigned char cid; unsigned char magic1[4]; unsigned char username[32]; unsigned char password[32]; unsigned char unknown[32]; unsigned char magic2; } __attribute__((__packed__)); The issue is that in ipc_gprs_pdp_context_request_set_setup we had the following code: int ipc_gprs_pdp_context_request_set_setup( struct ipc_gprs_pdp_context_request_set_data *data, unsigned char enable, unsigned char cid, const char *username, const char *password) { [...] strncpy((char *) data->username, username, sizeof(data->username)); strncpy((char *) data->password, password, sizeof(data->password)); [...] return 0; } And in the strcpy(3) manual we have: The strncpy() function is similar, except that at most n bytes of src are copied. Warning: If there is no null byte among the first n bytes of src, the string placed in dest will not be null-terminated. So if we have a username and/or password of 32 or more characters, the copied data will not be null terminated hence the warning. Since username and passwords fields are character array and not strings, and that the field is padded with zeros anyway we can use memcpy instead. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* gprs: ipc_gprs_define_pdp_context_setup: fix truncated stringDenis 'GNUtoo' Carikli2022-07-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without that fix, when compiling libsamsung-ipc with --enable-strict-cflags, we have the following error: gprs.c: In function 'ipc_gprs_define_pdp_context_setup': gprs.c:38:9: error: 'strncpy' specified bound 124 equals destination size [-Werror=stringop-truncation] 38 | strncpy((char *) data->apn, apn, sizeof(data->apn)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It comes from the fact that the size of data->apn is fixed (to 124) in include/gprs.h: struct ipc_gprs_define_pdp_context_data { unsigned char enable; unsigned char cid; unsigned char magic; unsigned char apn[124]; } __attribute__((__packed__)); The issue is that in ipc_gprs_define_pdp_context_setup we had the following code: int ipc_gprs_define_pdp_context_setup( struct ipc_gprs_define_pdp_context_data *data, unsigned char enable, unsigned char cid, const char *apn) { [...] strncpy((char *) data->apn, apn, sizeof(data->apn)); [...] return 0; } And in the strcpy(3) manual we have: The strncpy() function is similar, except that at most n bytes of src are copied. Warning: If there is no null byte among the first n bytes of src, the string placed in dest will not be null-terminated. So if we have an apn of 124 or more characters, the copied data will not be null terminated hence the warning. Since apn is a character array and not a string, and that the field is padded with zeros anyway we can use memcpy instead. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* gitignore: fix Emacs temporary filesDenis 'GNUtoo' Carikli2022-07-261-1/+1
| | | | | | | | | | | | | Without that change, Emacs temporary files appear as untracked files when running git status: Untracked files: (use "git add <file>..." to include in what will be committed) scripts/#guix.scm# This is because a dot('.') will not match "any character" but will instead match for dots in files names. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* Android.mk: fix missing files and build local-modules in guix.scmDenis 'GNUtoo' Carikli2022-07-262-33/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the commit 5f97bb60091a1c4d4335fd02eff2b01e27e7a881 ("tools: ipc-modem: Move log functions in their own file"), we added new files for ipc-modem. That commit was then tested with scripts/guix.scm, which at the time didn't build ipc-modem, so the issue slipped through the automatic tests. So in addition of adding back these missing files in Android.mk, this commit also makes guix.scm actually build all the local modules. This was not done before as it required some extensive work. That work consisted in adding code to retrieve the LOCAL_MODULEs from the Android.mk, and passing that to the package build and install procedures (which had to be converted into Guix's G-Expressions (gexp)[1] to be able to more cleanly get that data). In addition, making contributions to android-make-stub was needed as well. Having some of the parsing done in the guix.scm file instead of android-make-stub is needed because otherwise the android-make-stub design would probably need to be redone: android-make-stub consists of some Makefiles that are passed to make via -f, and that in turn these Makefiles include the Android.mk in the local directory. This doesn't make it possible to handle dependencies cleanly, as to do that, the Android.mk would need to first be parsed through another mean to understand the dependencies tree, and then to build the local modules in order. And that would need to be done in some compatible way not to break existing users of android-make-stub (like Guix that builds some Android packages with it). [1]https://guix.gnu.org/en/manual/devel/en/guix.html#G_002dExpressions Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* configure.ac: Add an option to use scripts/guix.scm's strict CFLAGSDenis 'GNUtoo' Carikli2022-07-228-16/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CFLAGS that are in the %common-strict-cflags in scripts/guix.scm have been validated with both GCC and CLANG and they are useful to find potential issues in the code or code that won't compile on Android. However while the scripts/guix.scm script is really useful to test commits once they are ready, it is less convenient to use it when fixing issues in commits that are still being worked on. This is because it is not as fast as building libsamsung-ipc directly because: - it requires a clean source directory to work (this can be done with make distclean) so we can't reuse the current build output - libsamsung-ipc source code is copied and built 5 times (in different configurations) As for the implementation, AM_CFLAGS was used instead of appending to the default CFLAGS as CFLAGS is meant to be a variable for users. The effect is that both are independent, so if users don't want strict CFLAGS, they would need to not use --enable-strict-cflags. And it was implemented as a shell script to at the same time: - Enable to have comments, and good formating of the flags. - Enable to share the cflags between guix.scm and the autotools. - Keep the complexity low to keep it working in most situations. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* modems: xmm626: xmm626_kernel_smdk4412_fmt_recv: order headers alphabeticallyDenis 'GNUtoo' Carikli2022-06-261-3/+5
| | | | | | This helps avoiding including twice the same header by accident. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* ipc-modem: fix duplicated codeDenis 'GNUtoo' Carikli2022-06-261-5/+2
| | | | | | | | | | | If the following fails: data.client = ipc_client_create(IPC_CLIENT_TYPE_DUMMY); then we cannot use ipc_modem_log, but we can use printf instead. This bug was introduced in commit aa738074f34c ("tools: ipc-modem: convert to sysexits.h"). Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* tools: nv_data-imei: Fix unused result warningDenis 'GNUtoo' Carikli2022-06-261-1/+5
| | | | | | | | | | | | | | | Without that fix, when running the following commands: $ cd tools $ makepkg we have: ../../../tools/nv_data-imei.c: In function ‘write_imei’: ../../../tools/nv_data-imei.c:769:9: warning: ignoring return value of ‘asprintf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 769 | asprintf(&md5_path, "%s.md5", nv_data_path); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
* xmm626_kernel_smdk4412_gprs_get_iface: handle asprintf errorsDenis 'GNUtoo' Carikli2022-06-261-1/+7
| | | | | | | | | | | | | | | Without that fix we have the following warning: CC modems/xmm626/xmm626_kernel_smdk4412.lo ../../../samsung-ipc/modems/xmm626/xmm626_kernel_smdk4412.c: In function 'xmm626_kernel_smdk4412_gprs_get_iface': ../../../samsung-ipc/modems/xmm626/xmm626_kernel_smdk4412.c:589:9: warning: ignoring return value of 'asprintf' declared with attribute 'warn_unused_result' [-Wunused-result] 589 | asprintf(&iface, "%s%d", XMM626_[...]_IFACE_PREFIX, cid - 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC modems/xmm626/xmm626_mipi.lo Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>