diff -Nru libmbim-1.14.2/aclocal.m4 libmbim-1.18.0/aclocal.m4 --- libmbim-1.14.2/aclocal.m4 2017-08-08 13:43:24.000000000 +0200 +++ libmbim-1.18.0/aclocal.m4 2019-01-08 13:52:17.000000000 +0100 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -21,7 +21,7 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 12 (pkg-config-0.29.2) +# serial 11 (pkg-config-0.29.1) dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson @@ -63,7 +63,7 @@ dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29.2]) +[m4_define([PKG_MACROS_VERSION], [0.29.1]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ @@ -164,7 +164,7 @@ AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no -AC_MSG_CHECKING([for $2]) +AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) @@ -174,11 +174,11 @@ See the pkg-config man page for more details.]) if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else + else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs @@ -195,7 +195,7 @@ _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full @@ -296,7 +296,75 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR -# Copyright (C) 2002-2014 Free Software Foundation, Inc. +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN([PKG_WITH_MODULES], +[ +m4_pushdef([with_arg], m4_tolower([$1])) + +m4_pushdef([description], + [m4_default([$5], [build with ]with_arg[ support])]) + +m4_pushdef([def_arg], [m4_default([$6], [auto])]) +m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) +m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) + +m4_case(def_arg, + [yes],[m4_pushdef([with_without], [--without-]with_arg)], + [m4_pushdef([with_without],[--with-]with_arg)]) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, + [AS_TR_SH([with_]with_arg)=def_arg]) + +AS_CASE([$AS_TR_SH([with_]with_arg)], + [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], + [auto],[PKG_CHECK_MODULES([$1],[$2], + [m4_n([def_action_if_found]) $3], + [m4_n([def_action_if_not_found]) $4])]) + +m4_popdef([with_arg]) +m4_popdef([description]) +m4_popdef([def_arg]) + +])dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._[VARIABLE-PREFIX] is exported as make variable. +AC_DEFUN([PKG_HAVE_WITH_MODULES], +[ +PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) + +AM_CONDITIONAL([HAVE_][$1], + [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) +])dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make +dnl and preprocessor variable. +AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +[ +PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + +AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], + [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) +])dnl PKG_HAVE_DEFINE_WITH_MODULES + +# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -308,10 +376,10 @@ # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' +[am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15], [], +m4_if([$1], [1.16.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -327,14 +395,14 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15])dnl +[AM_AUTOMAKE_VERSION([1.16.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -386,7 +454,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -417,7 +485,7 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -608,13 +676,12 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. - # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], @@ -622,49 +689,41 @@ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -673,18 +732,17 @@ # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -771,8 +829,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. @@ -839,7 +897,7 @@ Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -881,7 +939,7 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -902,7 +960,7 @@ fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2014 Free Software Foundation, Inc. +# Copyright (C) 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -924,7 +982,7 @@ # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -959,7 +1017,7 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -967,49 +1025,42 @@ # AM_MAKE_INCLUDE() # ----------------- -# Check to see how make treats includes. +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1048,7 +1099,7 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1077,7 +1128,7 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1124,7 +1175,245 @@ # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# --------------------------------------------------------------------------- +# Adds support for distributing Python modules and packages. To +# install modules, copy them to $(pythondir), using the python_PYTHON +# automake variable. To install a package with the same name as the +# automake package, install to $(pkgpythondir), or use the +# pkgpython_PYTHON automake variable. +# +# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as +# locations to install python extension modules (shared libraries). +# Another macro is required to find the appropriate flags to compile +# extension modules. +# +# If your package is configured with a different prefix to python, +# users will have to add the install directory to the PYTHONPATH +# environment variable, or create a .pth file (see the python +# documentation for details). +# +# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will +# cause an error if the version of python installed on the system +# doesn't meet the requirement. MINIMUM-VERSION should consist of +# numbers and dots only. +AC_DEFUN([AM_PATH_PYTHON], + [ + dnl Find a Python interpreter. Python versions prior to 2.0 are not + dnl supported. (2.0 was released on October 16, 2000). + m4_define_default([_AM_PYTHON_INTERPRETER_LIST], +[python python2 python3 dnl + python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 dnl + python3.2 python3.1 python3.0 dnl + python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 dnl + python2.0]) + + AC_ARG_VAR([PYTHON], [the Python interpreter]) + + m4_if([$1],[],[ + dnl No version check is needed. + # Find any Python interpreter. + if test -z "$PYTHON"; then + AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) + fi + am_display_PYTHON=python + ], [ + dnl A version check is needed. + if test -n "$PYTHON"; then + # If the user set $PYTHON, use it and don't search something else. + AC_MSG_CHECKING([whether $PYTHON version is >= $1]) + AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([Python interpreter is too old])]) + am_display_PYTHON=$PYTHON + else + # Otherwise, try each interpreter until we find one that satisfies + # VERSION. + AC_CACHE_CHECK([for a Python interpreter with version >= $1], + [am_cv_pathless_PYTHON],[ + for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do + test "$am_cv_pathless_PYTHON" = none && break + AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) + done]) + # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. + if test "$am_cv_pathless_PYTHON" = none; then + PYTHON=: + else + AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) + fi + am_display_PYTHON=$am_cv_pathless_PYTHON + fi + ]) + + if test "$PYTHON" = :; then + dnl Run any user-specified action, or abort. + m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) + else + + dnl Query Python for its version number. Getting [:3] seems to be + dnl the best way to do this; it's what "site.py" does in the standard + dnl library. + + AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], + [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) + AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) + + dnl Use the values of $prefix and $exec_prefix for the corresponding + dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made + dnl distinct variables so they can be overridden if need be. However, + dnl general consensus is that you shouldn't need this ability. + + AC_SUBST([PYTHON_PREFIX], ['${prefix}']) + AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) + + dnl At times (like when building shared libraries) you may want + dnl to know which OS platform Python thinks this is. + + AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], + [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) + AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) + + # Just factor out some code duplication. + am_python_setup_sysconfig="\ +import sys +# Prefer sysconfig over distutils.sysconfig, for better compatibility +# with python 3.x. See automake bug#10227. +try: + import sysconfig +except ImportError: + can_use_sysconfig = 0 +else: + can_use_sysconfig = 1 +# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: +# +try: + from platform import python_implementation + if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7': + can_use_sysconfig = 0 +except ImportError: + pass" + + dnl Set up 4 directories: + + dnl pythondir -- where to install python scripts. This is the + dnl site-packages directory, not the python standard library + dnl directory like in previous automake betas. This behavior + dnl is more consistent with lispdir.m4 for example. + dnl Query distutils for this directory. + AC_CACHE_CHECK([for $am_display_PYTHON script directory], + [am_cv_python_pythondir], + [if test "x$prefix" = xNONE + then + am_py_prefix=$ac_default_prefix + else + am_py_prefix=$prefix + fi + am_cv_python_pythondir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pythondir in + $am_py_prefix*) + am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` + am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` + ;; + *) + case $am_py_prefix in + /usr|/System*) ;; + *) + am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + ]) + AC_SUBST([pythondir], [$am_cv_python_pythondir]) + + dnl pkgpythondir -- $PACKAGE directory under pythondir. Was + dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is + dnl more consistent with the rest of automake. + + AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) + + dnl pyexecdir -- directory for installing python extension modules + dnl (shared libraries) + dnl Query distutils for this directory. + AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], + [am_cv_python_pyexecdir], + [if test "x$exec_prefix" = xNONE + then + am_py_exec_prefix=$am_py_prefix + else + am_py_exec_prefix=$exec_prefix + fi + am_cv_python_pyexecdir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pyexecdir in + $am_py_exec_prefix*) + am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` + am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` + ;; + *) + case $am_py_exec_prefix in + /usr|/System*) ;; + *) + am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + ]) + AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) + + dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) + + AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) + + dnl Run any user-specified action. + $2 + fi + +]) + + +# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +# --------------------------------------------------------------------------- +# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. +# Run ACTION-IF-FALSE otherwise. +# This test uses sys.hexversion instead of the string equivalent (first +# word of sys.version), in order to cope with versions such as 2.2c1. +# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). +AC_DEFUN([AM_PYTHON_CHECK_VERSION], + [prog="import sys +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +# map returns an iterator in Python 3.0 and a list in 2.x +minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] +minverhex = 0 +# xrange is not present in Python 3.0 and range returns an iterator +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] +sys.exit(sys.hexversion < minverhex)" + AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) + +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1143,7 +1432,7 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1224,7 +1513,7 @@ rm -f conftest.file ]) -# Copyright (C) 2009-2014 Free Software Foundation, Inc. +# Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1284,7 +1573,7 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1312,7 +1601,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# Copyright (C) 2006-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1331,7 +1620,7 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2014 Free Software Foundation, Inc. +# Copyright (C) 2004-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff -Nru libmbim-1.14.2/AUTHORS libmbim-1.18.0/AUTHORS --- libmbim-1.14.2/AUTHORS 2017-08-08 12:17:09.000000000 +0200 +++ libmbim-1.18.0/AUTHORS 2018-03-20 21:33:15.000000000 +0100 @@ -7,11 +7,18 @@ Greg Suarez Bjørn Mork Roshan Pius + Emil Ljungdahl Prathmesh Prabhu - Yunlian Jiang Shawn J. Goff - Scott Lee - Raju - Marius B. Kotsbak - Boris Egorov Arnaud Desmier + Boris Egorov + Carlo Lobrano + Collin McMillan + David Ward + Jaroslav Stepanek + Marius B. Kotsbak + Philip Withnall + Raju + Scott Lee + Shih-Yuan Lee (FourDollars) + Yunlian Jiang \ No newline at end of file diff -Nru libmbim-1.14.2/build-aux/Makefile.in libmbim-1.18.0/build-aux/Makefile.in --- libmbim-1.14.2/build-aux/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/build-aux/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -135,7 +135,7 @@ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -243,6 +243,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -269,6 +271,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -317,9 +324,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -349,8 +360,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -467,7 +478,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libmbim-1.14.2/build-aux/mbim-codegen/Makefile.in libmbim-1.18.0/build-aux/mbim-codegen/Makefile.in --- libmbim-1.14.2/build-aux/mbim-codegen/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/build-aux/mbim-codegen/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -183,6 +183,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -209,6 +211,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -257,9 +264,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -296,8 +307,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -321,7 +332,10 @@ cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libmbim-1.14.2/build-aux/mbim-codegen/mbim-codegen libmbim-1.18.0/build-aux/mbim-codegen/mbim-codegen --- libmbim-1.14.2/build-aux/mbim-codegen/mbim-codegen 2015-01-21 00:25:49.000000000 +0100 +++ libmbim-1.18.0/build-aux/mbim-codegen/mbim-codegen 2019-01-08 13:16:16.000000000 +0100 @@ -15,7 +15,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., 51 # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # -# Copyright (C) 2013 Aleksander Morgado +# Copyright (C) 2013-2018 Aleksander Morgado # import os @@ -61,6 +61,9 @@ # Emit the message creation/parsing code object_list.emit(output_file_h, output_file_c) + # Emit the message printable support + object_list.emit_printable(output_file_h, output_file_c) + # Emit sections object_list.emit_sections(output_file_sections) diff -Nru libmbim-1.14.2/build-aux/mbim-codegen/Message.py libmbim-1.18.0/build-aux/mbim-codegen/Message.py --- libmbim-1.14.2/build-aux/mbim-codegen/Message.py 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/build-aux/mbim-codegen/Message.py 2019-01-08 13:16:16.000000000 +0100 @@ -1,4 +1,3 @@ -#!/usr/bin/env python # -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- # # This program is free software; you can redistribute it and/or modify it under @@ -15,7 +14,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., 51 # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # -# Copyright (C) 2013 - 2014 Aleksander Morgado +# Copyright (C) 2013 - 2018 Aleksander Morgado # import string @@ -62,8 +61,6 @@ flag_always_read_field(fields, field['array-size-field']) elif field['format'] == 'guint64': pass - elif field['format'] == 'guint64-array': - flag_always_read_field(fields, field['array-size-field']) elif field['format'] == 'string': pass elif field['format'] == 'string-array': @@ -170,21 +167,25 @@ utils.add_separator(hfile, 'Message (Query)', self.fullname); utils.add_separator(cfile, 'Message (Query)', self.fullname); self._emit_message_creator(hfile, cfile, 'query', self.query) + self._emit_message_printable(cfile, 'query', self.query) if self.has_set: utils.add_separator(hfile, 'Message (Set)', self.fullname); utils.add_separator(cfile, 'Message (Set)', self.fullname); self._emit_message_creator(hfile, cfile, 'set', self.set) + self._emit_message_printable(cfile, 'set', self.set) if self.has_response: utils.add_separator(hfile, 'Message (Response)', self.fullname); utils.add_separator(cfile, 'Message (Response)', self.fullname); self._emit_message_parser(hfile, cfile, 'response', self.response) + self._emit_message_printable(cfile, 'response', self.response) if self.has_notification: utils.add_separator(hfile, 'Message (Notification)', self.fullname); utils.add_separator(cfile, 'Message (Notification)', self.fullname); self._emit_message_parser(hfile, cfile, 'notification', self.notification) + self._emit_message_printable(cfile, 'notification', self.notification) """ @@ -218,12 +219,8 @@ inner_template = (' const MbimUuid *${field},\n') elif field['format'] == 'guint32': inner_template = (' ${public} ${field},\n') - elif field['format'] == 'guint32-array': - inner_template = (' const ${public} *${field},\n') elif field['format'] == 'guint64': inner_template = (' ${public} ${field},\n') - elif field['format'] == 'guint64-array': - inner_template = (' const ${public} *${field},\n') elif field['format'] == 'string': inner_template = (' const gchar *${field},\n') elif field['format'] == 'string-array': @@ -276,12 +273,8 @@ inner_template = (' * @${field}: the \'${name}\' field, given as a #MbimUuid.\n') elif field['format'] == 'guint32': inner_template = (' * @${field}: the \'${name}\' field, given as a #${public}.\n') - elif field['format'] == 'guint32-array': - inner_template = (' * @${field}: the \'${name}\' field, given as an array of #${public}.\n') elif field['format'] == 'guint64': inner_template = (' * @${field}: the \'${name}\' field, given as a #${public}.\n') - elif field['format'] == 'guint64-array': - inner_template = (' * @${field}: the \'${name}\' field, given as an array of #${public}.\n') elif field['format'] == 'string': inner_template = (' * @${field}: the \'${name}\' field, given as a string.\n') elif field['format'] == 'string-array': @@ -334,12 +327,8 @@ inner_template = (' const MbimUuid *${field},\n') elif field['format'] == 'guint32': inner_template = (' ${public} ${field},\n') - elif field['format'] == 'guint32-array': - inner_template = (' const ${public} *${field},\n') elif field['format'] == 'guint64': inner_template = (' ${public} ${field},\n') - elif field['format'] == 'guint64-array': - inner_template = (' const ${public} *${field},\n') elif field['format'] == 'string': inner_template = (' const gchar *${field},\n') elif field['format'] == 'string-array': @@ -406,8 +395,6 @@ inner_template += (' _mbim_message_command_builder_append_uuid (builder, ${field});\n') elif field['format'] == 'guint32': inner_template += (' _mbim_message_command_builder_append_guint32 (builder, ${field});\n') - elif field['format'] == 'guint32-array': - inner_template += (' _mbim_message_command_builder_append_guint32_array (builder, ${field}, ${array_size_field});\n') elif field['format'] == 'guint64': inner_template += (' _mbim_message_command_builder_append_guint64 (builder, ${field});\n') elif field['format'] == 'string': @@ -450,7 +437,7 @@ Emit message parser """ def _emit_message_parser(self, hfile, cfile, message_type, fields): - translations = { 'name' : self.name, + translations = { 'message' : self.name, 'service' : self.service, 'underscore' : utils.build_underscore_name (self.fullname), 'message_type' : message_type, @@ -475,12 +462,8 @@ inner_template = (' const MbimUuid **${field},\n') elif field['format'] == 'guint32': inner_template = (' ${public} *${field},\n') - elif field['format'] == 'guint32-array': - inner_template = (' ${public} **${field},\n') elif field['format'] == 'guint64': inner_template = (' ${public} *${field},\n') - elif field['format'] == 'guint64-array': - inner_template = (' ${public} **${field},\n') elif field['format'] == 'string': inner_template = (' gchar **${field},\n') elif field['format'] == 'string-array': @@ -535,12 +518,8 @@ inner_template = (' * @${field}: return location for a #MbimUuid, or %NULL if the \'${name}\' field is not needed. Do not free the returned value, it is owned by @message.\n') elif field['format'] == 'guint32': inner_template = (' * @${field}: return location for a #${public}, or %NULL if the \'${name}\' field is not needed.\n') - elif field['format'] == 'guint32-array': - inner_template = (' * @${field}: return location for a newly allocated array of #${public}s, or %NULL if the \'${name}\' field is not needed. Free the returned value with g_free().\n') elif field['format'] == 'guint64': inner_template = (' * @${field}: return location for a #guint64, or %NULL if the \'${name}\' field is not needed.\n') - elif field['format'] == 'guint64-array': - inner_template = (' * @${field}: return location for a newly allocated array of #guint64s, or %NULL if the \'${name}\' field is not needed. Free the returned value with g_free().\n') elif field['format'] == 'string': inner_template = (' * @${field}: return location for a newly allocated string, or %NULL if the \'${name}\' field is not needed. Free the returned value with g_free().\n') elif field['format'] == 'string-array': @@ -569,7 +548,7 @@ template += ( ' * @error: return location for error or %NULL.\n' ' *\n' - ' * Create a new request for the \'${name}\' ${message_type} command in the \'${service}\' service.\n' + ' * Parses and returns parameters of the \'${message}\' ${message_type} command in the \'${service}\' service.\n' ' *\n' ' * Returns: %TRUE if the message was correctly parsed, %FALSE if @error is set.\n' ' */\n' @@ -591,12 +570,8 @@ inner_template = (' const MbimUuid **${field},\n') elif field['format'] == 'guint32': inner_template = (' ${public} *${field},\n') - elif field['format'] == 'guint32-array': - inner_template = (' ${public} **${field},\n') elif field['format'] == 'guint64': inner_template = (' ${public} *${field},\n') - elif field['format'] == 'guint64-array': - inner_template = (' ${public} **${field},\n') elif field['format'] == 'string': inner_template = (' gchar **${field},\n') elif field['format'] == 'string-array': @@ -689,8 +664,7 @@ ' *${field}_size = 0;\n' ' if (${field})\n' ' *${field} = NULL;\n') - elif field['format'] == 'guint32-array' or \ - field['format'] == 'string' or \ + elif field['format'] == 'string' or \ field['format'] == 'string-array' or \ field['format'] == 'struct' or \ field['format'] == 'struct-array' or \ @@ -759,11 +733,6 @@ ' if (${field} != NULL)\n' ' *${field} = _mbim_message_read_guint32 (message, offset);\n' ' offset += 4;\n') - elif field['format'] == 'guint32-array': - inner_template += ( - ' if (${field} != NULL)\n' - ' *${field} = _mbim_message_read_guint32_array (message, _{array_size_field}, offset);\n' - ' offset += (4 * _${array_size_field});\n') elif field['format'] == 'guint64': inner_template += ( ' if (${field} != NULL)\n' @@ -819,7 +788,7 @@ inner_template += ( ' if (${field} != NULL)\n' ' *${field} = _mbim_message_read_ipv6 (message, offset, FALSE);\n' - ' offset += 4;\n') + ' offset += 16;\n') elif field['format'] == 'ref-ipv6': inner_template += ( ' if (${field} != NULL)\n' @@ -842,6 +811,349 @@ '}\n') cfile.write(string.Template(template).substitute(translations)) + + """ + Emit message printable + """ + def _emit_message_printable(self, cfile, message_type, fields): + translations = { 'message' : self.name, + 'underscore' : utils.build_underscore_name(self.name), + 'service' : self.service, + 'underscore' : utils.build_underscore_name (self.fullname), + 'message_type' : message_type, + 'message_type_upper' : message_type.upper(), + 'service_underscore_upper' : utils.build_underscore_name (self.service).upper() } + template = ( + '\n' + 'static gchar *\n' + '${underscore}_${message_type}_get_printable (\n' + ' const MbimMessage *message,\n' + ' const gchar *line_prefix,\n' + ' GError **error)\n' + '{\n' + ' GString *str;\n') + + if fields != []: + template += ( + ' guint32 offset = 0;\n') + + for field in fields: + if 'always-read' in field: + translations['field'] = utils.build_underscore_name_from_camelcase(field['name']) + inner_template = (' guint32 _${field};\n') + template += (string.Template(inner_template).substitute(translations)) + + if message_type == 'response': + template += ( + '\n' + ' if (!mbim_message_response_get_result (message, MBIM_MESSAGE_TYPE_COMMAND_DONE, NULL))\n' + ' return NULL;\n') + + template += ( + '\n' + ' str = g_string_new ("");\n') + + for field in fields: + translations['field'] = utils.build_underscore_name_from_camelcase(field['name']) + translations['field_format'] = field['format'] + translations['field_format_underscore'] = utils.build_underscore_name_from_camelcase(field['format']) + translations['public'] = field['public-format'] if 'public-format' in field else field['format'] + translations['public_underscore'] = utils.build_underscore_name_from_camelcase(field['public-format']) if 'public-format' in field else '' + translations['public_underscore_upper'] = utils.build_underscore_name_from_camelcase(field['public-format']).upper() if 'public-format' in field else '' + translations['field_name'] = field['name'] + translations['array_size_field'] = utils.build_underscore_name_from_camelcase(field['array-size-field']) if 'array-size-field' in field else '' + translations['struct_name'] = utils.build_underscore_name_from_camelcase(field['struct-type']) if 'struct-type' in field else '' + translations['struct_type'] = field['struct-type'] if 'struct-type' in field else '' + translations['array_size'] = field['array-size'] if 'array-size' in field else '' + + inner_template = ( + '\n' + ' g_string_append_printf (str, "%s ${field_name} = ", line_prefix);\n') + + if 'available-if' in field: + condition = field['available-if'] + translations['condition_field'] = utils.build_underscore_name_from_camelcase(condition['field']) + translations['condition_operation'] = condition['operation'] + translations['condition_value'] = condition['value'] + inner_template += ( + ' if (_${condition_field} ${condition_operation} ${condition_value}) {\n') + else: + inner_template += ( + ' {\n') + + if 'always-read' in field: + inner_template += ( + ' _${field} = _mbim_message_read_guint32 (message, offset);\n' + ' offset += 4;\n' + ' g_string_append_printf (str, "\'%" G_GUINT32_FORMAT "\'", _${field});\n') + + elif field['format'] == 'byte-array' or \ + field['format'] == 'unsized-byte-array' or \ + field['format'] == 'ref-byte-array' or \ + field['format'] == 'ref-byte-array-no-offset': + inner_template += ( + ' guint i;\n' + ' const guint8 *tmp;\n' + ' guint32 tmpsize;\n' + '\n') + if field['format'] == 'byte-array': + inner_template += ( + ' tmp = _mbim_message_read_byte_array (message, 0, offset, FALSE, FALSE, NULL);\n' + ' tmpsize = ${array_size};\n' + ' offset += ${array_size};\n') + elif field['format'] == 'unsized-byte-array': + inner_template += ( + ' tmp = _mbim_message_read_byte_array (message, 0, offset, FALSE, FALSE, &tmpsize);\n' + ' offset += tmpsize;\n') + + elif field['format'] == 'ref-byte-array': + inner_template += ( + ' tmp = _mbim_message_read_byte_array (message, 0, offset, TRUE, TRUE, &tmpsize);\n' + ' offset += 8;\n') + + elif field['format'] == 'ref-byte-array-no-offset': + inner_template += ( + ' tmp = _mbim_message_read_byte_array (message, 0, offset, FALSE, TRUE, &tmpsize);\n' + ' offset += 4;\n') + + inner_template += ( + ' g_string_append (str, "\'");\n' + ' for (i = 0; i < tmpsize; i++)\n' + ' g_string_append_printf (str, "%02x%s", tmp[i], (i == (tmpsize - 1)) ? "" : ":" );\n' + ' g_string_append (str, "\'");\n') + + elif field['format'] == 'uuid': + inner_template += ( + ' const MbimUuid *tmp;\n' + ' gchar *tmpstr;\n' + '\n' + ' tmp = _mbim_message_read_uuid (message, offset);\n' + ' offset += 16;\n' + ' tmpstr = mbim_uuid_get_printable (tmp);\n' + ' g_string_append_printf (str, "\'%s\'", tmpstr);\n' + ' g_free (tmpstr);\n') + + elif field['format'] == 'guint32' or \ + field['format'] == 'guint64': + inner_template += ( + ' ${public} tmp;\n' + '\n') + if field['format'] == 'guint32' : + inner_template += ( + ' tmp = (${public}) _mbim_message_read_guint32 (message, offset);\n' + ' offset += 4;\n') + elif field['format'] == 'guint64' : + inner_template += ( + ' tmp = (${public}) _mbim_message_read_guint64 (message, offset);\n' + ' offset += 8;\n') + + if 'public-format' in field: + inner_template += ( + '#if defined __${public_underscore_upper}_IS_ENUM__\n' + ' g_string_append_printf (str, "\'%s\'", ${public_underscore}_get_string (tmp));\n' + '#elif defined __${public_underscore_upper}_IS_FLAGS__\n' + ' {\n' + ' gchar *tmpstr;\n' + '\n' + ' tmpstr = ${public_underscore}_build_string_from_mask (tmp);\n' + ' g_string_append_printf (str, "\'%s\'", tmpstr);\n' + ' g_free (tmpstr);\n' + ' }\n' + '#else\n' + '# error neither enum nor flags\n' + '#endif\n' + '\n') + elif field['format'] == 'guint32': + inner_template += ( + ' g_string_append_printf (str, "\'%" G_GUINT32_FORMAT "\'", tmp);\n') + elif field['format'] == 'guint64': + inner_template += ( + ' g_string_append_printf (str, "\'%" G_GUINT64_FORMAT "\'", tmp);\n') + + elif field['format'] == 'string': + inner_template += ( + ' gchar *tmp;\n' + '\n' + ' tmp = _mbim_message_read_string (message, 0, offset);\n' + ' offset += 8;\n' + ' g_string_append_printf (str, "\'%s\'", tmp);\n' + ' g_free (tmp);\n') + + elif field['format'] == 'string-array': + inner_template += ( + ' gchar **tmp;\n' + ' guint i;\n' + '\n' + ' tmp = _mbim_message_read_string_array (message, _${array_size_field}, 0, offset);\n' + ' offset += (8 * _${array_size_field});\n' + '\n' + ' g_string_append (str, "\'");\n' + ' for (i = 0; i < _${array_size_field}; i++) {\n' + ' g_string_append (str, tmp[i]);\n' + ' if (i < (_${array_size_field} - 1))\n' + ' g_string_append (str, ", ");\n' + ' }\n' + ' g_string_append (str, "\'");\n' + ' g_strfreev (tmp);\n') + + elif field['format'] == 'struct': + inner_template += ( + ' ${struct_type} *tmp;\n' + ' guint32 bytes_read = 0;\n' + ' gchar *new_line_prefix;\n' + ' gchar *struct_str;\n' + '\n' + ' tmp = _mbim_message_read_${struct_name}_struct (message, offset, &bytes_read);\n' + ' offset += bytes_read;\n' + '\n' + ' g_string_append (str, "{\\n");\n' + ' new_line_prefix = g_strdup_printf ("%s ", line_prefix);\n' + ' struct_str = _mbim_message_print_${struct_name}_struct (tmp, new_line_prefix);\n' + ' g_string_append (str, struct_str);\n' + ' g_free (struct_str);\n' + ' g_string_append_printf (str, "%s }\\n", line_prefix);\n' + ' g_free (new_line_prefix);\n' + ' _${struct_name}_free (tmp);\n') + + elif field['format'] == 'struct-array' or field['format'] == 'ref-struct-array': + inner_template += ( + ' ${struct_type} **tmp;\n' + ' gchar *new_line_prefix;\n' + ' guint i;\n' + '\n') + + if field['format'] == 'struct-array': + inner_template += ( + ' tmp = _mbim_message_read_${struct_name}_struct_array (message, _${array_size_field}, offset, FALSE);\n' + ' offset += 4;\n') + elif field['format'] == 'ref-struct-array': + inner_template += ( + ' tmp = _mbim_message_read_${struct_name}_struct_array (message, _${array_size_field}, offset, TRUE);\n' + ' offset += (8 * _${array_size_field});\n') + + inner_template += ( + ' new_line_prefix = g_strdup_printf ("%s ", line_prefix);\n' + ' g_string_append (str, "\'{\\n");\n' + ' for (i = 0; i < _${array_size_field}; i++) {\n' + ' gchar *struct_str;\n' + '\n' + ' g_string_append_printf (str, "%s [%u] = {\\n", line_prefix, i);\n' + ' struct_str = _mbim_message_print_${struct_name}_struct (tmp[i], new_line_prefix);\n' + ' g_string_append (str, struct_str);\n' + ' g_free (struct_str);\n' + ' g_string_append_printf (str, "%s },\\n", line_prefix);\n' + ' }\n' + ' g_string_append_printf (str, "%s }\'", line_prefix);\n' + ' g_free (new_line_prefix);\n' + ' ${struct_name}_array_free (tmp);\n') + + elif field['format'] == 'ipv4' or \ + field['format'] == 'ref-ipv4' or \ + field['format'] == 'ipv4-array' or \ + field['format'] == 'ipv6' or \ + field['format'] == 'ref-ipv6' or \ + field['format'] == 'ipv6-array': + if field['format'] == 'ipv4' or \ + field['format'] == 'ref-ipv4': + inner_template += ( + ' const MbimIPv4 *tmp;\n') + elif field['format'] == 'ipv4-array': + inner_template += ( + ' MbimIPv4 *tmp;\n') + elif field['format'] == 'ipv6' or \ + field['format'] == 'ref-ipv6': + inner_template += ( + ' const MbimIPv6 *tmp;\n') + elif field['format'] == 'ipv6-array': + inner_template += ( + ' MbimIPv6 *tmp;\n') + + inner_template += ( + ' guint array_size;\n' + ' guint i;\n' + '\n') + + if field['format'] == 'ipv4': + inner_template += ( + ' array_size = 1;\n' + ' tmp = _mbim_message_read_ipv4 (message, offset, FALSE);\n' + ' offset += 4;\n') + elif field['format'] == 'ref-ipv4': + inner_template += ( + ' array_size = 1;\n' + ' tmp = _mbim_message_read_ipv4 (message, offset, TRUE);\n' + ' offset += 4;\n') + elif field['format'] == 'ipv4-array': + inner_template += ( + ' array_size = _${array_size_field};\n' + ' tmp = _mbim_message_read_ipv4_array (message, _${array_size_field}, offset);\n' + ' offset += 4;\n') + elif field['format'] == 'ipv6': + inner_template += ( + ' array_size = 1;\n' + ' tmp = _mbim_message_read_ipv6 (message, offset, FALSE);\n' + ' offset += 16;\n') + elif field['format'] == 'ref-ipv6': + inner_template += ( + ' array_size = 1;\n' + ' tmp = _mbim_message_read_ipv6 (message, offset, TRUE);\n' + ' offset += 4;\n') + elif field['format'] == 'ipv6-array': + inner_template += ( + ' array_size = _${array_size_field};\n' + ' tmp = _mbim_message_read_ipv6_array (message, _${array_size_field}, offset);\n' + ' offset += 4;\n') + + inner_template += ( + ' g_string_append (str, "\'");\n' + ' if (tmp) {\n' + ' for (i = 0; i < array_size; i++) {\n' + ' GInetAddress *addr;\n' + ' gchar *tmpstr;\n' + '\n') + + if field['format'] == 'ipv4' or \ + field['format'] == 'ref-ipv4' or \ + field['format'] == 'ipv4-array': + inner_template += ( + ' addr = g_inet_address_new_from_bytes ((guint8 *)&(tmp[i].addr), G_SOCKET_FAMILY_IPV4);\n') + elif field['format'] == 'ipv6' or \ + field['format'] == 'ref-ipv6' or \ + field['format'] == 'ipv6-array': + inner_template += ( + ' addr = g_inet_address_new_from_bytes ((guint8 *)&(tmp[i].addr), G_SOCKET_FAMILY_IPV6);\n') + + inner_template += ( + ' tmpstr = g_inet_address_to_string (addr);\n' + ' g_string_append_printf (str, "%s", tmpstr);\n' + ' g_free (tmpstr);\n' + ' g_object_unref (addr);\n' + ' if (i < (array_size - 1))\n' + ' g_string_append (str, ", ");\n' + ' }\n' + ' }\n' + ' g_string_append (str, "\'");\n') + + if field['format'] == 'ipv4-array' or \ + field['format'] == 'ipv6-array': + inner_template += ( + ' g_free (tmp);\n') + + else: + raise ValueError('Field format \'%s\' not printable' % field['format']) + + inner_template += ( + ' }\n' + ' g_string_append (str, "\\n");\n') + + template += (string.Template(inner_template).substitute(translations)) + + template += ( + '\n' + ' return g_string_free (str, FALSE);\n' + '}\n') + cfile.write(string.Template(template).substitute(translations)) + """ Emit the section content diff -Nru libmbim-1.14.2/build-aux/mbim-codegen/ObjectList.py libmbim-1.18.0/build-aux/mbim-codegen/ObjectList.py --- libmbim-1.14.2/build-aux/mbim-codegen/ObjectList.py 2015-01-21 00:25:49.000000000 +0100 +++ libmbim-1.18.0/build-aux/mbim-codegen/ObjectList.py 2019-01-08 13:16:16.000000000 +0100 @@ -1,4 +1,3 @@ -#!/usr/bin/env python # -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- # # This program is free software; you can redistribute it and/or modify it under @@ -15,7 +14,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., 51 # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # -# Copyright (C) 2013 - 2014 Aleksander Morgado +# Copyright (C) 2013 - 2018 Aleksander Morgado # import string @@ -89,6 +88,132 @@ """ + Emit support for printing messages in this service + """ + def emit_printable(self, hfile, cfile): + translations = { 'service_underscore' : utils.build_underscore_name(self.service), + 'service' : self.service } + + + template = ( + '\n' + '/*****************************************************************************/\n' + '/* Service helper for printable fields */\n' + '\n' + '#if defined (LIBMBIM_GLIB_COMPILATION)\n' + '\n' + 'G_GNUC_INTERNAL\n' + 'gchar *\n' + '__mbim_message_${service_underscore}_get_printable_fields (\n' + ' const MbimMessage *message,\n' + ' const gchar *line_prefix,\n' + ' GError **error);\n' + '\n' + '#endif\n') + hfile.write(string.Template(template).substitute(translations)) + + template = ( + '\n' + 'typedef struct {\n' + ' gchar * (* query_cb) (const MbimMessage *message, const gchar *line_prefix, GError **error);\n' + ' gchar * (* set_cb) (const MbimMessage *message, const gchar *line_prefix, GError **error);\n' + ' gchar * (* response_cb) (const MbimMessage *message, const gchar *line_prefix, GError **error);\n' + ' gchar * (* notification_cb) (const MbimMessage *message, const gchar *line_prefix, GError **error);\n' + '} GetPrintableCallbacks;\n' + '\n' + 'static const GetPrintableCallbacks get_printable_callbacks[] = {\n') + + for item in self.command_list: + translations['message'] = utils.build_underscore_name (item.fullname) + translations['cid'] = item.cid_enum_name + inner_template = ( + ' [${cid}] = {\n') + if item.has_query: + inner_template += ( + ' .query_cb = ${message}_query_get_printable,\n') + if item.has_set: + inner_template += ( + ' .set_cb = ${message}_set_get_printable,\n') + if item.has_response: + inner_template += ( + ' .response_cb = ${message}_response_get_printable,\n') + if item.has_notification: + inner_template += ( + ' .notification_cb = ${message}_notification_get_printable,\n') + inner_template += ( + ' },\n') + template += (string.Template(inner_template).substitute(translations)) + + template += ( + '};\n' + '\n' + 'gchar *\n' + '__mbim_message_${service_underscore}_get_printable_fields (\n' + ' const MbimMessage *message,\n' + ' const gchar *line_prefix,\n' + ' GError **error)\n' + '{\n' + ' guint32 cid;\n' + '\n' + ' switch (mbim_message_get_message_type (message)) {\n' + ' case MBIM_MESSAGE_TYPE_COMMAND: {\n' + ' cid = mbim_message_command_get_cid (message);\n' + ' if (cid < G_N_ELEMENTS (get_printable_callbacks)) {\n' + ' switch (mbim_message_command_get_command_type (message)) {\n' + ' case MBIM_MESSAGE_COMMAND_TYPE_QUERY:\n' + ' if (get_printable_callbacks[cid].query_cb)\n' + ' return get_printable_callbacks[cid].query_cb (message, line_prefix, error);\n' + ' break;\n' + ' case MBIM_MESSAGE_COMMAND_TYPE_SET:\n' + ' if (get_printable_callbacks[cid].set_cb)\n' + ' return get_printable_callbacks[cid].set_cb (message, line_prefix, error);\n' + ' break;\n' + ' default:\n' + ' g_set_error (error,\n' + ' MBIM_CORE_ERROR,\n' + ' MBIM_CORE_ERROR_INVALID_MESSAGE,\n' + ' \"Invalid command type\");\n' + ' return NULL;\n' + ' }\n' + ' }\n' + ' break;\n' + ' }\n' + '\n' + ' case MBIM_MESSAGE_TYPE_COMMAND_DONE:\n' + ' cid = mbim_message_command_done_get_cid (message);\n' + ' if (cid < G_N_ELEMENTS (get_printable_callbacks)) {\n' + ' if (get_printable_callbacks[cid].response_cb)\n' + ' return get_printable_callbacks[cid].response_cb (message, line_prefix, error);\n' + ' }\n' + ' break;\n' + '\n' + ' case MBIM_MESSAGE_TYPE_INDICATE_STATUS:\n' + ' cid = mbim_message_indicate_status_get_cid (message);\n' + ' if (cid < G_N_ELEMENTS (get_printable_callbacks)) {\n' + ' if (get_printable_callbacks[cid].notification_cb)\n' + ' return get_printable_callbacks[cid].notification_cb (message, line_prefix, error);\n' + ' }\n' + ' break;\n' + '\n' + ' default:\n' + ' g_set_error (error,\n' + ' MBIM_CORE_ERROR,\n' + ' MBIM_CORE_ERROR_INVALID_MESSAGE,\n' + ' \"No contents expected in this message type\");\n' + ' return NULL;\n' + ' }\n' + '\n' + ' g_set_error (error,\n' + ' MBIM_CORE_ERROR,\n' + ' MBIM_CORE_ERROR_INVALID_MESSAGE,\n' + ' \"Unknown contents\");\n' + ' return NULL;\n' + '}\n') + + cfile.write(string.Template(template).substitute(translations)) + + + """ Emit the sections """ def emit_sections(self, sfile): diff -Nru libmbim-1.14.2/build-aux/mbim-codegen/Struct.py libmbim-1.18.0/build-aux/mbim-codegen/Struct.py --- libmbim-1.14.2/build-aux/mbim-codegen/Struct.py 2017-08-08 12:17:29.000000000 +0200 +++ libmbim-1.18.0/build-aux/mbim-codegen/Struct.py 2019-01-08 13:16:16.000000000 +0100 @@ -1,4 +1,3 @@ -#!/usr/bin/env python # -*- Mode: python; tab-width: 4; indent-tabs-mode: nil -*- # # This program is free software; you can redistribute it and/or modify it under @@ -15,7 +14,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., 51 # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # -# Copyright (C) 2013 - 2014 Aleksander Morgado +# Copyright (C) 2013 - 2018 Aleksander Morgado # import string @@ -73,7 +72,7 @@ ' * @${field_name_underscore}: a #MbimUuid.\n') elif field['format'] =='byte-array': inner_template = (' * @${field_name_underscore}: an array of #guint8 values.\n') - elif field['format'] =='unsized-byte-array' or field['format'] == 'ref-byte-array': + elif field['format'] in ['unsized-byte-array', 'ref-byte-array', 'ref-byte-array-no-offset']: inner_template = '' if 'array-size-field' not in field: inner_template += (' * @${field_name_underscore}_size: size of the ${field_name_underscore} array.\n') @@ -99,18 +98,12 @@ elif field['format'] == 'ref-ipv4': inner_template = ( ' * @${field_name_underscore}: a #MbimIPv4.\n') - elif field['format'] == 'ipv4-array': - inner_template = ( - ' * @${field_name_underscore}: an array of #MbimIPv4 values.\n') elif field['format'] == 'ipv6': inner_template = ( ' * @${field_name_underscore}: a #MbimIPv6\n') elif field['format'] == 'ref-ipv6': inner_template = ( ' * @${field_name_underscore}: a #MbimIPv6\n') - elif field['format'] == 'ipv6-array': - inner_template = ( - ' * @${field_name_underscore}: an array of #MbimIPv6 values.\n') else: raise ValueError('Cannot handle format \'%s\' in struct' % field['format']) template += string.Template(inner_template).substitute(translations) @@ -127,7 +120,7 @@ translations['array_size'] = field['array-size'] inner_template = ( ' guint8 ${field_name_underscore}[${array_size}];\n') - elif field['format'] == 'unsized-byte-array' or field['format'] == 'ref-byte-array': + elif field['format'] in ['unsized-byte-array', 'ref-byte-array', 'ref-byte-array-no-offset']: inner_template = '' if 'array-size-field' not in field: inner_template += ( @@ -155,18 +148,12 @@ elif field['format'] == 'ref-ipv4': inner_template = ( ' MbimIPv4 ${field_name_underscore};\n') - elif field['format'] == 'ipv4-array': - inner_template = ( - ' MbimIPv4 *${field_name_underscore};\n') elif field['format'] == 'ipv6': inner_template = ( ' MbimIPv6 ${field_name_underscore};\n') elif field['format'] == 'ref-ipv6': inner_template = ( ' MbimIPv6 ${field_name_underscore};\n') - elif field['format'] == 'ipv6-array': - inner_template = ( - ' MbimIPv6 *${field_name_underscore};\n') else: raise ValueError('Cannot handle format \'%s\' in struct' % field['format']) template += string.Template(inner_template).substitute(translations) @@ -204,7 +191,7 @@ inner_template = '' if field['format'] == 'uuid': pass - elif field['format'] == 'unsized-byte-array' or field['format'] == 'ref-byte-array': + elif field['format'] in ['unsized-byte-array', 'ref-byte-array', 'ref-byte-array-no-offset']: inner_template += ( ' g_free (var->${field_name_underscore});\n') elif field['format'] == 'guint32': @@ -224,16 +211,10 @@ pass elif field['format'] == 'ref-ipv4': pass - elif field['format'] == 'ipv4-array': - inner_template += ( - ' g_free (var->${field_name_underscore});\n') elif field['format'] == 'ipv6': pass elif field['format'] == 'ref-ipv6': pass - elif field['format'] == 'ipv6-array': - inner_template += ( - ' g_free (var->${field_name_underscore});\n') else: raise ValueError('Cannot handle format \'%s\' in struct clear' % field['format']) template += string.Template(inner_template).substitute(translations) @@ -287,6 +268,134 @@ '}\n') cfile.write(string.Template(template).substitute(translations)) + """ + Emit the type's print methods + """ + def _emit_print(self, cfile): + translations = { 'name' : self.name, + 'name_underscore' : utils.build_underscore_name_from_camelcase(self.name), + 'struct_size' : self.size } + + template = ( + '\n' + 'static gchar *\n' + '_mbim_message_print_${name_underscore}_struct (\n' + ' const ${name} *self,\n' + ' const gchar *line_prefix)\n' + '{\n' + ' GString *str;\n' + '\n' + ' str = g_string_new ("");\n' + '\n') + + for field in self.contents: + translations['field_name'] = field['name'] + translations['field_name_underscore'] = utils.build_underscore_name_from_camelcase(field['name']) + + inner_template = ( + ' g_string_append_printf (str, "%s ${field_name} = ", line_prefix);\n' + ' {\n') + + if field['format'] == 'uuid': + inner_template += ( + ' gchar *tmpstr;\n' + '\n' + ' tmpstr = mbim_uuid_get_printable (&(self->${field_name_underscore}));\n' + ' g_string_append_printf (str, "\'%s\'", tmpstr);\n' + ' g_free (tmpstr);\n') + + elif field['format'] in ['byte-array', 'ref-byte-array', 'ref-byte-array-no-offset', 'unsized-byte-array']: + inner_template += ( + ' guint i;\n' + ' guint array_size;\n' + '\n') + + if field['format'] == 'byte-array': + translations['array_size'] = field['array-size'] + inner_template += ( + ' array_size = ${array_size};\n') + elif 'array-size-field' in field: + translations['array_size_field_name_underscore'] = utils.build_underscore_name_from_camelcase(field['array-size-field']) + inner_template += ( + ' array_size = self->${array_size_field_name_underscore};\n') + else: + inner_template += ( + ' array_size = self->${field_name_underscore}_size;\n') + + inner_template += ( + ' g_string_append (str, "\'");\n' + ' for (i = 0; i < array_size; i++)\n' + ' g_string_append_printf (str, "%02x%s", self->${field_name_underscore}[i], (i == (array_size - 1)) ? "" : ":" );\n' + ' g_string_append (str, "\'");\n') + + elif field['format'] == 'guint32': + inner_template += ( + ' g_string_append_printf (str, "\'%" G_GUINT32_FORMAT "\'", self->${field_name_underscore});\n') + + elif field['format'] == 'guint64': + inner_template += ( + ' g_string_append_printf (str, "\'%" G_GUINT64_FORMAT "\'", self->${field_name_underscore});\n') + + elif field['format'] == 'guint32-array': + translations['array_size_field_name_underscore'] = utils.build_underscore_name_from_camelcase(field['array-size-field']) + inner_template += ( + ' guint i;\n' + '\n' + ' g_string_append (str, "\'");\n' + ' for (i = 0; i < self->${array_size_field_name_underscore}; i++)\n' + ' g_string_append_printf (str, "%" G_GUINT32_FORMAT "%s", self->${field_name_underscore}[i], (i == (self->${array_size_field_name_underscore} - 1)) ? "" : "," );\n' + ' g_string_append (str, "\'");\n') + + elif field['format'] == 'string': + inner_template += ( + ' g_string_append_printf (str, "\'%s\'", self->${field_name_underscore});\n') + + elif field['format'] == 'string-array': + translations['array_size_field_name_underscore'] = utils.build_underscore_name_from_camelcase(field['array-size-field']) + inner_template += ( + ' guint i;\n' + '\n' + ' g_string_append (str, "\'");\n' + ' for (i = 0; i < self->${array_size_field_name_underscore}; i++)\n' + ' g_string_append_printf (str, "%s%s", self->${field_name_underscore}[i], (i == (self->${array_size_field_name_underscore} - 1)) ? "" : "," );\n' + ' g_string_append (str, "\'");\n') + + elif field['format'] == 'ipv4' or \ + field['format'] == 'ref-ipv4' or \ + field['format'] == 'ipv6' or \ + field['format'] == 'ref-ipv6': + inner_template += ( + ' GInetAddress *addr;\n' + ' gchar *tmpstr;\n' + '\n') + + if field['format'] == 'ipv4' or \ + field['format'] == 'ref-ipv4': + inner_template += ( + ' addr = g_inet_address_new_from_bytes ((guint8 *)&(self->${field_name_underscore}.addr), G_SOCKET_FAMILY_IPV4);\n') + elif field['format'] == 'ipv6' or \ + field['format'] == 'ref-ipv6': + inner_template += ( + ' addr = g_inet_address_new_from_bytes ((guint8 *)&(self->${field_name_underscore}.addr), G_SOCKET_FAMILY_IPV6);\n') + + inner_template += ( + ' tmpstr = g_inet_address_to_string (addr);\n' + ' g_string_append_printf (str, "\'%s\'", tmpstr);\n' + ' g_free (tmpstr);\n' + ' g_object_unref (addr);\n') + + else: + raise ValueError('Cannot handle format \'%s\' in struct' % field['format']) + + inner_template += ( + ' }\n' + ' g_string_append (str, "\\n");\n') + template += (string.Template(inner_template).substitute(translations)) + + template += ( + ' return g_string_free (str, FALSE);\n' + '}\n') + cfile.write(string.Template(template).substitute(translations)) """ Emit the type's read methods @@ -320,7 +429,8 @@ '\n' ' memcpy (&(out->${field_name_underscore}), _mbim_message_read_uuid (self, offset), 16);\n' ' offset += 16;\n') - elif field['format'] == 'ref-byte-array': + elif field['format'] in ['ref-byte-array', 'ref-byte-array-no-offset']: + translations['has_offset'] = 'TRUE' if field['format'] == 'ref-byte-array' else 'FALSE' if 'array-size-field' in field: translations['array_size_field_name_underscore'] = utils.build_underscore_name_from_camelcase(field['array-size-field']) inner_template += ( @@ -328,7 +438,7 @@ ' {\n' ' const guint8 *tmp;\n' '\n' - ' tmp = _mbim_message_read_byte_array (self, relative_offset, offset, TRUE, FALSE, NULL);\n' + ' tmp = _mbim_message_read_byte_array (self, relative_offset, offset, ${has_offset}, FALSE, NULL);\n' ' out->${field_name_underscore} = g_malloc (out->${array_size_field_name_underscore});\n' ' memcpy (out->${field_name_underscore}, tmp, out->${array_size_field_name_underscore});\n' ' offset += 4;\n' @@ -339,7 +449,7 @@ ' {\n' ' const guint8 *tmp;\n' '\n' - ' tmp = _mbim_message_read_byte_array (self, relative_offset, offset, TRUE, TRUE, &(out->${field_name_underscore}_size));\n' + ' tmp = _mbim_message_read_byte_array (self, relative_offset, offset, ${has_offset}, TRUE, &(out->${field_name_underscore}_size));\n' ' out->${field_name_underscore} = g_malloc (out->${field_name_underscore}_size);\n' ' memcpy (out->${field_name_underscore}, tmp, out->${field_name_underscore}_size);\n' ' offset += 8;\n' @@ -403,26 +513,16 @@ '\n' ' memcpy (&(out->${field_name_underscore}), _mbim_message_read_ipv4 (self, offset, TRUE), 4);\n' ' offset += 4;\n') - elif field['format'] == 'ipv4-array': - inner_template += ( - '\n' - ' out->${field_name_underscore} =_mbim_message_read_ipv4_array (self, out->${array_size_field_name_underscore}, offset);\n' - ' offset += 4;\n') elif field['format'] == 'ipv6': inner_template += ( '\n' ' memcpy (&(out->${field_name_underscore}), _mbim_message_read_ipv6 (self, offset, FALSE), 16);\n' - ' offset += 4;\n') + ' offset += 16;\n') elif field['format'] == 'ref-ipv6': inner_template += ( '\n' ' memcpy (&(out->${field_name_underscore}), _mbim_message_read_ipv6 (self, offset, TRUE), 16);\n' ' offset += 4;\n') - elif field['format'] == 'ipv6-array': - inner_template += ( - '\n' - ' out->${field_name_underscore} =_mbim_message_read_ipv6_array (self, out->${array_size_field_name_underscore}, offset);\n' - ' offset += 4;\n') else: raise ValueError('Cannot handle format \'%s\' in struct' % field['format']) @@ -502,19 +602,18 @@ inner_template = (' _mbim_struct_builder_append_byte_array (builder, FALSE, FALSE, ${pad_array}, value->${field}, ${array_size});\n') elif field['format'] == 'unsized-byte-array': inner_template = (' _mbim_struct_builder_append_byte_array (builder, FALSE, FALSE, ${pad_array}, value->${field}, value->${field}_size);\n') - elif field['format'] == 'ref-byte-array': + elif field['format'] in ['ref-byte-array', 'ref-byte-array-no-offset']: + translations['has_offset'] = 'TRUE' if field['format'] == 'ref-byte-array' else 'FALSE' if 'array-size-field' in field: - inner_template = (' _mbim_struct_builder_append_byte_array (builder, TRUE, FALSE, ${pad_array}, value->${field}, value->${array_size_field});\n') + inner_template = (' _mbim_struct_builder_append_byte_array (builder, ${has_offset}, FALSE, ${pad_array}, value->${field}, value->${array_size_field});\n') else: - inner_template = (' _mbim_struct_builder_append_byte_array (builder, TRUE, TRUE, ${pad_array}, value->${field}, value->${field}_size);\n') + inner_template = (' _mbim_struct_builder_append_byte_array (builder, ${has_offset}, TRUE, ${pad_array}, value->${field}, value->${field}_size);\n') elif field['format'] == 'guint32': inner_template = (' _mbim_struct_builder_append_guint32 (builder, value->${field});\n') elif field['format'] == 'guint32-array': inner_template = (' _mbim_struct_builder_append_guint32_array (builder, value->${field}, value->${array_size_field});\n') elif field['format'] == 'guint64': inner_template = (' _mbim_struct_builder_append_guint64 (builder, value->${field});\n') - elif field['format'] == 'guint64-array': - inner_template = (' _mbim_struct_builder_append_guint64_array (builder, value->${field}, value->${array_size_field});\n') elif field['format'] == 'string': inner_template = (' _mbim_struct_builder_append_string (builder, value->${field});\n') elif field['format'] == 'string-array': @@ -523,14 +622,10 @@ inner_template = (' _mbim_struct_builder_append_ipv4 (builder, &value->${field}, FALSE);\n') elif field['format'] == 'ref-ipv4': inner_template = (' _mbim_struct_builder_append_ipv4 (builder, &value->${field}, TRUE);\n') - elif field['format'] == 'ipv4-array': - inner_template = (' _mbim_struct_builder_append_ipv4_array (builder, value->${field}, value->${array_size_field});\n') elif field['format'] == 'ipv6': inner_template = (' _mbim_struct_builder_append_ipv6 (builder, &value->${field}, FALSE);\n') elif field['format'] == 'ref-ipv6': inner_template = (' _mbim_struct_builder_append_ipv6 (builder, &value->${field}, TRUE);\n') - elif field['format'] == 'ipv6-array': - inner_template = (' _mbim_struct_builder_append_ipv6_array (builder, value->${field}, value->${array_size_field});\n') else: raise ValueError('Cannot handle format \'%s\' in struct' % field['format']) @@ -667,6 +762,8 @@ self._emit_free(hfile, cfile) # Emit type's read self._emit_read(cfile) + # Emit type's print + self._emit_print(cfile) # Emit type's append self._emit_append(cfile) diff -Nru libmbim-1.14.2/build-aux/mbim-codegen/utils.py libmbim-1.18.0/build-aux/mbim-codegen/utils.py --- libmbim-1.14.2/build-aux/mbim-codegen/utils.py 2015-01-21 00:25:49.000000000 +0100 +++ libmbim-1.18.0/build-aux/mbim-codegen/utils.py 2019-01-08 13:16:16.000000000 +0100 @@ -1,4 +1,3 @@ -#!/usr/bin/env python # -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- # # This program is free software; you can redistribute it and/or modify it under @@ -16,7 +15,7 @@ # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # Copyright (C) 2012 Lanedo GmbH -# Copyright (C) 2013 - 2014 Aleksander Morgado +# Copyright (C) 2013 - 2018 Aleksander Morgado # # Implementation originally developed in 'libqmi'. # @@ -48,7 +47,7 @@ " * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n" " * Boston, MA 02110-1301 USA.\n" " *\n" - " * Copyright (C) 2013 - 2014 Aleksander Morgado \n" + " * Copyright (C) 2013 - 2018 Aleksander Morgado \n" " */\n" "\n"); diff -Nru libmbim-1.14.2/build-aux/templates/Makefile.in libmbim-1.18.0/build-aux/templates/Makefile.in --- libmbim-1.14.2/build-aux/templates/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/build-aux/templates/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -183,6 +183,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -209,6 +211,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -257,9 +264,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -295,8 +306,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -320,7 +331,10 @@ cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libmbim-1.14.2/ChangeLog libmbim-1.18.0/ChangeLog --- libmbim-1.14.2/ChangeLog 2017-08-08 13:43:11.000000000 +0200 +++ libmbim-1.18.0/ChangeLog 2019-01-08 13:52:39.000000000 +0100 @@ -0,0 +1,7433 @@ +commit 18cd1d2b3f21ca825f4d2eb31a058b1e43860f5b +Author: Aleksander Morgado +Date: Tue Jan 8 13:38:27 2019 +0100 + + release: bump version to 1.18.0 + + configure.ac | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 9d1e55f989408d2fe0159162affceaea7a504550 +Author: Aleksander Morgado +Date: Tue Jan 8 13:38:00 2019 +0100 + + NEWS: update for 1.18.0 + + NEWS | 41 +++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 41 insertions(+) + +commit a68d54ba609c2bd34f9a8be05a814a9414ca2bac +Author: Aleksander Morgado +Date: Tue Jan 8 13:51:00 2019 +0100 + + build: bump copyrights to 2019 + + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + src/mbim-proxy/mbim-proxy.c | 2 +- + src/mbimcli/mbimcli.c | 2 +- + 3 files changed, 3 insertions(+), 2 deletions(-) + +commit ea42bbf13d3369664973c29f8bf07fd76bd43eef +Author: Ben Chan +Date: Mon Dec 10 10:56:05 2018 -0800 + + build: enable -Wtype-limits + + -Wtype-limits helps catch unnecessary comparisons such as comparing + unsigned variables <= 0. + + This patch essentially brings the list of compiler warnings defined in + m4/compiler-warnings.m4 to be on par with libqmi. + + m4/compiler-warnings.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit bff6abc1d7e424d7d594caba540ffe587fd0d723 +Author: Aleksander Morgado +Date: Mon Nov 12 15:14:53 2018 +0100 + + build: version bump to 1.17.5 to flag existence of new API (LTE + attach config) + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a7b6be938af94cf2d54d4352d899831394276b6e +Author: Aleksander Morgado +Date: Sun Nov 4 16:43:53 2018 +0100 + + ms-basic-connect-extensions: implement 'LTE attach state' + + data/mbim-service-ms-basic-connect-extensions.json | 36 ++++++++++- + .../libmbim-glib/libmbim-glib-common.sections | 5 ++ + src/libmbim-glib/mbim-enums.h | 12 ++++ + src/mbimcli/mbimcli-ms-basic-connect-extensions.c | 71 + +++++++++++++++++++++- + 4 files changed, 122 insertions(+), 2 deletions(-) + +commit dc3c5923fa19620360b198bc1ce66fed16ec97ff +Author: Aleksander Morgado +Date: Sun Nov 4 09:17:16 2018 +0100 + + ms-basic-connect-extensions: implement 'LTE attach configuration' + + data/mbim-service-ms-basic-connect-extensions.json | 53 +++++++++++++- + .../libmbim-glib/libmbim-glib-common.sections | 15 ++++ + src/libmbim-glib/mbim-enums.h | 45 ++++++++++++ + src/mbimcli/mbimcli-ms-basic-connect-extensions.c | 83 + +++++++++++++++++++++- + 4 files changed, 192 insertions(+), 4 deletions(-) + +commit aa5e4ee5666c9f22b71a0bbbed7475b665eab85b +Author: Aleksander Morgado +Date: Sun Nov 4 23:04:37 2018 +0100 + + libmbim-glib,proxy: also track standard services + + The assumption that we could totally ignore enabling/disabling + standard services seems to be wrong, as not all devices follow that + logic. Looks like some do expect the FULL list of service/cids to + subscribe to on every request, and we are not specifying the standard + services, we would totally be losing the notifications they emit. + + So, track the full default list of CIDs of all standard services that + emit notifications, and assume that all new clients have that list + enabled by default. At device level we will NEVER disable the standard + services, but clients may do so. This means that the list of + service/cids that we pass down to the device must ALWAYS include all + cids from all standard services. + + Fixes: 0073cbed59a270e1a8f18f591d31cbaf64a995ae + + src/libmbim-glib/mbim-proxy-helpers.c | 130 + +++++++++++++++++++++++++++++++++- + src/libmbim-glib/mbim-proxy-helpers.h | 4 ++ + src/libmbim-glib/mbim-proxy.c | 45 +++++------- + 3 files changed, 148 insertions(+), 31 deletions(-) + +commit 3eeaa4248b98e1c3265caa5efca0db00a00e8a56 +Author: Aleksander Morgado +Date: Sun Nov 4 12:08:27 2018 +0100 + + ms-basic-connect-extensions: rename service + + This service is not a generic service, it is defined by Microsoft, so + rename it to follow the same naming scheme as for other services also + defined by Microsoft. + + We do not provide compatibility symbols, as this is a NEW service to + be first released in libmbim 1.18.0. + + We do bump the micro versionto 1.17.4, so that applications relying + on the git version of libmbim can bump their minimum required version + accordingly. + + configure.ac | 2 +- + data/Makefile.am | 4 +- + ... mbim-service-ms-basic-connect-extensions.json} | 4 +- + docs/man/Makefile.am | 2 +- + docs/reference/libmbim-glib/Makefile.am | 4 +- + .../libmbim-glib/libmbim-glib-common.sections | 12 ++--- + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 16 +++++- + src/libmbim-glib/generated/Makefile.am | 30 +++++------ + src/libmbim-glib/libmbim-glib.h | 2 +- + src/libmbim-glib/mbim-cid.c | 40 +++++++------- + src/libmbim-glib/mbim-cid.h | 62 + +++++++++++----------- + src/libmbim-glib/mbim-message.c | 20 +++---- + src/libmbim-glib/mbim-uuid.c | 10 ++-- + src/libmbim-glib/mbim-uuid.h | 38 ++++++------- + src/libmbim-glib/test/test-uuid.c | 26 ++++----- + src/mbimcli/Makefile.am | 4 +- + ...ons.c => mbimcli-ms-basic-connect-extensions.c} | 22 ++++---- + src/mbimcli/mbimcli.c | 10 ++-- + src/mbimcli/mbimcli.h | 6 +-- + 19 files changed, 163 insertions(+), 151 deletions(-) + +commit 61b3f09e417e4f6131a763094960a7d45bb4fc56 +Author: Aleksander Morgado +Date: Sun Nov 4 17:14:32 2018 +0100 + + mbim-codegen: don't print response contents if an error is being + reported + + [04 nov 2018, 16:54:27] [Debug] [/dev/cdc-wdm2] Received + message... + >>>>>> RAW: + >>>>>> length = 48 + >>>>>> data = + 03:00:00:80:30:00:00:00:13:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:13:00:00:00:22:00:00:00:00:00:00:00 + + (mbim-proxy:14139): GLib-ERROR **: 16:54:27.373: + ../glib/glib/gmem.c:105: failed to allocate 33235360392 bytes + + build-aux/mbim-codegen/Message.py | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 88d2cddb9d7861e59219400a4e4ff453cdd32d20 +Author: Aleksander Morgado +Date: Sun Nov 4 08:59:15 2018 +0100 + + basic-connect-extensions: define common struct before the message + + data/mbim-service-basic-connect-extensions.json | 29 + ++++++++++++------------- + 1 file changed, 14 insertions(+), 15 deletions(-) + +commit ce04c635358d9ac1bdbdf3bcbc70e469a9f6317f +Author: Aleksander Morgado +Date: Wed Oct 17 11:32:35 2018 +0200 + + libmbim-glib,proxy: compare MbimDevices by pointer not by path + + The MbimDevice objects are stored in the proxy private info, and + additional references of the same objects are also referenced in each + client info. We can do a much quicker MbimDevice comparison just by + comparing pointers directly instead of paths. + + src/libmbim-glib/mbim-proxy.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 0073cbed59a270e1a8f18f591d31cbaf64a995ae +Author: Aleksander Morgado +Date: Wed Oct 10 13:20:46 2018 +0200 + + libmbim-glib: explicitly configure only non-standard services + + The MBIM documentation states that the DEVICE_SERVICE_SUBSCRIBE_LIST + message may be used by clients to specify which indications it is + interested in receiving, and then the modem "must only indicate + notifications for CIDs which have been enabled via this command". + + A bit later it says that "Upon OPEN_DONE completion, notifications for + CIDs defined in this specification are enabled (aka subscribed to) by + default, and vendor extension notifications are off by default." + + These two previous statements seem to contradict each other, as this + would mean that devices emit by default indications for all standard + services, regardless of whether clients have subscribed to them + explicitly via DEVICE_SERVICE_SUBSCRIBE_LIST. + + Looking at actual real devices, giving a DEVICE_SERVICE_SUBSCRIBE_LIST + that includes NO basic service CID enabled does NOT disable all + indications of the standard services, which means we have no way to + do so. + + This commit simplifies the "merged" service subscribe list handling by + making the assumption that basic services are by default already + subscribed to and also that there is no way to un-subscribe from + them. We will use DEVICE_SERVICE_SUBSCRIBE_LIST only to track the + subscriptions to CIDs of non-standard services in the device. + + If the client subscribes to standard services explicitly, the proxy + will ignore those and will not send those explicit subscriptions to + the device. In the same way, if the client un-subscribes from standard + services it was previously subscribed to, we will also ignore those + attempts. Clients should be simplified and ignore these subscriptions, + but meanwhile the proxy should really behave as the real device. + + And while trying to behave as the real device, the indications emitted + for standard services should always be sent to the clients, even if + the clients tried to do custom management of which CIDs of the + standard services it's subscribed to. We shouldn't add additional + filtering in our end if the device isn't doing that. + + src/libmbim-glib/mbim-proxy-helpers.c | 30 +-- + src/libmbim-glib/mbim-proxy-helpers.h | 1 - + src/libmbim-glib/mbim-proxy.c | 115 ++++++----- + src/libmbim-glib/test/test-proxy-helpers.c | 303 + +++++++++-------------------- + 4 files changed, 164 insertions(+), 285 deletions(-) + +commit 8f491a2d885db43c4814407bfa36f62adf4561c0 +Author: Aleksander Morgado +Date: Wed Oct 10 01:39:28 2018 +0200 + + libmbim-glib,proxy: full event entry cleanup on NotOpened function + error + + If the device suddenly reports that the MBIM session is not open, + e.g. after a suspend/resume cycle, we also cannot assume that the + client-configured lists of events are valid. + + E.g. if the modem had QMI-over-MBIM indications enabled before the + suspend operation, once the modem is re-configured after the resume we + wouldn't be re-enabling these indications because we wrongly thought + they were already enabled. + + This fixes the QMI-over-MBIM LOC support, which was broken after a + suspend/resume cycle. + + src/libmbim-glib/mbim-proxy.c | 51 + +++++++++++++++++++++++++++++++++++-------- + 1 file changed, 42 insertions(+), 9 deletions(-) + +commit 2bf75ebc1f82c86b324db47fe037f6bbe230e6f4 +Author: Aleksander Morgado +Date: Wed Oct 10 01:29:24 2018 +0200 + + libmbim-glib,proxy: device error signal handling not per client + + There is no point in having one error signal connected per client, + especially since the action performed is just a device forced close + operation. Setup just one signal connected listening to errors + reported by the device. + + src/libmbim-glib/mbim-proxy.c | 64 + +++++++++++++++++++++---------------------- + 1 file changed, 31 insertions(+), 33 deletions(-) + +commit cbd09e3b42807182a2f5879babd8e5658d87ad31 +Author: Aleksander Morgado +Date: Wed Oct 10 01:07:51 2018 +0200 + + libmbim-glib,mbim-proxy: per-device event entry merged lists + + Having a global event entry merged list applicable to all devices + doesn't have any sense, we should have a merged list *per device*. Do + that by keeping the merged list in a private data associated to each + MbimDevice. + + src/libmbim-glib/mbim-proxy.c | 174 + +++++++++++++++++++++++++----------------- + 1 file changed, 106 insertions(+), 68 deletions(-) + +commit fbec1f4763168c75f0b221343e747545386ae9f8 +Author: Ben Chan +Date: Tue Oct 16 16:27:42 2018 -0700 + + libmbim-glib,proxy: remove explicit GDestroyNotify cast on + g_object_unref + + g_object_unref is in form of `void (*)(gpointer)`, which matches the + GDestroyNotify signature. An explicit GDestroyNotify cast on + g_object_unref is thus not needed. + + src/libmbim-glib/mbim-proxy.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ced77fcf59ca74bd1fe8cc05dc8286a351e4e11f +Author: Aleksander Morgado +Date: Tue Oct 9 22:48:12 2018 +0200 + + libmbim-glib,device: emit signal before completing transaction task + + Completion of transaction tasks is done inline, not in idle, and so a + lot of things may happen during the completion handler, and we may + even find that the input MbimMessage isn't valid any more, as the + message container is the input channel buffer and this buffer may be + closed and recreated during the function error handling... + + [09 oct 2018, 22:34:59] [Debug] [/dev/cdc-wdm2] Received message + (translated)... + >>>>>> Header: + >>>>>> length = 16 + >>>>>> type = function-error (0x80000004) + >>>>>> transaction = 46 + >>>>>> Contents: + >>>>>> error = 'NotOpened' (0x00000005) + + [09 oct 2018, 22:34:59] [Debug] device not-opened error reported, + reopening + [09 oct 2018, 22:34:59] [Debug] [/dev/cdc-wdm2] channel destroyed + [09 oct 2018, 22:34:59] [Debug] opening device... + [09 oct 2018, 22:34:59] [Debug] [/dev/cdc-wdm2] Queried max + control message size: 4096 + Segmentation fault + + Avoid this, just by emitting the error signal before the task + completion. + + src/libmbim-glib/mbim-device.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit 89c29c18c95f7f02481a4c620039c4c90d6c1889 +Author: Aleksander Morgado +Date: Sun Oct 7 21:27:13 2018 +0200 + + mbim-codegen: implement support for printing message fields in traces + + build-aux/mbim-codegen/Message.py | 343 + ++++++++++++++++++++++++++++++++++- + build-aux/mbim-codegen/ObjectList.py | 128 ++++++++++++- + build-aux/mbim-codegen/Struct.py | 132 +++++++++++++- + build-aux/mbim-codegen/mbim-codegen | 5 +- + build-aux/mbim-codegen/utils.py | 4 +- + src/libmbim-glib/mbim-message.c | 92 +++++++++- + 6 files changed, 696 insertions(+), 8 deletions(-) + +commit 603e24febf12e09ed0ef5c6ceaf813c99650c5a3 +Author: Aleksander Morgado +Date: Tue Oct 9 10:09:54 2018 +0200 + + mbim-codegen: remove broken support for guint32-array types out + of struct + + The only 2 fields flagged with 'guint32-array' type are given inside + structs, and this lead to having a buggy implementation of the type + when out of structs. E.g. we were assuming we could use '${public}' to + refer to the enum/flag type associated to the guint32 when in an + array, but that logic was totally broken as the public variable would + be equal to 'guint32-array' if no enum/flag type given. Just remove + that, and leave only the in-struct support. + + build-aux/mbim-codegen/Message.py | 22 +--------------------- + 1 file changed, 1 insertion(+), 21 deletions(-) + +commit 9ba08cc9951d41afa3195010fac1cbffa2a826b9 +Author: Aleksander Morgado +Date: Tue Oct 9 09:53:50 2018 +0200 + + mbim-codegen: remove broken support for unused guint64-array types + + The code generator was ready to support these fields completely, but + the library helper methods for reading these fields didn't even exist. + + Just remove the support from the code generator all together, whenever + such a field is supported in any MBIM message, we'll add a proper + implementation. + + build-aux/mbim-codegen/Message.py | 14 -------------- + build-aux/mbim-codegen/Struct.py | 2 -- + src/libmbim-glib/mbim-message-private.h | 6 ------ + src/libmbim-glib/mbim-message.c | 20 -------------------- + 4 files changed, 42 deletions(-) + +commit 8d748c69e4ea622a126477df900c6b44efabd4ec +Author: Aleksander Morgado +Date: Sun Oct 7 22:29:17 2018 +0200 + + libmbim-glib,docs: add missing MbimPcoType references + + docs/reference/libmbim-glib/libmbim-glib-common.sections | 3 +++ + 1 file changed, 3 insertions(+) + +commit 670641b4f2aee333cd809e1c06a380eeb7144a2a +Author: Aleksander Morgado +Date: Sun Oct 7 22:26:55 2018 +0200 + + mbim-codegen: remove support for ipv4-array and ipv6-array inside + structs + + It was never used and the implementation was actually buggy. Not worth + maintaining this. + + build-aux/mbim-codegen/Struct.py | 32 -------------------------------- + 1 file changed, 32 deletions(-) + +commit 6ac1b7f994d8e07b7c27caed47f97f927505a488 +Author: Aleksander Morgado +Date: Sun Oct 7 21:25:59 2018 +0200 + + mbim-codegen: advance offset 16 bytes when reading a guint64 field + + https://gitlab.freedesktop.org/mobile-broadband/libmbim/issues/4 + + build-aux/mbim-codegen/Message.py | 2 +- + build-aux/mbim-codegen/Struct.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 124c01fc75c96328284c9b8721a9773d4cf7b632 +Author: Aleksander Morgado +Date: Sun Oct 7 21:25:15 2018 +0200 + + atds: fix service name + + Should be the same as the 'service' fields in each message. + + data/mbim-service-atds.json | 4 ++-- + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 531ee220339b285078a91b73cb1857881d6aa506 +Author: Ben Chan +Date: Sun Sep 16 11:52:39 2018 -0700 + + libmbim-glib: fix UUID for 'Basic Connectivity Extensions' service + + The 'Basic Connectivity Extensions' service UUID was inconsistently + stated in some Microsoft documentations, which has been fixed in [1]. + This patch updates libmbim to use the correct UUID for the 'Basic + Connectivity Extensions' service UUID, which is + 3d01dcc5-fef5-4d05-0d3a-bef7058e9aaf. + + [1] https://github.com/MicrosoftDocs/windows-driver-docs/issues/831 + + src/libmbim-glib/mbim-uuid.c | 2 +- + src/libmbim-glib/test/test-uuid.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit c603ab385baf5050fdbd47af9bdf9d46d407b1ab +Author: Aleksander Morgado +Date: Thu Aug 9 11:30:02 2018 +0200 + + mbimcli,atds: fix thresholds in LTE SNR processing + + The encoded LTE SNR value is between 0 and 35, not up to 97. + + src/mbimcli/mbimcli-atds.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit b1b0ff50d86e240d2c1d6aa2f19272ce000a5704 +Author: Aleksander Morgado +Date: Thu Aug 9 11:22:36 2018 +0200 + + mbimcli,atds: fix LTE SNR processing + + src/mbimcli/mbimcli-atds.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 652188fe3e5f015b637b19c68869a54b56b18620 +Author: Ben Chan +Date: Mon Jul 30 13:42:11 2018 -0700 + + build: version bump to 1.17.3 for newly added MBIM_CID_PCO support + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 1475ed59d265e6c25cfa048aba4a378940da697d +Author: Ben Chan +Date: Thu Jul 26 23:38:07 2018 -0700 + + mbimcli: new '--query-pco' action + + Change-Id: I7f24d481cb92b2e817eba487d38739b8fed58b28 + + docs/man/Makefile.am | 1 + + src/mbimcli/Makefile.am | 1 + + src/mbimcli/mbimcli-basic-connect-extensions.c | 246 + +++++++++++++++++++++++++ + src/mbimcli/mbimcli.c | 8 + + src/mbimcli/mbimcli.h | 4 + + 5 files changed, 260 insertions(+) + +commit dbe70fee692974a92ce102642049b072bb17c9bd +Author: Ben Chan +Date: Thu Jul 26 23:38:06 2018 -0700 + + libmbim-glib: add partial support for Basic IP Connectivity Extensions + service + + This patch adds partial support for the Basic IP Connectivity + Extensions + service defined in Microsoft Mobile Broadband Design Guide. Only the + Protocol Configuration Operations (PCO) command is defined. + + data/Makefile.am | 1 + + data/mbim-service-basic-connect-extensions.json | 34 + ++++++++++++++++++++++ + docs/reference/libmbim-glib/Makefile.am | 1 + + .../libmbim-glib/libmbim-glib-common.sections | 8 +++++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + src/libmbim-glib/generated/Makefile.am | 12 ++++++++ + src/libmbim-glib/libmbim-glib.h | 1 + + src/libmbim-glib/mbim-cid.c | 23 +++++++++++++++ + src/libmbim-glib/mbim-cid.h | 30 + +++++++++++++++++++ + src/libmbim-glib/mbim-enums.h | 15 ++++++++++ + src/libmbim-glib/mbim-uuid.c | 13 +++++++++ + src/libmbim-glib/mbim-uuid.h | 11 +++++++ + src/libmbim-glib/test/test-uuid.c | 8 +++++ + 13 files changed, 158 insertions(+) + +commit b7f244c7206142fd869e2b865ae7f29e677036e1 +Author: Ben Chan +Date: Fri Jul 27 15:14:38 2018 -0700 + + mbim-codegen: handle 'ref-byte-array-no-offset' fields in Structs + + build-aux/mbim-codegen/Struct.py | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +commit cb54dd691967f21a6a9b1bb3e40d33e3cff35d7a +Author: Ben Chan +Date: Wed Jun 27 14:44:31 2018 -0700 + + libmbim-glib: handle MBIM_SERVICE_INTEL_FIRMWARE_UPDATE in + mbim_cid_get_printable() + + This patch adds a missing handling of + MBIM_SERVICE_INTEL_FIRMWARE_UPDATE + in mbim_cid_get_printable() for commit d2ae618d + ("intel-firmware-update: + add support for Intel Firmware Update service") + + src/libmbim-glib/mbim-cid.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 12f1a4f623d915957bb8b9b1b9a5e6c19b708e8c +Author: Aleksander Morgado +Date: Sun Jun 24 18:44:11 2018 +0200 + + build: version bump to 1.17.2 to flag existence of new API (QMI + indications) + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 4a853eb22b564bbaf0b591042abe75da8c3bd408 +Author: Aleksander Morgado +Date: Sun Jun 24 18:37:59 2018 +0200 + + libmbim-glib,qmi: enable notifications in the QMI_MSG CID + + The QMI service allows QMI indications to be reported via MBIM + notifications, once they're enabled with 'Basic Connect Device Service + Subscribe List'. + + data/mbim-service-qmi.json | 21 ++++++++++++--------- + src/libmbim-glib/mbim-cid.c | 2 +- + 2 files changed, 13 insertions(+), 10 deletions(-) + +commit f967d117ce1a44cfe8121b5b09a5bb5d7838531e +Author: Aleksander Morgado +Date: Sun Jun 24 09:44:40 2018 +0200 + + libmbim-glib,cid: fix QMI_MSG documentation + + src/libmbim-glib/mbim-cid.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit baa8dbc42c824a6d7e5a60cd096d8eb2c6f20f4e +Author: Aleksander Morgado +Date: Sat Jun 2 18:23:00 2018 +0200 + + build: version bump to 1.17.1 to flag existence of new API + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2a97e39cdda125dd1b28ad7eef0f45f3646fc65e +Author: Ben Chan +Date: Fri Jun 1 19:44:14 2018 -0700 + + libmbim-glib: add additional cause codes to MbimNwError + + This patch updates MbimNwError to include additional cause codes, + which + are related to PDP context activation, defined in the 3GPP TS 24.008 + specification section 6.1.3.1.3.1. + + src/libmbim-glib/mbim-enums.h | 92 + +++++++++++++++++++++++++++---------------- + 1 file changed, 57 insertions(+), 35 deletions(-) + +commit 2726ecd6c810fe9ccf030953893af9e90ec20073 +Author: Lubomir Rintel +Date: Tue Apr 24 08:10:32 2018 +0200 + + build: figure out the right Python provider for the build + + Python can be called python3, python2 or merely python, but we're + fine with + either. + + configure.ac | 2 ++ + src/libmbim-glib/generated/Makefile.am | 26 +++++++++++++------------- + 2 files changed, 15 insertions(+), 13 deletions(-) + +commit 86e8e8cdd65a8a7b5bb40b04068358dc8ee5473f +Author: Lubomir Rintel +Date: Tue Apr 24 08:08:46 2018 +0200 + + all: drop exec bit and shebang from Python modules + + Only the executables are supposed to possess those. + + build-aux/mbim-codegen/Message.py | 1 - + build-aux/mbim-codegen/ObjectList.py | 1 - + build-aux/mbim-codegen/Struct.py | 1 - + build-aux/mbim-codegen/utils.py | 1 - + 4 files changed, 4 deletions(-) + +commit b2af1edd5c813c8b09491cbb09f4c38f0f00ff2e +Author: Ben Chan +Date: Wed Jan 31 21:56:41 2018 -0800 + + mbimcli: longer timeout for '--disconnect' operation + + src/mbimcli/mbimcli-basic-connect.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2e99e5f8a8cf2e73cea971abae35731b80249941 +Author: Ben Chan +Date: Wed Jan 31 21:56:40 2018 -0800 + + libmbim-glib,message: handle unknown status when setting error + + g_set_error_literal() requires a non-NULL 'message' argument. Passing + mbim_status_error_get_string() as the 'message' argument to + g_set_error_literal() could result in an assertion as + mbim_status_error_get_string() returns NULL for a status code + without an + associated MbimStatusError enum. + + src/libmbim-glib/mbim-message.c | 40 + ++++++++++++++++++++++++---------------- + 1 file changed, 24 insertions(+), 16 deletions(-) + +commit 18eb8aceede2092e4db61ef93caf94f0154c7bf7 +Author: Dan Williams +Date: Mon Jan 22 13:01:02 2018 -0600 + + mbimcli: add "ip-type" property to --connect + + src/mbimcli/mbimcli-basic-connect.c | 64 + ++++++++++++++++++++++++++++--------- + 1 file changed, 49 insertions(+), 15 deletions(-) + +commit 156859daee873d7415c18620e0b5601d607c2f30 +Author: Aleksander Morgado +Date: Sat Jan 20 10:29:43 2018 +0100 + + build: post release version bump to 1.17.0 + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 16e15d49297f72397f6b691cf7a9ccf47bdae844 +Author: Aleksander Morgado +Date: Sat Jan 20 10:26:11 2018 +0100 + + release: 1.16.0 + + Updated libtool versioning for the stable release. + + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 1a1d9801e6bb5951aa53068d35357b15ff00851e +Author: Aleksander Morgado +Date: Sat Jan 20 10:24:08 2018 +0100 + + Revert "build: post-release version bump to 1.17.0" + + This reverts commit 3134204465a2b13316bcbcf6c646b521c4389cec. + + Didn't bump libtool library versioning... + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3134204465a2b13316bcbcf6c646b521c4389cec +Author: Aleksander Morgado +Date: Sat Jan 20 10:11:46 2018 +0100 + + build: post-release version bump to 1.17.0 + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit bec91eb31bad02ef776a17115e6644ebbf26ffe0 +Author: Aleksander Morgado +Date: Sat Jan 20 09:55:41 2018 +0100 + + release: bump version to 1.16.0 + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 4097bddb60036b2e3560b24b9d16cc74ee3c91c9 +Author: Aleksander Morgado +Date: Sat Jan 20 09:54:58 2018 +0100 + + NEWS: update for 1.16.0 + + NEWS | 42 ++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 42 insertions(+) + +commit 232ad747ee3476e86a4e0af578f7899da7b01344 +Author: Aleksander Morgado +Date: Sat Jan 20 09:31:46 2018 +0100 + + AUTHORS: update based on latest git stats + + AUTHORS | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +commit 4bb9e85d9b16a9bf43c4705f02d4911f7f9207b1 +Author: Aleksander Morgado +Date: Sat Jan 20 09:28:31 2018 +0100 + + mbimcli,mbim-proxy,mbim-network: update copyright year to 2018 + + src/mbim-proxy/mbim-proxy.c | 4 ++-- + src/mbimcli/mbimcli.c | 2 +- + utils/mbim-network.in | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +commit 497b1a6298bd90e791920438e52457abbdcaa8b1 +Author: Aleksander Morgado +Date: Sat Jan 20 10:01:07 2018 +0100 + + build: ignore built test file + + .gitignore | 2 ++ + 1 file changed, 2 insertions(+) + +commit d57ef9cca58ef08e7e6471b396dbdd2c7fa89339 +Author: Aleksander Morgado +Date: Sat Jan 20 09:10:29 2018 +0100 + + docs: update copyright year to 2018 + + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + 1 file changed, 1 insertion(+) + +commit 2ee8bf11ad8fd16f0c36cb292be712e2b10c6fca +Author: Aleksander Morgado +Date: Wed Jan 10 22:08:35 2018 +0100 + + build: don't rebuild mbim-proxy-helpers + + They're already included in the non-inst core library. + + src/libmbim-glib/test/Makefile.am | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +commit 810da895a4d7e722a9dae40578e52d12135e262b +Author: Aleksander Morgado +Date: Wed Jan 10 22:02:18 2018 +0100 + + docs: add missing pieces to document the Intel Firmware Update service + + docs/reference/libmbim-glib/libmbim-glib-common.sections | 4 ++++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + 2 files changed, 5 insertions(+) + +commit 4128a33e9b08442853aa739070fec3a85c607a55 +Author: Ben Chan +Date: Wed Jan 10 12:47:00 2018 -0800 + + mbimcli: new '--intel-modem-reboot' action + + docs/man/Makefile.am | 1 + + src/mbimcli/Makefile.am | 3 +- + src/mbimcli/mbimcli-intel-firmware-update.c | 159 + ++++++++++++++++++++++++++++ + src/mbimcli/mbimcli.c | 8 ++ + src/mbimcli/mbimcli.h | 4 + + 5 files changed, 174 insertions(+), 1 deletion(-) + +commit d2ae618dd598fb05d42c914ef74ba09c6b80b032 +Author: Ben Chan +Date: Wed Jan 10 12:46:59 2018 -0800 + + intel-firmware-update: add support for Intel Firmware Update service + + data/Makefile.am | 3 ++- + data/mbim-service-intel-firmware-update.json | 11 +++++++++++ + docs/reference/libmbim-glib/Makefile.am | 3 ++- + .../libmbim-glib/libmbim-glib-common.sections | 2 ++ + src/libmbim-glib/generated/Makefile.am | 18 + +++++++++++++++--- + src/libmbim-glib/libmbim-glib.h | 1 + + src/libmbim-glib/mbim-cid.c | 12 ++++++++++++ + src/libmbim-glib/mbim-cid.h | 12 ++++++++++++ + src/libmbim-glib/mbim-uuid.c | 13 +++++++++++++ + src/libmbim-glib/mbim-uuid.h | 11 +++++++++++ + src/libmbim-glib/test/test-uuid.c | 8 ++++++++ + 11 files changed, 89 insertions(+), 5 deletions(-) + +commit bf3a6ab8e01ecf9ee7494aade4bcbd59c1e71c3f +Author: Aleksander Morgado +Date: Wed Sep 13 22:12:10 2017 -0700 + + libmbim-glib,device: port transactions to GTask + + src/libmbim-glib/mbim-device.c | 464 + ++++++++++++++++++++++------------------- + 1 file changed, 248 insertions(+), 216 deletions(-) + +commit b9a684084f753e9025f16b4c4fbf40d92a63c3e3 +Author: Aleksander Morgado +Date: Sat Aug 19 12:35:11 2017 +0200 + + mbim-proxy: port internal device open to GTask + + src/libmbim-glib/mbim-proxy.c | 83 + +++++++++++++++++++++---------------------- + 1 file changed, 40 insertions(+), 43 deletions(-) + +commit 0cd2280bf5912c84f817e4a0b1c5a889ac65583b +Author: Aleksander Morgado +Date: Thu Sep 14 07:02:11 2017 -0700 + + build: add missing gtk-doc.m4 + + Fixes: 9ef8723927c28d731e8f4041e45fb4df6c919a0b + + m4/gtk-doc.m4 | 88 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 88 insertions(+) + +commit 7becf366e78a71778232ca636f7677bd00ea2a00 +Author: Aleksander Morgado +Date: Wed Sep 13 18:25:22 2017 +0200 + + build: generate ChangeLog from git during dist + + Makefile.am | 14 ++++++++++++++ + autogen.sh | 1 - + 2 files changed, 14 insertions(+), 1 deletion(-) + +commit e50f84f3fc499042939a190994127bd7718953ce +Author: Aleksander Morgado +Date: Wed Sep 13 18:13:39 2017 +0200 + + doc,atds: avoid redefining MbimAtdsProvider documentation + + MbimAtdsProvider is a struct and is already documented in the ATDS + service doc. + + docs/reference/libmbim-glib/libmbim-glib-common.sections | 1 - + 1 file changed, 1 deletion(-) + +commit 6ec653bc83c364ff24145d348bfbfbd771ab31e3 +Author: Aleksander Morgado +Date: Wed Sep 13 17:55:43 2017 +0200 + + libmbim-glib,uuid: also document internal enum value + + Just to make gtk-doc happy really. + + src/libmbim-glib/mbim-uuid.h | 1 + + 1 file changed, 1 insertion(+) + +commit 040f3b43ffd50ed932b66e7ebd361bb94eec34a9 +Author: Aleksander Morgado +Date: Wed Sep 13 17:49:00 2017 +0200 + + build: the m4 directory always exists + + Even when cloning a git checkout, as we have m4/compiler-warnings + under version control. + + autogen.sh | 1 - + 1 file changed, 1 deletion(-) + +commit 9ef8723927c28d731e8f4041e45fb4df6c919a0b +Author: Aleksander Morgado +Date: Wed Sep 13 17:32:43 2017 +0200 + + build: import gtk-doc support + + Remove the need to run `gtkdocize' when building from git; this should + be an operation done by the maintainer when modernizing the gtk-doc + setup (think of e.g. gettextize), no need to do it unconditionally. + + This makes it easier for platforms without gtk-doc to build from git. + + When trying to build with documentation enabled and gtk-doc isn't + found, we get some nice warnings and errors in the configure report: + + checking for gtk-doc... no + configure: WARNING: + You will not be able to create source packages with 'make dist' + because gtk-doc >= 1.0 is not found. + checking for gtkdoc-check... no + checking for gtkdoc-check... no + checking for gtkdoc-rebase... no + checking for gtkdoc-mkpdf... no + checking whether to build gtk-doc documentation... yes + configure: error: + You must have gtk-doc >= 1.0 installed to build documentation + for + ModemManager. Please install gtk-doc or disable building the + documentation by adding '--disable-gtk-doc' to './configure'. + + Files generated with gtkdocize (gtk-doc) 1.26.1. + + .gitignore | 1 - + autogen.sh | 1 - + gtk-doc.make | 302 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 302 insertions(+), 2 deletions(-) + +commit 4f0f3f85cdab90635bbf58e17bc1dc91fc7f06af +Author: Aleksander Morgado +Date: Wed Sep 13 17:02:59 2017 +0200 + + api: don't use intermediate variables for deprecation warnings + + Using an intermediate constant variable breaks compilation with C + compilers, as these variables cannot be used as initializers. + + Instead, define a deprecated type and cast all deprecated symbols to + that type. We lose the information about what the new replacement + symbol is, but we don't break compilation. + + Also, add MBIM_DISABLE_DEPRECATED guards around deprecated symbols. So + that when this symbol is defined, e.g. via CFLAGS, building a program + that uses the libmbim API will fail if the program references + deprecated symbols. For now we just use it to keep gtk-doc-scan happy + and avoid unnecessary warnings. + + Equivalent to ModemManager commits eedd4ab4457 and f0bb6ef856. + + docs/reference/libmbim-glib/Makefile.am | 2 +- + .../libmbim-glib/libmbim-glib-common.sections | 3 +++ + src/libmbim-glib/mbim-compat.c | 4 ++++ + src/libmbim-glib/mbim-compat.h | 22 + ++++++++++++++-------- + 4 files changed, 22 insertions(+), 9 deletions(-) + +commit 7626a0784b602ea01192a068c745a21bd9095781 +Author: Aleksander Morgado +Date: Sun Aug 6 17:08:10 2017 +0200 + + device: detect already open MBIM channel on EM7345 + + If we try to 'MBIM open' the channel with a Sierra Wireless EM7345 + (FIH7160_V1.1_MODEM_01.1349.12) and the channel is already open in the + device (e.g. mbim-proxy crashed and we try to reopen, or just running + consecutive mbimcli commands with --no-close), the device returns a + 'MBIM close done' message for every 'MBIM open' request we send. + + We update the logic to try to detect this case, and if we do, we + launch an explicit 'MBIM close' operation before retrying the 'MBIM + open' again. + + E.g. this is the flow when trying to run mbimcli command while the + MBIM channel is already open in the device side: + + $ mbimcli -d /dev/cdc-wdm1 --query-device-caps --no-close + --verbose + [06 ago 2017, 16:58:21] [Debug] opening device... + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Queried max + control message size: 512 + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message... + <<<<<< RAW: + <<<<<< length = 16 + <<<<<< data = 01:00:00:00:10:00:00:00:01:00:00:00:00:02:00:00 + + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message + (translated)... + <<<<<< Header: + <<<<<< length = 16 + <<<<<< type = open (0x00000001) + <<<<<< transaction = 1 + <<<<<< Contents: + <<<<<< max_control_transfer = 512 + + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received + message... + >>>>>> RAW: + >>>>>> length = 16 + >>>>>> data = 02:00:00:80:10:00:00:00:02:00:00:00:00:00:00:00 + + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] No transaction + matched in received message + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received + unexpected message (translated)... + >>>>>> Header: + >>>>>> length = 16 + >>>>>> type = close-done (0x80000002) + >>>>>> transaction = 2 + >>>>>> Contents: + >>>>>> status error = 'None' (0x00000000) + + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message... + <<<<<< RAW: + <<<<<< length = 12 + <<<<<< data = 02:00:00:00:0C:00:00:00:02:00:00:00 + + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message + (translated)... + <<<<<< Header: + <<<<<< length = 12 + <<<<<< type = close (0x00000002) + <<<<<< transaction = 2 + + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received + message... + >>>>>> RAW: + >>>>>> length = 16 + >>>>>> data = 02:00:00:80:10:00:00:00:02:00:00:00:00:00:00:00 + + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message... + <<<<<< RAW: + <<<<<< length = 16 + <<<<<< data = 01:00:00:00:10:00:00:00:03:00:00:00:00:02:00:00 + + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message + (translated)... + <<<<<< Header: + <<<<<< length = 16 + <<<<<< type = open (0x00000001) + <<<<<< transaction = 3 + <<<<<< Contents: + <<<<<< max_control_transfer = 512 + + [06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received + message... + >>>>>> RAW: + >>>>>> length = 16 + >>>>>> data = 01:00:00:80:10:00:00:00:03:00:00:00:00:00:00:00 + + [06 ago 2017, 16:58:21] [Debug] MBIM Device at '/dev/cdc-wdm1' + ready + + src/libmbim-glib/mbim-device.c | 114 + +++++++++++++++++++++++++++++++++++++++-- + src/libmbim-glib/mbim-errors.h | 6 ++- + 2 files changed, 115 insertions(+), 5 deletions(-) + +commit 9aef2e779dbec73d3740ef5281a9f1487cf84307 +Author: Aleksander Morgado +Date: Sun Aug 6 17:08:09 2017 +0200 + + device: open timeout check in main state machine + + Lets check if the operation timed out on the main state machine, + instead of when the open command response is processed. This will + allow us to queue up new steps sending/receiving messages and have + a single place to check the timeout for all of them. + + src/libmbim-glib/mbim-device.c | 39 + ++++++++++++++++++++++++--------------- + 1 file changed, 24 insertions(+), 15 deletions(-) + +commit 417b0b80023dc30d61c111ec0a54da2884d3a541 +Author: Aleksander Morgado +Date: Mon Sep 11 09:31:03 2017 +0200 + + mbim-device: prefer realpath() to canonicalize_file_name() + + Usually the canonicalize_file_name() GNU extension is preferred to the + POSIX realpath(), as it covers some of the limitations the latter has. + But this extension isn't available in lots of platforms or in other + c library implementations (e.g. musl), so just default to the POSIX + method to improve portability. + + Note that the check for canonicalize_file_name() availability during + configure isn't as trivial as adding a new AC_CHECK_FUNCS(), and + importing a gnulib module seems overkill just for this one liner. + + src/libmbim-glib/mbim-device.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5bb673fe87ff9462bdec6435487d57982f886968 +Author: Aleksander Morgado +Date: Sun Aug 6 13:13:40 2017 +0200 + + device: avoid signals sent to the mbim-proxy process + + If e.g. mbim-proxy is started by ModemManager and we send a Ctrl+C to + it, the signal would be propagated to the mbim-proxy process and we + would kill it right away, while leaving ModemManager still around + wondering why the socket to the proxy got a HUP. + + Avoid this, by making sure the mbim-proxy gets its own process group. + + src/libmbim-glib/mbim-device.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +commit cd65ee939cbc95de7ee50e1fd3756c35fddaa41f +Author: Ben Chan +Date: Mon Aug 7 13:40:19 2017 -0700 + + mbimcli: new '--query-pin-list' action + + This patch adds a new '--query-pin-list' action to mbimcli for + querying + the list of PINs supported by a MBIM device and additional details for + each PIN type. + + src/mbimcli/mbimcli-basic-connect.c | 116 + ++++++++++++++++++++++++++++++++++++ + 1 file changed, 116 insertions(+) + +commit 2fbfb74c14ebea038aa08186af7ccaa37ee633dd +Author: Aleksander Morgado +Date: Sun Jul 30 17:42:03 2017 +0200 + + mbim-proxy: avoid double-free of 'opening device info' struct + + When the device is gone while an open() operation is ongoing, we're + completing and freeing the 'opening device info' struct, but we didn't + remove it from the private info, so when device_open_ready() happened, + we were trying to complete and free it again. + + Avoid this issue by making sure no already-freed structs are kept in + the private info, and also allowing device_open_ready() to get called + without a valid pending 'opening device info'. + + [30 Jul 2017, 15:24:33] [Debug] [/dev/cdc-wdm0] Sent message + (translated)... + <<<<<< Header: + <<<<<< length = 16 + <<<<<< type = open (0x00000001) + <<<<<< transaction = 1 + <<<<<< Contents: + <<<<<< max_control_transfer = 4096 + + [30 Jul 2017, 15:24:38] [Debug] [/dev/cdc-wdm0] Sent message... + <<<<<< RAW: + <<<<<< length = 16 + <<<<<< data = 01:00:00:00:10:00:00:00:02:00:00:00:00:10:00:00 + + [30 Jul 2017, 15:24:38] [Debug] [/dev/cdc-wdm0] Sent message + (translated)... + <<<<<< Header: + <<<<<< length = 16 + <<<<<< type = open (0x00000001) + <<<<<< transaction = 2 + <<<<<< Contents: + <<<<<< max_control_transfer = 4096 + + [30 Jul 2017, 15:24:42] [Debug] [/dev/cdc-wdm0] unexpected + port hangup! + [30 Jul 2017, 15:24:42] [Debug] Client (7) connection closed... + [30 Jul 2017, 15:24:42] -Warning ** error opening device: Device + is gone + [30 Jul 2017, 15:24:43] [Debug] open operation timed out: closed + ==24404== Invalid read of size 8 + ==24404== at 0x4E4A673: peek_opening_device_info (in + /usr/lib/libmbim-glib.so.4.2.0) + ==24404== by 0x4E4BD7B: device_open_ready (in + /usr/lib/libmbim-glib.so.4.2.0) + ==24404== by 0x50CAF61: g_simple_async_result_complete (in + /usr/lib/libgio-2.0.so.0.3707.0) + ==24404== by 0x50CB028: complete_in_idle_cb (in + /usr/lib/libgio-2.0.so.0.3707.0) + ==24404== by 0x5602EEA: g_main_context_dispatch (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x5603207: g_main_context_iterate.isra.13 (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x56035D1: g_main_loop_run (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x4010F8: main (in /usr/lib/mbim-proxy) + ==24404== Address 0x6d3bfe0 is 0 bytes inside a block of size + 16 free'd + ==24404== at 0x4C2A0C0: free (in + /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) + ==24404== by 0x4E4AC21: untrack_device (in + /usr/lib/libmbim-glib.so.4.2.0) + ==24404== by 0x5395392: _g_closure_invoke_va (in + /usr/lib/libgobject-2.0.so.0.3707.0) + ==24404== by 0x53A805D: g_signal_emit_valist (in + /usr/lib/libgobject-2.0.so.0.3707.0) + ==24404== by 0x53A8A51: g_signal_emit (in + /usr/lib/libgobject-2.0.so.0.3707.0) + ==24404== by 0x4E49424: data_available (in + /usr/lib/libmbim-glib.so.4.2.0) + ==24404== by 0x5602EEA: g_main_context_dispatch (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x5603207: g_main_context_iterate.isra.13 (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x56035D1: g_main_loop_run (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x4010F8: main (in /usr/lib/mbim-proxy) + ==24404== Block was alloc'd at + ==24404== at 0x4C2B3D0: malloc (in + /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) + ==24404== by 0x5607B00: g_malloc (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x5617E12: g_slice_alloc (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x5618385: g_slice_alloc0 (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x4E4B1A9: internal_open (in + /usr/lib/libmbim-glib.so.4.2.0) + ==24404== by 0x4E4BAC5: device_new_ready (in + /usr/lib/libmbim-glib.so.4.2.0) + ==24404== by 0x50CAF61: g_simple_async_result_complete (in + /usr/lib/libgio-2.0.so.0.3707.0) + ==24404== by 0x50CB028: complete_in_idle_cb (in + /usr/lib/libgio-2.0.so.0.3707.0) + ==24404== by 0x5602EEA: g_main_context_dispatch (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x5603207: g_main_context_iterate.isra.13 (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x56035D1: g_main_loop_run (in + /usr/lib/libglib-2.0.so.0.3707.0) + ==24404== by 0x4010F8: main (in /usr/lib/mbim-proxy) + ==24404== + + src/libmbim-glib/mbim-proxy.c | 26 +++++++++++++++++--------- + 1 file changed, 17 insertions(+), 9 deletions(-) + +commit c689c7700545feb16381a2e892fa1e00a4d54ee8 +Author: Ben Chan +Date: Mon Jul 31 23:47:45 2017 -0700 + + mbimcli: make output more consistent in capitalization + + src/mbimcli/mbimcli-basic-connect.c | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +commit f2f87bf2b9811ba7fa593ac2ab9852693cef08c2 +Author: Ben Chan +Date: Mon Jul 31 10:50:34 2017 -0700 + + build: add other source files that affect the output of --help-all + + docs/man/Makefile.am | 5 +++++ + 1 file changed, 5 insertions(+) + +commit f2c2df8e4879920923b0423f92ec2a66fbee054d +Author: Ben Chan +Date: Sat Jul 29 01:37:34 2017 -0700 + + mbimcli: show unknown CID name as "unknown" instead of "(null)" + + src/mbimcli/mbimcli-basic-connect.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit cf3c041f590a00b739c1b7eb145642c5ccc80185 +Author: Ben Chan +Date: Thu Jul 27 19:45:55 2017 -0700 + + mbimcli: new '--query-ip-packet-filters' action + + This patch adds a new '--query-ip-packet-filters' action to mbimcli + for + querying the IP packet filters currently set up on a MBIM device. + + src/mbimcli/Makefile.am | 2 + + src/mbimcli/mbimcli-basic-connect.c | 116 + +++++++++++++++++++++++++++++++++++- + 2 files changed, 117 insertions(+), 1 deletion(-) + +commit 44c7593c716ac321d6b2640a86fce34e41d8fbb6 +Author: Ben Chan +Date: Thu Jul 27 19:45:54 2017 -0700 + + mbim-common,test: add unit tests for mbim_common_str_hex + + configure.ac | 1 + + src/common/Makefile.am | 2 +- + src/common/test/Makefile.am | 17 ++++++++++++++ + src/common/test/test-common.c | 54 + +++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 73 insertions(+), 1 deletion(-) + +commit 8e64510e706d7192ec9e0db6c506d05beda9820c +Author: Ben Chan +Date: Thu Jul 27 19:45:53 2017 -0700 + + mbim-common: turn __mbim_utils_str_hex into mbim_common_str_hex + + __mbim_utils_str_hex is a useful utility method for returning + a hexadecimal + string representation of a sequence of bytes in memory. This patch + turns it + into 'mbim_common_str_hex', which can be shared between libmbim-glib + and + mbimcli. + + configure.ac | 7 ++++ + src/Makefile.am | 2 +- + src/common/Makefile.am | 15 +++++++ + src/common/mbim-common.c | 61 + ++++++++++++++++++++++++++++ + src/common/mbim-common.h | 31 ++++++++++++++ + src/libmbim-glib/Makefile.am | 2 + + src/libmbim-glib/mbim-device.c | 15 +++---- + src/libmbim-glib/mbim-utils.c | 36 ---------------- + src/libmbim-glib/mbim-utils.h | 3 -- + src/libmbim-glib/test/Makefile.am | 4 ++ + src/libmbim-glib/test/test-message-builder.c | 6 +-- + src/libmbim-glib/test/test-message-parser.c | 6 +-- + 12 files changed, 135 insertions(+), 53 deletions(-) + +commit 0e2ad4993ebcbcbc52ca0b0cc13a65ecfcbd81c8 +Author: Ben Chan +Date: Wed Jul 26 18:44:53 2017 -0700 + + mbimcli: make 'session_id' variables consistently guint32 + + This patch updates the code to consistently use guint32, instead of + guint, for 'session_id' variables as SessionId is UINT32. + + src/mbimcli/mbimcli-basic-connect.c | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +commit 06dd18bff47f94cb5a4ddadca414cec8bb3858d4 +Author: Ben Chan +Date: Wed Jul 26 18:44:52 2017 -0700 + + mbimcli,ms-firmware-id: fix memory leaks + + src/mbimcli/mbimcli-ms-firmware-id.c | 1 + + 1 file changed, 1 insertion(+) + +commit 79010dab08f7a44c94e47dbe5e403cdeda3c6321 +Author: Ben Chan +Date: Wed Jul 26 18:44:51 2017 -0700 + + mbimcli,basic-connect: fix memory leaks + + src/mbimcli/mbimcli-basic-connect.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +commit 716c4850b9c2c4bdaa07f18fdf364bdf0719786b +Author: Ben Chan +Date: Wed Jul 26 18:44:50 2017 -0700 + + mbimcli,atds: fix memory leaks + + src/mbimcli/mbimcli-atds.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit a1cf1e233fef337a58a2a991a00b1b099a6f2b02 +Author: Ben Chan +Date: Wed Jul 26 18:44:49 2017 -0700 + + mbimcli,phonebook: fix memory leaks + + src/mbimcli/mbimcli-phonebook.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit 8abc5808262cc3048983457d367533c786a19656 +Author: Ben Chan +Date: Wed Jul 26 18:44:48 2017 -0700 + + mbimcli,phonebook: add missing return statement in + set_phonebook_delete_ready + + When mbim_message_phonebook_delete_response_parse fails, + set_phonebook_delete_ready should shutdown with a failure status and + return. + + src/mbimcli/mbimcli-phonebook.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 752855389c8fc7f23e74f2e9e4224dee4e28362d +Author: Ben Chan +Date: Wed Jul 26 11:33:29 2017 -0700 + + mbimcli: ensure 'cancellable' in Context is always initialized + + As the Context struct is allocated via g_slice_new and its + 'cancellable' field + is only set when a GCancellable is provided, there is no guarantee + that the + cancellable field is always initialized. This patch fixes the code + to always + initialize the cancellable field of the Context struct. + + src/mbimcli/mbimcli-atds.c | 3 +-- + src/mbimcli/mbimcli-basic-connect.c | 3 +-- + src/mbimcli/mbimcli-dss.c | 3 +-- + src/mbimcli/mbimcli-ms-firmware-id.c | 3 +-- + src/mbimcli/mbimcli-ms-host-shutdown.c | 3 +-- + src/mbimcli/mbimcli-phonebook.c | 3 +-- + 6 files changed, 6 insertions(+), 12 deletions(-) + +commit 221ab6581f589ed720419c7459e6ae597ead4e05 +Author: Ben Chan +Date: Wed Jul 26 00:35:58 2017 -0700 + + mbimcli: wire up cancellable for query-ip-configuration action + + src/mbimcli/mbimcli-basic-connect.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit 519b0815b11de2b7c441024ef4a05b76cde40d02 +Author: Ben Chan +Date: Wed Jul 26 00:10:00 2017 -0700 + + mbimcli,dss: fix a potential memory leak in set_dss_ready + + src/mbimcli/mbimcli-dss.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit fc81452adabe554e2493aa1dda2af0ef0eaea184 +Author: Ben Chan +Date: Tue Jul 25 23:42:34 2017 -0700 + + mbimcli: avoid calling mbim_message_unref on NULL MbimMessage + + src/mbimcli/mbimcli-basic-connect.c | 1 - + 1 file changed, 1 deletion(-) + +commit 242e7f738bcc7589dc08c901771a90e35f4ef738 +Author: Aleksander Morgado +Date: Tue Jul 18 11:12:45 2017 +0200 + + mbim-device: plug memleak + + ==21554== 64 bytes in 1 blocks are definitely lost in loss record + 2,960 of 4,396 + ==21554== at 0x4C2E10F: realloc (in + /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) + ==21554== by 0x644E0CF: g_realloc (in + /usr/lib/libglib-2.0.so.0.5200.2) + ==21554== by 0x6469C06: ??? (in + /usr/lib/libglib-2.0.so.0.5200.2) + ==21554== by 0x6469F94: g_string_insert_len (in + /usr/lib/libglib-2.0.so.0.5200.2) + ==21554== by 0x64345E1: ??? (in + /usr/lib/libglib-2.0.so.0.5200.2) + ==21554== by 0x643585A: g_build_path (in + /usr/lib/libglib-2.0.so.0.5200.2) + ==21554== by 0x57C25E2: get_descriptors_filepath + (mbim-device.c:837) + ==21554== by 0x57C267A: read_max_control_transfer + (mbim-device.c:921) + ==21554== by 0x57C2F89: create_iochannel_with_socket + (mbim-device.c:1161) + ==21554== by 0x57C2C06: wait_for_proxy_cb (mbim-device.c:1073) + ==21554== by 0x6449332: ??? (in + /usr/lib/libglib-2.0.so.0.5200.2) + ==21554== by 0x64488B4: g_main_context_dispatch (in + /usr/lib/libglib-2.0.so.0.5200.2) + + src/libmbim-glib/mbim-device.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 47c8b0b7e71ad208496c290e564406803276b816 +Author: Ben Chan +Date: Wed Jun 28 08:28:21 2017 -0700 + + libmbim-glib: make gtk-doc work again on deprecated enumerators + + Commit e5b6807d6 "libmbim-glib: fix G_DEPRECATED_FOR annotations" + replaced macro defintions with `static const int' definitions + for those + deprecated enumerators. However, gtk-doc doesn't seem to document + `static const int' defintions. This patch works around the issue by + adding a macro defintion on top of a `static const int' defintion. + + src/libmbim-glib/mbim-compat.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 5f5680f7b604771f8e9f4145e2a2bb41d9bb85a8 +Author: Dan Williams +Date: Wed Jun 28 10:57:26 2017 -0500 + + mbimcli: make ATDS commands consistent with other subsystems + + src/mbimcli/mbimcli-atds.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 1f86135579311bb22d391bde39024f8fb1d014b8 +Author: Dan Williams +Date: Tue Apr 18 15:47:25 2017 -0500 + + atds: add AT&T Device Service implementation + + See + https://code.wireshark.org/review/gitweb?p=wireshark.git;a=blob;f=epan/dissectors/packet-mbim.c + + ATDS/Operators seems to be the same as BasicConnect/VisibleProviders + except that + CellularClass has been replaced with a "Provider PLMN Mode". + + ATDS/RegisterState seems to be exactly the same as + BasicConnect/RegisterState if + the Wireshark dissector is to be believed. + + Doesn't implement ATDS/SetProjectionTables yet. + + data/Makefile.am | 3 +- + data/mbim-service-atds.json | 147 +++++++++ + docs/reference/libmbim-glib/Makefile.am | 3 +- + .../libmbim-glib/libmbim-glib-common.sections | 17 ++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + src/libmbim-glib/generated/Makefile.am | 18 +- + src/libmbim-glib/libmbim-glib.h | 1 + + src/libmbim-glib/mbim-cid.c | 18 ++ + src/libmbim-glib/mbim-cid.h | 20 ++ + src/libmbim-glib/mbim-enums.h | 36 +++ + src/libmbim-glib/mbim-uuid.c | 13 + + src/libmbim-glib/mbim-uuid.h | 11 + + src/mbimcli/Makefile.am | 3 +- + src/mbimcli/mbimcli-atds.c | 336 + +++++++++++++++++++++ + src/mbimcli/mbimcli.c | 8 + + src/mbimcli/mbimcli.h | 4 + + 16 files changed, 633 insertions(+), 6 deletions(-) + +commit e5b6807d6f2a8488878cd1cc1530f3b3fd92a2ec +Author: Ben Chan +Date: Tue Jun 27 23:37:43 2017 -0700 + + libmbim-glib: fix G_DEPRECATED_FOR annotations + + mbim-compat.h defines a few deprecated enumerators as an alias + to their + equivalence using macros and annotates those macros with + G_DEPRECATED_FOR, which may be expanded to + `__attribute__((deprecated))'. + + Neither gcc nor clang supports `__attribute__((deprecated))' + on macros. + Thus, a G_DEPRECATED_FOR annotation before a macro definition is + actually associated with the next identifier found after the macro + definition, which is incorrect. + + Alternatively, the G_DEPRECATED_FOR annotation can be used on the + deprecated enumerators. But only gcc 6 or above supports enumerator + attributes. + + To address the issue, this patch defines the deprecated enumerators as + `static const int' values, which can then be annotated with + G_DEPRECATED_FOR. + + src/libmbim-glib/mbim-compat.h | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +commit 895d9847e461cb03d9772a2a60f863f4265d1506 +Author: Ben Chan +Date: Tue Jun 27 00:15:01 2017 -0700 + + libmbim-glib: add MBIM_READY_INFO_FLAG_NONE to MbimReadyInfoFlag + + According to MBIM spec Rev 1.0 Errata-1 Table 10-17, a value 0 of the + ReadyInfo field in MBIM_SUBSCRIBER_READY_INFO refers to + MBIMReadyInfoFlagsNone and indicates that the device is in normal + mode. + + This patch adds MBIM_READY_INFO_FLAG_NONE (0) to the MbimReadyInfoFlag + enum, such that `mbimcli --query-subscriber-ready-info` shows 'Ready + info' as 'none' instead of 'unknown' when the ReadyInfo field is 0. + + src/libmbim-glib/mbim-enums.h | 2 ++ + 1 file changed, 2 insertions(+) + +commit b6e03a03906b6b4d632b41f2039f4f62311278fc +Author: Ben Chan +Date: Mon Jun 26 20:58:22 2017 -0700 + + glib: remove invocations of g_type_init() + + g_type_init() has been deprecated (and also marked with the attribute + 'deprecated') since glib 2.36 as the type system is automatically + initialized. Since the minimum version of glib required by libmbim is + 2.36, calling g_type_init() isn't necessarily in the libmbim code. + + src/mbim-proxy/mbim-proxy.c | 4 ---- + src/mbimcli/mbimcli.c | 4 ---- + 2 files changed, 8 deletions(-) + +commit e34fde1e097ed56506b64a1abe66774038ffde2b +Author: Ben Chan +Date: Thu Jun 22 04:21:04 2017 -0700 + + build: only define WITH_UDEV if enabled + + configure.ac | 1 - + src/libmbim-glib/mbim-device.c | 4 ++-- + 2 files changed, 2 insertions(+), 3 deletions(-) + +commit 9896cdad8a027fba76965d81f9e61622ed0d80ea +Author: Jaroslav Stepanek +Date: Mon Jun 5 13:50:04 2017 +0200 + + mbim-network: add support for short help switch + + https://bugs.freedesktop.org/show_bug.cgi?id=101279 + + utils/mbim-network.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 4148d2d9de1b62b86cd62414856a5c388a3f5f25 +Author: Ben Chan +Date: Tue May 2 06:27:13 2017 -0700 + + libmbim-glib,device: port create_iochannel to use GTask + + src/libmbim-glib/mbim-device.c | 163 + +++++++++++++++++++++-------------------- + 1 file changed, 83 insertions(+), 80 deletions(-) + +commit 205dc3b36f3ffac2fa6addc0110e3ab4d3c42f3a +Author: Ben Chan +Date: Tue May 2 06:27:12 2017 -0700 + + libmbim-glib,device: port mbim_device_close to use GTask + + src/libmbim-glib/mbim-device.c | 53 + ++++++++++++++++++------------------------ + 1 file changed, 22 insertions(+), 31 deletions(-) + +commit 01fbb01748754185e715af01d03169c4d155d6ca +Author: Ben Chan +Date: Tue May 2 06:27:11 2017 -0700 + + libmbim-glib,device: port mbim_device_open_full to use GTask + + src/libmbim-glib/mbim-device.c | 159 + ++++++++++++++++++++++------------------- + 1 file changed, 84 insertions(+), 75 deletions(-) + +commit 50f359fbe8edc84dcfa8c13873e8f0bbf6e79bd3 +Author: Ben Chan +Date: Tue May 2 06:27:10 2017 -0700 + + libmbim-glib,device: port initable_init_async to use GTask + + src/libmbim-glib/mbim-device.c | 70 + +++++++++++++++--------------------------- + 1 file changed, 24 insertions(+), 46 deletions(-) + +commit ef772d671785d42fdb550ef9b064d210d43ba78a +Author: Ben Chan +Date: Mon Apr 24 10:48:40 2017 -0700 + + build: require glib 2.36 + + We want to start using new features like GTask, which is available in + GLib 2.36. + + configure.ac | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +commit 6c78817ecde8c0d303783b53d1137410e7900826 +Author: Carlo Lobrano +Date: Thu Mar 23 11:58:58 2017 +0100 + + libmbim-glib,device: misplaced trace_transaction + + Moved trace_transaction with error message in the right context. + + src/libmbim-glib/mbim-device.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit cad5a59e4edab65a0f477eec858e5eab99762452 +Author: Aleksander Morgado +Date: Wed Mar 8 14:12:09 2017 +0100 + + docs: update copyright year to 2017 + + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit 27592d6c104a8fa034107f96bca40218336a1c12 +Author: Aleksander Morgado +Date: Wed Feb 8 23:32:40 2017 +0100 + + libmbim-glib,device: destroy channel when closed + + src/libmbim-glib/mbim-device.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit bc21faa7a2567415035499e19221fa6826349d3f +Author: Aleksander Morgado +Date: Wed Feb 8 21:29:44 2017 +0100 + + libmbim-glib: return NULL on method returning string + + No big deal anyway due to the g_assert_not_reached(), so just to make + compilers happy. + + src/libmbim-glib/mbim-cid.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ec84b21414ab1b86f23564650ff5a9dead1faf27 +Author: Aleksander Morgado +Date: Wed Feb 8 21:21:26 2017 +0100 + + libmbim-glib: allow printing cid from invalid service + + E.g. to avoid warnings like this: + + [08 feb 2017, 21:15:45] -Error ** mbim_cid_get_printable: + assertion 'service > MBIM_SERVICE_INVALID' failed + [08 feb 2017, 21:15:45] [Debug] [/dev/cdc-wdm1] Received message + (translated)... + >>>>>> Header: + >>>>>> length = 48 + >>>>>> type = command-done (0x80000003) + >>>>>> transaction = 2 + >>>>>> Fragment header: + >>>>>> total = 1 + >>>>>> current = 0 + >>>>>> Contents: + >>>>>> status error = 'NoDeviceSupport' (0x00000009) + >>>>>> service = 'invalid' + (00000000-0000-0000-0000-000000000000) + >>>>>> cid = '(null)' (0x00000001) + + src/libmbim-glib/mbim-cid.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit d2cd0a2a2feb64548c9d3d2b2e1d781b652fd4eb +Author: Ben Chan +Date: Thu Feb 2 16:46:09 2017 -0800 + + glib: guard invocations of g_type_init() + + g_type_init() has been deprecated (and also marked with the attribute + 'deprecated') since glib 2.36 as the type system is automatically + initialized. Since the minimum version of glib required by libmbim is + 2.32, calling g_type_init() should be guarded with the + GLIB_CHECK_VERSION macro. When libmbim later requires at least glib + 2.36, we can completely remove all invocations of g_type_init() + from the + code. + + src/mbim-proxy/mbim-proxy.c | 2 ++ + src/mbimcli/mbimcli.c | 2 ++ + 2 files changed, 4 insertions(+) + +commit f5a34e57f6c543e893366c987402b9d4a56d96b0 +Author: Aleksander Morgado +Date: Wed Feb 1 23:20:19 2017 +0100 + + Revert "libmbim-glib,device: plug memleak in open timeout" + + This reverts commit f6249fee1710484a749a5b919ca130d36d64eb2d. + + Oops... + + src/libmbim-glib/mbim-device.c | 1 - + 1 file changed, 1 deletion(-) + +commit f6249fee1710484a749a5b919ca130d36d64eb2d +Author: Aleksander Morgado +Date: Wed Feb 1 23:05:40 2017 +0100 + + libmbim-glib,device: plug memleak in open timeout + + src/libmbim-glib/mbim-device.c | 1 + + 1 file changed, 1 insertion(+) + +commit 8286e0b93f742295d0fcdfae655d97fe7bb0dcf4 +Author: Aleksander Morgado +Date: Sun Jan 15 23:47:56 2017 +0100 + + libmbim-glib,device: fix segfault when cancellable already cancelled + + The g_cancellable_connect() method will also call the given callback + when the input cancellable is already cancelled. This means that the + cancellation callback should also handle the case where the + transaction + hasn't been stored in the tracking table yet. + + Thanks to Benoît Donnette for the + report and + the suggested fix. + + This is the port of the same bugfix from libqmi, see: + https://bugs.freedesktop.org/show_bug.cgi?id=98283 + + src/libmbim-glib/mbim-device.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 878e089d70814dcc5e39566bd0842697ee4b3364 +Author: Aleksander Morgado +Date: Fri Nov 25 14:48:32 2016 +0100 + + mbimcli: use g_clear_object() to cleanup cancellable after async + operation + + src/mbimcli/mbimcli.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +commit ceb68e763672f096f8ef33d44db3db1dc2d5222e +Author: Aleksander Morgado +Date: Fri Nov 25 14:43:55 2016 +0100 + + mbimcli: use g_unix_signal_add() to setup signals + + So that we can safely call GLib/GIO functions from within the signal + handlers. + + src/mbimcli/mbimcli.c | 32 +++++++++++++++++--------------- + 1 file changed, 17 insertions(+), 15 deletions(-) + +commit 5d2acdaf9a0064e56bfe6479e153a1c44b0db1dc +Author: Aleksander Morgado +Date: Fri Nov 25 14:24:16 2016 +0100 + + mbimcli: fix second ctrl+c handling in mbimcli + + A single ctrl+c cancels the GCancellable, and the second ctrl+c should + have stopped the GMainLoop, but that was never happening. + + src/mbimcli/mbimcli.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5c3935b75fc4dd46bc469e18aabb312e74b5915d +Author: Dan Williams +Date: Tue Oct 4 09:28:02 2016 -0500 + + libmbim-glib: add MBIM_STATUS_ERROR_CONTEXT_NOT_SUPPORTED + + From the MBIM 1.0 specification Errata 1 document. + + http://www.usb.org/developers/docs/devclass_docs/MBIM10Errata1_073013.zip + + src/libmbim-glib/mbim-errors.h | 2 ++ + 1 file changed, 2 insertions(+) + +commit 4fed3fffe64bec88b5052d30df0257cd65abf5fe +Author: Dan Williams +Date: Mon Aug 1 13:05:06 2016 -0500 + + mbim-codegen: fix message name in generated code doc for parse + functions + + At the point where the codegen happens, {name} is the name of the last + function argument, not of the message. Also fix up the documentation + to + say "Parses and returns parameters" instead of "Create a new request" + since + parsing doesn't create any requests. + + New: * Parses and returns parameters of the 'Signal State' + notification command in the 'Basic Connect' service. + Old: * Create a new request for the 'ErrorRateThreshold' notification + command in the 'Basic Connect' service. + + build-aux/mbim-codegen/Message.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit badcf2a4d6e3462143cd555f05dbe2f3723d7ce6 +Author: Aleksander Morgado +Date: Fri Jul 22 12:36:52 2016 +0200 + + mbim-network: fix bashisms when checking arguments + + utils/mbim-network.in | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit 6f87e17cd57bd735711349711ccf30b8746c2fcb +Author: Aleksander Morgado +Date: Wed Jul 13 11:36:11 2016 +0200 + + libmbim-glib,message: avoid iconv() + + There are systems out there that come with a fake iconv() + implementation that + don't support translations to/from UTF-16LE. We can easily avoid + that by using + the built-in translations to UTF-16HE provided by GLib itself, + we just need to + take care of converting from HE to/from LE. + + src/libmbim-glib/mbim-message.c | 74 + +++++++++++++++++++++++++---------------- + 1 file changed, 45 insertions(+), 29 deletions(-) + +commit 79bdd9f1e782c27858b9c32f300f4fb4e6b12558 +Author: Aleksander Morgado +Date: Tue Jul 5 12:00:34 2016 +0200 + + build: post release version bump to 1.15.0 + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 50cddf48823f05ec124afad80c0d948184e19b00 +Author: Aleksander Morgado +Date: Tue Jul 5 11:26:18 2016 +0200 + + release: bump version to 1.14.0 + + configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 7804a99d6dbb16967beb67edd3644d56b9972092 +Author: Aleksander Morgado +Date: Tue Jul 5 11:19:42 2016 +0200 + + build: update NEWS + + NEWS | 41 +++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 41 insertions(+) + +commit 6cc33e0985428f2b1bc9c87ab59a9792d104cc64 +Author: Aleksander Morgado +Date: Mon Jun 6 22:25:42 2016 +0200 + + docs: add missing documentation for the qmi-over-mbim service + + docs/reference/libmbim-glib/Makefile.am | 3 ++- + docs/reference/libmbim-glib/libmbim-glib-common.sections | 6 ++++++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + 3 files changed, 9 insertions(+), 1 deletion(-) + +commit 05ba9dc1136bf92bb276f34df315584b6a51bfb4 +Author: Aleksander Morgado +Date: Mon Jun 6 15:11:06 2016 +0200 + + libmbim-glib,message: internal helper to apply padding + + src/libmbim-glib/mbim-message.c | 55 + ++++++++++++++++++++++------------------- + 1 file changed, 30 insertions(+), 25 deletions(-) + +commit 809418e9026368acc9d3d5ffd6f2c585b6a3cd59 +Author: Aleksander Morgado +Date: Mon Jun 6 14:57:54 2016 +0200 + + libmbim-glib,message: minor coding style fix + + src/libmbim-glib/mbim-message.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c86109b6006b851475c53ab8fee1b7b5c76c04b0 +Author: Aleksander Morgado +Date: Mon Jun 6 14:55:33 2016 +0200 + + libmbim-glib,cid: user helpers symbols to define cid capabilities + + src/libmbim-glib/mbim-cid.c | 98 + ++++++++++++++++++++++++--------------------- + 1 file changed, 53 insertions(+), 45 deletions(-) + +commit b8b36aedfeea3e274f3b8a633e176bb1e8428370 +Author: Aleksander Morgado +Date: Mon Jun 6 14:50:37 2016 +0200 + + libmbim-glib,uuid: define MBIM_SERVICE_LAST in internal compilation + only + + src/libmbim-glib/mbim-cid.c | 12 +++++------- + src/libmbim-glib/mbim-uuid.c | 8 +++----- + src/libmbim-glib/mbim-uuid.h | 6 ++++-- + 3 files changed, 12 insertions(+), 14 deletions(-) + +commit 7f5300b98b8011bb64bbf8b6dd66697ba37dece5 +Author: Emil Ljungdahl +Date: Wed Apr 6 19:25:27 2016 +0200 + + Avoid affecting the padding behavior for other services than QMI + + build-aux/mbim-codegen/Message.py | 9 +++++---- + build-aux/mbim-codegen/Struct.py | 9 +++++---- + data/mbim-service-qmi.json | 6 ++++-- + src/libmbim-glib/mbim-message-private.h | 4 ++-- + src/libmbim-glib/mbim-message.c | 10 +++++----- + 5 files changed, 21 insertions(+), 17 deletions(-) + +commit 7733044d69ba54906dc26ea98747f1a3c32d7264 +Author: Emil Ljungdahl +Date: Wed Apr 6 19:16:47 2016 +0200 + + Added json file lost in original qmi-over-mbim patch + + data/mbim-service-qmi.json | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +commit 7bf40d20b8afc071de26c77b9c0b668fcb799b90 +Author: Collin McMillan +Date: Mon Apr 4 11:33:46 2016 +0200 + + QMI via MBIM + + Signed-off-by: Bjørn Mork + + build-aux/mbim-codegen/Message.py | 8 ++++---- + build-aux/mbim-codegen/Struct.py | 8 ++++---- + data/Makefile.am | 3 ++- + src/libmbim-glib/generated/Makefile.am | 18 +++++++++++++++--- + src/libmbim-glib/libmbim-glib.h | 1 + + src/libmbim-glib/mbim-cid.c | 25 +++++++++++++++++++++---- + src/libmbim-glib/mbim-cid.h | 12 ++++++++++++ + src/libmbim-glib/mbim-message-private.h | 2 ++ + src/libmbim-glib/mbim-message.c | 25 ++++++++++++++++--------- + src/libmbim-glib/mbim-uuid.c | 18 ++++++++++++++++-- + src/libmbim-glib/mbim-uuid.h | 11 +++++++++++ + 11 files changed, 104 insertions(+), 27 deletions(-) + +commit a0578e5e15228999d1215df1bdadfb8774c5ecc3 +Author: Aleksander Morgado +Date: Fri Jul 1 10:46:50 2016 +0200 + + mbimcli: allow passing empty APN in --connect + + src/mbimcli/mbimcli-basic-connect.c | 38 + +++++++++++++++++-------------------- + 1 file changed, 17 insertions(+), 21 deletions(-) + +commit 3f4e777e4a2af7fcf8b020accb8949d0bcd91c5b +Author: Aleksander Morgado +Date: Fri Jul 1 10:24:00 2016 +0200 + + mbimcli: allow querying IP configuration out of the connection attempt + + src/mbimcli/mbimcli-basic-connect.c | 112 + +++++++++++++++++++++++++----------- + 1 file changed, 79 insertions(+), 33 deletions(-) + +commit bcf3f09df4e8a765fae9d462dc087f3de619fde4 +Author: Aleksander Morgado +Date: Thu Jun 30 10:05:53 2016 +0200 + + mbim-network: allow using the mbim-proxy setup + + utils/mbim-network.in | 32 ++++++++++++++++++++++---------- + 1 file changed, 22 insertions(+), 10 deletions(-) + +commit 9eaf56e87ecd715ab9922e17b700dd5804884263 +Author: Aleksander Morgado +Date: Thu Jun 30 10:00:40 2016 +0200 + + mbim-network: allow specifying APN user/password in profile + + utils/mbim-network.in | 54 + ++++++++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 51 insertions(+), 3 deletions(-) + +commit 506052b608c0ee55b27cb69028b7606de3fb5927 +Author: Aleksander Morgado +Date: Thu Jun 30 09:38:57 2016 +0200 + + mbim-network: use standard checks for empty variables + + utils/mbim-network.in | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +commit c252c998ea5c1516e2c2d30220c265e56a8dcfb7 +Author: Aleksander Morgado +Date: Thu Jun 30 09:35:16 2016 +0200 + + mbim-network: allow loading profile from a different path + + This effectively makes mbim-network work with multiple devices in + a single system. + + utils/mbim-network.in | 74 + +++++++++++++++++++++++++++++++++++++++++---------- + 1 file changed, 60 insertions(+), 14 deletions(-) + +commit 202349ce952712cd37415d91b5511491f0769d65 +Author: Aleksander Morgado +Date: Mon Apr 11 22:22:33 2016 +0200 + + build: add missing GUDEV_CFLAGS and GUDEV_LIBS + + https://bugs.freedesktop.org/show_bug.cgi?id=94881 + + src/libmbim-glib/Makefile.am | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit 82b7cd5013bcff0c05dd91e6a7f9bbfbf3e53d0d +Author: Aleksander Morgado +Date: Sun Apr 10 13:53:53 2016 +0200 + + build: really make gudev not mandatory + + configure.ac | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit cbab0ef37331702feb9a9eeca3f33395cba76e57 +Author: Aleksander Morgado +Date: Sun Apr 10 13:11:56 2016 +0200 + + build: make gudev optional + + There's really not much benefit on a hard build-dependency on gudev + if we're + just using it to get the path of the descriptors path, so provide + an alternate + implementation for now just using sysfs paths, and make gudev + selection auto. + + configure.ac | 33 ++++++++++++ + src/libmbim-glib/mbim-device.c | 119 + ++++++++++++++++++++++++++++++++++------- + 2 files changed, 133 insertions(+), 19 deletions(-) + +commit f1c3a97ab9e6577ec2bfd0aa4572800589b747fb +Author: Aleksander Morgado +Date: Sun Apr 10 00:00:47 2016 +0200 + + build: update configure report + + configure.ac | 19 +++++++++++++------ + 1 file changed, 13 insertions(+), 6 deletions(-) + +commit d2a1a7f82ba01114f33113f97fc5a884a4a1a988 +Author: Philip Withnall +Date: Sun Mar 20 17:57:56 2016 +0000 + + build: Run configure script from builddir rather than srcdir + + If building from a clean git clone with builddir ≠ srcdir, + the configure + script is (correctly) generated in builddir by autoconf. Execute + it from + there, rather than from the srcdir, so that all the configure products + (Makefiles, etc.) are generated in the builddir. + + https://bugs.freedesktop.org/show_bug.cgi?id=94639 + + autogen.sh | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit e2b3db1a10ba7dd73eea4e96faeec126629b7c19 +Author: Aleksander Morgado +Date: Sat Oct 10 14:56:32 2015 +0200 + + mbimcli: avoid shadowing 'dup' + + src/mbimcli/mbimcli-helpers.c | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +commit bc15bede4aeca0651a5c85fb54d407453e7d5af8 +Author: Shih-Yuan Lee (FourDollars) +Date: Thu Sep 24 16:32:41 2015 +0800 + + libmbim-glib: Increase the retry interval to 5 seconds. + + Sierra Mobile Broadband EM7455 won't work while the retry interval is + only one second. + + https://bugs.freedesktop.org/show_bug.cgi?id=91189 + + Signed-off-by: Shih-Yuan Lee (FourDollars) + + src/libmbim-glib/mbim-device.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +commit 6cf74ebfae1dccf807bb34d88f2cd024d4b14da7 +Author: David Ward +Date: Wed Sep 9 18:54:53 2015 -0400 + + mbimcli: fix username/password checks with the '--connect' action + + Fixes: 4e58451a744dbc3f086e9c1dd2d7469ff70d50ef ("mbimcli: add + support for Basic Connect session IDs") + Signed-off-by: David Ward + + src/mbimcli/mbimcli-basic-connect.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit fd222fc1ee05c2c0c2c21bddec65b9b02f0bc718 +Author: Dan Williams +Date: Wed Sep 9 12:12:32 2015 -0500 + + mbimcli: fix parsing --query-connection-state and --disconnect args + after 4e58451 + + From f6d10eb69eefeb190c9349fdbd3a23b0e838913e Mon Sep 17 00:00:00 2001 + From: Dan Williams + Date: Wed, 9 Sep 2015 12:06:00 -0500 + Subject: [PATCH] mbimcli: fix parsing --query-connection-state and + --disconnect args after 4e58451 + + Fixes: 4e58451a744dbc3f086e9c1dd2d7469ff70d50ef ("mbimcli: add + support for Basic Connect session IDs") + Reported-by: David Ward + + src/mbimcli/mbimcli-basic-connect.c | 34 + ++++++++++++++++++++++++++++++++-- + 1 file changed, 32 insertions(+), 2 deletions(-) + +commit 4e58451a744dbc3f086e9c1dd2d7469ff70d50ef +Author: Dan Williams +Date: Mon Aug 17 12:19:05 2015 -0500 + + mbimcli: add support for Basic Connect session IDs + + --query-connection-state=[SessionID] + --disconnect=[SessionID] + --connect=["key=value,..."] + + As part of enabling session IDs, we must also convert --connect + over to a key=value format for all its arguments, but still + preserve backwards compat with the old format. + + src/mbimcli/mbimcli-basic-connect.c | 284 + ++++++++++++++++++++++++++++-------- + src/mbimcli/mbimcli-helpers.c | 148 +++++++++++++++++++ + src/mbimcli/mbimcli-helpers.h | 10 ++ + 3 files changed, 385 insertions(+), 57 deletions(-) + +commit 8b6316667b438bb2aa99c8029f95542d74ee7136 +Author: Aleksander Morgado +Date: Fri Jun 5 12:54:33 2015 +0200 + + mbimcli: longer timeout for '--connect' operation + + src/mbimcli/mbimcli-basic-connect.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 44d5aac6044f02241de4ea94df0d57fc4487adb9 +Author: Aleksander Morgado +Date: Fri Jun 5 12:54:16 2015 +0200 + + mbimcli: longer timeout for '--[attach|detach]-packet-service' + operations + + src/mbimcli/mbimcli-basic-connect.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3affee76e17eca6b51eaa6682f9683e4fb565ee3 +Author: Aleksander Morgado +Date: Mon Jun 1 08:09:02 2015 +0200 + + mbimcli: longer timeout for '--register-automatic' operation + + src/mbimcli/mbimcli-basic-connect.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit d939587ef7fff0195a45fb8418d2911dfbb52c99 +Author: Dan Williams +Date: Mon May 4 11:23:00 2015 -0500 + + mbimcli: report IP configuration on connect + + src/mbimcli/mbimcli-basic-connect.c | 65 ++++++++++++++++- + src/mbimcli/mbimcli-dss.c | 86 ++++++++++++++++++---- + src/mbimcli/mbimcli-helpers.c | 142 + ++++++++++++++++++++++++++++++++++++ + src/mbimcli/mbimcli-helpers.h | 4 + + 4 files changed, 280 insertions(+), 17 deletions(-) + +commit 0ad5f9ce6269b73e6bc8d0d5821ed7059f17b2ff +Author: Aleksander Morgado +Date: Wed Feb 25 13:18:41 2015 +0100 + + libmbim-glib,message: allow building messages of custom services + + Once a service has been registered, we should allow users of the + library to + actually build Command messages with the new service. + + https://bugs.freedesktop.org/show_bug.cgi?id=77225 + + src/libmbim-glib/mbim-message.c | 3 +-- + src/libmbim-glib/test/test-message.c | 45 + ++++++++++++++++++++++++++++++------ + 2 files changed, 39 insertions(+), 9 deletions(-) + +commit 9d2435448912fe9af86369def253f558c49db272 +Author: Aleksander Morgado +Date: Wed Feb 25 13:17:42 2015 +0100 + + libmbim-glib,uuid: don't assert if service id is neither generic + nor registered + + Just warn and return NULL. + + src/libmbim-glib/mbim-uuid.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit 8b08e300a26d8f596cdd0aabb70dca6d295954fa +Author: Aleksander Morgado +Date: Mon Feb 23 20:01:52 2015 +0100 + + mbim-network: improved --help output with more detailed information + + utils/mbim-network.in | 26 +++++++++++++++++++++++--- + 1 file changed, 23 insertions(+), 3 deletions(-) + +commit 8423c70340fb2a13c0f7824a86aed25a8d12f78c +Author: Aleksander Morgado +Date: Sun Jan 25 21:21:27 2015 +0100 + + mbimcli: add command completion + + https://bugs.freedesktop.org/show_bug.cgi?id=87901 + + src/mbimcli/Makefile.am | 12 ++++++ + src/mbimcli/mbimcli-completion | 83 + ++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 95 insertions(+) + +commit 688b094d3c56408fd6d8d202099ada294839b168 +Author: Aleksander Morgado +Date: Sat Jan 17 19:34:01 2015 +0100 + + mbim-proxy: block function error signals when checking if device is + opened or not + + src/libmbim-glib/mbim-proxy.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +commit 9d8acbe9e5edbb1fb9bfdbc47d5fda1631578523 +Author: Aleksander Morgado +Date: Sat Jan 17 19:12:11 2015 +0100 + + mbim-proxy: upon new client, always check if device really open with + a command + + Never assume that mbim_device_is_open() will return the valid open + status of the + real device. If we're in the middle of a suspend/resume cycle, + the logic will + think that the session is open, while in reality it may not be. + + To really make sure that we're open, explicitly send a Command + message to the + device, and react on the possible NotOpened error by re-opening the + device right + away. + + src/libmbim-glib/mbim-proxy.c | 129 + +++++++++++++++++++++++++++++++++--------- + 1 file changed, 102 insertions(+), 27 deletions(-) + +commit 7ab8135fb2970db32bfd0cfcc170f690e1409a2a +Author: Aleksander Morgado +Date: Sat Jan 17 18:32:42 2015 +0100 + + mbim-device: trace transaction status within the MbimDevice + + src/libmbim-glib/mbim-device.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +commit 8a8104a9b5952a451b6346b6a188815f3ea0a508 +Author: Aleksander Morgado +Date: Sat Jan 17 18:31:53 2015 +0100 + + mbim-device: explictly maintain a reference to the MbimDevice in + the transaction + + We were already doing this as g_simple_async_result_new() was taking + one itself, + so this is just to make the code clearer and to ease next changes. + + src/libmbim-glib/mbim-device.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit 732918344d9994f9e87ec77ff3a052710ec84629 +Author: Aleksander Morgado +Date: Sat Jan 17 18:37:18 2015 +0100 + + mbim-device: only return transaction if it gets released + + And avoid segfault in weird situations.... + + E.g. if we send Open(3) and we get Close-Done(3) (as with a Telit + LN930 device) + the logic was segfaulting. The reason being that + device_release_transaction() + was returning a valid Transaction (that with ID 3) but wasn't being + released + from the internal HT (as we were asking for Open-Done, not Close-Done + or Invalid). + + [17 ene 2015, 18:09:23] [Debug] [/dev/cdc-wdm0,3] transaction + open: store + [17 ene 2015, 18:09:23] [Debug] [/dev/cdc-wdm0] Sent message... + <<<<<< RAW: + <<<<<< length = 16 + <<<<<< data = 01:00:00:00:10:00:00:00:03:00:00:00:00:02:00:00 + + [17 ene 2015, 18:09:23] [Debug] [/dev/cdc-wdm0] Sent message + (translated)... + <<<<<< Header: + <<<<<< length = 16 + <<<<<< type = open (0x00000001) + <<<<<< transaction = 3 + <<<<<< Contents: + <<<<<< max_control_transfer = 512 + + [17 ene 2015, 18:09:23] [Debug] [/dev/cdc-wdm0] Received + message... + >>>>>> RAW: + >>>>>> length = 16 + >>>>>> data = 02:00:00:80:10:00:00:00:03:00:00:00:00:00:00:00 + + [17 ene 2015, 18:09:23] [Debug] [/dev/cdc-wdm0,3] transaction + open: complete: error + [17 ene 2015, 18:09:23] [Debug] getting open done result failed: + closed + [17 ene 2015, 18:09:23] [Debug] Client (6) connection closed... + [17 ene 2015, 18:09:23] -Warning ** error opening device: + Unexpected response message type: 0x80000002 + ** + Mbim:ERROR:mbim-device.c:2205:finalize: assertion failed: + (g_hash_table_size (self->priv->transactions[i]) == 0) + + Program received signal SIGABRT, Aborted. + 0x00007ffff6f56a97 in raise () from /usr/lib/libc.so.6 + (gdb) bt + #0 0x00007ffff6f56a97 in raise () from /usr/lib/libc.so.6 + #1 0x00007ffff6f57e6a in abort () from /usr/lib/libc.so.6 + #2 0x00007ffff73357f5 in g_assertion_message () from + /usr/lib/libglib-2.0.so.0 + #3 0x00007ffff733588a in g_assertion_message_expr () from + /usr/lib/libglib-2.0.so.0 + #4 0x00007ffff7bb44c3 in finalize (object=0x617100) at + mbim-device.c:2205 + #5 0x00007ffff75e925a in g_object_unref () from + /usr/lib/libgobject-2.0.so.0 + #6 0x00007ffff7bb4bd7 in client_set_device (client=0x607300, + device=0x0) at mbim-proxy.c:172 + #7 0x00007ffff7bb4cd8 in client_unref (client=0x607300) + at mbim-proxy.c:199 + #8 0x00007ffff7bb522f in request_complete_and_free + (request=0x613350) at mbim-proxy.c:369 + #9 0x00007ffff7bb59d1 in proxy_config_internal_device_open_ready + (self=0x60f880, res=0x6494a0, request=0x613350) at + mbim-proxy.c:616 + #10 0x00007ffff78976d7 in g_simple_async_result_complete () + from /usr/lib/libgio-2.0.so.0 + #11 0x00007ffff7897739 in ?? () from /usr/lib/libgio-2.0.so.0 + #12 0x00007ffff730f91d in g_main_context_dispatch () from + /usr/lib/libglib-2.0.so.0 + #13 0x00007ffff730fcf8 in ?? () from /usr/lib/libglib-2.0.so.0 + #14 0x00007ffff7310022 in g_main_loop_run () from + /usr/lib/libglib-2.0.so.0 + #15 0x000000000040153b in main (argc=1, argv=0x7fffffffead8) + at mbim-proxy.c:243 + + Conflicts: + src/libmbim-glib/mbim-device.c + + src/libmbim-glib/mbim-device.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +commit c7611301e65ffe4d9f96b6ff9f8904d41a32cab1 +Author: Aleksander Morgado +Date: Tue Jan 13 17:14:58 2015 +0100 + + build: post release version bump to 1.13.0 + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit b0758615d6a829d64647e3bda5d01d1f2bad3983 +Author: Aleksander Morgado +Date: Tue Jan 13 14:24:57 2015 +0100 + + release: bump version to 1.12.0 + + configure.ac | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 262371ff1978e709115f10421ca5ddf02228956e +Author: Aleksander Morgado +Date: Tue Jan 13 14:23:37 2015 +0100 + + build: use absolute paths for the ignored files in subdirs + + .gitignore | 90 + +++++++++++++++++++++++++++++++------------------------------- + 1 file changed, 45 insertions(+), 45 deletions(-) + +commit fd52fdb212e8f54dda4fef1d756da9cfcc3edc46 +Author: Aleksander Morgado +Date: Tue Jan 13 09:39:42 2015 +0100 + + libmbim-glib,proxy: root user always allowed + + Even if MBIM_USERNAME is defined to a non-root user, root should + always be able + to access the proxy. E.g. ModemManager (run as root) must be able + to launch and + access the proxy even if MBIM_USERNAME was set to a non-root user. + + src/libmbim-glib/mbim-utils.c | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +commit 5ad9573a05abd86595e08063bad94915cf104766 +Author: Aleksander Morgado +Date: Tue Dec 30 13:50:16 2014 +0100 + + libmbim-glib,utils: avoid getpwnam() call if --enable-mbim-username + not used + + If --enable-mbim-username isn't explicitly used, we should just + check for the + root user UID, without using getpwnam(). See e.g. these SELinux + warnings: + + SELinux is preventing /usr/bin/bash from read access on the file + /etc/passwd. + + ***** Plugin catchall (100. confidence) suggests + ************************** + + If you believe that bash should be allowed read access on the + passwd file by default. + Then you should report this as a bug. + You can generate a local policy module to allow this access. + Do allow this access for now by executing: + # grep mbim-proxy /var/log/audit/audit.log | audit2allow -M mypol + # semodule -i mypol.pp + + configure.ac | 20 ++++++++++++++------ + src/libmbim-glib/mbim-utils.c | 9 +++++++++ + src/mbim-proxy/Makefile.am | 2 +- + 3 files changed, 24 insertions(+), 7 deletions(-) + +commit 967a815344dc05ec7c8e6ec2fb1ca2b853074a03 +Author: Aleksander Morgado +Date: Tue Dec 30 13:46:06 2014 +0100 + + build: ignore built files + + .gitignore | 1 + + 1 file changed, 1 insertion(+) + +commit 5c6a052df40bd58fe5cc40bbbecf06fb63f00acf +Author: Aleksander Morgado +Date: Tue Dec 30 12:41:25 2014 +0100 + + build: update NEWS + + NEWS | 38 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 38 insertions(+) + +commit 20fedf79c9b4e2463d31ba5c1c75bd37d0a835f9 +Author: Aleksander Morgado +Date: Sun Dec 28 18:42:04 2014 +0100 + + libmbim-glib,proxy: translate device wrong-state errors into function + not-opened errors + + We're forcing close the MbimDevice whenever we detect a not-opened + error; so if we + afterwards get more commands from the clients, don't just timeout + the requests, instead + return our own generated function error messages specifying + not-opened. + + src/libmbim-glib/mbim-proxy.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +commit 1eb52758833dfbf7431f979f1f28ce4beacf3072 +Author: Aleksander Morgado +Date: Sun Dec 28 18:37:41 2014 +0100 + + libmbim-glib,proxy: force close device if not-opened error detected + + src/libmbim-glib/mbim-proxy.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +commit c8ce23695006266e304e3d5309d3e0303f2c308c +Author: Aleksander Morgado +Date: Sun Dec 28 18:32:33 2014 +0100 + + libmbim-glib,message: new mbim_message_function_error_new() + + To be used by the proxy to mimic modem-generated commands. + + .../libmbim-glib/libmbim-glib-common.sections | 1 + + src/libmbim-glib/mbim-message.c | 27 + ++++++++++++++++++++++ + src/libmbim-glib/mbim-message.h | 2 ++ + 3 files changed, 30 insertions(+) + +commit 6be914e2801d2f091293b0686053b27198768815 +Author: Aleksander Morgado +Date: Sun Dec 28 18:28:15 2014 +0100 + + libmbim-glib,device: don't segfault if force-closed during message + processing + + (mbim-proxy:17046): GLib-CRITICAL **: g_byte_array_remove_range: + assertion 'array' failed + + Program received signal SIGTRAP, Trace/breakpoint trap. + 0x00007ffff7316ae0 in g_logv () from /usr/lib/libglib-2.0.so.0 + (gdb) bt + #0 0x00007ffff7316ae0 in g_logv () from /usr/lib/libglib-2.0.so.0 + #1 0x00007ffff7316d1f in g_log () from /usr/lib/libglib-2.0.so.0 + #2 0x00007ffff72e49ba in g_byte_array_remove_range () from + /usr/lib/libglib-2.0.so.0 + #3 0x00007ffff7bb126d in parse_response (self=0x618100) at + mbim-device.c:642 + #4 0x00007ffff7bb151c in data_available (source=0x64ab60, + condition=G_IO_IN, self=0x618100) at mbim-device.c:708 + #5 0x00007ffff730f91d in g_main_context_dispatch () from + /usr/lib/libglib-2.0.so.0 + #6 0x00007ffff730fcf8 in ?? () from /usr/lib/libglib-2.0.so.0 + #7 0x00007ffff7310022 in g_main_loop_run () from + /usr/lib/libglib-2.0.so.0 + #8 0x000000000040153b in main (argc=1, argv=0x7fffffffeac8) + at mbim-proxy.c:243 + (gdb) fr 3 + #3 0x00007ffff7bb126d in parse_response (self=0x618100) at + mbim-device.c:642 + 642 g_byte_array_remove_range (self->priv->response, + 0, in_length); + (gdb) p self->priv->response + $1 = (GByteArray *) 0x0 + + src/libmbim-glib/mbim-device.c | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 68e3d695d331569c70d8c0a031852600a9a8174f +Author: Aleksander Morgado +Date: Sun Dec 28 18:21:33 2014 +0100 + + libmbim-glib,device: emit error signal also when function errors + match within transactions + + src/libmbim-glib/mbim-device.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit 8e51649f07aa917a9a0896a35673468693be29be +Author: Aleksander Morgado +Date: Sun Dec 28 17:11:14 2014 +0100 + + libmbim-glib,message: new helper method to parse responses + + The MBIM "Command", "Open" and "Close" request messages can be + replied using + either a type specific response (e.g. "Command Done", or "Open Done" + or "Close + Done" or instead using a generic "Function Error" message. + + In order to ease the users of the library to look for errors in + the received + responses, the new mbim_message_response_get_result() method expects + any of those two previous messages. + + We also bump version of the library to 1.11.1, to indicate when the + new API + was introduced, but this is Not a real release. + + configure.ac | 2 +- + .../libmbim-glib/libmbim-glib-common.sections | 2 + + src/libmbim-glib/mbim-device.c | 6 +- + src/libmbim-glib/mbim-message.c | 70 + ++++++++++++++++++++++ + src/libmbim-glib/mbim-message.h | 7 +++ + src/mbimcli/mbimcli-basic-connect.c | 26 ++++---- + src/mbimcli/mbimcli-dss.c | 2 +- + src/mbimcli/mbimcli-ms-firmware-id.c | 2 +- + src/mbimcli/mbimcli-ms-host-shutdown.c | 2 +- + src/mbimcli/mbimcli-phonebook.c | 8 +-- + 10 files changed, 102 insertions(+), 25 deletions(-) + +commit 575cd0a3ec2f691c1d541c000469245fb1c96c87 +Author: Aleksander Morgado +Date: Sun Dec 28 13:05:40 2014 +0100 + + libmbim-glib,device: match function errors within transactions + + Or we won't get e.g. NotOpened errors forwarded through the MbimProxy. + + src/libmbim-glib/mbim-device.c | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +commit 3f24b9a96d41e6588e8f14482855b445691a0958 +Author: Aleksander Morgado +Date: Sun Dec 28 16:01:44 2014 +0100 + + libmbim-glib,message: fix size of error message + + src/libmbim-glib/mbim-message.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit eed18cce294fdd575bbf60217fa5a1364a4bde63 +Author: Aleksander Morgado +Date: Wed Dec 24 13:44:26 2014 +0100 + + AUTHORS: update + + AUTHORS | 29 ++++++++++++++++------------- + 1 file changed, 16 insertions(+), 13 deletions(-) + +commit ead5714be56e2d1ea699f72098c4262447c2accb +Author: Roshan Pius +Date: Mon Dec 22 13:43:25 2014 -0800 + + libmbim-glib,proxy: Correct the driver name in the MBIM proxy + UDEV rule. + + Fixing a bug in the previous commit to add udev rules for MBIM proxy + devices. + + src/mbim-proxy/76-mbim-proxy-device-ownership.rules.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3333eb4a5c2401559732023b9a4139a20d74743e +Author: Roshan Pius +Date: Mon Dec 22 09:33:19 2014 -0800 + + libmbim-glib,proxy: Change ownership of MBIM devices to the configured + user. + + Adding a udev rule to change ownership of all MBIM devices to the + configured user specified at compile time using --enable-mbim-username + flag. + + Makefile.am | 4 ++- + configure.ac | 34 + ++++++++++++++++------ + .../76-mbim-proxy-device-ownership.rules.in | 12 ++++++++ + src/mbim-proxy/Makefile.am | 9 ++++++ + 4 files changed, 49 insertions(+), 10 deletions(-) + +commit 0f7fa9f88710f34f1931d95b9f1b1b1f07b9c757 +Author: Boris Egorov +Date: Mon Dec 8 14:05:49 2014 +0600 + + utils,mbim-network: fix bashisms + + See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772325 + + Signed-off-by: Boris Egorov + + utils/mbim-network.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 93ea3d04dc0f85427c3e4414f46bf346d8cc9e66 +Author: Roshan Pius +Date: Fri Nov 14 17:23:08 2014 -0800 + + libmbim,utils: new internal __mbim_user_allowed() method + + Allows to check whether the user is allowed to use the MBIM device. + + Also fixes mbim_proxy_open() to make sure we always set the GError + when FALSE is + returned. + + src/libmbim-glib/mbim-proxy.c | 39 + ++++++--------------------------------- + src/libmbim-glib/mbim-utils.c | 33 +++++++++++++++++++++++++++++++++ + src/libmbim-glib/mbim-utils.h | 2 ++ + 3 files changed, 41 insertions(+), 33 deletions(-) + +commit 763ee0a8746e056292ddd40c74fff66bdac3c088 +Author: Roshan Pius +Date: Fri Nov 14 16:58:56 2014 -0800 + + build: rename '--enable-mbim-proxy-username' to + '--enable-mbim-username' + + This shouldn't be a proxy-only setting. We're going to chown the + MBIM devices to + this specific user, so we'll re-use this setting for that as well. + + configure.ac | 25 +++++++++++-------------- + src/libmbim-glib/mbim-proxy.c | 12 ++++++------ + 2 files changed, 17 insertions(+), 20 deletions(-) + +commit ec14ebce79fbff907ccbe3acf68838657579e152 +Author: Roshan Pius +Date: Fri Nov 7 09:20:20 2014 -0800 + + libmbim-glib,proxy: add a configure flag to set the user ID of + MBIM proxy + + Currently, the MBIM proxy process assumes that it is run as root + user and + that all incoming client connection users are also root. + However, it's not always preferable to run the MBIM proxy as root for + security reasons. On some platforms, the MBIM proxy could be + constrained + to run as a less-privileged user and specially granted the + permission to + access the MBIM device. So, adding a compile time flag in libmbim + to check + for the specified user, rather than assume it to be the root user. If + the flag is + not sent, it'll revert to the existing behaviour of checking for + user=root(i.e UID=0) + + configure.ac | 11 +++++++++++ + src/libmbim-glib/mbim-proxy.c | 38 ++++++++++++++++++++++++++++++++------ + 2 files changed, 43 insertions(+), 6 deletions(-) + +commit c65d3d8ee54d5b8bfa454c7770a5936bbd0341de +Author: Aleksander Morgado +Date: Mon Nov 10 18:33:42 2014 +0100 + + libmbim-glib: always attach timeout and idles to the thread default + main context + + The standard timeout/idle methods will attach the sources to the + default + context, not the thread default context. So, create the GSources + ourselves + and attach them to the thread default context. + + src/libmbim-glib/mbim-device.c | 29 +++++++++++++++++++---------- + 1 file changed, 19 insertions(+), 10 deletions(-) + +commit e0a6ed9cf70bac34290ae6e9610f915844c35360 +Author: Aleksander Morgado +Date: Sun Nov 9 21:32:07 2014 +0100 + + libmbim-glib: always attach sources to the thread default main context + + If NULL is specified in g_source_attach() it will attach to the + default context, + not to the thread-default one if one was given with + g_main_context_push_thread_default(). + + This caused that MbimDevices started in the non-main thread would + still attach + their socket listening sources to the GMainContext in the main thread. + + src/libmbim-glib/mbim-device.c | 22 +++++++++++++--------- + src/libmbim-glib/mbim-proxy.c | 2 +- + 2 files changed, 14 insertions(+), 10 deletions(-) + +commit a735809afb8f1ae6adc17f3ae308706047275a88 +Author: Ben Chan +Date: Mon Aug 11 23:35:10 2014 -0700 + + test: fix memory leak in test_merge_standard_list_none_full + + src/libmbim-glib/test/test-proxy-helpers.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit 536bdae90b8533d8bea5cc92f685011b58a2616f +Author: Aleksander Morgado +Date: Mon Aug 4 15:18:05 2014 +0200 + + release: bump version to 1.11.0 (development) + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 9ba71eca56693db0e1cdc2dc7fd193bb02237020 +Author: Aleksander Morgado +Date: Mon Aug 4 11:14:01 2014 +0200 + + release: bump version to 1.10.0 + + libtool versioning was also updated to reflect the API break. + + configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 1a264c66a7e5923e8e6bd5bdb7dff9b59618059b +Author: Aleksander Morgado +Date: Mon Aug 4 11:12:49 2014 +0200 + + build: update NEWS + + NEWS | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +commit efe75527d6254c6e076a2e7e3fc7328313ae3e29 +Author: Aleksander Morgado +Date: Mon Aug 4 11:17:13 2014 +0200 + + data: include new proxy control service in dist + + data/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3c2e1b0df496842372178d07acb398d05a13f00d +Author: Aleksander Morgado +Date: Sat Aug 2 14:12:46 2014 +0200 + + libmbim-glib,device: plug memleak + + src/libmbim-glib/mbim-device.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit 9ad75d9a0c1e8fd1afedaaa9279b96154b3d59ad +Author: Aleksander Morgado +Date: Sat Aug 2 13:53:28 2014 +0200 + + libmbim-glib,proxy: don't re-configure global indications if merged + unchanged + + Currently we're defaulting to enable the standard services list; + so whenever + clients want to re-configure their standard services list (e.g. just + enabling + some of the indications), we just end up having the full standard + list again. + + So, avoid multiple re-configures in the device, just compare and + only send the + new setup to the device if the global list changes. + + src/libmbim-glib/mbim-proxy.c | 110 + +++++++++++++++++++++++++++++------------- + 1 file changed, 76 insertions(+), 34 deletions(-) + +commit 1f828309808150f8ebc0d069263564888fc6826f +Author: Aleksander Morgado +Date: Sat Aug 2 13:27:03 2014 +0200 + + libmbim-glib,proxy-helpers: list comparison in helpers API + + src/libmbim-glib/mbim-proxy-helpers.c | 70 +++++++++++++++++++++++ + src/libmbim-glib/mbim-proxy-helpers.h | 4 ++ + src/libmbim-glib/test/test-proxy-helpers.c | 89 + ++++-------------------------- + 3 files changed, 86 insertions(+), 77 deletions(-) + +commit 8702adf1b912b055103db942c7d185bd62f564e7 +Author: Aleksander Morgado +Date: Sat Aug 2 12:21:10 2014 +0200 + + libmbim-glib,proxy-helpers: fix list size reporting + + src/libmbim-glib/mbim-proxy-helpers.c | 101 +++++++++++------- + src/libmbim-glib/mbim-proxy-helpers.h | 12 ++- + src/libmbim-glib/mbim-proxy.c | 35 ++++--- + src/libmbim-glib/test/test-proxy-helpers.c | 161 + +++++++++++++++++++---------- + 4 files changed, 194 insertions(+), 115 deletions(-) + +commit d658e3be3a2e2402393f0ace64e4a03dd5c73a69 +Author: Aleksander Morgado +Date: Sat Aug 2 06:24:24 2014 +0200 + + libmbim-glib: destroy iochannel on dispose + + src/libmbim-glib/mbim-device.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +commit 2c64635dd8dae2ecb4d5c684353f606f0f268797 +Author: Aleksander Morgado +Date: Sat Aug 2 06:18:21 2014 +0200 + + libmbim-glib,proxy-helpers: allow merging with empty lists + + src/libmbim-glib/mbim-proxy-helpers.c | 13 +++++++---- + src/libmbim-glib/test/test-proxy-helpers.c | 36 + ++++++++++++++++++++++++++++++ + 2 files changed, 45 insertions(+), 4 deletions(-) + +commit c8fedd8a070dadfb67e8aad9dcf61343de05c0dd +Author: Aleksander Morgado +Date: Sat Aug 2 06:12:05 2014 +0200 + + libmbim-glib,proxy: plug memleak + + src/libmbim-glib/mbim-proxy.c | 1 + + 1 file changed, 1 insertion(+) + +commit 975b94ec89968221b08fca0bb44c0aeaf67d6e32 +Author: Aleksander Morgado +Date: Sat Aug 2 05:39:00 2014 +0200 + + libmbim-glib,proxy: plug memleak + + src/libmbim-glib/mbim-proxy.c | 1 + + 1 file changed, 1 insertion(+) + +commit 9283d15613586f54ccfc3ecc121561418078b31e +Author: Aleksander Morgado +Date: Sat Aug 2 05:35:38 2014 +0200 + + libmbim-glib,proxy: print service subscribe lists as traces + + src/libmbim-glib/mbim-proxy-helpers.c | 35 + +++++++++++++++++++++++++++++++++++ + src/libmbim-glib/mbim-proxy-helpers.h | 1 + + src/libmbim-glib/mbim-proxy.c | 10 ++++++++++ + 3 files changed, 46 insertions(+) + +commit 597af10f02fac452de2d41b9c1e7da85c14e00f1 +Author: Aleksander Morgado +Date: Thu Jul 31 18:39:14 2014 +0200 + + docs,libmbim-glib: split services in generic vs other + + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit c906c939cb392fd800e53acc100f2c61dfe6fd03 +Author: Aleksander Morgado +Date: Thu Jul 31 18:35:34 2014 +0200 + + docs,libmbim-glib: public property and signal names + + docs/reference/libmbim-glib/libmbim-glib-common.sections | 12 + ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +commit bd752d64c1c9640106ab3d71c6ae9ab7c8d548c4 +Author: Aleksander Morgado +Date: Thu Jul 31 18:34:48 2014 +0200 + + docs,libmbim-glib: add missing symbols + + docs/reference/libmbim-glib/libmbim-glib-common.sections | 3 +++ + 1 file changed, 3 insertions(+) + +commit c155c151b63f19b40c7ff6850fba8883ab8dfdd8 +Author: Aleksander Morgado +Date: Tue Jul 29 13:10:15 2014 +0200 + + libmbim-glib,test: setup proxy helper tests + + .gitignore | 1 + + src/libmbim-glib/test/Makefile.am | 19 +- + src/libmbim-glib/test/test-proxy-helpers.c | 516 + +++++++++++++++++++++++++++++ + 3 files changed, 535 insertions(+), 1 deletion(-) + +commit c7b5aee0e5209b5b723d6e23ef06a9aa48fb5fda +Author: Aleksander Morgado +Date: Tue Jul 29 14:35:43 2014 +0200 + + libmbim-glib,proxy-helpers: increase number of cids before + reallocating + + Otherwise we'll go writing out of bounds. + + src/libmbim-glib/mbim-proxy-helpers.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit dc00622c3d8b42e7b76cd4ae04aad23a43142a89 +Author: Aleksander Morgado +Date: Tue Jul 29 13:09:26 2014 +0200 + + libmbim-glib,proxy-helpers: allow merging full CIDs list into a subset + + src/libmbim-glib/mbim-proxy-helpers.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +commit 9f670e1418954333638e6a9252d5c7c715b65374 +Author: Aleksander Morgado +Date: Tue Jul 29 12:43:34 2014 +0200 + + libmbim-glib,proxy-helpers: update limits of the standard services + list + + The size of the standard services list needs to be 1 + the number + of services to + include; so explicitly use that logic when computing the size, + instead of + relying on another unrelated enum value. + + src/libmbim-glib/mbim-proxy-helpers.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit b9f222f61061b25e2ba7a6ef943d858a3bec4d02 +Author: Aleksander Morgado +Date: Tue Jul 29 00:11:56 2014 +0200 + + libmbim-glib,proxy: setup new proxy helpers + + Which will be easier to test via unit tests + + src/libmbim-glib/Makefile.am | 3 +- + src/libmbim-glib/mbim-proxy-helpers.c | 145 + ++++++++++++++++++++++++++++++++++ + src/libmbim-glib/mbim-proxy-helpers.h | 48 +++++++++++ + src/libmbim-glib/mbim-proxy.c | 112 ++------------------------ + 4 files changed, 202 insertions(+), 106 deletions(-) + +commit 3d51c14c9d7335936c061ea82703e40e170b3564 +Author: Aleksander Morgado +Date: Mon Jul 28 23:37:01 2014 +0200 + + libmbim-glib,proxy: fix reading uninitialized byte + + src/libmbim-glib/mbim-proxy.c | 1 + + 1 file changed, 1 insertion(+) + +commit 5d81ce6d0c221435c4f07de373cdd560972ccd34 +Author: Aleksander Morgado +Date: Mon Jul 28 23:29:55 2014 +0200 + + libmbim-glib,proxy: untrack-ing clients may be called multiple times + + src/libmbim-glib/mbim-proxy.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +commit 477a08257d4e3e4a91d018a3ebf104c39506d4e2 +Author: Aleksander Morgado +Date: Mon Jul 28 22:54:07 2014 +0200 + + libmbim-glib,mbim-proxy: keep separately the original transaction id + + src/libmbim-glib/mbim-proxy.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit 83be4e5461dc17bc9ac27d48995f007394e7cc9f +Author: Aleksander Morgado +Date: Mon Jul 28 22:48:17 2014 +0200 + + libmbim-glib,proxy: don't assert when checking ongoing config + + src/libmbim-glib/mbim-proxy.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 7a8a325467c98534ea54e42a7fa89a0bd61b1efb +Author: Aleksander Morgado +Date: Mon Jul 28 22:35:31 2014 +0200 + + mbim-proxy: wait up to 30s if last device is gone + + A device being 'gone' doesn't only mean that it was disconnected + and we can no + longer talk to it; it may also be that the proxy couldn't perform + the full open + sequence and therefore it removes it from its records. + + src/mbim-proxy/mbim-proxy.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +commit 1888013fec1579996c77f8ff8fc41baba418bec4 +Author: Aleksander Morgado +Date: Mon Jul 28 22:31:26 2014 +0200 + + libmbim-glib,proxy: untrack device if it wasn't opened properly + + src/libmbim-glib/mbim-proxy.c | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +commit 082d61b4777c5840d6089e7c6a37d49ca4e1c5e2 +Author: Aleksander Morgado +Date: Mon Jul 28 22:31:07 2014 +0200 + + libmbim-glib,device: some helper logs to know why device got closed + + src/libmbim-glib/mbim-device.c | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 19039cfa178397496a662358ec91ed3101eecf72 +Author: Aleksander Morgado +Date: Mon Jul 28 21:55:28 2014 +0200 + + libmbim-glib,proxy: use the provided timeout for retries in + mbim_device_open() + + data/mbim-service-proxy-control.json | 4 ++- + src/libmbim-glib/mbim-device.c | 6 ++-- + src/libmbim-glib/mbim-proxy.c | 55 + ++++++++++++++---------------------- + 3 files changed, 28 insertions(+), 37 deletions(-) + +commit bc8208734336412c18f801be625801bb2edd9602 +Author: Aleksander Morgado +Date: Mon Jul 28 21:46:40 2014 +0200 + + libmbim-glib,device: don't assume that having iochannel means open + + Instead, track the real status (closed/opening/open). + + src/libmbim-glib/mbim-device.c | 41 + +++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 39 insertions(+), 2 deletions(-) + +commit e2414ea528e33accb9b03a2c967c5a1e24d71b0c +Author: Aleksander Morgado +Date: Mon Jul 28 21:36:23 2014 +0200 + + libmbim-glib,proxy: perform the device open at MBIM Proxy Config + + And make sure we don't try to open the MbimDevice twice upon + different requests + from clients; just queue the results to be completed. + + src/libmbim-glib/mbim-proxy.c | 224 + ++++++++++++++++++++++++++++++++++++------ + 1 file changed, 192 insertions(+), 32 deletions(-) + +commit 823ea9845d881d9668a52c3504defa0d1296b523 +Author: Aleksander Morgado +Date: Mon Jul 28 20:29:46 2014 +0200 + + libmbim-glib,proxy: don't allow MBIM Proxy Config with different paths + + src/libmbim-glib/mbim-proxy.c | 74 + ++++++++++++++++++++++++------------------- + 1 file changed, 42 insertions(+), 32 deletions(-) + +commit 6c79e0b71af0d0da7367139c9671d7c87c0a2d72 +Author: Aleksander Morgado +Date: Mon Jul 28 20:19:53 2014 +0200 + + libmbim-glib,proxy: only allow one MBIM Proxy Config at the same time + + src/libmbim-glib/mbim-proxy.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +commit 3bede6f14c0474cdd0aec47e5a146081bed8467f +Author: Aleksander Morgado +Date: Mon Jul 28 20:13:35 2014 +0200 + + libmbim-glib,proxy: remove unneeded variable in Client + + src/libmbim-glib/mbim-proxy.c | 1 - + 1 file changed, 1 deletion(-) + +commit 9aee132e0bbe8767a9fde5a80bf22a3a9b73210b +Author: Aleksander Morgado +Date: Mon Jul 28 20:09:49 2014 +0200 + + libmbim-glib,proxy: use standard Request for MBIM Proxy Config + + src/libmbim-glib/mbim-proxy.c | 97 + ++++++++++++++++++------------------------- + 1 file changed, 40 insertions(+), 57 deletions(-) + +commit 52a6bd513662daa0590354a264f562280641df29 +Author: Aleksander Morgado +Date: Mon Jul 28 19:59:24 2014 +0200 + + libmbim-glib,proxy: use standard Request for MBIM Open + + src/libmbim-glib/mbim-proxy.c | 71 + +++++++++++++------------------------------ + 1 file changed, 21 insertions(+), 50 deletions(-) + +commit 32cb2f9027354abadb21561389aecb7d7b90f7b8 +Author: Aleksander Morgado +Date: Mon Jul 28 19:50:31 2014 +0200 + + libmbim-glib,proxy: use standard Request for MBIM Close + + src/libmbim-glib/mbim-proxy.c | 14 ++++---------- + 1 file changed, 4 insertions(+), 10 deletions(-) + +commit 95b93a8e505740b7e6726a48f46186dc97a7a571 +Author: Aleksander Morgado +Date: Mon Jul 28 19:48:10 2014 +0200 + + libmbim-glib,proxy: send back response as part of the request + completion + + src/libmbim-glib/mbim-proxy.c | 49 + ++++++++++++++++++++++--------------------- + 1 file changed, 25 insertions(+), 24 deletions(-) + +commit d4981f2050fcf9624788df60069c1c439e4dfe8e +Author: Aleksander Morgado +Date: Mon Jul 28 19:40:56 2014 +0200 + + libmbim-glib,proxy: move standard command processor to its own method + + src/libmbim-glib/mbim-proxy.c | 59 + +++++++++++++++++++++++++------------------ + 1 file changed, 35 insertions(+), 24 deletions(-) + +commit ebf3baf49503e7e9a14f40ffb18fe5db57f0caaf +Author: Aleksander Morgado +Date: Mon Jul 28 19:31:01 2014 +0200 + + libmbim-glib,proxy: prefer the API to update the message transaction + id + + src/libmbim-glib/mbim-message.c | 5 ----- + src/libmbim-glib/mbim-proxy.c | 2 +- + 2 files changed, 1 insertion(+), 6 deletions(-) + +commit 8673de9b04af1004b77e630cc7ae11d17c2bb2f0 +Author: Aleksander Morgado +Date: Mon Jul 28 19:26:46 2014 +0200 + + libmbim-glib,proxy: setup a request API + + src/libmbim-glib/mbim-proxy.c | 72 + +++++++++++++++++++++++++------------------ + 1 file changed, 42 insertions(+), 30 deletions(-) + +commit 1c8ce7549f0471577a45ece78c41a895ae35a06f +Author: Aleksander Morgado +Date: Mon Jul 28 19:17:07 2014 +0200 + + libmbim-glib,proxy: always try to pass around the proxy pointer early + + src/libmbim-glib/mbim-proxy.c | 115 + ++++++++++++++++++++++-------------------- + 1 file changed, 61 insertions(+), 54 deletions(-) + +commit 2836888a256db80ba85485d61778d067f68c8c97 +Author: Aleksander Morgado +Date: Mon Jul 28 19:05:48 2014 +0200 + + libmbim-glib,proxy: keep response in the Request struct + + src/libmbim-glib/mbim-proxy.c | 37 +++++++++++++++++++------------------ + 1 file changed, 19 insertions(+), 18 deletions(-) + +commit 2f3dcdceaeba29545ad8e03d711978202b42aae5 +Author: Aleksander Morgado +Date: Mon Jul 28 19:00:45 2014 +0200 + + libmbim-glib,proxy: when device notifies removal, process it in the + proxy only + + src/libmbim-glib/mbim-proxy.c | 85 + +++++++++++++++++++++++-------------------- + 1 file changed, 46 insertions(+), 39 deletions(-) + +commit 5d06cd2a17ef9d932bc841937029a76e80f62554 +Author: Aleksander Morgado +Date: Mon Jul 28 18:39:42 2014 +0200 + + libmbim-glib,proxy: plug memleak + + src/libmbim-glib/mbim-proxy.c | 1 + + 1 file changed, 1 insertion(+) + +commit 2c3300cf048500cd39c42d41ad068d35bd6fdd39 +Author: Aleksander Morgado +Date: Mon Jul 28 18:39:33 2014 +0200 + + libmbim-glib,proxy: small refactor + + src/libmbim-glib/mbim-proxy.c | 17 ++++++++--------- + 1 file changed, 8 insertions(+), 9 deletions(-) + +commit e30961e576d367ad6943e25756f75badca963521 +Author: Aleksander Morgado +Date: Mon Jul 28 17:38:59 2014 +0200 + + libmbim-glib,proxy: setup a reference counted Client info + + Make sure every async operation has a valid reference to the Client + info, so + that we don't need to check explicitly whether it is disconnected + or not. If it + is disconnected, we'll just fail the send(). + + Also, setup methods to track/untrack clients. When untrack-ing, + clients get + disconnected explicitly. + + src/libmbim-glib/mbim-proxy.c | 345 + +++++++++++++++++++++++------------------- + 1 file changed, 190 insertions(+), 155 deletions(-) + +commit 1d27aaf21fbf342a6209cd12c6f0e8f0c74a9e17 +Author: Aleksander Morgado +Date: Mon Jul 28 15:11:15 2014 +0200 + + libmbim-glib,proxy: reorder code a bit + + src/libmbim-glib/mbim-proxy.c | 186 + ++++++++++++++++++++++-------------------- + 1 file changed, 99 insertions(+), 87 deletions(-) + +commit 3b4adb2734ca07479e6284b2736be8737d6954e8 +Author: Aleksander Morgado +Date: Sun Jul 27 15:13:55 2014 +0200 + + libmbim-glib,device: hard error if proxy cfg command fails while + opening + + src/libmbim-glib/mbim-device.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +commit 64279c8a67fbafb4bf2ffb61805f5c2ad8e989cb +Author: Aleksander Morgado +Date: Sun Jul 27 15:11:48 2014 +0200 + + libmbim-glib,device: consolidate open error path + + src/libmbim-glib/mbim-device.c | 36 ++++++++++++++++++++++-------------- + 1 file changed, 22 insertions(+), 14 deletions(-) + +commit 89644f55cc360b5eb89191f5096ad94635b0a1b2 +Author: Aleksander Morgado +Date: Sun Jul 27 14:28:40 2014 +0200 + + libmbim-glib,uuid: proxy-control is the new last service + + src/libmbim-glib/mbim-uuid.c | 6 ++++-- + src/libmbim-glib/mbim-uuid.h | 1 + + 2 files changed, 5 insertions(+), 2 deletions(-) + +commit 83beeeef6521e87a49feea13123b9d2110dabc3b +Author: Aleksander Morgado +Date: Sun Jul 27 14:18:57 2014 +0200 + + libmbim-glib,device: refactor a bit open() state machine + + src/libmbim-glib/mbim-device.c | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +commit 9adbfde7379a4aed19741fb447df74ed957c510b +Author: Greg Suarez +Date: Wed Jul 23 14:21:25 2014 -0700 + + libmbim-glib,proxy: Allow for --no-close and --no-open options + by mbimcli + + To support the --no-close option the proxy will no longer send + the close + message to the device. The proxy will also only exit once all devices + are removed. Thus the proxy connects to the + MBIM_DEVICE_SIGNAL_REMOVED + signal for each device. A new property, MBIM_PROXY_N_DEVICES, + was added + to indicate the number of devices the proxy is managing. + + To support the --no-open option the proxy now calls the + mbim_device_new() upon receiving the + MBIM_CID_PROXY_CONTROL_CONFIGURATION with the device path. + + src/libmbim-glib/mbim-proxy.c | 287 + +++++++++++++++++++++++------------------- + src/libmbim-glib/mbim-proxy.h | 2 + + 2 files changed, 157 insertions(+), 132 deletions(-) + +commit b2c7f2d9e6e40f24d0dfa943d0f14cb89ed156f9 +Author: Greg Suarez +Date: Wed Jul 23 14:21:24 2014 -0700 + + mbim-proxy: Exit when all devices are removed + + Exit when all devices are removed instead of when there are no clients + connected. This is done to allow for --no-close and --no-open options + in mbimcli. + + src/mbim-proxy/mbim-proxy.c | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +commit 9db69f4e22c63d56f6b1d2438b96e9e4dc7bd222 +Author: Greg Suarez +Date: Wed Jul 23 14:21:23 2014 -0700 + + libmbim-glib: mbim-device: Emit MBIM_DEVICE_SIGNAL_REMOVED when + device is removed + + Emit the MBIM_DEVICE_SIGNAL_REMOVED when G_IO_HUP is received on the + GIOChannel. + + src/libmbim-glib/mbim-device.c | 20 ++++++++++++++++++++ + src/libmbim-glib/mbim-device.h | 1 + + 2 files changed, 21 insertions(+) + +commit cc831bea3f9ac56286841eb1abc741646689e562 +Author: Aleksander Morgado +Date: Sun Jul 6 21:10:28 2014 +0200 + + libmbim-glib,proxy: don't assume device, always needs to be given + + src/libmbim-glib/mbim-proxy.c | 3 --- + 1 file changed, 3 deletions(-) + +commit 9880e0d80dc3fe5482a749748d0682f0584c2e80 +Author: Aleksander Morgado +Date: Sun Jul 6 21:06:11 2014 +0200 + + libmbim-glib,proxy: close device, then free client + + Avoids unref-ing the device if there is none. + + (mbim-proxy:3227): GLib-GObject-CRITICAL **: g_object_unref: assertion + 'G_IS_OBJECT (object)' failed + + Program received signal SIGTRAP, Trace/breakpoint trap. + 0x00007ffff7325993 in g_logv () from /usr/lib/libglib-2.0.so.0 + (gdb) bt + #0 0x00007ffff7325993 in g_logv () from /usr/lib/libglib-2.0.so.0 + #1 0x00007ffff7325af2 in g_log () from /usr/lib/libglib-2.0.so.0 + #2 0x00007ffff7bb7676 in connection_close (client=0x60fd90) + at mbim-proxy.c:232 + #3 0x00007ffff7bb8dbd in connection_readable_cb (socket=0x617520, + condition=(G_IO_IN | G_IO_HUP), client=0x60fd90) at mbim-proxy.c:892 + #4 0x00007ffff789fb63 in ?? () from /usr/lib/libgio-2.0.so.0 + #5 0x00007ffff731ea65 in g_main_context_dispatch () from + /usr/lib/libglib-2.0.so.0 + #6 0x00007ffff731edc8 in ?? () from /usr/lib/libglib-2.0.so.0 + #7 0x00007ffff731f08a in g_main_loop_run () from + /usr/lib/libglib-2.0.so.0 + #8 0x0000000000401421 in main (argc=1, argv=0x7fffffffeb18) + at mbim-proxy.c:214 + + src/libmbim-glib/mbim-proxy.c | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +commit 5a6b509ed61cb9391148163f2b6cbe456882394c +Author: Aleksander Morgado +Date: Sun Jul 6 21:04:56 2014 +0200 + + libmbim-glib,device: unexpected host messages shouldn't be warnings + + src/libmbim-glib/mbim-device.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit b9d945cc19972ced0830804ec547ff1d8f92ce20 +Author: Greg Suarez +Date: Wed Jul 2 10:52:55 2014 -0700 + + libmbim-glib,proxy: clamp standard service subscribe list to + basic-connect to dss + + src/libmbim-glib/mbim-proxy.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit d703b5ec94320560145de6eb3f99363ea4e09cda +Author: Greg Suarez +Date: Wed Jul 2 10:52:54 2014 -0700 + + libmbim-glib,proxy: don't forward non-standard indications unless + explicity registered + + Ensure that non-standard indications are not forwared unless the CID + has been explicitly registered via + MBIM_CID_DEVICE_SERVICE_SUBSCRIBE_LIST. + + Section 10.5.30.1 of the MBIM Specifiction states: + "Upon OPEN_DONE completion, notifications for CIDs defined in this + specification are enabled (aka subscribed to) by default, and vendor + extension notifications are off by default." + + src/libmbim-glib/mbim-proxy.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit 455002ded5e2d19f6946b60b8b48fcb60e3331f5 +Author: Aleksander Morgado +Date: Sun Jun 22 16:27:35 2014 +0200 + + libmbim-glib,proxy: fix endianness in built responses + + src/libmbim-glib/mbim-proxy.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 2cbb82fe0b8c2d18edca3fcee6cca0da4fc5aebd +Author: Aleksander Morgado +Date: Sun Jun 22 16:27:11 2014 +0200 + + libmbim-glib,proxy: use mbim_uuid_cmp() to compare UUIDs + + src/libmbim-glib/mbim-proxy.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +commit 8b7817fa5b6247b46765674f1bdf9bd1631a9a9b +Author: Aleksander Morgado +Date: Sun Jun 22 16:17:25 2014 +0200 + + libmbim-glib,proxy: don't reallocate buffer to reply, just ref + original request + + src/libmbim-glib/mbim-proxy.c | 29 +++++++++++++---------------- + 1 file changed, 13 insertions(+), 16 deletions(-) + +commit 4ff1fb5b233bb0fe5bb8d391eb42653f8dfce240 +Author: Aleksander Morgado +Date: Sun Jun 22 16:01:17 2014 +0200 + + libmbim-glib: coding style fixes + + src/libmbim-glib/mbim-proxy.c | 42 + +++++++++++++++++++----------------------- + 1 file changed, 19 insertions(+), 23 deletions(-) + +commit 46f4cef74472f33a089e57418e2cf19ae5540783 +Author: Greg Suarez +Date: Mon Jun 9 12:06:58 2014 -0700 + + libmbim-glib: changed copyright from Greg Suarez to Smith Micro + Software, Inc. + + src/libmbim-glib/mbim-device.c | 2 +- + src/libmbim-glib/mbim-proxy.c | 2 +- + src/libmbim-glib/mbim-proxy.h | 2 +- + src/libmbim-glib/mbim-uuid.c | 2 +- + src/mbim-proxy/mbim-proxy.c | 2 +- + 5 files changed, 5 insertions(+), 5 deletions(-) + +commit 0a6db2e81e45120df6ae0d05dd9cd56caabc5804 +Author: Greg Suarez +Date: Mon Jun 9 12:00:06 2014 -0700 + + libmbim-glib,proxy: filter indications based on + MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBE_LIST + + Previously mbim-proxy tracked and filtered indications of non-standard + services based on whether a client has sent a message to the + device with + a matching UUID. This patch removes that tracking and filtering and + instead tracks and filters indications based on the client sending + the MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBE_LIST command to + the device. + + The client will receive all indications if it never sends the + MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBE_LIST command. + Once the client sends the + MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBE_LIST command, the + client will only receive indications specified in the command. + + src/libmbim-glib/mbim-proxy.c | 308 + +++++++++++++++++++++++++++++++++++------- + 1 file changed, 260 insertions(+), 48 deletions(-) + +commit 2fb5c309d2d8d0987bd73acae9b91fee1d334396 +Author: Aleksander Morgado +Date: Sat May 24 19:45:36 2014 +0800 + + libmbim-glib,proxy: single default timeout for every operation + + src/libmbim-glib/mbim-proxy.c | 35 ++++++----------------------------- + 1 file changed, 6 insertions(+), 29 deletions(-) + +commit 9b3c33b4b350b8682d3fed657879accf3edefde4 +Author: Aleksander Morgado +Date: Sat May 24 19:13:29 2014 +0800 + + libmbim-glib,proxy: refactor message filtering + + src/libmbim-glib/mbim-proxy.c | 29 ++++++++++++++--------------- + 1 file changed, 14 insertions(+), 15 deletions(-) + +commit a6779abdc7e106ce48ef185aea3c7b9477b93c8a +Author: Aleksander Morgado +Date: Sat May 24 12:57:03 2014 +0200 + + mbimcli: don't use the proxy by default, new '--device-open-proxy,-p' + option + + src/mbimcli/mbimcli.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +commit 4c86eef6534bf28eb86409bd89270787905dd8bd +Author: Aleksander Morgado +Date: Sat May 24 12:52:06 2014 +0200 + + docs,libmbim-glib: add proxy reference documentation + + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + 1 file changed, 1 insertion(+) + +commit 1210f309dac4b3bbe83e1e04f628433a48f5d970 +Author: Aleksander Morgado +Date: Sat May 24 12:49:09 2014 +0200 + + libmbim-glib: add missing MBIM_DEVICE_OPEN_FLAGS_NONE documentation. + + src/libmbim-glib/mbim-device.h | 1 + + 1 file changed, 1 insertion(+) + +commit f83deaaa40e429a33c1195b1a96b8c3be35f42f6 +Author: Aleksander Morgado +Date: Sat May 24 12:47:44 2014 +0200 + + docs,libmbim-glib: include proxy related API in docs + + For now, hide all the private implementations which are not supposed + to be + used out of libmbim-glib (e.g. mbim_message_open_done_new()). + + .../libmbim-glib/libmbim-glib-common.sections | 33 + ++++++++++++++++++++++ + 1 file changed, 33 insertions(+) + +commit 624c405e3212ccdc96d5f7dfffb8b9f7e755235c +Author: Aleksander Morgado +Date: Fri May 23 15:11:37 2014 +0200 + + libmbim-glib,device: add missing documentation for + mbim_device_open_full() + + src/libmbim-glib/mbim-device.c | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +commit 3dd57ec0a7631da559208a996025eb625e395984 +Author: Aleksander Morgado +Date: Fri May 23 15:09:31 2014 +0200 + + libmbim-glib,device: provide a open_full_finish() method + + Instead of relying that the implementations for the open() and + open_full() + methods depend on each other (in the API), just setup a different + finish() + method for the new open_full() method. + + src/libmbim-glib/mbim-device.c | 15 ++++++++++++--- + src/libmbim-glib/mbim-device.h | 15 +++++++++------ + 2 files changed, 21 insertions(+), 9 deletions(-) + +commit 5ec2e089dd0ee5b59be34936cd8dbfcf49fe8437 +Author: Aleksander Morgado +Date: Fri May 23 15:05:36 2014 +0200 + + build: fix several coding style issues + + .gitignore | 2 +- + configure.ac | 2 +- + src/libmbim-glib/mbim-cid.c | 1 + + src/libmbim-glib/mbim-device.c | 16 ++++++++-------- + src/libmbim-glib/mbim-device.h | 2 -- + src/libmbim-glib/mbim-proxy.c | 26 +++++++++++++------------- + src/libmbim-glib/mbim-uuid.c | 4 ++-- + 7 files changed, 26 insertions(+), 27 deletions(-) + +commit 1f4d2fad25e48bcf4af902a31e76764babeb2a5c +Author: Greg Suarez +Date: Wed Apr 16 09:48:25 2014 -0700 + + libmbim: Add mbim-proxy support + + This patch implements the mbim-proxy support to allow mulitple clients + to have concurrent access to the MBIM device through libmbim. + + The implementation is heavily based on qmi-proxy. + + The function mbim_device_open_full() is provided for clients to + specify that + the device should be opened through the mbim-proxy via the flag + MBIM_DEVICE_OPEN_FLAGS_PROXY. + + The function mbim_device_open() will behave as it has before and + open the + device directly. + + Proxy Control: + A new service UUID is created to allow for clients to control + the proxy. + This service is currently only used to pass on the device path + (/dev/cdc-wdm*) + the client is requesting to open. In the future CIDs will be added + to allow + for setting the MaxControlMessage size and setting timeout for + specific + messages. + + Unknown UUIDs: + Currently the mbim-proxy will allow messages with unknown UUIDs to + pass through. + The proxy will track unknown UUIDs sent by the client and device + notifications + matching the tracked UUID will be sent to the client. Device + notifications + of known UUIDs will be sent to all connected clients. + + Signed-off-by: Greg Suarez + + .gitignore | 10 +- + configure.ac | 10 + + data/Makefile.am | 3 +- + data/mbim-service-proxy-control.json | 15 + + src/Makefile.am | 2 +- + src/libmbim-glib/Makefile.am | 7 +- + src/libmbim-glib/generated/Makefile.am | 18 +- + src/libmbim-glib/libmbim-glib.h | 1 + + src/libmbim-glib/mbim-cid.c | 22 +- + src/libmbim-glib/mbim-cid.h | 12 + + src/libmbim-glib/mbim-device.c | 447 ++++++++++++--- + src/libmbim-glib/mbim-device.h | 20 + + src/libmbim-glib/mbim-message-private.h | 4 + + src/libmbim-glib/mbim-message.c | 56 +- + src/libmbim-glib/mbim-message.h | 16 +- + src/libmbim-glib/mbim-proxy.c | 938 + ++++++++++++++++++++++++++++++++ + src/libmbim-glib/mbim-proxy.h | 59 ++ + src/libmbim-glib/mbim-uuid.c | 16 +- + src/libmbim-glib/mbim-uuid.h | 11 + + src/mbim-proxy/Makefile.am | 16 + + src/mbim-proxy/mbim-proxy.c | 223 ++++++++ + src/mbimcli/mbimcli.c | 11 +- + 22 files changed, 1804 insertions(+), 113 deletions(-) + +commit 294d99843aed68db5e3234a701aa7b338ddf12bd +Author: Yunlian Jiang +Date: Tue Jul 22 08:02:46 2014 -0700 + + libmbim-glib,test: fix a memory leak in test-message-parser + + This fixes a memory leak in test-message-parser. + + src/libmbim-glib/test/test-message-parser.c | 1 + + 1 file changed, 1 insertion(+) + +commit 3e9b6c1d738eb4ade7c311a5cc9fe4987e8402e5 +Author: Aleksander Morgado +Date: Fri Jul 11 11:47:12 2014 +0200 + + build: update copyright years and authors list + + AUTHORS | 15 ++++++++++++++- + build-aux/mbim-codegen/Message.py | 2 +- + build-aux/mbim-codegen/ObjectList.py | 2 +- + build-aux/mbim-codegen/Struct.py | 2 +- + build-aux/mbim-codegen/utils.py | 4 ++-- + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 2 +- + src/libmbim-glib/libmbim-glib.h | 2 +- + src/libmbim-glib/mbim-cid.c | 2 +- + src/libmbim-glib/mbim-cid.h | 2 +- + src/libmbim-glib/mbim-device.c | 2 +- + src/libmbim-glib/mbim-device.h | 2 +- + src/libmbim-glib/mbim-enums.h | 2 +- + src/libmbim-glib/mbim-errors.h | 2 +- + src/libmbim-glib/mbim-message-private.h | 2 +- + src/libmbim-glib/mbim-message.c | 2 +- + src/libmbim-glib/mbim-message.h | 2 +- + src/libmbim-glib/mbim-utils.c | 2 +- + src/libmbim-glib/mbim-utils.h | 2 +- + src/libmbim-glib/mbim-uuid.c | 2 +- + src/libmbim-glib/mbim-uuid.h | 2 +- + src/libmbim-glib/mbim-version.h.in | 1 + + src/libmbim-glib/test/test-cid.c | 2 +- + src/libmbim-glib/test/test-fragment.c | 2 +- + src/libmbim-glib/test/test-message-builder.c | 2 +- + src/libmbim-glib/test/test-message-parser.c | 2 +- + src/libmbim-glib/test/test-message.c | 2 +- + src/libmbim-glib/test/test-uuid.c | 2 +- + src/mbimcli/mbimcli-basic-connect.c | 2 +- + src/mbimcli/mbimcli-phonebook.c | 2 +- + src/mbimcli/mbimcli.c | 4 ++-- + src/mbimcli/mbimcli.h | 2 +- + 31 files changed, 46 insertions(+), 32 deletions(-) + +commit 66e379dfa3e0446398e34d7056ab443cccca7feb +Author: Aleksander Morgado +Date: Thu Jul 10 10:30:26 2014 +0200 + + libmbim-glib,test: new parser tester for Register State responses + + src/libmbim-glib/test/test-message-parser.c | 82 + +++++++++++++++++++++++++++++ + 1 file changed, 82 insertions(+) + +commit 835602a65f8e9656f2b642b5ba073d9f0ad12e95 +Author: Aleksander Morgado +Date: Thu Jul 10 10:29:23 2014 +0200 + + libmbim-glib,enums: API break: update automatic attach flag value + + MBIM_REGISTRATION_FLAG_PACKET_SERVICE_AUTOMATIC_ATTACH is bit 2 in + the mask + (only shift 1 left needed), not bit 3. + + src/libmbim-glib/mbim-enums.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ce3ac13428a11eee62e3f844798854fa074ef35e +Author: Prathmesh Prabhu +Date: Thu Jun 19 08:59:52 2014 -0700 + + libmbim-glib: print parsed packet even for unmatched transaction + + src/libmbim-glib/mbim-device.c | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +commit 55e40ead6b708f51cd0faa5a4c69d827cd1acf43 +Author: Prathmesh Prabhu +Date: Wed Jun 18 07:52:37 2014 -0700 + + libmbim-glib: add additional GMM cause codes to MbimNwError + + src/libmbim-glib/mbim-enums.h | 2 ++ + 1 file changed, 2 insertions(+) + +commit 6f2a64292e16bd8a8e6c6b79d898a693eb372b45 +Author: Aleksander Morgado +Date: Tue Jun 10 17:10:45 2014 +0200 + + libmbim-glib,device: match transaction also by type + + There's this Huawei EM820W which replies several OPEN DONE messages, + even using + a transaction ID which doesn't belong to the original OPEN message. + + Hardware | manufacturer: 'Huawei' + | model: 'MBIM [12D1:1571]' + | revision: '11.810.10.02.00' + + E.g. + + Send OPEN message (transaction 1) + <<<<<< RAW: + <<<<<< length = 16 + <<<<<< data = 01:00:00:00:10:00:00:00:01:00:00:00:00:06:00:00 + + Get OPEN DONE message (transaction 1) + >>>>>> RAW: + >>>>>> length = 16 + >>>>>> data = 01:00:00:80:10:00:00:00:01:00:00:00:00:00:00:00 + + Send COMMAND message (transaction 2) + <<<<<< RAW: + <<<<<< length = 48 + <<<<<< data = 03:00:00:00:30:00:00:00:02:00:00:00:01:00:... + + Receive OPEN DONE message (transaction 2) <---------- ERROR + >>>>>> RAW: + >>>>>> length = 16 + >>>>>> data = 01:00:00:80:10:00:00:00:02:00:00:00:00:00:00:00 + + Then, get the COMMAND DONE message (transaction 2) as we expected + >>>>>> RAW: + >>>>>> length = 208 + >>>>>> data = + 03:00:00:80:D0:00:00:00:02:00:00:00:01:00:00:00:... + + So, in order to handle this, match responses not only by transaction + ID, but + also by expected message type. The expected message type is the that + of the + message which was originally used to create the transaction, + i.e. not the + type of the message expected to complete it. + + src/libmbim-glib/mbim-device.c | 46 + +++++++++++++++++++++++++++--------------- + 1 file changed, 30 insertions(+), 16 deletions(-) + +commit b8860570bcd212db2628639e2045645ca00f7c24 +Author: Ben Chan +Date: Wed May 21 17:40:27 2014 -0700 + + libmbim-glib: consistently use spaces for indentation + + src/libmbim-glib/mbim-compat.c | 26 +++++++++++++------------- + src/libmbim-glib/mbim-compat.h | 10 +++++----- + src/libmbim-glib/mbim-version.h.in | 2 +- + 3 files changed, 19 insertions(+), 19 deletions(-) + +commit bae1e141dd6b265de46e143fd05d2077224b1c72 +Author: Aleksander Morgado +Date: Thu Apr 10 17:18:55 2014 +0200 + + libmbim-glib,uuid: fix mbim_service_lookup_name() declaration + + src/libmbim-glib/mbim-uuid.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 23c26c50bec555c4d98b0f5df4fdf9987b1fbc24 +Author: Aleksander Morgado +Date: Thu Apr 10 17:15:35 2014 +0200 + + libmbim-glib,uuid: add missing documentation for the new custom + service methods + + src/libmbim-glib/mbim-uuid.c | 21 ++++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +commit f7d3ec13cc9b2c5952b7db84f269423a4049e8a9 +Author: Arnaud Desmier +Date: Thu Apr 10 11:18:47 2014 +0200 + + libmbim: add support for custom services + + * use mbim_register_custom_service API to register a new service. + * use mbim_unregister_custom_service API to unregister it. + + .../libmbim-glib/libmbim-glib-common.sections | 4 + + src/libmbim-glib/mbim-message.c | 8 +- + src/libmbim-glib/mbim-uuid.c | 121 + ++++++++++++++++++++- + src/libmbim-glib/mbim-uuid.h | 11 ++ + src/libmbim-glib/test/test-uuid.c | 31 ++++++ + 5 files changed, 170 insertions(+), 5 deletions(-) + +commit b1ae81a75a1a68ea1c7316047528e79092bf0d37 +Author: Ben Chan +Date: Sun Mar 9 13:52:18 2014 -0700 + + libmbim-glib: add additional GMM cause codes to MbimNwError + + This patch adds additional GMM cause codes defined in the 3GPP + TS 24.008 + specification to MbimNwError. + + src/libmbim-glib/mbim-enums.h | 68 + ++++++++++++++++++++++++++++++++++--------- + 1 file changed, 55 insertions(+), 13 deletions(-) + +commit 4bc439802257e037c7979c45f8a26f794350e854 +Author: Aleksander Morgado +Date: Sun Mar 9 22:19:10 2014 +0100 + + data: add libmbim icon + + docs/libmbim-icon.svg | 197 + ++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 197 insertions(+) + +commit a96fea153550f1b0cdf0f6e3413bdeec5ddb541e +Author: Aleksander Morgado +Date: Thu Mar 6 14:29:15 2014 +0100 + + release: bump version to 1.9.0 (development) + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ab20987de38ca08953f387f6b59f5e44794d5332 +Author: Aleksander Morgado +Date: Thu Mar 6 12:30:56 2014 +0100 + + release: bump version to 1.8.0 + + configure.ac | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit c4ac72feba717c7f4f11986f53959c1c5f76c131 +Author: Aleksander Morgado +Date: Thu Mar 6 12:59:27 2014 +0100 + + NEWS: update + + NEWS | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +commit b579fb2f5dd52cea4825d39106b0cb22959036ff +Author: Aleksander Morgado +Date: Thu Mar 6 12:30:10 2014 +0100 + + libmbim-glib,docs: add short descriptions to the sections + + src/libmbim-glib/mbim-cid.c | 1 + + src/libmbim-glib/mbim-enums.h | 1 + + src/libmbim-glib/mbim-errors.h | 1 + + src/libmbim-glib/mbim-uuid.c | 1 + + 4 files changed, 4 insertions(+) + +commit bff421b8b813be29909d05f8619b52788591f3e4 +Author: Aleksander Morgado +Date: Thu Mar 6 12:23:40 2014 +0100 + + libmbim-glib: small layer for backwards compatibility + + .../libmbim-glib/libmbim-glib-common.sections | 8 +++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 9 +-- + src/libmbim-glib/Makefile.am | 6 +- + src/libmbim-glib/libmbim-glib.h | 3 + + src/libmbim-glib/mbim-compat.c | 83 + ++++++++++++++++++++++ + src/libmbim-glib/mbim-compat.h | 75 + +++++++++++++++++++ + 6 files changed, 178 insertions(+), 6 deletions(-) + +commit d33dc227e0a6eaf9004dee59afc86b5e8fc3a6a4 +Author: Ben Chan +Date: Tue Feb 18 12:42:44 2014 -0800 + + libmbim-glib: fix typo in MBIM_CID_DEVICE_SERVICE_SUBSCRIBE_LIST + + This patch renames 'MBIM_CID_DEVICE_SERVICE_SUBSCRIBER_LIST' to + 'MBIM_CID_DEVICE_SERVICE_SUBSCRIBE_LIST' to be consistent with + the MBIM + specification. This CID is for subscribing notifications for CIDs that + the host is interested in, and is not related to mobile 'subscriber'. + + data/mbim-service-basic-connect.json | 2 +- + src/libmbim-glib/mbim-cid.c | 2 +- + src/libmbim-glib/mbim-cid.h | 4 ++-- + src/libmbim-glib/test/test-message-builder.c | 8 ++++---- + 4 files changed, 8 insertions(+), 8 deletions(-) + +commit c1380f571a821b650e41cabe194ebfe9a847fdba +Author: Ben Chan +Date: Wed Mar 5 21:45:22 2014 -0800 + + libmbim-glib,mbimcli: consistently use spaces for indentation + + src/libmbim-glib/mbim-message-private.h | 2 +- + src/libmbim-glib/mbim-message.c | 4 +-- + src/libmbim-glib/mbim-utils.c | 44 + ++++++++++++++--------------- + src/libmbim-glib/test/test-message-parser.c | 2 +- + src/mbimcli/mbimcli-basic-connect.c | 16 +++++------ + src/mbimcli/mbimcli-dss.c | 2 +- + src/mbimcli/mbimcli-phonebook.c | 16 +++++------ + src/mbimcli/mbimcli.c | 6 ++-- + 8 files changed, 46 insertions(+), 46 deletions(-) + +commit 4743526c7c28f087b368973dcffdab69197caf6f +Author: Aleksander Morgado +Date: Wed Mar 5 11:18:16 2014 +0100 + + license: add GPLv2+ license in addition to the LGPLv2+ one + + This is not a license change; the library is still LGPLv2+, and the + command line + tool GPLv2+. + + For reference, see libqmi bug: + https://bugs.freedesktop.org/show_bug.cgi?id=74220 + + COPYING | 663 + +++++++++++++++++++++++------------------------------------- + COPYING.LIB | 502 +++++++++++++++++++++++++++++++++++++++++++++ + Makefile.am | 4 +- + README | 6 +- + 4 files changed, 760 insertions(+), 415 deletions(-) + +commit e6fa398d9d5b51951b024e161b7bfe668d8f8fd6 +Author: Aleksander Morgado +Date: Wed Mar 5 10:56:55 2014 +0100 + + docs: add documentation for the new 'MS Host Shutdown' service + + docs/reference/libmbim-glib/Makefile.am | 3 ++- + docs/reference/libmbim-glib/libmbim-glib-common.sections | 6 ++++++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + 3 files changed, 9 insertions(+), 1 deletion(-) + +commit 14d87407a892505837fb9a410fed479e3cc1cec4 +Author: Ben Chan +Date: Tue Mar 4 11:56:27 2014 -0800 + + mbimcli: new '--ms-notify-host-shutdown' action + + src/mbimcli/Makefile.am | 3 +- + src/mbimcli/mbimcli-ms-host-shutdown.c | 160 + +++++++++++++++++++++++++++++++++ + src/mbimcli/mbimcli.c | 18 ++-- + src/mbimcli/mbimcli.h | 40 +++++---- + 4 files changed, 197 insertions(+), 24 deletions(-) + +commit 854c32968eab2f637b5fb33a79fba74ed48434ab +Author: Ben Chan +Date: Tue Mar 4 11:56:26 2014 -0800 + + ms-host-shutdown: add support for the Microsoft Host Shutdown service + + data/Makefile.am | 3 +- + data/mbim-service-ms-host-shutdown.json | 11 ++++++ + src/libmbim-glib/generated/Makefile.am | 18 ++++++++-- + src/libmbim-glib/libmbim-glib.h | 1 + + src/libmbim-glib/mbim-cid.c | 23 ++++++++++--- + src/libmbim-glib/mbim-cid.h | 12 +++++++ + src/libmbim-glib/mbim-message.c | 2 +- + src/libmbim-glib/mbim-uuid.c | 15 +++++++- + src/libmbim-glib/mbim-uuid.h | 29 +++++++++++----- + src/libmbim-glib/test/test-cid.c | 25 +++++++++----- + src/libmbim-glib/test/test-message-builder.c | 51 + ++++++++++++++++++++++++++++ + src/libmbim-glib/test/test-uuid.c | 24 ++++++++----- + 12 files changed, 179 insertions(+), 35 deletions(-) + +commit cdba6091aeb9be338073954e6506e1a88b1839d2 +Author: Aleksander Morgado +Date: Wed Mar 5 09:07:17 2014 +0100 + + libmbim-glib,uuid: validate str contents before converting to UUID + + And avoid sscanf(). A single loop to validate contents and build + the result is + enough. + + src/libmbim-glib/mbim-uuid.c | 56 + +++++++++++++++++++++++--------------------- + 1 file changed, 29 insertions(+), 27 deletions(-) + +commit 378d71b61de6bd910659c02a52360262662a06bf +Author: Aleksander Morgado +Date: Wed Mar 5 08:56:13 2014 +0100 + + mbimcli: new helper method to read uints from strings + + src/mbimcli/Makefile.am | 4 ++-- + src/mbimcli/mbimcli-dss.c | 18 ++------------- + src/mbimcli/mbimcli-helpers.c | 49 + +++++++++++++++++++++++++++++++++++++++++ + src/mbimcli/mbimcli-helpers.h | 31 ++++++++++++++++++++++++++ + src/mbimcli/mbimcli-phonebook.c | 9 ++------ + src/mbimcli/mbimcli.c | 25 ++------------------- + 6 files changed, 88 insertions(+), 48 deletions(-) + +commit f493cf758320e0d49cc95ffc28ef7554d277ab3e +Author: Aleksander Morgado +Date: Tue Mar 4 20:26:50 2014 +0100 + + mbimcli,dss: use the new 'mbim_uuid_from_printable()' + + src/mbimcli/mbimcli-dss.c | 35 +---------------------------------- + 1 file changed, 1 insertion(+), 34 deletions(-) + +commit 8fa0b491f0d01cf6dd640a3dda179d2f3e0027be +Author: Aleksander Morgado +Date: Tue Mar 4 20:25:25 2014 +0100 + + libmbim-glib,uuid: make sure sscanf() reads 16 items + + src/libmbim-glib/mbim-uuid.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 59a932dbbe99677091bbe81d3d82293cae1a842d +Author: Aleksander Morgado +Date: Tue Mar 4 20:24:20 2014 +0100 + + libmbim-glib,uuid: check dashes positions before the sscanf() + + The sscanf() parser seems not good enough to catch mismatched dashes. + + src/libmbim-glib/mbim-uuid.c | 29 +++++++++++++++++------------ + 1 file changed, 17 insertions(+), 12 deletions(-) + +commit 82ca529fb5efeeb23cb636fe1b5fc0d849f45964 +Author: Aleksander Morgado +Date: Tue Mar 4 20:10:29 2014 +0100 + + libmbim-glib,uuid: new 'mbim_uuid_from_printable()' + + .../libmbim-glib/libmbim-glib-common.sections | 1 + + src/libmbim-glib/mbim-uuid.c | 52 ++++++++++++++- + src/libmbim-glib/mbim-uuid.h | 8 ++- + src/libmbim-glib/test/test-uuid.c | 77 + ++++++++++++++++++++++ + 4 files changed, 134 insertions(+), 4 deletions(-) + +commit 5764ec47873540e3e356b9af2bcfdd1fab066a0c +Author: Aleksander Morgado +Date: Tue Mar 4 20:06:06 2014 +0100 + + mbimcli: fix minor style issues + + src/mbimcli/mbimcli-dss.c | 134 + ++++++++++++++++++++++------------------------ + src/mbimcli/mbimcli.c | 2 +- + 2 files changed, 65 insertions(+), 71 deletions(-) + +commit 40be0255d31a845757a87eb52c31a32751de0b72 +Author: Scott Lee +Date: Tue Mar 4 19:42:11 2014 +0100 + + mbimcli: new --dss-connect and --dss-disconnect actions + + src/mbimcli/Makefile.am | 3 +- + src/mbimcli/mbimcli-dss.c | 325 + ++++++++++++++++++++++++++++++++++++++++++++++ + src/mbimcli/mbimcli.c | 8 ++ + src/mbimcli/mbimcli.h | 6 + + 4 files changed, 341 insertions(+), 1 deletion(-) + +commit d6e052b88463ee6c257fe34678bb60ecf795ec5e +Author: Ben Chan +Date: Tue Mar 4 00:17:23 2014 -0800 + + mbimcli: increase timeout of device open operation + + A MBIM device typically delays its response to an 'Open' command + when it + has not completed the initialization process. This patch increases the + timeout of the MBIM device open operation from 15s to 30s to handle + situations where the device takes much longer to initialize. + + src/mbimcli/mbimcli.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5732b5518b866b3c2101739e9b223e0701a4333c +Author: Ben Chan +Date: Fri Feb 28 23:56:37 2014 -0800 + + basic-connect: implement 'Emergency Mode' notification handling + + data/mbim-service-basic-connect.json | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit ca3300247d257d668b86921315a7d8d3fa2f47f0 +Author: Ben Chan +Date: Fri Feb 28 23:49:51 2014 -0800 + + basic-connect: fix notification code generation + + data/mbim-service-basic-connect.json | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +commit f9e62cff4974d1ad34eeef539cda8106d80630e8 +Author: Ben Chan +Date: Thu Feb 27 21:43:17 2014 -0800 + + mbimcli: new '--set-radio-state' action + + src/mbimcli/mbimcli-basic-connect.c | 34 + ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +commit 2555c13a887f9a14e0d263c98189891e25a96c85 +Author: Ben Chan +Date: Thu Feb 27 10:23:40 2014 -0800 + + mbimcli: check status code in command-done message before parsing + response + + This patch adds missing mbim_message_command_done_get_result() + checks in + mbimcli to ensure that the status code in a command-done message + reports + no error before parsing further parsing the response. It also adds + missing mbim_message_unref() calls to ensure that the response + is freed + in case of an error. + + src/mbimcli/mbimcli-basic-connect.c | 34 + ++++++++++++++++++++++++++++++---- + src/mbimcli/mbimcli-ms-firmware-id.c | 4 +++- + src/mbimcli/mbimcli-phonebook.c | 16 ++++++++++++---- + 3 files changed, 45 insertions(+), 9 deletions(-) + +commit b358180ac684ac37e15e3a6c5eab31dda10d2a81 +Author: Aleksander Morgado +Date: Thu Feb 27 10:02:10 2014 +0100 + + docs: add missing documentation for the MS Firmware ID service + + docs/reference/libmbim-glib/Makefile.am | 3 ++- + docs/reference/libmbim-glib/libmbim-glib-common.sections | 6 ++++++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + 3 files changed, 9 insertions(+), 1 deletion(-) + +commit 4b719a8f38bd46151a41e6e7ce6be3f7082f8f5d +Author: Ben Chan +Date: Wed Feb 26 22:26:49 2014 -0800 + + mbimcli: new '--ms-query-firmware-id' action + + src/mbimcli/Makefile.am | 3 +- + src/mbimcli/mbimcli-ms-firmware-id.c | 174 + +++++++++++++++++++++++++++++++++++ + src/mbimcli/mbimcli.c | 8 ++ + src/mbimcli/mbimcli.h | 20 ++-- + 4 files changed, 196 insertions(+), 9 deletions(-) + +commit d482a37156a70a7b778ed0c1aaeecdc9b5a7a8dd +Author: Ben Chan +Date: Wed Feb 26 22:26:48 2014 -0800 + + ms-firmware-id: add support for the Microsoft Firmware ID service + + data/Makefile.am | 3 +- + data/mbim-service-ms-firmware-id.json | 13 ++++++++ + src/libmbim-glib/generated/Makefile.am | 18 ++++++++-- + src/libmbim-glib/libmbim-glib.h | 1 + + src/libmbim-glib/mbim-cid.c | 22 +++++++++--- + src/libmbim-glib/mbim-cid.h | 12 +++++++ + src/libmbim-glib/mbim-message.c | 2 +- + src/libmbim-glib/mbim-uuid.c | 15 ++++++++- + src/libmbim-glib/mbim-uuid.h | 27 ++++++++++----- + src/libmbim-glib/test/test-cid.c | 23 +++++++++---- + src/libmbim-glib/test/test-message-parser.c | 52 + +++++++++++++++++++++++++++++ + src/libmbim-glib/test/test-uuid.c | 21 ++++++++---- + 12 files changed, 177 insertions(+), 32 deletions(-) + +commit 263b020d05f73e74be618c6e854a1461c5957c05 +Author: Ben Chan +Date: Wed Feb 26 21:37:20 2014 -0800 + + mbimcli: fix a typo + + src/mbimcli/mbimcli-phonebook.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 49d1e245e11274b12fe1d71943b0bef92335a0fe +Author: Ben Chan +Date: Tue Feb 25 01:46:27 2014 -0800 + + mbimcli: consolidate VALIDATE_UNKNOWN definitions in one common place + + src/mbimcli/mbimcli-basic-connect.c | 30 ------------------------------ + src/mbimcli/mbimcli-phonebook.c | 8 +------- + src/mbimcli/mbimcli.h | 2 ++ + 3 files changed, 3 insertions(+), 37 deletions(-) + +commit 6b61ffec739c334d9dcf042aab4c74d425e0c75a +Author: Ben Chan +Date: Tue Feb 25 23:00:58 2014 -0800 + + basic-connect: implement 'Subscriber Ready Status' notification + handling + + data/mbim-service-basic-connect.json | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +commit dded15874b8d86f87fd5bacae63d9dc8e81fca0f +Author: Ben Chan +Date: Mon Feb 24 09:12:57 2014 -0800 + + mbimcli: use g_strfreev instead of g_free to free g_strsplit results + + This patch modifies set_pin_input_parse and set_connect_activate_parse + in mbimcli-basic-connect.c to duplicate the strings in a string array, + before returning them to the caller, so that the string array can be + properly freed with g_strfreev. + + src/mbimcli/mbimcli-basic-connect.c | 15 +++++++-------- + 1 file changed, 7 insertions(+), 8 deletions(-) + +commit 3fa4e1bbf6aea94a275a97029a90e2ed4022396b +Author: Ben Chan +Date: Wed Feb 19 23:16:29 2014 -0800 + + basic-connect,stk: make naming more consistent + + Also fixes a few indentation issues. + + data/mbim-service-basic-connect.json | 8 ++++---- + data/mbim-service-stk.json | 8 ++++---- + 2 files changed, 8 insertions(+), 8 deletions(-) + +commit b86066de7d5677a0e99724b03e17bf2622ac7d80 +Author: Ben Chan +Date: Tue Feb 18 11:27:33 2014 -0800 + + libmbim-glib: fix typo in MbimRegistrationFlag + + This patch renames + 'MBIM_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH' in + MbimRegistrationFlag to + 'MBIM_REGISTRATION_FLAG_PACKET_SERVICE_AUTOMATIC_ATTACH' to be + consistent with the MBIM specification. + + src/libmbim-glib/mbim-enums.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit ea5aefddb7b492088cc33b7b4e59487418a57d6a +Author: Ben Chan +Date: Mon Feb 10 09:23:54 2014 -0800 + + mbimcli: fix incorrect enumeration type conversions + + This patch fixes the following incorrect enumeration type conversions: + + mbimcli-basic-connect.c:298:52: error: implicit conversion from + enumeration type 'MbimVoiceClass' to different enumeration type + 'MbimDeviceType' + [-Werror,-Wenum-conversion] + voice_class_str = mbim_device_type_get_string (voice_class); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~ + + mbimcli-basic-connect.c:1595:51: error: implicit conversion from + enumeration type 'MbimActivationCommand' to different enumeration type + 'MbimActivationState' + [-Werror,-Wenum-conversion] + MBIM_ACTIVATION_COMMAND_ACTIVATE, + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + src/mbimcli/mbimcli-basic-connect.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 50e173ed81ff498e7c0f00dcd11b02e136c8979b +Author: Ben Chan +Date: Mon Feb 10 09:23:53 2014 -0800 + + libmbim-glib: remove invalid Context Type UUID conversion + + This patch removes the following invalid conversion from UUID_DSS to a + MBIM Context Type enumeration type: + + mbim-uuid.c:343:16: error: implicit conversion from enumeration type + 'MbimService' to + different enumeration type 'MbimContextType' + [-Werror,-Wenum-conversion] + return MBIM_SERVICE_DSS; + ~~~~~~ ^~~~~~~~~~~~~~~~ + + src/libmbim-glib/mbim-uuid.c | 3 --- + 1 file changed, 3 deletions(-) + +commit 3e5ab128bcf286bf80af684414dee5c4c4add009 +Author: Greg Suarez +Date: Wed Feb 5 11:12:28 2014 -0800 + + libmbim-glib: mbim-device: Decouple logic for cancellable from + timeout when storing transaction + + Decouple the logic for connecting a cancellable from adding a timeout. + Also check if the cancellable has been connected already. + + Signed-off-by: Greg Suarez + + src/libmbim-glib/mbim-device.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +commit d7823dbaebfd62cfe3a34c83346be56236194284 +Author: Greg Suarez +Date: Wed Feb 5 11:12:27 2014 -0800 + + libmbim-glib: mbim-device: Fix adding multiple timeouts for a + transaction + + When receiving multiple fragments device_store_transaction() is called + for each fragment received thus adding a timeout callback for each + fragment. A timeout callback is only removed when all fragments are + received thus leaving dangling timeout callbacks. This leads to + a crash + when the MbimDevice is finalized. + + This patch checks if the transaction has already registered a timeout + callback before adding a new one. + + Signed-off-by: Greg Suarez + + src/libmbim-glib/mbim-device.c | 33 ++++++++++++++++++--------------- + 1 file changed, 18 insertions(+), 15 deletions(-) + +commit 6e86345af53eea76aad1afb2cc78140fe317f104 +Author: Aleksander Morgado +Date: Mon Jan 20 16:26:50 2014 +0100 + + build: ignore python cache + + .gitignore | 1 + + 1 file changed, 1 insertion(+) + +commit 40a1df25869025faf3c857724d3e028ac553b91d +Author: Aleksander Morgado +Date: Tue Dec 10 21:57:13 2013 +0100 + + release: bump version to 1.7.0 (development) + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 094f0bac4befc51fd7bb232e856061774188fae7 +Author: Aleksander Morgado +Date: Tue Dec 10 21:14:53 2013 +0100 + + release: bump version to 1.6.0 + + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 24bfaff2dc656a6c37bbb83f5b0be93031a2ece2 +Author: Aleksander Morgado +Date: Tue Dec 10 21:13:48 2013 +0100 + + NEWS: update + + NEWS | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +commit 6b9f19c7a18c766f5afe7aded03dd77443920aa6 +Author: Aleksander Morgado +Date: Tue Dec 10 19:42:22 2013 +0100 + + build: move source code under src/ + + .gitignore | 42 ++++++++--------- + Makefile.am | 2 +- + autogen.sh | 2 +- + configure.ac | 13 +++--- + docs/man/Makefile.am | 6 +-- + docs/reference/libmbim-glib/Makefile.am | 32 ++++++------- + src/Makefile.am | 2 + + {libmbim-glib => src/libmbim-glib}/Makefile.am | 10 ++--- + .../libmbim-glib}/generated/Makefile.am | 24 +++++----- + {libmbim-glib => src/libmbim-glib}/libmbim-glib.h | 0 + {libmbim-glib => src/libmbim-glib}/mbim-cid.c | 0 + {libmbim-glib => src/libmbim-glib}/mbim-cid.h | 0 + {libmbim-glib => src/libmbim-glib}/mbim-device.c | 0 + {libmbim-glib => src/libmbim-glib}/mbim-device.h | 0 + {libmbim-glib => src/libmbim-glib}/mbim-enums.h | 0 + {libmbim-glib => src/libmbim-glib}/mbim-errors.h | 0 + .../libmbim-glib}/mbim-message-private.h | 0 + {libmbim-glib => src/libmbim-glib}/mbim-message.c | 0 + {libmbim-glib => src/libmbim-glib}/mbim-message.h | 0 + {libmbim-glib => src/libmbim-glib}/mbim-utils.c | 0 + {libmbim-glib => src/libmbim-glib}/mbim-utils.h | 0 + {libmbim-glib => src/libmbim-glib}/mbim-uuid.c | 0 + {libmbim-glib => src/libmbim-glib}/mbim-uuid.h | 0 + .../libmbim-glib}/mbim-version.h.in | 0 + .../libmbim-glib}/test/Makefile.am | 52 + +++++++++++----------- + {libmbim-glib => src/libmbim-glib}/test/test-cid.c | 0 + .../libmbim-glib}/test/test-fragment.c | 0 + .../libmbim-glib}/test/test-message-builder.c | 0 + .../libmbim-glib}/test/test-message-parser.c | 0 + .../libmbim-glib}/test/test-message.c | 0 + .../libmbim-glib}/test/test-uuid.c | 0 + {cli => src/mbimcli}/Makefile.am | 10 ++--- + {cli => src/mbimcli}/mbimcli-basic-connect.c | 0 + {cli => src/mbimcli}/mbimcli-phonebook.c | 0 + {cli => src/mbimcli}/mbimcli.c | 0 + {cli => src/mbimcli}/mbimcli.h | 0 + 36 files changed, 99 insertions(+), 96 deletions(-) + +commit be4bc12a1c5a4855d0ab7d1ad465433ed3e33c09 +Author: Ben Chan +Date: Wed Dec 4 18:51:51 2013 -0800 + + mbimcli: increase timeout for --query-visible-providers to 120s + + cli/mbimcli-basic-connect.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 0f211135785480e8eb844d3f22d926f53381f62a +Author: Aleksander Morgado +Date: Wed Oct 9 09:45:08 2013 +0200 + + mbimcli,phonebook: merge '--phonebook-entry-update' into + '--phonebook-write' + + Just let '--phonebook-write' have an additional optional argument + indicating + the entry index to update. If no index given, a new entry will + be created. + + cli/mbimcli-phonebook.c | 92 + ++++++++++++++++++++----------------------------- + 1 file changed, 38 insertions(+), 54 deletions(-) + +commit cdee1a96ec514fae02b62fe43083e2fc9f3a3bfb +Author: Aleksander Morgado +Date: Wed Oct 9 09:30:30 2013 +0200 + + mbimcli: fix some coding style issues + + cli/Makefile.am | 2 +- + cli/mbimcli-phonebook.c | 73 + ++++++++++++++++++++++++------------------------- + cli/mbimcli.c | 2 +- + 3 files changed, 38 insertions(+), 39 deletions(-) + +commit fdda0a78941247e916e538fc3ac62cff542925fc +Author: Raju +Date: Wed Oct 9 00:05:21 2013 +0530 + + mbimcli: implement phonebook support + + cli/Makefile.am | 3 +- + cli/mbimcli-phonebook.c | 494 + ++++++++++++++++++++++++++++++++++++++++++++++++ + cli/mbimcli.c | 10 +- + cli/mbimcli.h | 5 +- + 4 files changed, 509 insertions(+), 3 deletions(-) + +commit d7e224573eacfa9844b1f02f910ddd3692118023 +Author: Aleksander Morgado +Date: Thu Oct 3 17:34:32 2013 +0200 + + docs: project logo + + docs/libmbim-logo.png | Bin 0 -> 6046 bytes + docs/libmbim-logo.svg | 217 + ++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 217 insertions(+) + +commit 74250cc94f0c5812d4e52db2cdcca0607fa163bb +Author: Aleksander Morgado +Date: Fri Sep 13 19:27:29 2013 +0200 + + mbim-network: use 'dot' instead of 'source' to load profiles + + Same as in libqmi's commit 9bcf031b39bcc47da274001bf36fd62618e2a789. + + utils/mbim-network.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 3f3e65d978daf111b1acf02845d8c817cbc61d21 +Author: Aleksander Morgado +Date: Fri Sep 13 17:08:03 2013 +0200 + + build: generate manpage for 'mbim-network' + + .gitignore | 1 + + docs/man/Makefile.am | 20 +++++++++++++++++--- + 2 files changed, 18 insertions(+), 3 deletions(-) + +commit 0d6f103b9ad99b27e030d37724c1cc2d6be5782d +Author: Aleksander Morgado +Date: Fri Sep 13 17:07:41 2013 +0200 + + mbim-network: implement --help and --version + + .gitignore | 2 ++ + utils/Makefile.am | 10 +++++++++- + utils/{mbim-network => mbim-network.in} | 33 + +++++++++++++++++++++++++++++++++ + 3 files changed, 44 insertions(+), 1 deletion(-) + +commit 22d9c8440970a5490b9c5847af7c4aa4d004d913 +Author: Aleksander Morgado +Date: Fri Sep 13 16:24:43 2013 +0200 + + build: generate manpage for 'mbimcli' + + .gitignore | 2 ++ + configure.ac | 7 ++++++- + docs/Makefile.am | 2 +- + docs/man/Makefile.am | 21 +++++++++++++++++++++ + 4 files changed, 30 insertions(+), 2 deletions(-) + +commit 4fe2e05c360d4cbbc75f2c4960b92f9447d550af +Author: Aleksander Morgado +Date: Wed Aug 14 15:39:46 2013 +0200 + + utils,mbim-network: program is GPLv2+ + + utils/mbim-network | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 675542eff661caa733977d93051ada49b56e4c8f +Author: Aleksander Morgado +Date: Wed Aug 14 15:37:31 2013 +0200 + + build: provide README file + + .gitignore | 1 - + README | 2 ++ + autogen.sh | 2 +- + 3 files changed, 3 insertions(+), 2 deletions(-) + +commit 25cc3ed88d25b17c18fb32f46f96b560834387d3 +Author: Aleksander Morgado +Date: Wed Aug 14 15:32:21 2013 +0200 + + license: update text to latest LGPLv2.1 + + COPYING | 216 + +++++++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 118 insertions(+), 98 deletions(-) + +commit e54f98353a3141cd3d96a2f06a3e6dfefde11495 +Author: Aleksander Morgado +Date: Wed Jul 24 08:56:36 2013 +0200 + + build: fix dist, don't distribute codegen-generated files + + libmbim-glib/generated/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit d1a9d3154525c17f0e022087131a52b4edfb0d8a +Author: Aleksander Morgado +Date: Tue Jul 16 09:32:46 2013 +0200 + + build: filter out non public symbols + + https://bugs.freedesktop.org/show_bug.cgi?id=66949 + + libmbim-glib/Makefile.am | 20 +++++++++++++------- + libmbim-glib/generated/Makefile.am | 2 +- + libmbim-glib/test/Makefile.am | 18 ++++++++++++------ + 3 files changed, 26 insertions(+), 14 deletions(-) + +commit 5c4a0d16a2e4cfd1e9a0cf7ab31c71cadf5ebb01 +Author: Aleksander Morgado +Date: Mon Jun 24 19:30:51 2013 +0200 + + release: bump version to 1.5.0 (development) + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 4e234f1e78ab3078b911090b728a5a2c64dd8d65 +Author: Aleksander Morgado +Date: Mon Jun 24 19:10:39 2013 +0200 + + release: bump version to 1.4.0 + + configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 5f88e25da7d5c465de6b5d39917403b16b9be4b5 +Author: Aleksander Morgado +Date: Mon Jun 24 19:09:02 2013 +0200 + + NEWS: update + + NEWS | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +commit 05dd2f30c679012790be4204e4e801fb0b73dca5 +Author: Aleksander Morgado +Date: Mon Jun 24 18:20:16 2013 +0200 + + libmbim-glib: improve message traces when receiving + + libmbim-glib/mbim-device.c | 24 ++++++++++++++++++------ + 1 file changed, 18 insertions(+), 6 deletions(-) + +commit f78c4bb8e1611abc67798eb1767775df52f4fe80 +Author: Aleksander Morgado +Date: Sun Jun 23 21:31:33 2013 +0200 + + libmbim-glib,test: update one test to have non multiple of 4 + byte-arrays + + libmbim-glib/test/test-message-builder.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +commit cb334b7e064432958272ba8196c881f58e8c2e67 +Author: Aleksander Morgado +Date: Sun Jun 23 21:30:41 2013 +0200 + + libmbim-glib: when appending byte-arrays, ensure padding is also + added when needed + + libmbim-glib/mbim-message.c | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +commit 1754a32e0b0f6f663c8e5b5527b360417679ded0 +Author: Aleksander Morgado +Date: Mon Jun 24 17:29:35 2013 +0200 + + libmbim-glib,test: add tests for 'Multicarrier Providers' command + builder + + libmbim-glib/test/test-message-builder.c | 109 + +++++++++++++++++++++++++++++++ + 1 file changed, 109 insertions(+) + +commit 0b2cea33ae59512cb6b715c1d591b8878f2d3565 +Author: Aleksander Morgado +Date: Sun Jun 23 21:24:05 2013 +0200 + + libmbim-glib,test: fix visible providers response parser + + libmbim-glib/test/test-message-parser.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 1b8fe7e167ac3e740fd0394d68dcc281fe1b0c2b +Author: Aleksander Morgado +Date: Sun Jun 23 21:23:17 2013 +0200 + + libmbim-glib: when appending strings, ensure padding is also added + when needed + + libmbim-glib/mbim-message.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +commit 581e918b5104bf80bfe399eeaa73e98f505011a3 +Author: Aleksander Morgado +Date: Sun Jun 23 21:13:07 2013 +0200 + + basic-connect: implement 'Multicarrier Providers' command handling + + data/mbim-service-basic-connect.json | 26 +++++++++++++++++++++++++- + 1 file changed, 25 insertions(+), 1 deletion(-) + +commit a55fdca1f7eb21fbe1a31a3363d5a3e4258ab2ec +Author: Aleksander Morgado +Date: Sun Jun 23 21:11:52 2013 +0200 + + libmbim-glib,test: add tests for 'DSS connect' command builder + + libmbim-glib/test/test-message-builder.c | 70 + ++++++++++++++++++++++++++++++++ + 1 file changed, 70 insertions(+) + +commit a46114b72d53a62bb0a2991d9f0130cc9351926b +Author: Aleksander Morgado +Date: Sun Jun 23 21:03:12 2013 +0200 + + dss: add support for the DSS service + + data/Makefile.am | 3 ++- + data/mbim-service-dss.json | 20 + ++++++++++++++++++++ + docs/reference/libmbim-glib/Makefile.am | 3 ++- + .../libmbim-glib/libmbim-glib-common.sections | 5 +++++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + libmbim-glib/generated/Makefile.am | 18 + +++++++++++++++--- + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-enums.h | 15 +++++++++++++++ + 8 files changed, 61 insertions(+), 5 deletions(-) + +commit f6af3c11c2874146241246618809e3fe3f34ef12 +Author: Aleksander Morgado +Date: Sun Jun 23 20:23:32 2013 +0200 + + libmbim-glib,test: add tests for 'IP Packet Filters' command builder + + libmbim-glib/test/test-message-builder.c | 256 + +++++++++++++++++++++++++++++++ + 1 file changed, 256 insertions(+) + +commit 1f3fd3e749064279e31ada5895314ff31f0a41f9 +Author: Aleksander Morgado +Date: Sun Jun 23 20:19:00 2013 +0200 + + libmbim-glib,test: add tests for 'IP Packet Filters' response parser + + libmbim-glib/test/test-message-parser.c | 237 + ++++++++++++++++++++++++++++++++ + 1 file changed, 237 insertions(+) + +commit 41f5df0bfc60e8c99a6c631286ce1200ebc7eb65 +Author: Aleksander Morgado +Date: Sun Jun 23 19:29:11 2013 +0200 + + basic-connect: implement 'IP Packet Filters' command handling + + data/mbim-service-basic-connect.json | 42 + +++++++++++++++++++++++++++++++++++- + 1 file changed, 41 insertions(+), 1 deletion(-) + +commit 491435b0ca78bf75ec726891c3ae6303dc265584 +Author: Aleksander Morgado +Date: Sun Jun 23 20:12:56 2013 +0200 + + mbim-codegen: handle reading/writing byte-arrays with shared length + field + + build-aux/mbim-codegen/Message.py | 6 +- + build-aux/mbim-codegen/Struct.py | 55 ++++++++++++------ + libmbim-glib/mbim-message-private.h | 3 +- + libmbim-glib/mbim-message.c | 111 + +++++++++++++++++++++++++++--------- + 4 files changed, 126 insertions(+), 49 deletions(-) + +commit 580c0f25d86268768869c84634403210c9c08824 +Author: Aleksander Morgado +Date: Sun Jun 23 18:34:27 2013 +0200 + + basic-connect: implement 'Emergency Mode' command handling + + data/mbim-service-basic-connect.json | 14 + +++++++++++++- + docs/reference/libmbim-glib/libmbim-glib-common.sections | 5 +++++ + libmbim-glib/mbim-enums.h | 15 + +++++++++++++++ + 3 files changed, 33 insertions(+), 1 deletion(-) + +commit af590c7668133c9c083d04ca5e57d0a4ef00de80 +Author: Aleksander Morgado +Date: Sun Jun 23 18:23:12 2013 +0200 + + basic-connect: implement 'Network Idle Hint' command handling + + data/mbim-service-basic-connect.json | 14 + +++++++++++++- + docs/reference/libmbim-glib/libmbim-glib-common.sections | 5 +++++ + libmbim-glib/mbim-enums.h | 15 + +++++++++++++++ + 3 files changed, 33 insertions(+), 1 deletion(-) + +commit 4ff6b1f7812cee6bfdb0d4db2a740bc020bd013f +Author: Aleksander Morgado +Date: Mon Jun 24 00:47:23 2013 +0200 + + libmbim-glib,test: add tests for STK command builders + + libmbim-glib/test/test-message-builder.c | 223 + ++++++++++++++++++++++++++++++- + 1 file changed, 222 insertions(+), 1 deletion(-) + +commit 76408a2fddac55a3e040081195059a8b8d2efdbf +Author: Aleksander Morgado +Date: Mon Jun 24 01:03:12 2013 +0200 + + mbim-codegen: check message type when parsing + + build-aux/mbim-codegen/Message.py | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +commit 6f0c6c4526c40e1c502e1cd9132de80e7645729f +Author: Aleksander Morgado +Date: Mon Jun 24 00:47:56 2013 +0200 + + libmbim-glib,test: consolidate message builder test names + + libmbim-glib/test/test-message-builder.c | 32 + ++++++++++++++++---------------- + 1 file changed, 16 insertions(+), 16 deletions(-) + +commit a8904fb2dd6c5c8931e97df16ba540cd07be6d98 +Author: Aleksander Morgado +Date: Mon Jun 24 00:45:17 2013 +0200 + + libmbim-glib,test: add tests for STK response and notification parsers + + libmbim-glib/test/test-message-parser.c | 321 + ++++++++++++++++++++++++++++++++ + 1 file changed, 321 insertions(+) + +commit 77c65d2153b205c7540c45a6155a6faa3fe0841e +Author: Aleksander Morgado +Date: Mon Jun 24 11:19:10 2013 +0200 + + mbim-codegen: fix offset after reading 'ref-byte-array' + + build-aux/mbim-codegen/Message.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 68881b7c467e6ea0dc774578b477ba84ec1043cd +Author: Aleksander Morgado +Date: Mon Jun 24 00:31:23 2013 +0200 + + stk: add support for the STK service + + build-aux/mbim-codegen/Message.py | 24 ++++++++--- + build-aux/mbim-codegen/Struct.py | 6 +-- + data/Makefile.am | 3 +- + data/mbim-service-stk.json | 47 + +++++++++++++++++++++ + docs/reference/libmbim-glib/Makefile.am | 3 +- + .../libmbim-glib/libmbim-glib-common.sections | 10 +++++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + libmbim-glib/generated/Makefile.am | 18 ++++++-- + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-enums.h | 39 + ++++++++++++++++++ + libmbim-glib/mbim-message-private.h | 6 ++- + libmbim-glib/mbim-message.c | 48 + ++++++++++++---------- + 12 files changed, 169 insertions(+), 37 deletions(-) + +commit 94fb16c9120249a09855528935d57129fefb2423 +Author: Aleksander Morgado +Date: Mon Jun 24 00:05:40 2013 +0200 + + phonebook: add support for the Phonebook service + + data/Makefile.am | 3 +- + data/mbim-service-phonebook.json | 89 + ++++++++++++++++++++++ + docs/reference/libmbim-glib/Makefile.am | 3 +- + .../libmbim-glib/libmbim-glib-common.sections | 15 ++++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + libmbim-glib/generated/Makefile.am | 18 ++++- + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-enums.h | 42 ++++++++++ + 8 files changed, 167 insertions(+), 5 deletions(-) + +commit d7c2d2cc79e3f6cca2b4d7c96042fa14f1b505c5 +Author: Aleksander Morgado +Date: Sun Jun 23 20:17:57 2013 +0200 + + mbimcli: new '--query-packet-statistics' action + + cli/mbimcli-basic-connect.c | 85 + ++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 84 insertions(+), 1 deletion(-) + +commit 299f28be47463249033945edb0f21eeb107715ac +Author: Aleksander Morgado +Date: Sun Jun 23 20:04:40 2013 +0200 + + basic-connect: implement 'Packet Statistics' command handling + + data/mbim-service-basic-connect.json | 25 ++++++++++++++++++++++++- + 1 file changed, 24 insertions(+), 1 deletion(-) + +commit fd6e9f615ef386278bea7b0ff6bc7c6021709a96 +Author: Aleksander Morgado +Date: Sun Jun 23 19:50:07 2013 +0200 + + libmbim-glib,test: rename parser and builder tests + + .gitignore | 4 +-- + libmbim-glib/test/Makefile.am | 20 +++++------ + ...ge-command-builder.c => test-message-builder.c} | 32 ++++++++--------- + ...st-message-contents.c => test-message-parser.c} | 40 + +++++++++++----------- + 4 files changed, 48 insertions(+), 48 deletions(-) + +commit ab3da3ff9708cc3c98b395908de042ac9b1aa31e +Author: Aleksander Morgado +Date: Sun Jun 23 19:46:48 2013 +0200 + + libmbim-glib,test: test AUTH AKAP response parser + + libmbim-glib/test/test-message-contents.c | 117 + +++++++++++++++++++++++++++++- + 1 file changed, 115 insertions(+), 2 deletions(-) + +commit 153ede9b69d95b8841122119477cdd3ef5a12608 +Author: Aleksander Morgado +Date: Sun Jun 23 19:33:10 2013 +0200 + + libmbim-glib,test: test AUTH AKAP query builder + + libmbim-glib/test/test-message-command-builder.c | 86 + ++++++++++++++++++++++-- + 1 file changed, 82 insertions(+), 4 deletions(-) + +commit 2d2b83cf1670da2d6b22150fb70928a442dd07ee +Author: Aleksander Morgado +Date: Sun Jun 23 19:32:30 2013 +0200 + + mbim-codegen: when byte-array not given with OL pair, it goes to + the fixed array + + libmbim-glib/mbim-message.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit afa70cc4a511b158687b73a57396e96519d2c084 +Author: Aleksander Morgado +Date: Sun Jun 23 18:58:29 2013 +0200 + + auth: add support for the Auth service + + data/Makefile.am | 3 +- + data/mbim-service-auth.json | 89 + +++++++++++++++++++++++ + docs/reference/libmbim-glib/Makefile.am | 3 +- + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + libmbim-glib/generated/Makefile.am | 18 ++++- + libmbim-glib/libmbim-glib.h | 1 + + 6 files changed, 110 insertions(+), 5 deletions(-) + +commit 648fdd9d4fce3cd1a031faf3eae71ad2281425e0 +Author: Aleksander Morgado +Date: Sun Jun 23 18:37:16 2013 +0200 + + mbim-codegen: add support for fixed-sized byte arrays + + build-aux/mbim-codegen/Message.py | 51 + ++++++++++++++++++++++++++++++++------- + build-aux/mbim-codegen/Struct.py | 20 +++++++++++++++ + 2 files changed, 62 insertions(+), 9 deletions(-) + +commit 01a2852a712a4046f6d9a0214c062bebd14c54f6 +Author: Aleksander Morgado +Date: Sun Jun 23 17:32:06 2013 +0200 + + mbim-codegen: rename 'byte-array' format to 'unsized-byte-array' + + We only used this format type in the Service Activation command, + and the format + did indeed not have a specific size field for the byte array. + + build-aux/mbim-codegen/Message.py | 20 ++++++++++---------- + build-aux/mbim-codegen/Struct.py | 10 +++++----- + data/mbim-service-basic-connect.json | 4 ++-- + 3 files changed, 17 insertions(+), 17 deletions(-) + +commit e4c0ceec8e7b0ac8b397e8a3273a48d12121aed2 +Author: Aleksander Morgado +Date: Sun Jun 23 17:10:58 2013 +0200 + + libmbim-glib,test: test USSD response parser + + libmbim-glib/test/test-message-contents.c | 75 + +++++++++++++++++++++++++++++++ + 1 file changed, 75 insertions(+) + +commit a45411e2067296b272ad5908e9f5718101e41a72 +Author: Aleksander Morgado +Date: Sun Jun 23 16:58:41 2013 +0200 + + libmbim-glib,test: test USSD set command builder + + libmbim-glib/test/test-message-command-builder.c | 73 + ++++++++++++++++++++++++ + 1 file changed, 73 insertions(+) + +commit ba4fc29d418da0dbaf4e7c0d972e868bfe6bfa2e +Author: Aleksander Morgado +Date: Sun Jun 23 16:26:42 2013 +0200 + + ussd: add support for the USSD service + + data/Makefile.am | 3 +- + data/mbim-service-ussd.json | 38 +++++++++++++++++ + docs/reference/libmbim-glib/Makefile.am | 3 +- + .../libmbim-glib/libmbim-glib-common.sections | 15 +++++++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + libmbim-glib/generated/Makefile.am | 18 ++++++-- + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-enums.h | 49 + ++++++++++++++++++++++ + 8 files changed, 123 insertions(+), 5 deletions(-) + +commit d89e0b39f531f6063dcb3f4e4dabe935dacd1799 +Author: Aleksander Morgado +Date: Sun Jun 23 16:39:09 2013 +0200 + + libmbim-glib,api: fix USSD CID enumeration + + libmbim-glib/mbim-cid.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit a125076790517e77ffab383467e2e2ac65305ba1 +Author: Aleksander Morgado +Date: Sun Jun 23 16:38:51 2013 +0200 + + mbim-codegen: allow empty command name + + For the case when there is a single command in the service (e.g. USSD) + + build-aux/mbim-codegen/Message.py | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +commit 03ea37c31a121548d8d8620d4dc8166cdf0fc589 +Author: Aleksander Morgado +Date: Sun Jun 23 16:37:59 2013 +0200 + + mbim-codegen: fix byte-array handling + + build-aux/mbim-codegen/Message.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3e222813c9d09d6bfcfe5d3edeec31ac68fd37c8 +Author: Aleksander Morgado +Date: Thu Jun 20 17:49:32 2013 +0200 + + libmbim-glib,test: test 'Device Service Subscriber List' request + creator + + libmbim-glib/test/test-message-command-builder.c | 92 + ++++++++++++++++++++++++ + 1 file changed, 92 insertions(+) + +commit 7eafd632376d6f4f428046553f8ccef71ffd40e4 +Author: Aleksander Morgado +Date: Thu Jun 20 17:49:04 2013 +0200 + + mbim-codegen: support setting arrays of struct references + + build-aux/mbim-codegen/Struct.py | 28 ++++++++++++++++++++++++++-- + 1 file changed, 26 insertions(+), 2 deletions(-) + +commit 9f9d5dc4f6b6b10a5f5f7ebf30c36bec407ef064 +Author: Aleksander Morgado +Date: Wed Jun 19 19:00:39 2013 +0200 + + basic-connect: implement 'Device Service Subscriber List' command + handling + + data/mbim-service-basic-connect.json | 29 ++++++++++++++++++++++++++++- + 1 file changed, 28 insertions(+), 1 deletion(-) + +commit 62655bf10b11e3a6db6e1072fef52d5f846a703d +Author: Aleksander Morgado +Date: Wed Jun 19 19:00:07 2013 +0200 + + libmbim-glib: implement guint32/64 array setting + + libmbim-glib/mbim-message.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +commit e3500df1ba21944154d35a13c305d5369af0fbb7 +Author: Aleksander Morgado +Date: Tue Jun 18 17:55:27 2013 +0200 + + mbim-codegen: handle optional fields flagged with 'available-if' + in setters + + build-aux/mbim-codegen/Message.py | 52 + +++++++++++++++++++++++++-------------- + 1 file changed, 33 insertions(+), 19 deletions(-) + +commit 51e0bc2ad78be8626866dfe7371d64089328f0a9 +Author: Aleksander Morgado +Date: Sun Jun 16 16:03:07 2013 +0200 + + libmbim-glib,tests: unit tests for 'SMS Read' responses + + libmbim-glib/test/test-message-contents.c | 294 + ++++++++++++++++++++++++++++++ + 1 file changed, 294 insertions(+) + +commit bf256a696d77a116834fca266fc557ae3fe34c62 +Author: Aleksander Morgado +Date: Sun Jun 16 14:39:09 2013 +0200 + + build: use gtester testing support and remove '--with-tests' + configure switch + + .gitignore | 3 ++ + Makefile.am | 6 +-- + configure.ac | 13 ------- + gtester.make | 91 + +++++++++++++++++++++++++++++++++++++++++++ + libmbim-glib/test/Makefile.am | 18 +++------ + 5 files changed, 102 insertions(+), 29 deletions(-) + +commit 1cf3cb04083ee320786bd19edc347c29951cd3ae +Author: Aleksander Morgado +Date: Sun Jun 16 11:59:03 2013 +0200 + + sms: add support for SMS service + + data/Makefile.am | 3 +- + data/mbim-service-sms.json | 181 + +++++++++++++++++++++ + docs/reference/libmbim-glib/Makefile.am | 3 +- + .../libmbim-glib/libmbim-glib-common.sections | 35 ++++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + libmbim-glib/generated/Makefile.am | 18 +- + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-enums.h | 136 ++++++++++++++++ + 8 files changed, 373 insertions(+), 5 deletions(-) + +commit 09a6e891e22a959c8809064ecb6946415c5451e6 +Author: Aleksander Morgado +Date: Sun Jun 16 17:01:14 2013 +0200 + + mbim-codegen: include service name in methods if not the 'Basic + Connect' service + + build-aux/mbim-codegen/Message.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit 1408d27b0c567c5c35208f92c47379af6d06758a +Author: Aleksander Morgado +Date: Sun Jun 16 16:02:08 2013 +0200 + + mbim-codegen: handle 'ref-byte-array' type fields + + Which are byte-arrays specified as offset+length. + + build-aux/mbim-codegen/Message.py | 34 +++++++++++++----- + build-aux/mbim-codegen/Struct.py | 29 ++++++++++----- + libmbim-glib/mbim-message-private.h | 4 +++ + libmbim-glib/mbim-message.c | 70 + +++++++++++++++++++++++++++++++++---- + 4 files changed, 114 insertions(+), 23 deletions(-) + +commit adfdd94e35ca79b13a58a082356604cfff00814f +Author: Aleksander Morgado +Date: Sun Jun 16 13:37:13 2013 +0200 + + mbim-codegen: handle optional fields flagged with 'available-if' + + A given MBIM message may contain fields which can be processed in + different ways + depending on the value of another field. This is the case for + e.g. "SMS Read" + Query operations, where the list of messages may be formatted as + either PDU or + CDMA, depending on the value of the 'Format' field. + + So, we now support to have fields configured like this: + + { "name" : "Something", + "format" : "string" , + "available-if" : { "field" : "ConditionField", + "operation" : "==", + "value" : "0" } }, + { "name" : "OtherSomething", + "format" : "string" , + "available-if" : { "field" : "ConditionField", + "operation" : "==", + "value" : "1" } }, + + Meaning that: + * Field "Something" will be given if "ConditionField" == 0 + * Otherwise, Field "OtherSomething" will be given if "ConditionField" + == 1 + + Note that in the message parser, BOTH fields will be provided, + but only one + will contain valid data. + + build-aux/mbim-codegen/Message.py | 73 + +++++++++++++++++++++++++++++++-------- + 1 file changed, 58 insertions(+), 15 deletions(-) + +commit ae24423cfa5e738ccdffbd9171e326faa3f5f3cd +Author: Aleksander Morgado +Date: Sun Jun 16 12:50:23 2013 +0200 + + mbim-codegen: handle 'byte-array' fields in Structs + + build-aux/mbim-codegen/Struct.py | 25 ++++++++++++++++++++++++- + 1 file changed, 24 insertions(+), 1 deletion(-) + +commit 01e005edd7f0b1c9805833b07b8181a91193bdab +Author: Aleksander Morgado +Date: Sun Jun 16 12:49:51 2013 +0200 + + mbim-codegen: don't setup reader offset if no fields in message + + build-aux/mbim-codegen/Message.py | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +commit dd4307edd0a9f22590daf5706d9d47b191f569a4 +Author: Aleksander Morgado +Date: Thu Jun 13 13:42:09 2013 +0200 + + build: fix builds with srcdir!=builddir + + cli/Makefile.am | 1 + + docs/reference/libmbim-glib/Makefile.am | 2 ++ + libmbim-glib/Makefile.am | 1 + + libmbim-glib/generated/Makefile.am | 1 + + libmbim-glib/test/Makefile.am | 6 ++++++ + 5 files changed, 11 insertions(+) + +commit 0c2a91b816124d209e8ee45114a127b2f2703bd5 +Author: Aleksander Morgado +Date: Thu Jun 13 12:50:18 2013 +0200 + + release: bump version to 1.3.0 (development) + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a575bd33230ffca58e55d8b306b637ae880ad4be +Author: Aleksander Morgado +Date: Thu Jun 13 12:38:39 2013 +0200 + + release: bump version to 1.2.0 + + configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 832b6fba372f42e2aed8f4153c655f6012010eb2 +Author: Aleksander Morgado +Date: Thu Jun 13 12:36:53 2013 +0200 + + NEWS: update + + NEWS | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +commit aa8f3597c538767687a62409c10f60b35048f03e +Author: Aleksander Morgado +Date: Thu Jun 13 12:46:15 2013 +0200 + + build: use mailing list as contact address + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c7f7352d9b5dd4f55c7433c4f337b82c25d855ed +Author: Aleksander Morgado +Date: Thu Jun 13 12:45:15 2013 +0200 + + docs: reorder version symbols + + docs/reference/libmbim-glib/libmbim-glib-common.sections | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 910f8dd00cfd691ea4cd3e8dd380a68563561d06 +Author: Aleksander Morgado +Date: Thu Jun 13 12:24:42 2013 +0200 + + build: setup libtool versioning for libmbim-glib + + configure.ac | 21 +++++++++++++++++++++ + libmbim-glib/Makefile.am | 3 +++ + 2 files changed, 24 insertions(+) + +commit 9ac63c70d3c6b534063b1d04eab18db5b159b0aa +Author: Aleksander Morgado +Date: Thu Jun 13 12:18:51 2013 +0200 + + libmbim-glib,api: provide version info + + .gitignore | 1 + + configure.ac | 20 ++++++- + .../libmbim-glib/libmbim-glib-common.sections | 8 +++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 + + libmbim-glib/Makefile.am | 5 ++ + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-version.h.in | 69 + ++++++++++++++++++++++ + 7 files changed, 104 insertions(+), 1 deletion(-) + +commit 01ce054d8de1aefb4240a234ca7687293fac8530 +Author: Aleksander Morgado +Date: Thu Jun 6 14:17:30 2013 +0200 + + basic-connect: implement 'Service Activation' command handling + + Also add unit tests for the message builder and response parser, + as we're + testing the new 'byte-array' type reader. + + data/mbim-service-basic-connect.json | 13 ++++++ + libmbim-glib/test/test-message-command-builder.c | 59 + ++++++++++++++++++++++++ + libmbim-glib/test/test-message-contents.c | 52 + +++++++++++++++++++++ + 3 files changed, 124 insertions(+) + +commit 51680ce50be75789897529bd3b9750a09150a97b +Author: Aleksander Morgado +Date: Thu Jun 6 13:59:54 2013 +0200 + + libmbim-glib: move message parser methods to private interface + + libmbim-glib/mbim-message-private.h | 35 + +++++++++++++++++++++++++++++++++++ + libmbim-glib/mbim-message.h | 34 + ---------------------------------- + 2 files changed, 35 insertions(+), 34 deletions(-) + +commit 3ddfb1487cbb0c7127acf0b9e2d99a58c7513c2d +Author: Aleksander Morgado +Date: Thu Jun 6 13:57:27 2013 +0200 + + mbim-codegen: support new 'byte-array' type + + build-aux/mbim-codegen/Message.py | 49 + ++++++++++++++++++++++++++++++++------- + 1 file changed, 41 insertions(+), 8 deletions(-) + +commit 1780b65ad786a580ab74fdb5b7b5da59315276f9 +Author: Aleksander Morgado +Date: Thu Jun 6 13:57:15 2013 +0200 + + libmbim-glib: handle reading/writing raw byte arrays + + libmbim-glib/mbim-message-private.h | 6 ++++++ + libmbim-glib/mbim-message.c | 34 + ++++++++++++++++++++++++++++++++++ + libmbim-glib/mbim-message.h | 7 +++++-- + 3 files changed, 45 insertions(+), 2 deletions(-) + +commit c4f6331b4d1305f1ae6a554344fc2b019633d22b +Author: Aleksander Morgado +Date: Thu Jun 6 13:18:55 2013 +0200 + + libmbim-glib,test: unit test for the visible providers response + + libmbim-glib/test/test-message-contents.c | 109 + ++++++++++++++++++++++++++++++ + 1 file changed, 109 insertions(+) + +commit 2b6155213ed1316603dbde7d63196549ec91dba6 +Author: Aleksander Morgado +Date: Thu Jun 6 12:00:29 2013 +0200 + + mbimcli: new '--query-visible-providers' action + + cli/mbimcli-basic-connect.c | 92 + +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 92 insertions(+) + +commit f941ce30bc994fc4ef6adcf3ad2384560065e467 +Author: Aleksander Morgado +Date: Thu Jun 6 11:55:38 2013 +0200 + + mbimcli: new '--query-preferred-providers' action + + cli/mbimcli-basic-connect.c | 92 + +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 92 insertions(+) + +commit 218602afbf2a4aa03c3caf1065d3677ec1878574 +Author: Aleksander Morgado +Date: Thu Jun 6 11:42:38 2013 +0200 + + mbimcli: new '--query-home-provider' action + + cli/mbimcli-basic-connect.c | 78 + +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 78 insertions(+) + +commit 80895569724cf12a60ebe8195baf7cd06461cd59 +Author: Aleksander Morgado +Date: Wed Jun 5 18:52:33 2013 +0200 + + basic-connect: implement 'Visible Providers' command handling + + data/mbim-service-basic-connect.json | 14 + ++++++++++++++ + docs/reference/libmbim-glib/libmbim-glib-common.sections | 5 +++++ + libmbim-glib/mbim-enums.h | 15 + +++++++++++++++ + 3 files changed, 34 insertions(+) + +commit 96836b9dcf01de82145aec0a29a5a3e554265eb9 +Author: Aleksander Morgado +Date: Wed Jun 5 18:45:58 2013 +0200 + + basic-connect: implement 'Preferred Providers' command handling + + data/mbim-service-basic-connect.json | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +commit 376ecc3f449aae42d21fb53aab244718f27dca38 +Author: Aleksander Morgado +Date: Wed Jun 5 17:57:01 2013 +0200 + + basic-connect: implement 'Home Provider' command handling + + data/mbim-service-basic-connect.json | 29 + ++++++++++++++++++++++ + .../libmbim-glib/libmbim-glib-common.sections | 5 ++++ + libmbim-glib/mbim-enums.h | 25 + +++++++++++++++++++ + 3 files changed, 59 insertions(+) + +commit ea51336e218c656b01fdca1bad1ca0b52484dc9d +Author: Aleksander Morgado +Date: Thu Jun 6 12:45:45 2013 +0200 + + libmbim-glib: fix reading strings within structs + + https://bugs.freedesktop.org/show_bug.cgi?id=65452 + + build-aux/mbim-codegen/Message.py | 4 ++-- + build-aux/mbim-codegen/Struct.py | 4 ++-- + libmbim-glib/mbim-message.c | 6 ++++-- + libmbim-glib/mbim-message.h | 2 ++ + 4 files changed, 10 insertions(+), 6 deletions(-) + +commit af4299e9cb8160275d20938fd42ddb1ab347fa87 +Author: Aleksander Morgado +Date: Tue Jun 4 17:43:05 2013 +0200 + + cli: new '--query-signal-state' option + + E.g.: + $ sudo mbimcli -d /dev/cdc-wdm0 --query-signal-state + [/dev/cdc-wdm0] Signal state: + RSSI [0-31,99]: '10' + Error rate [0-7,99]: '99' + Signal strength interval: '5' + RSSI threshold: '5' + Error rate threshold: '0' + + cli/mbimcli-basic-connect.c | 75 + +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 75 insertions(+) + +commit 69c0239869825d9304f10fd05960f5150683f046 +Author: Shawn J. Goff +Date: Fri May 31 12:56:01 2013 -0400 + + mbim-network: query ready status and registration state before + connecting + + Some modems (such as the 340u) requre these two queries before it + will attach to the packet service. + + Signed-off-by: Shawn J. Goff + + utils/mbim-network | 27 ++++++++++++++++++++++++++- + 1 file changed, 26 insertions(+), 1 deletion(-) + +commit 474b0e2332faf381972b6bbd0b11bbd503da1c44 +Author: Aleksander Morgado +Date: Thu May 30 14:00:23 2013 +0200 + + mbim-network: explicitly attach to packet service during connection + setup + + utils/mbim-network | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +commit 967f0c948fd65b079cbc99c0b0859968ba08552f +Author: Aleksander Morgado +Date: Thu May 30 13:55:35 2013 +0200 + + mbim-network: setup MBIM session keeping TRIDs between commands + + utils/mbim-network | 77 + ++++++++++++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 75 insertions(+), 2 deletions(-) + +commit 253255f4ca7dfdca3402ac30ccd0fc7a79d86be5 +Author: Aleksander Morgado +Date: Thu May 30 13:40:07 2013 +0200 + + cli: new '--noop' action + + Allow opening or closeing a device without running any action. + + E.g.: + + Open device: + $> sudo mbimcli -d /dev/cdc-wdm0 --noop --no-close + [/dev/cdc-wdm1] Session not closed: + TRID: '2' + + Run a command: + $> sudo mbimcli -d /dev/cdc-wdm1 --query-radio-state --no-open=2 + --no-close + [/dev/cdc-wdm1] Radio state retrieved: + Hardware Radio State: 'on' + Software Radio State: 'on' + [/dev/cdc-wdm1] Session not closed: + TRID: '3' + + Close device: + $> sudo mbimcli -d /dev/cdc-wdm0 --noop --no-open=3 + + cli/mbimcli.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +commit 85c830ef87770d151d096b4279494363fd79de66 +Author: Aleksander Morgado +Date: Thu May 30 13:26:47 2013 +0200 + + cli: new --no-open option + + We now can open the MBIM device only once, like starting a session, + and properly + follow the transaction IDs to use. + + We also now dump the next transaction id when --no-close is given. + + E.g.: + + $ sudo mbimcli -d /dev/cdc-wdm1 --query-radio-state --no-close + [/dev/cdc-wdm1] Radio state retrieved: + Hardware Radio State: 'on' + Software Radio State: 'on' + [/dev/cdc-wdm1] Session not closed: + TRID: '3' + + $ sudo mbimcli -d /dev/cdc-wdm1 --query-radio-state --no-open=3 + --no-close + [/dev/cdc-wdm1] Radio state retrieved: + Hardware Radio State: 'on' + Software Radio State: 'on' + [/dev/cdc-wdm1] Session not closed: + TRID: '4' + + $ sudo mbimcli -d /dev/cdc-wdm1 --query-radio-state --no-open=4 + --no-close + [/dev/cdc-wdm1] Radio state retrieved: + Hardware Radio State: 'on' + Software Radio State: 'on' + [/dev/cdc-wdm1] Session not closed: + TRID: '5' + + $ sudo mbimcli -d /dev/cdc-wdm1 --query-radio-state --no-open=5 + [/dev/cdc-wdm1] Radio state retrieved: + Hardware Radio State: 'on' + Software Radio State: 'on' + + cli/mbimcli.c | 69 + +++++++++++++++++++++++++++++++++++++++++++++++++++++------ + 1 file changed, 63 insertions(+), 6 deletions(-) + +commit 73c7e8faf3896feede31507313b53e224efd1cb3 +Author: Aleksander Morgado +Date: Thu May 30 13:01:46 2013 +0200 + + libmbim-glib, device: new properties to handle in-session support + + When a MbimDevice is created, one can then set the 'device-in-session' + boolean + property to specify that the device shouldn't attempt to send OPEN + or CLOSE + messages. + + Also, a new 'device-transaction-id' property is added to be able + to specify + which is the first transaction ID to use by the MbimDevice. + + .../libmbim-glib/libmbim-glib-common.sections | 2 + + libmbim-glib/mbim-device.c | 54 + ++++++++++++++++++++++ + libmbim-glib/mbim-device.h | 4 +- + 3 files changed, 59 insertions(+), 1 deletion(-) + +commit 6fda134dc27d8d24f1cd3638b65a29d86f18e1d6 +Author: Shawn J. Goff +Date: Tue May 28 10:09:59 2013 -0400 + + mbimcli: use G_GUINT_64_FORMAT not "%lu" to format a guint64 + + cli/mbimcli-basic-connect.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 3fd1a15573fc0dff3db5a1609e38feca8cf8d168 +Author: Aleksander Morgado +Date: Thu May 30 12:16:25 2013 +0200 + + libmbim-glib,tests: new Subscriber Ready Status response parser test + + libmbim-glib/test/test-message-contents.c | 102 + ++++++++++++++++++++++++++++++ + 1 file changed, 102 insertions(+) + +commit c454956ea4c1e71aad401d2b77bfb06dc7561a1b +Author: Aleksander Morgado +Date: Thu May 30 12:15:57 2013 +0200 + + libmbim-glib,mbim-message: fix string array reading + + https://bugs.freedesktop.org/show_bug.cgi?id=65166 + + libmbim-glib/mbim-message.c | 35 ++++++----------------------------- + 1 file changed, 6 insertions(+), 29 deletions(-) + +commit c6e85eb1dae14eecb1958d096fe3b8c499b630f1 +Author: Aleksander Morgado +Date: Wed May 22 15:55:39 2013 +0200 + + release: update NEWS + + Shit, left this in a branch somewhere... well, it'll be there for + the next + release :) + + NEWS | 31 +++++++++++++++++++++++++++++++ + 1 file changed, 31 insertions(+) + +commit f64729fe893f0931e8e3cc872a457b282325bf4c +Author: Aleksander Morgado +Date: Wed May 22 16:30:45 2013 +0200 + + release: bump version to 1.1.0 (development) + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 0e71ca1626d77a60924f3363db7243325532ca31 +Author: Aleksander Morgado +Date: Wed May 22 16:20:29 2013 +0200 + + release: bump version to 1.0.0 + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 93a7bd93a4a443d0164af067a5dda21e9f0b141b +Author: Aleksander Morgado +Date: Wed May 22 15:39:55 2013 +0200 + + mbimcli: add missing newlines in several errors printed + + cli/mbimcli-basic-connect.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 2d948cb9a8990af7f0eeb15c7f437dd77c593afd +Author: Aleksander Morgado +Date: Wed May 22 15:37:12 2013 +0200 + + utils: new 'mbim-network' script + + Equivalent to the 'qmi-network' script in libqmi, it helps to launch + a MBIM + based connection from the shell. + + Makefile.am | 2 +- + configure.ac | 1 + + utils/Makefile.am | 2 + + utils/mbim-network | 150 + +++++++++++++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 154 insertions(+), 1 deletion(-) + +commit 983ca22789f53fb2311cacb202224e5c901b742c +Author: Aleksander Morgado +Date: Wed May 22 15:22:52 2013 +0200 + + mbimcli: new '--no-close' global option to keep the Device open + + When launching a connection through mbimcli, we need to keep the + MbimDevice + open, i.e. we should not explicitly close it, or the connection will + also be + lost. E.g: + + $ sudo mbimcli -d /dev/cdc-wdm0 --connect="Internet" + [/dev/cdc-wdm0] Successfully connected + [/dev/cdc-wdm0] Connection status: + Session ID: '0' + Activation state: 'activated' + Voice call state: 'none' + IP type: 'ipv4' + Context type: 'internet' + Network error: 'unknown' + + $ sudo mbimcli -d /dev/cdc-wdm0 --disconnect="0" + error: operation failed: ContextNotActivated + + $ sudo mbimcli -d /dev/cdc-wdm0 --connect="Internet" --no-close + [/dev/cdc-wdm0] Successfully connected + [/dev/cdc-wdm0] Connection status: + Session ID: '0' + Activation state: 'activated' + Voice call state: 'none' + IP type: 'ipv4' + Context type: 'internet' + Network error: 'unknown' + + $ sudo mbimcli -d /dev/cdc-wdm0 --disconnect="0" + [/dev/cdc-wdm0] Successfully disconnected + [/dev/cdc-wdm0] Connection status: + Session ID: '0' + Activation state: 'deactivated' + Voice call state: 'none' + IP type: 'default' + Context type: 'internet' + Network error: 'unknown' + + cli/mbimcli.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit e27ad84cdb5f7a7d5dd4137da3d6cbe5fd67d365 +Author: Aleksander Morgado +Date: Wed May 22 15:08:42 2013 +0200 + + mbimcli: assume session ID '0' when disconnecting + + We do assume session ID '0' when connecting, just assume the same + one when + disconnecting. + + cli/mbimcli-basic-connect.c | 21 ++++++--------------- + 1 file changed, 6 insertions(+), 15 deletions(-) + +commit 30808cd574c3d30ba801685dcfbd6875f7fbae45 +Author: Aleksander Morgado +Date: Wed May 22 12:58:45 2013 +0200 + + mbimcli: new attach, detach and packet service status query operations + + cli/mbimcli-basic-connect.c | 145 + ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 145 insertions(+) + +commit a8bb313295c943c60a10e3e31055cfd2d58f2cc2 +Author: Aleksander Morgado +Date: Wed May 22 12:31:52 2013 +0200 + + mbimcli: new automatic register and registration state query + operations + + cli/mbimcli-basic-connect.c | 141 + ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 141 insertions(+) + +commit a0109efc83d27cf68abbc59ca1408e1006af27a1 +Author: Aleksander Morgado +Date: Wed May 22 12:06:51 2013 +0200 + + mbimcli: new connect, disconnect and connection state query operations + + cli/mbimcli-basic-connect.c | 283 + +++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 280 insertions(+), 3 deletions(-) + +commit 6cc55eb01ce28f1bbc4112fdba79b621c13766f5 +Author: Aleksander Morgado +Date: Wed May 22 12:06:16 2013 +0200 + + libmbim-glib: add 'MBIM_NW_ERROR_UNKNOWN' + + When a reply comes with a NwError field which is not needed, the + modem may set + it to 0. + + libmbim-glib/mbim-enums.h | 2 ++ + 1 file changed, 2 insertions(+) + +commit e3bfbe40bfad75674af003730204efb30e782fd2 +Author: Aleksander Morgado +Date: Wed May 22 10:57:43 2013 +0200 + + mbimcli: don't name the action based on the MBIM command + + Naming the action based on the service and command ID is just + confusing as hell, + so leave the confusion only internally. + + cli/mbimcli-basic-connect.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +commit 130d501e3163b33d0e593f9503a8dc8b8ae10f93 +Author: Aleksander Morgado +Date: Wed May 22 10:48:01 2013 +0200 + + mbimcli: new enter, enable, disable, change PIN operations + + cli/mbimcli-basic-connect.c | 191 + ++++++++++++++++++++++++++++++++++++++++---- + 1 file changed, 174 insertions(+), 17 deletions(-) + +commit eacedac68ec8af525f85c71f573aaa06bdba8142 +Author: Aleksander Morgado +Date: Wed May 22 10:47:11 2013 +0200 + + libmbim-glib: add 'MBIM_PIN_TYPE_UNKNOWN' + + When a reply comes with a PinType field which is not needed, the + modem may set + it to 0. + + libmbim-glib/mbim-enums.h | 2 ++ + 1 file changed, 2 insertions(+) + +commit a96e09f20eb9e9a8fb33a22b17b1b2d72c96d734 +Author: Aleksander Morgado +Date: Tue May 21 18:14:09 2013 +0200 + + mbim-codegen: fix generation of struct _free() methods + + build-aux/mbim-codegen/Struct.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 0c30e9c27b82cb9c136afe3194ac01bb90b37e28 +Author: Aleksander Morgado +Date: Tue May 21 17:30:34 2013 +0200 + + docs: add missing section documentations + + libmbim-glib/mbim-cid.c | 7 +++++++ + libmbim-glib/mbim-enums.h | 7 +++++++ + libmbim-glib/mbim-uuid.c | 7 +++++++ + 3 files changed, 21 insertions(+) + +commit dafaa83761a9514bccfe64c9fc2c3ff7ceeb23cf +Author: Aleksander Morgado +Date: Tue May 21 17:21:50 2013 +0200 + + docs: setup sections for commands + + build-aux/mbim-codegen/Message.py | 32 + ++++++++++++++++++++-- + build-aux/mbim-codegen/ObjectList.py | 18 ++++++------ + build-aux/mbim-codegen/Struct.py | 2 +- + docs/reference/libmbim-glib/Makefile.am | 18 +++++++++++- + ...b-sections.txt => libmbim-glib-common.sections} | 0 + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 5 ++++ + 6 files changed, 61 insertions(+), 14 deletions(-) + +commit e237b5e2b499a25fc7a11ee7a1fc3877cf4cd6c4 +Author: Aleksander Morgado +Date: Tue May 21 16:57:28 2013 +0200 + + mbim-codegen: generate section for all service specific data types + + build-aux/mbim-codegen/ObjectList.py | 19 +++++++++++++++++++ + build-aux/mbim-codegen/Struct.py | 18 ++++++++++++++++++ + 2 files changed, 37 insertions(+) + +commit e73d0a50b1d78d38d36001ba70d900081630f216 +Author: Aleksander Morgado +Date: Tue May 21 16:57:06 2013 +0200 + + mbim-codegen: require a 'Service' entry in the data file + + build-aux/mbim-codegen/ObjectList.py | 6 ++++++ + data/mbim-service-basic-connect.json | 4 ++++ + 2 files changed, 10 insertions(+) + +commit a7bacab3aaa70dccb8767e543ef6b455ddaf266e +Author: Aleksander Morgado +Date: Tue May 21 16:31:47 2013 +0200 + + mbim-codegen: only generate _free() and _array_free() methods + when needed + + build-aux/mbim-codegen/Message.py | 2 +- + build-aux/mbim-codegen/ObjectList.py | 23 +++++++++ + build-aux/mbim-codegen/Struct.py | 90 + +++++++++++++++++++++++------------- + 3 files changed, 82 insertions(+), 33 deletions(-) + +commit d5af6a58ad8f6c2aca9865300536f4f6d43724a8 +Author: Aleksander Morgado +Date: Tue May 21 15:14:59 2013 +0200 + + mbim-codegen: document generated structs + + build-aux/mbim-codegen/Struct.py | 46 + ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 46 insertions(+) + +commit dee368d110aa1c65cb4481da1d5c0e42d31381a2 +Author: Aleksander Morgado +Date: Tue May 21 14:41:59 2013 +0200 + + libmbim-glib,message: fix documentation + + libmbim-glib/mbim-message.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 4e5ac4671e0a6b40da174ac91c5408d7a47c916c +Author: Aleksander Morgado +Date: Tue May 21 14:40:46 2013 +0200 + + templates: include documentation for the _get_string() methods in + the errors + + build-aux/templates/mbim-error-types-template.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit e7a28a9c9cb1ccbd7c6f39c90161e38502b5bd38 +Author: Aleksander Morgado +Date: Tue May 21 14:40:22 2013 +0200 + + libmbim-glib,cid: add missing method documentations + + libmbim-glib/mbim-cid.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit 6a54897e3d07cf04bbbc0cb331be4e63a8021b44 +Author: Aleksander Morgado +Date: Tue May 21 14:39:56 2013 +0200 + + libmbim-glib,device: document signals + + libmbim-glib/mbim-device.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +commit 6fcfb4eaa8a111778b6339f5af836f9a7b9e57e9 +Author: Aleksander Morgado +Date: Tue May 21 14:29:07 2013 +0200 + + libmbim-glib,device: fix documentation + + libmbim-glib/mbim-device.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 7c7f538aa704fcc923b76fa779bf82b770fe295e +Author: Aleksander Morgado +Date: Tue May 21 14:27:49 2013 +0200 + + docs: rework libmbim-glib sections + + .../libmbim-glib/libmbim-glib-sections.txt | 439 + +++++++++------------ + 1 file changed, 197 insertions(+), 242 deletions(-) + +commit 2243afaf392364b4ff0f4010f236cb05a6829943 +Author: Aleksander Morgado +Date: Tue May 21 13:56:35 2013 +0200 + + libmbim-glib,message: define the MbimMessage privately + + Even if for now it's a typedef of GByteArray, don't force the API + to always + remain like that. + + libmbim-glib/mbim-device.c | 2 +- + libmbim-glib/mbim-message-private.h | 9 +++++++++ + libmbim-glib/mbim-message.c | 10 +++++----- + libmbim-glib/mbim-message.h | 2 +- + 4 files changed, 16 insertions(+), 7 deletions(-) + +commit 5a6be505c8dff409d69e31fa4a7052b3df5c3ccd +Author: Aleksander Morgado +Date: Tue May 21 11:35:46 2013 +0200 + + libmbim-glib,message: document missing fields + + libmbim-glib/mbim-message.c | 5 ++++- + libmbim-glib/mbim-message.h | 2 ++ + 2 files changed, 6 insertions(+), 1 deletion(-) + +commit 3c9362c3b98b392bf97689b4a3cdb46c65717686 +Author: Aleksander Morgado +Date: Tue May 21 11:35:31 2013 +0200 + + libmbim-glib: builder declarations moved to the private message header + + libmbim-glib/mbim-message-private.h | 84 + ++++++++++++++++++++++++ + libmbim-glib/mbim-message.h | 81 + ----------------------- + libmbim-glib/test/test-message-command-builder.c | 1 + + 3 files changed, 85 insertions(+), 81 deletions(-) + +commit a1784a7ba977ad4c5a2acc6344fbbaac352fbff8 +Author: Aleksander Morgado +Date: Tue May 21 10:37:45 2013 +0200 + + libmbim-glib,uuid: avoid gtk-doc problems with __attribute__ + + See https://bugzilla.gnome.org/show_bug.cgi?id=655128 + + libmbim-glib/mbim-uuid.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 6107ecd417ff5d7bf11279a74d3a9999eac2f391 +Author: Aleksander Morgado +Date: Tue May 21 10:07:45 2013 +0200 + + build: add default distcheck flags + + Makefile.am | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 7953e95e8261cb2faaa938558b25ea2d439a739c +Author: Aleksander Morgado +Date: Wed May 15 18:00:00 2013 +0200 + + docs: setup building documentation + + .gitignore | 16 + + Makefile.am | 2 +- + configure.ac | 6 +- + docs/Makefile.am | 1 + + docs/reference/Makefile.am | 1 + + docs/reference/libmbim-glib/Makefile.am | 76 ++++ + docs/reference/libmbim-glib/libmbim-glib-docs.xml | 65 ++++ + .../libmbim-glib/libmbim-glib-sections.txt | 412 + +++++++++++++++++++++ + docs/reference/libmbim-glib/version.xml.in | 1 + + 9 files changed, 578 insertions(+), 2 deletions(-) + +commit 1cbfa858d9327f34a42671f1fb9765a2cecdcb94 +Author: Aleksander Morgado +Date: Wed May 15 17:52:11 2013 +0200 + + build: fix passing arguments to autogen.sh + + autogen.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 51c11418eea6368cbc6db74a4bdb19ab8d3b8b6e +Author: Aleksander Morgado +Date: Wed May 15 17:51:50 2013 +0200 + + build: better check for top-level source directory + + autogen.sh | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 2e212d39f8bc0904ce5ad4f195c4b775283ea7f5 +Author: Aleksander Morgado +Date: Wed May 15 17:50:42 2013 +0200 + + build: look for gtk-doc + + .gitignore | 1 + + autogen.sh | 1 + + configure.ac | 4 ++++ + 3 files changed, 6 insertions(+) + +commit d8fb10acfa467480171cc14d2060c73a9b938c7d +Author: Dan Williams +Date: Fri May 17 14:19:55 2013 -0500 + + libmbim-glib: use g_set_error_literal() where appropriate + + libmbim-glib/mbim-device.c | 16 ++++++++-------- + libmbim-glib/mbim-message.c | 8 ++++---- + 2 files changed, 12 insertions(+), 12 deletions(-) + +commit ce13933c70b1ce4576ed283e0a5e0030b0cdfff7 +Author: Marius B. Kotsbak +Date: Fri May 17 21:22:40 2013 +0200 + + libmbim-glib: fix compile warning/error. + + Use g_set_error_literal(...) instead of g_set_error(...) + when no printf format string used. + + libmbim-glib/mbim-message.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +commit cb669e86fcb44db73f4de135e2d57c9ec68760f6 +Author: Aleksander Morgado +Date: Fri May 17 23:04:32 2013 +0200 + + build: use -Wformat-security + + m4/compiler-warnings.m4 | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 953e5c4d0eb17d6effe027546dc4e3f9d93e3b55 +Author: Aleksander Morgado +Date: Wed Apr 17 16:17:02 2013 +0200 + + release: bump version to 0.0.2 + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a9ec433ba1f35772d586c8b3172f92f9595dbecb +Author: Aleksander Morgado +Date: Wed Apr 17 12:08:25 2013 +0200 + + mbim-device: try to get max control message size from the descriptors + file + + Logic provided by Bjørn Mork + + When the ioctl() call fails (e.g. Linux < 3.10), we try to read the + max control + message size for MBIM devices by reading the descriptors file + ourselves, without + using libusb. + + The implementation ignores the possibility of one device using + multiple CDC MBIM + descriptors with different wMaxControlMessage values, or another + interface + specific functional descriptor using the exact same code and length + but belonging + to another class (Bjørn actually bets *two* beers that this will + never happen). + + configure.ac | 3 +- + libmbim-glib/mbim-device.c | 134 + ++++++++++++++++++++++++++++++++++++++++++++- + 2 files changed, 134 insertions(+), 3 deletions(-) + +commit c310e9e32c799594b83542795e972bf2a98940eb +Author: Aleksander Morgado +Date: Tue Apr 16 22:33:03 2013 +0200 + + libmbim-glib,device: retry the 'Open' command several times + + libmbim-glib/mbim-device.c | 49 + ++++++++++++++++++++++++++++++++++------------ + 1 file changed, 36 insertions(+), 13 deletions(-) + +commit df0804ca512cf8ada3a7262f0edeb07f2c6f7ead +Author: Aleksander Morgado +Date: Sun Apr 14 21:12:57 2013 +0200 + + mbim-codegen: huge refactor + + I really don't want to split this change into different commits... + + The overall changes are: + * Skip using Value classes, it just complicates the logic a bit + here. MBIM is + not as complicated as QMI, so it's fine to define all the logic + of the + generation into 2 main parts: Message creation/parsing and + Struct types. + + * Support for IPv4 and IPv6 values and arrays. If any of the MBIM + protocol + designers reads this, be aware that I've been cursing you all in + the past + few days. If you decided to reference IPs as offsets, why the + hell don't + you do the same when the values are defined within a struct? + + * Implement the 'IP configuration' message handling + + * Support for appending structs and arrays of structs into + messages. Not fully + implemented yet, anyway. + + build-aux/mbim-codegen/Container.py | 93 ---- + build-aux/mbim-codegen/Makefile.am | 9 - + build-aux/mbim-codegen/Message.py | 695 + +++++++++++++++++++++-------- + build-aux/mbim-codegen/Struct.py | 270 ++++++++++- + build-aux/mbim-codegen/Value.py | 70 --- + build-aux/mbim-codegen/ValueString.py | 55 --- + build-aux/mbim-codegen/ValueStringArray.py | 60 --- + build-aux/mbim-codegen/ValueStruct.py | 60 --- + build-aux/mbim-codegen/ValueStructArray.py | 63 --- + build-aux/mbim-codegen/ValueUint32.py | 55 --- + build-aux/mbim-codegen/ValueUint32Array.py | 57 --- + build-aux/mbim-codegen/ValueUint64.py | 55 --- + build-aux/mbim-codegen/ValueUuid.py | 55 --- + data/mbim-service-basic-connect.json | 139 +++++- + libmbim-glib/mbim-enums.h | 21 + + libmbim-glib/mbim-message.c | 300 ++++++++++++- + libmbim-glib/mbim-message.h | 150 +++++-- + libmbim-glib/test/test-message-contents.c | 139 ++++++ + 18 files changed, 1447 insertions(+), 899 deletions(-) + +commit d639ad7654bed7a9fec1eb6d1f01fa327f3ec10d +Author: Aleksander Morgado +Date: Tue Apr 16 18:42:02 2013 +0200 + + mbim-codegen: don't treat 'IP' as a CamelCase substring + + build-aux/mbim-codegen/utils.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit f5e612b72297fcf40f5efe268c41ea73e9fc96ad +Author: Aleksander Morgado +Date: Sun Apr 14 14:05:05 2013 +0200 + + basic-connect: implement 'Packet Service' command handling + + data/mbim-service-basic-connect.json | 34 + ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +commit 43a8ba9f292348946be6adb6e8f73a0064444911 +Author: Aleksander Morgado +Date: Sun Apr 14 14:04:47 2013 +0200 + + mbim-codegen: implement guint64 support + + build-aux/mbim-codegen/Container.py | 3 ++ + build-aux/mbim-codegen/Message.py | 5 ++++ + build-aux/mbim-codegen/Struct.py | 10 +++++++ + build-aux/mbim-codegen/ValueUint64.py | 55 + +++++++++++++++++++++++++++++++++++ + libmbim-glib/mbim-message.c | 31 ++++++++++++++++++++ + libmbim-glib/mbim-message.h | 6 ++++ + 6 files changed, 110 insertions(+) + +commit 775b00e7d0858b36e90db6e72b7c24f31070e67e +Author: Aleksander Morgado +Date: Sun Apr 14 12:56:54 2013 +0200 + + libmbim-glib,test: unit tests for the 'Connect' message builder + + libmbim-glib/test/test-message-command-builder.c | 163 + +++++++++++++++++++++++ + 1 file changed, 163 insertions(+) + +commit 2fde51e285e2446b469fbb18439397f5009aa895 +Author: Aleksander Morgado +Date: Sun Apr 14 11:36:05 2013 +0200 + + libmbim-glib: print basic info for 'Indicate Status' messages + + libmbim-glib/mbim-message.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +commit f2c94205236d491f9d5c01b9da6b0b7eab93acae +Author: Aleksander Morgado +Date: Sun Apr 14 09:46:12 2013 +0200 + + basic-connect: implement 'Connect' command handling + + data/mbim-service-basic-connect.json | 72 + ++++++++++++++++++++++++++++++++++++ + 1 file changed, 72 insertions(+) + +commit ac3ef2025982260642bd6cac10b70c224d3c2ba2 +Author: Aleksander Morgado +Date: Sun Apr 14 09:45:53 2013 +0200 + + mbim-codegen: allow UUIDs in 'get' containers + + build-aux/mbim-codegen/Message.py | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 2ba7abc59a9cafc39ebf3d959946c46cf0a5e0ab +Author: Aleksander Morgado +Date: Sun Apr 14 08:45:04 2013 +0200 + + basic-connect: implement 'Provisioned Contexts' command handling + + data/mbim-service-basic-connect.json | 55 + ++++++++++++++++++++++++++++++++++++ + 1 file changed, 55 insertions(+) + +commit fc0bd11018d8c27c0c480aff9d4fb0909e4b59d5 +Author: Aleksander Morgado +Date: Sun Apr 14 08:44:26 2013 +0200 + + mbim-codegen: allow UUIDs in 'set' containers + + build-aux/mbim-codegen/Container.py | 1 + + libmbim-glib/mbim-message.c | 15 +++++++++++++++ + libmbim-glib/mbim-message.h | 4 ++++ + 3 files changed, 20 insertions(+) + +commit 5a089eac3b11c262f7ed78f06bdc3431a3400962 +Author: Aleksander Morgado +Date: Sat Apr 13 23:09:57 2013 +0200 + + libmbim-glib,uuid: handle Context Type UUIDs + + libmbim-glib/mbim-uuid.c | 214 + +++++++++++++++++++++++++++++++++++++++++------ + libmbim-glib/mbim-uuid.h | 44 +++++++++- + 2 files changed, 229 insertions(+), 29 deletions(-) + +commit 6e19174edbed14951b322588126b39f5b15b51fe +Author: Aleksander Morgado +Date: Sat Apr 13 22:39:30 2013 +0200 + + uuid: rename 'mm_uuid_get()' to 'mm_uuid_from_service()' + + libmbim-glib/mbim-message.c | 2 +- + libmbim-glib/mbim-uuid.c | 74 + ++++++++++++++++++++++----------------------- + libmbim-glib/mbim-uuid.h | 22 ++++++++------ + 3 files changed, 50 insertions(+), 48 deletions(-) + +commit 84012f56319017525c3006c26148384e43e73a2d +Author: Aleksander Morgado +Date: Sat Apr 13 16:44:43 2013 +0200 + + basic-connect: implement 'Register State' command handling + + data/mbim-service-basic-connect.json | 62 +++++++++++++++++++++++ + libmbim-glib/mbim-enums.h | 97 + ++++++++++++++++++++++++++++++++++++ + 2 files changed, 159 insertions(+) + +commit 8fb18787c084ed394ec4cd50fc59d00613ab2b8e +Author: Aleksander Morgado +Date: Sat Apr 13 15:41:56 2013 +0200 + + mbim-codegen: fix generation of the notification parsers + + build-aux/mbim-codegen/Message.py | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 3ec4e001bf637f429f02c4ccb8dd314baff9a1a7 +Author: Aleksander Morgado +Date: Sat Apr 13 15:34:52 2013 +0200 + + libmbim-glib: implement 'Indicate Status' message type interface + + libmbim-glib/mbim-message-private.h | 23 ++++++---- + libmbim-glib/mbim-message.c | 84 + +++++++++++++++++++++++++++++++++++-- + libmbim-glib/mbim-message.h | 9 ++++ + 3 files changed, 106 insertions(+), 10 deletions(-) + +commit d617eba4843b02408eabfce5be49e35649c85444 +Author: Aleksander Morgado +Date: Sat Apr 13 15:27:18 2013 +0200 + + basic-connect: implement 'Signal State' command handling + + data/mbim-service-basic-connect.json | 32 + ++++++++++++++++++++++++++++++++ + 1 file changed, 32 insertions(+) + +commit 3c823294bed69a6ff550695130d592f94cd1e9ac +Author: Aleksander Morgado +Date: Sat Apr 13 15:18:24 2013 +0200 + + libmbim-glib: fix 'MbimContextIpType' enum prefix + + libmbim-glib/mbim-enums.h | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +commit 888849d5e9894162dae40a44e18062533f4e2892 +Author: Aleksander Morgado +Date: Sat Apr 13 15:15:34 2013 +0200 + + libmbim-glib,device: rename signal from 'INDICATION' to + 'INDICATE_STATUS' + + libmbim-glib/mbim-device.c | 8 ++++---- + libmbim-glib/mbim-device.h | 4 ++-- + 2 files changed, 6 insertions(+), 6 deletions(-) + +commit 787e036e8b7a2c8106a46f57ad5070405c6f0d2f +Author: Aleksander Morgado +Date: Sat Apr 13 13:38:44 2013 +0200 + + basic-connect: implement 'Pin List' command handling + + data/mbim-service-basic-connect.json | 49 + ++++++++++++++++++++++++++++++++++++ + libmbim-glib/mbim-enums.h | 31 +++++++++++++++++++++++ + 2 files changed, 80 insertions(+) + +commit d860f575cd8a42b37f55a71b8e2df1ebf9b10cf4 +Author: Aleksander Morgado +Date: Sat Apr 13 13:38:18 2013 +0200 + + mbim-codegen: allow reading single structs from messages + + build-aux/mbim-codegen/Message.py | 64 + +++++++++++++++++++++++++---------- + build-aux/mbim-codegen/Struct.py | 9 +++-- + build-aux/mbim-codegen/ValueStruct.py | 2 +- + 3 files changed, 54 insertions(+), 21 deletions(-) + +commit aef937df60e541aca7916156855601683707c97a +Author: Aleksander Morgado +Date: Sat Apr 13 12:48:10 2013 +0200 + + libmbim-glib: align some enum values + + libmbim-glib/mbim-enums.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit eb041d501cd5b403ae24f654e8462a2e0baf8809 +Author: Aleksander Morgado +Date: Thu Apr 11 20:21:56 2013 +0200 + + libmbim-glib: rename 'INDICATION' enum to 'INDICATE_STATUS' + + Keeping the same name as in the docs. + + build-aux/mbim-codegen/Container.py | 2 +- + libmbim-glib/mbim-device.c | 4 ++-- + libmbim-glib/mbim-message.c | 8 ++++---- + libmbim-glib/mbim-message.h | 22 +++++++++++----------- + 4 files changed, 18 insertions(+), 18 deletions(-) + +commit f9e3f791c9e53e604cdd2e2fe35e735a0cc34259 +Author: Aleksander Morgado +Date: Thu Apr 11 20:07:12 2013 +0200 + + mbim-codegen: properly define the 4 types of messages that we may have + + MBIM defines 4 types of messages: + * Query (host->function) + * Set (host->function) + * Response (function->host) + * Indication (function->host) + + In particular, the Response message is used as reply for both Query + and Set. + + build-aux/mbim-codegen/Container.py | 38 +--- + build-aux/mbim-codegen/Message.py | 91 +++++----- + cli/mbimcli-basic-connect.c | 20 +-- + data/mbim-service-basic-connect.json | 217 + ++++++++++++----------- + libmbim-glib/test/test-message-command-builder.c | 10 +- + libmbim-glib/test/test-message-contents.c | 2 +- + 6 files changed, 176 insertions(+), 202 deletions(-) + +commit 0d2dbd0585075d1b339fbe411e4f188c03f8d5dd +Author: Aleksander Morgado +Date: Thu Apr 11 19:32:00 2013 +0200 + + mbim-codegen: let the field names be written in CamelCase, as in + the docs + + Write all field names in CamelCase, to match the name given in + the docs. + + build-aux/mbim-codegen/Message.py | 20 ++++----- + build-aux/mbim-codegen/Struct.py | 10 ++--- + build-aux/mbim-codegen/utils.py | 2 + + data/mbim-service-basic-connect.json | 80 + ++++++++++++++++++------------------ + 4 files changed, 57 insertions(+), 55 deletions(-) + +commit 453b34db2b478bafa5fae2e9630a17a79bf0cf0a +Author: Aleksander Morgado +Date: Thu Apr 11 19:10:42 2013 +0200 + + libmbim-glib: fix DBus error names + + libmbim-glib/mbim-errors.h | 84 + +++++++++++++++++++++++----------------------- + 1 file changed, 42 insertions(+), 42 deletions(-) + +commit a7d4325faf0d139cfa6ac21340844fa6f985d25a +Author: Aleksander Morgado +Date: Thu Apr 11 10:13:40 2013 +0200 + + mbim-codegen: skip requiring transaction ID in command request + builders + + build-aux/mbim-codegen/Message.py | 11 ++++------- + cli/mbimcli-basic-connect.c | 20 + +++++--------------- + libmbim-glib/test/test-message-command-builder.c | 4 ++-- + 3 files changed, 11 insertions(+), 24 deletions(-) + +commit 7c4eb94cc5e59a6d40ea20cc86656371f7891919 +Author: Aleksander Morgado +Date: Thu Apr 11 10:13:15 2013 +0200 + + device: add the transaction ID ourselves when sending the command + if none given + + libmbim-glib/mbim-device.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +commit fc1bd81f42d3920250b6550f13d05c4609e46cb6 +Author: Aleksander Morgado +Date: Thu Apr 11 10:07:14 2013 +0200 + + message: allow updating the transaction ID + + libmbim-glib/mbim-message.c | 21 +++++++++++++++++++++ + libmbim-glib/mbim-message.h | 3 +++ + 2 files changed, 24 insertions(+) + +commit 3bbb1874f73dc98a43f50811251ed6cdb0ab96f1 +Author: Aleksander Morgado +Date: Thu Apr 11 10:06:42 2013 +0200 + + message: fix invalid enum castings + + libmbim-glib/mbim-message-private.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 49f0a99e4ce47ba93aaab1ade4df88f06110dc41 +Author: Aleksander Morgado +Date: Wed Apr 10 19:16:07 2013 +0200 + + mbim-codegen: simplify API + + Instead of per-variable getters, just dump a parser() method which + reads all the + requested variables from the message. + + Same logic for the message creators, passing all variables altogether. + + build-aux/mbim-codegen/Container.py | 140 ++------------ + build-aux/mbim-codegen/Message.py | 225 + +++++++++++++++++++--- + build-aux/mbim-codegen/Struct.py | 6 +- + build-aux/mbim-codegen/Value.py | 17 +- + build-aux/mbim-codegen/ValueString.py | 13 +- + build-aux/mbim-codegen/ValueStringArray.py | 16 +- + build-aux/mbim-codegen/ValueStruct.py | 15 +- + build-aux/mbim-codegen/ValueStructArray.py | 13 +- + build-aux/mbim-codegen/ValueUint32.py | 13 +- + build-aux/mbim-codegen/ValueUint32Array.py | 15 +- + build-aux/mbim-codegen/ValueUuid.py | 13 +- + cli/mbimcli-basic-connect.c | 230 + ++++++++++++++++------- + data/mbim-service-basic-connect.json | 67 ++++--- + libmbim-glib/test/test-message-command-builder.c | 73 ++++++- + libmbim-glib/test/test-message-contents.c | 76 +++++--- + 15 files changed, 586 insertions(+), 346 deletions(-) + +commit 916d20baf46d5bd59204e8910a516b6d1bf50497 +Author: Aleksander Morgado +Date: Wed Apr 10 19:12:21 2013 +0200 + + device: just log debug about the issue with the ioctl() command + + libmbim-glib/mbim-device.c | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +commit df270c52e9f99f9c4a388449554db91294c22613 +Author: Aleksander Morgado +Date: Tue Apr 9 10:22:25 2013 +0200 + + libmbim-glib: new struct type builder + + libmbim-glib/mbim-message.c | 163 + +++++++++++++++++++++++++++++++------------- + libmbim-glib/mbim-message.h | 18 +++++ + 2 files changed, 134 insertions(+), 47 deletions(-) + +commit da291f91ff04ad15335e8936646a08cd5b5c2dbe +Author: Aleksander Morgado +Date: Tue Apr 9 02:09:17 2013 +0200 + + libmbim-glib: new command message builder + + .gitignore | 1 + + libmbim-glib/mbim-message.c | 133 + ++++++++++++++++++++++ + libmbim-glib/mbim-message.h | 27 ++++- + libmbim-glib/mbim-utils.h | 1 - + libmbim-glib/test/Makefile.am | 20 +++- + libmbim-glib/test/test-message-command-builder.c | 136 + +++++++++++++++++++++++ + 6 files changed, 310 insertions(+), 8 deletions(-) + +commit a9e5f4547972c2eeab884b1e507b3687b26a41e5 +Author: Aleksander Morgado +Date: Sun Apr 7 22:34:47 2013 +0200 + + basic-connect: new 'MbimRadioSwitchState' enum + + data/mbim-service-basic-connect.json | 4 ++-- + libmbim-glib/mbim-enums.h | 14 ++++++++++++++ + 2 files changed, 16 insertions(+), 2 deletions(-) + +commit 5151d67bf20d7d3211cf1022f1d7ae74cd4ee86c +Author: Aleksander Morgado +Date: Sun Apr 7 20:39:02 2013 +0200 + + basic-connect: fix some field names + + cli/mbimcli-basic-connect.c | 11 +++++------ + data/mbim-service-basic-connect.json | 26 +++++++++++++------------- + 2 files changed, 18 insertions(+), 19 deletions(-) + +commit 187f5f3bc0708f6a4c8e0bd4a7b2b40322626e9d +Author: Bjørn Mork +Date: Sat Apr 6 20:36:00 2013 +0200 + + cli: new '--basic-connect-query-pin' command + + Signed-off-by: Bjørn Mork + + cli/mbimcli-basic-connect.c | 53 + ++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 52 insertions(+), 1 deletion(-) + +commit 184a962a8e50231d8d070649a065c355fca371f9 +Author: Bjørn Mork +Date: Sat Apr 6 20:35:59 2013 +0200 + + libmbim-glib,device: use IOCTL_WDM_MAX_COMMAND + + Signed-off-by: Bjørn Mork + + libmbim-glib/mbim-device.c | 24 +++++++++++++++++++++--- + 1 file changed, 21 insertions(+), 3 deletions(-) + +commit a12629a0ed72a1de4b89d5e3c89d8e7e7d1c76b9 +Author: Bjørn Mork +Date: Sat Apr 6 20:35:58 2013 +0200 + + libmbim-glib: add 'Packet Service' and 'Connect' enums + + Signed-off-by: Bjørn Mork + + libmbim-glib/mbim-enums.h | 126 + ++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 126 insertions(+) + +commit 3edef7085949ab0a33a2df19af709ef13159dd48 +Author: Bjørn Mork +Date: Sat Apr 6 20:35:57 2013 +0200 + + basic-connect: implement 'Pin' command handling + + Signed-off-by: Bjørn Mork + + data/mbim-service-basic-connect.json | 31 +++++++++++++++++++++++++++++++ + 1 file changed, 31 insertions(+) + +commit 840f0bda3710af0fddecfea06b8eb1ec1d2a9331 +Author: Bjørn Mork +Date: Sat Apr 6 20:35:56 2013 +0200 + + libmbim-glib: add PIN enums + + Signed-off-by: Bjørn Mork + + libmbim-glib/mbim-enums.h | 72 + +++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 72 insertions(+) + +commit 1306b4446070dac8971a9a6335405fd6b564b663 +Author: Bjørn Mork +Date: Sat Apr 6 20:35:55 2013 +0200 + + cli: new '--basic-connect-query-radio-state' command + + Signed-off-by: Bjørn Mork + + cli/mbimcli-basic-connect.c | 50 + +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 50 insertions(+) + +commit 857dc6ee4ff397ab0516267905e3249560062581 +Author: Bjørn Mork +Date: Sat Apr 6 20:35:54 2013 +0200 + + basic-connect: implement 'Radio State' query handling + + Signed-off-by: Bjørn Mork + + data/mbim-service-basic-connect.json | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit 3c784aa4f29de211cde6e3647863ed7f3b4244c8 +Author: Aleksander Morgado +Date: Sat Apr 6 19:41:03 2013 +0200 + + pkg-config: build and distribute pkg-config file for libmbim-glib + + .gitignore | 2 ++ + configure.ac | 2 ++ + data/Makefile.am | 1 + + data/pkg-config/Makefile.am | 4 ++++ + data/pkg-config/mbim-glib.pc.in | 11 +++++++++++ + 5 files changed, 20 insertions(+) + +commit 302a103db3ee120f203bb0d0d6ed7547ffef9860 +Author: Aleksander Morgado +Date: Sat Apr 6 19:38:20 2013 +0200 + + build: distribute the message database files + + Makefile.am | 2 +- + configure.ac | 1 + + data/Makefile.am | 3 +++ + 3 files changed, 5 insertions(+), 1 deletion(-) + +commit 5a1fc5dacd6aebaa9c0e66ec8b29d24c2c99ba7e +Author: Aleksander Morgado +Date: Thu Jan 31 12:38:33 2013 +0100 + + libmbim-glib: new tests for real message contents retrieval + + .gitignore | 1 + + libmbim-glib/test/Makefile.am | 19 ++++- + libmbim-glib/test/test-message-contents.c | 123 + ++++++++++++++++++++++++++++++ + 3 files changed, 141 insertions(+), 2 deletions(-) + +commit dd6f699e50bb6b6d074c73374a19cf03f50e173e +Author: Aleksander Morgado +Date: Thu Jan 31 12:38:02 2013 +0100 + + mbim-codegen: split Value objects + + build-aux/mbim-codegen/Container.py | 185 + ++++++++++++----------------- + build-aux/mbim-codegen/Makefile.am | 8 ++ + build-aux/mbim-codegen/Value.py | 65 ++++++++++ + build-aux/mbim-codegen/ValueString.py | 56 +++++++++ + build-aux/mbim-codegen/ValueStringArray.py | 58 +++++++++ + build-aux/mbim-codegen/ValueStruct.py | 61 ++++++++++ + build-aux/mbim-codegen/ValueStructArray.py | 64 ++++++++++ + build-aux/mbim-codegen/ValueUint32.py | 56 +++++++++ + build-aux/mbim-codegen/ValueUint32Array.py | 58 +++++++++ + build-aux/mbim-codegen/ValueUuid.py | 56 +++++++++ + 10 files changed, 556 insertions(+), 111 deletions(-) + +commit e310e6b4e2fd19b95fa27827af1e81fc928eb71d +Author: Aleksander Morgado +Date: Sun Jan 27 21:39:04 2013 +0100 + + cli: new '--basic-connect-query-device-services' command + + cli/mbimcli-basic-connect.c | 102 + +++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 101 insertions(+), 1 deletion(-) + +commit 1551877f3c8418a78ce5852f966fd6adfc2683a0 +Author: Aleksander Morgado +Date: Sun Jan 27 21:38:47 2013 +0100 + + libmbim-glib,basic-connect: implement 'Device Services' query handling + + data/mbim-service-basic-connect.json | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +commit a3e28f8c2847ca8a7f8614c0e9d22926ce4dadfc +Author: Aleksander Morgado +Date: Sun Jan 27 21:38:16 2013 +0100 + + mbim-codegen: read 'struct' and 'struct-array' fields + + build-aux/mbim-codegen/Container.py | 60 + +++++++++++++++++++++++++++++-------- + 1 file changed, 48 insertions(+), 12 deletions(-) + +commit 87b146c61f02ce9a86cb69af9a61684c6aa45325 +Author: Aleksander Morgado +Date: Fri Jan 25 15:35:01 2013 +0100 + + mbim-codegen: add new 'Struct' type generation + + build-aux/mbim-codegen/Makefile.am | 3 +- + .../mbim-codegen/{MessageList.py => ObjectList.py} | 34 ++- + build-aux/mbim-codegen/Struct.py | 241 + +++++++++++++++++++++ + build-aux/mbim-codegen/mbim-codegen | 10 +- + data/mbim-service-basic-connect.json | 20 +- + 5 files changed, 289 insertions(+), 19 deletions(-) + +commit 18998e9eec9ed8f471e61291f8a2e65355b8c81a +Author: Aleksander Morgado +Date: Fri Jan 25 15:58:42 2013 +0100 + + libmbim-glib: implement 'uuid' type reading + + build-aux/mbim-codegen/Container.py | 10 ++++++++-- + libmbim-glib/mbim-message.c | 12 ++++++++++++ + libmbim-glib/mbim-message.h | 2 ++ + 3 files changed, 22 insertions(+), 2 deletions(-) + +commit 4d79d1f017b6e554e82a9de01ebe939a74b4468d +Author: Aleksander Morgado +Date: Fri Jan 25 14:13:30 2013 +0100 + + mbim-codegen,libmbim-glib: improve general array and variable reading + + In the general variable reading part, we no longer need specific + methods for + 'command' or 'command-done' message types. + + Also, when reading arrays, we will specify separately the variable + with the + array size and the variable with the actual array contents. Main + reason for this + is that it seems they don't have to be one after the other. + + The arrays of guint32 will be '0' terminated. This is useful for + parameters + where '0' is not an expected value. In general, the size of arrays + of guint32 + values is given in the output 'size' variable when the array is read. + + build-aux/mbim-codegen/Container.py | 112 ++++++++++++++++++----- + build-aux/mbim-codegen/utils.py | 1 + + cli/mbimcli-basic-connect.c | 2 +- + data/mbim-service-basic-connect.json | 8 +- + libmbim-glib/mbim-message.c | 167 + ++++++++++++++++------------------- + libmbim-glib/mbim-message.h | 31 +++---- + 6 files changed, 189 insertions(+), 132 deletions(-) + +commit 916d1ca2220ddb6703522d5bdfe672cd76fa15be +Author: Aleksander Morgado +Date: Thu Jan 24 09:45:36 2013 +0100 + + mbim-codegen: setup code generator + + Setup code generation for the request creator and the response + getters. + + .gitignore | 3 + + build-aux/Makefile.am | 2 +- + build-aux/mbim-codegen/Container.py | 140 ++++++++++++++++++++++ + build-aux/mbim-codegen/Makefile.am | 9 ++ + build-aux/mbim-codegen/Message.py | 154 ++++++++++++++++++++++++ + build-aux/mbim-codegen/MessageList.py | 57 +++++++++ + build-aux/mbim-codegen/mbim-codegen | 77 ++++++++++++ + build-aux/mbim-codegen/utils.py | 188 + ++++++++++++++++++++++++++++++ + configure.ac | 1 + + data/mbim-service-basic-connect.json | 57 +++++++++ + libmbim-glib/Makefile.am | 2 - + libmbim-glib/generated/Makefile.am | 24 +++- + libmbim-glib/libmbim-glib.h | 3 +- + libmbim-glib/mbim-message-basic-connect.c | 152 ------------------------ + libmbim-glib/mbim-message-basic-connect.h | 71 ----------- + 15 files changed, 706 insertions(+), 234 deletions(-) + +commit 2f10256543498fdf1dd9d5af1e36e8b5458bff42 +Author: Aleksander Morgado +Date: Thu Jan 24 09:30:00 2013 +0100 + + libmbim-glib: use separate header for enums + + libmbim-glib/Makefile.am | 2 + + libmbim-glib/generated/Makefile.am | 4 +- + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-enums.h | 199 + ++++++++++++++++++++++++++++++ + libmbim-glib/mbim-message-basic-connect.h | 159 +----------------------- + 5 files changed, 205 insertions(+), 160 deletions(-) + +commit c9ce3571eb9eb84628c2dca75e503c928a3e4a1e +Author: Aleksander Morgado +Date: Tue Jan 22 18:45:05 2013 +0100 + + libmbim-glib,device: for incomplete fragments, just translate + basic headers + + libmbim-glib/mbim-device.c | 35 +++++++++- + libmbim-glib/mbim-message.c | 158 + +++++++++++++++++++++++--------------------- + libmbim-glib/mbim-message.h | 3 +- + 3 files changed, 118 insertions(+), 78 deletions(-) + +commit b50483c6682e97354a3a0f9cb747883c94e8cbaf +Author: Aleksander Morgado +Date: Tue Jan 22 18:16:15 2013 +0100 + + cli: new '--basic-connect-query-subscriber-ready-status command + + cli/mbimcli-basic-connect.c | 81 + ++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 80 insertions(+), 1 deletion(-) + +commit a779e2881d63d5f83bf992cb46324d54d703454e +Author: Aleksander Morgado +Date: Tue Jan 22 18:00:15 2013 +0100 + + libmbim-glib,basic-connect: implement 'Subscriber Ready Status' + query handling + + libmbim-glib/mbim-message-basic-connect.c | 42 + ++++++++++++++++++++++++++++++ + libmbim-glib/mbim-message-basic-connect.h | 43 + +++++++++++++++++++++++++++++++ + 2 files changed, 85 insertions(+) + +commit 427d37439d22f5c0f9c2ec45c4aa523d9367fe5d +Author: Aleksander Morgado +Date: Tue Jan 22 17:59:52 2013 +0100 + + libmbim-glib,message: add helpers to read string arrays + + libmbim-glib/mbim-message.c | 72 + +++++++++++++++++++++++++++++++++++++++++++++ + libmbim-glib/mbim-message.h | 20 ++++++++----- + 2 files changed, 84 insertions(+), 8 deletions(-) + +commit 133d0f6a5d5469aa01fd9cf7c5b46d30c8d5d5a9 +Author: Aleksander Morgado +Date: Tue Jan 22 17:43:58 2013 +0100 + + libmbim-glib,message: we know the offsets already, use them + + This will make the code generation much easier; we just need to + compute the + offsets ourselves and place them to grab the variables. + + For strings, also assume that the 'size' guint32 always comes just + after the + 'offset' guint32. + + libmbim-glib/mbim-message-basic-connect.c | 52 + +++++++------------------------ + libmbim-glib/mbim-message.c | 21 ++++--------- + libmbim-glib/mbim-message.h | 10 +++--- + 3 files changed, 22 insertions(+), 61 deletions(-) + +commit 63bed3f1465790f2d5b328a490d9b345d92b21ca +Author: Aleksander Morgado +Date: Mon Jan 21 18:18:41 2013 +0100 + + cli: new '--basic-connect-query-device-caps' command + + cli/Makefile.am | 3 +- + cli/mbimcli-basic-connect.c | 223 + ++++++++++++++++++++++++++++++++++++++++++++ + cli/mbimcli.c | 82 +++++++++++----- + cli/mbimcli.h | 6 ++ + 4 files changed, 288 insertions(+), 26 deletions(-) + +commit 6898173b4e939cc86d3681ea1ba15c09c23f8860 +Author: Aleksander Morgado +Date: Tue Jan 22 15:27:27 2013 +0100 + + libmbim-glib,basic-connect: implement 'Device Caps' query handling + + libmbim-glib/Makefile.am | 2 + + libmbim-glib/generated/Makefile.am | 5 +- + libmbim-glib/libmbim-glib.h | 2 + + libmbim-glib/mbim-message-basic-connect.c | 138 ++++++++++++++++++++++ + libmbim-glib/mbim-message-basic-connect.h | 185 + ++++++++++++++++++++++++++++++ + 5 files changed, 330 insertions(+), 2 deletions(-) + +commit daaa443f1f4b75d60b457abac1d1360693acb58b +Author: Aleksander Morgado +Date: Tue Jan 22 15:26:26 2013 +0100 + + libmbim-glib,message: add helpers to read from the information buffers + + libmbim-glib/mbim-message.c | 100 + +++++++++++++++++++++++++++++++++++++++++++- + libmbim-glib/mbim-message.h | 16 +++++++ + 2 files changed, 115 insertions(+), 1 deletion(-) + +commit 2d8bd8e5536c3f1856151d21d206397d12cd61e7 +Author: Aleksander Morgado +Date: Mon Jan 21 16:25:15 2013 +0100 + + libmbim-glib,test: add unit tests for the 'Command' and 'Command Done' + message types + + libmbim-glib/test/test-message.c | 112 + +++++++++++++++++++++++++++++++++++---- + 1 file changed, 101 insertions(+), 11 deletions(-) + +commit 21eb892f3801e16b909ef63453d5c2d12e0cc78c +Author: Aleksander Morgado +Date: Mon Jan 21 15:33:27 2013 +0100 + + libmbim-glib: implement 'Command' and 'Command Done' message types + + libmbim-glib/mbim-message-private.h | 30 +++- + libmbim-glib/mbim-message.c | 340 + +++++++++++++++++++++++++++++++++++- + libmbim-glib/mbim-message.h | 45 +++++ + 3 files changed, 408 insertions(+), 7 deletions(-) + +commit 0660abc06a659e918f13801476331bb54e8bbc8c +Author: Aleksander Morgado +Date: Mon Jan 21 14:10:36 2013 +0100 + + libmbim-glib,test: implement unit tests for per-service CIDs + + .gitignore | 1 + + libmbim-glib/test/Makefile.am | 15 ++++- + libmbim-glib/test/test-cid.c | 121 + +++++++++++++++++++++++++++++++++++++++ + libmbim-glib/test/test-message.c | 18 ++++++ + 4 files changed, 154 insertions(+), 1 deletion(-) + +commit fbc4538acdca294a4fb8b18ac7921fd6a10c36ed +Author: Aleksander Morgado +Date: Mon Jan 21 14:10:19 2013 +0100 + + libmbim-glib: define per-service CIDs + + libmbim-glib/Makefile.am | 2 + + libmbim-glib/generated/Makefile.am | 3 +- + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-cid.c | 258 + +++++++++++++++++++++++++++++++++++++ + libmbim-glib/mbim-cid.h | 199 ++++++++++++++++++++++++++++ + 5 files changed, 462 insertions(+), 1 deletion(-) + +commit ffb6624eb85eaaee17f1f3f12976690357ec3989 +Author: Aleksander Morgado +Date: Fri Jan 18 16:24:57 2013 +0100 + + cli: setup new 'mbimcli' to access the MBIM device from the + commandline + + .gitignore | 6 +- + Makefile.am | 2 +- + cli/Makefile.am | 17 ++++ + cli/mbimcli.c | 303 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + cli/mbimcli.h | 30 ++++++ + configure.ac | 11 +- + 6 files changed, 366 insertions(+), 3 deletions(-) + +commit 24a71117c156046ceb1260b6e23c1eb605e5ab15 +Author: Aleksander Morgado +Date: Fri Jan 18 16:24:06 2013 +0100 + + libmbim-glib: setup message traces + + libmbim-glib/mbim-device.c | 64 + ++++++++++++++++++++++++++++++++++++++++++++++ + libmbim-glib/mbim-utils.c | 29 +++++++++++++++++++++ + libmbim-glib/mbim-utils.h | 4 +++ + 3 files changed, 97 insertions(+) + +commit be8610a9e7b83094a37d088f64307f960a43cc3f +Author: Aleksander Morgado +Date: Fri Jan 18 16:22:26 2013 +0100 + + libmbim-glib: new 'MbimDevice' to control access to the MBIM device + + libmbim-glib/Makefile.am | 6 +- + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-device.c | 1485 + +++++++++++++++++++++++++++++++++++++++++++ + libmbim-glib/mbim-device.h | 120 ++++ + 4 files changed, 1610 insertions(+), 2 deletions(-) + +commit f7cd292d2f8b9e4507f3c18ca484ef8bc39a518f +Author: Aleksander Morgado +Date: Fri Jan 18 16:18:14 2013 +0100 + + libmbim-glib,test: add unit tests for the message fragment handling + + .gitignore | 1 + + libmbim-glib/test/Makefile.am | 17 +- + libmbim-glib/test/test-fragment.c | 331 + ++++++++++++++++++++++++++++++++++++++ + 3 files changed, 347 insertions(+), 2 deletions(-) + +commit 28de0db31cb923f272c3c295a7a3384f4be04abb +Author: Aleksander Morgado +Date: Fri Jan 18 16:16:16 2013 +0100 + + libmbim-glib: implement message fragment handling + + libmbim-glib/mbim-message-private.h | 42 ++++++++ + libmbim-glib/mbim-message.c | 209 + ++++++++++++++++++++++++++++++++++++ + 2 files changed, 251 insertions(+) + +commit 2566be51078522aa07ff34e8560e8d7cf7cfacf5 +Author: Aleksander Morgado +Date: Fri Jan 18 16:13:43 2013 +0100 + + libmbim-glib: implement 'Error' message types + + libmbim-glib/mbim-message-private.h | 5 +++ + libmbim-glib/mbim-message.c | 89 + ++++++++++++++++++++++++++++++++++++- + libmbim-glib/mbim-message.h | 8 ++++ + 3 files changed, 101 insertions(+), 1 deletion(-) + +commit 603450a35a5469ad15c3eead46b4fd5b2bfe5cac +Author: Aleksander Morgado +Date: Fri Jan 18 16:11:54 2013 +0100 + + libmbim-glib,test: add unit tests for the 'Close' and 'Close Done' + message types + + libmbim-glib/test/test-message.c | 36 + ++++++++++++++++++++++++++++++++++++ + 1 file changed, 36 insertions(+) + +commit f7c23a845e3083717c78a46fe102c440d18fcab4 +Author: Aleksander Morgado +Date: Fri Jan 18 16:10:40 2013 +0100 + + libmbim-glib: implement 'Close' and 'Close Done' message types + + libmbim-glib/mbim-message-private.h | 6 +++ + libmbim-glib/mbim-message.c | 83 + ++++++++++++++++++++++++++++++++++++- + libmbim-glib/mbim-message.h | 12 ++++++ + 3 files changed, 100 insertions(+), 1 deletion(-) + +commit 36245665f2a67045f4208ac5f05eff12929a375f +Author: Aleksander Morgado +Date: Fri Jan 18 16:10:17 2013 +0100 + + libmbim-glib,test: add unit tests for the 'Open' and 'Open Done' + message types + + .gitignore | 1 + + libmbim-glib/test/Makefile.am | 17 +++++++++-- + libmbim-glib/test/test-message.c | 63 + ++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 79 insertions(+), 2 deletions(-) + +commit cd3bfedeafd1c44b176a284bea263eaadbbb0206 +Author: Aleksander Morgado +Date: Fri Jan 18 16:05:12 2013 +0100 + + libmbim-glib: implement 'Open' and 'Open Done' message types + + libmbim-glib/mbim-message-private.h | 10 +++ + libmbim-glib/mbim-message.c | 118 + +++++++++++++++++++++++++++++++++++- + libmbim-glib/mbim-message.h | 14 +++++ + 3 files changed, 141 insertions(+), 1 deletion(-) + +commit df72eeab9a3bc73246ecdf807cd51c0df751f1ad +Author: Aleksander Morgado +Date: Fri Jan 18 15:59:17 2013 +0100 + + libmbim-glib: setup generation of enum types + + build-aux/templates/Makefile.am | 4 +- + build-aux/templates/mbim-enum-types-template.c | 118 + +++++++++++++++++++++++++ + build-aux/templates/mbim-enum-types-template.h | 33 +++++++ + libmbim-glib/generated/Makefile.am | 26 +++++- + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-message.c | 5 +- + 6 files changed, 181 insertions(+), 6 deletions(-) + +commit 76b8a28b4e9c7cbb64baaa5c937c96d519fe8aa5 +Author: Aleksander Morgado +Date: Fri Jan 18 15:47:34 2013 +0100 + + libmbim-glib: added generic 'MbimMessage' implementation + + libmbim-glib/Makefile.am | 6 +- + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-message-private.h | 63 ++++++++ + libmbim-glib/mbim-message.c | 286 + ++++++++++++++++++++++++++++++++++++ + libmbim-glib/mbim-message.h | 99 +++++++++++++ + 5 files changed, 453 insertions(+), 2 deletions(-) + +commit c39136577d52044c8491ccf0ef465a8ba0127f3e +Author: Aleksander Morgado +Date: Fri Jan 18 15:47:07 2013 +0100 + + libmbim-glib: added helper to print raw byte buffers + + libmbim-glib/Makefile.am | 2 ++ + libmbim-glib/libmbim-glib.h | 1 + + libmbim-glib/mbim-utils.c | 73 + +++++++++++++++++++++++++++++++++++++++++++++ + libmbim-glib/mbim-utils.h | 46 ++++++++++++++++++++++++++++ + 4 files changed, 122 insertions(+) + +commit 3e59dd514e1aacdc164f32056b636ea6b45b77bb +Author: Aleksander Morgado +Date: Fri Jan 18 15:37:29 2013 +0100 + + libmbim-glib: setup core, status and protocol error types + + .gitignore | 5 + + Makefile.am | 2 +- + build-aux/Makefile.am | 2 + + build-aux/templates/Makefile.am | 5 + + build-aux/templates/mbim-error-quarks-template.c | 42 +++++ + build-aux/templates/mbim-error-types-template.c | 54 +++++++ + build-aux/templates/mbim-error-types-template.h | 24 +++ + configure.ac | 6 + + libmbim-glib/Makefile.am | 7 +- + libmbim-glib/generated/Makefile.am | 51 +++++++ + libmbim-glib/libmbim-glib.h | 3 + + libmbim-glib/mbim-errors.h | 185 + +++++++++++++++++++++++ + 12 files changed, 384 insertions(+), 2 deletions(-) + +commit 0f4f3e70b375375f7f48ce21241b0700ad6a03fe +Author: Aleksander Morgado +Date: Mon Jan 14 16:56:30 2013 +0100 + + libmbim-glib,test: add unit tests for the 'MbimUuid' type + + .gitignore | 6 ++- + configure.ac | 3 +- + libmbim-glib/Makefile.am | 2 + + libmbim-glib/test/Makefile.am | 20 ++++++++++ + libmbim-glib/test/test-uuid.c | 93 + +++++++++++++++++++++++++++++++++++++++++++ + 5 files changed, 122 insertions(+), 2 deletions(-) + +commit c5509bfb4d71d4a7193aba31f7086bc04ffa361f +Author: Aleksander Morgado +Date: Mon Jan 14 16:23:17 2013 +0100 + + libmbim-glib: added 'MbimUuid' type handling + + libmbim-glib/Makefile.am | 6 +- + libmbim-glib/libmbim-glib.h | 2 + + libmbim-glib/mbim-uuid.c | 204 + ++++++++++++++++++++++++++++++++++++++++++++ + libmbim-glib/mbim-uuid.h | 153 +++++++++++++++++++++++++++++++++ + 4 files changed, 363 insertions(+), 2 deletions(-) + +commit b70fb23f5ef966488062b82701804bb916b28eac +Author: Aleksander Morgado +Date: Mon Jan 14 16:22:02 2013 +0100 + + libmbim-glib: setup compilation of the library + + .gitignore | 3 +++ + Makefile.am | 2 ++ + configure.ac | 24 +++++++++++++++++++++++- + libmbim-glib/Makefile.am | 20 ++++++++++++++++++++ + libmbim-glib/libmbim-glib.h | 30 ++++++++++++++++++++++++++++++ + 5 files changed, 78 insertions(+), 1 deletion(-) + +commit 3fcc17c8d6e06f9d2dd2b60a0a9dbfc82afe5161 +Author: Aleksander Morgado +Date: Fri Jan 11 12:50:16 2013 +0100 + + build: setup autotools + + .gitignore | 29 +++ + AUTHORS | 1 + + COPYING | 482 + ++++++++++++++++++++++++++++++++++++++++++++++++ + Makefile.am | 2 + + NEWS | 0 + autogen.sh | 22 +++ + configure.ac | 39 ++++ + m4/compiler-warnings.m4 | 38 ++++ + 8 files changed, 613 insertions(+) + +commit 7d99143963bf6eb6d0f762dfa441ff5dac6810b1 +Author: Aleksander Morgado +Date: Fri Jan 11 12:39:00 2013 +0100 + + big bang!! diff -Nru libmbim-1.14.2/compile libmbim-1.18.0/compile --- libmbim-1.14.2/compile 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/compile 2019-01-08 13:52:18.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru libmbim-1.14.2/config.guess libmbim-1.18.0/config.guess --- libmbim-1.14.2/config.guess 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/config.guess 2019-01-08 13:52:18.000000000 +0100 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2014-11-04' +timestamp='2018-03-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,7 +27,7 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -39,7 +39,7 @@ Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -107,9 +107,9 @@ dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; + ,,) echo "int x;" > "$dummy.c" ; for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; @@ -132,14 +132,14 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu - eval $set_cc_for_build - cat <<-EOF > $dummy.c + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +149,20 @@ LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -168,21 +175,31 @@ # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ + echo unknown)` + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -197,44 +214,67 @@ os=netbsd ;; esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "$machine-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -251,63 +291,54 @@ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -319,7 +350,7 @@ echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -346,38 +377,38 @@ sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" + eval "$set_cc_for_build" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in @@ -386,25 +417,25 @@ ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -415,44 +446,44 @@ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -461,23 +492,23 @@ #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -503,17 +534,17 @@ AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -530,7 +561,7 @@ echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id @@ -542,14 +573,14 @@ if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -560,7 +591,7 @@ exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else @@ -574,7 +605,7 @@ exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -583,18 +614,18 @@ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -609,28 +640,28 @@ echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -663,13 +694,13 @@ exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ "$HP_ARCH" = hppa2.0w ] then - eval $set_cc_for_build + eval "$set_cc_for_build" # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -680,23 +711,23 @@ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -721,11 +752,11 @@ exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -734,7 +765,7 @@ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) @@ -742,9 +773,9 @@ exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -769,127 +800,109 @@ echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case "$UNAME_PROCESSOR" in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + echo "$UNAME_MACHINE"-pc-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -902,58 +915,64 @@ EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el @@ -967,64 +986,70 @@ #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1038,34 +1063,34 @@ # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) @@ -1075,12 +1100,12 @@ *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1090,9 +1115,9 @@ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1100,7 +1125,7 @@ # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1112,9 +1137,9 @@ exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1134,9 +1159,9 @@ test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; @@ -1145,28 +1170,28 @@ test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1177,7 +1202,7 @@ *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1197,23 +1222,23 @@ exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1232,46 +1257,56 @@ echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build + eval "$set_cc_for_build" if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub @@ -1282,27 +1317,33 @@ # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1311,18 +1352,18 @@ echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1343,14 +1384,14 @@ echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1359,34 +1400,48 @@ echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs exit ;; esac +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 < in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp @@ -1405,16 +1460,16 @@ /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru libmbim-1.14.2/config.sub libmbim-1.18.0/config.sub --- libmbim-1.14.2/config.sub 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/config.sub 2019-01-08 13:52:19.000000000 +0100 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2014-12-03' +timestamp='2018-03-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -33,7 +33,7 @@ # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -53,12 +53,11 @@ me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -68,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -95,7 +94,7 @@ *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -113,24 +112,24 @@ # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` + basic_machine=`echo "$1" | sed 's/-[^-]*$//'` + if [ "$basic_machine" != "$1" ] + then os=`echo "$1" | sed 's/.*-/-/'` else os=; fi ;; esac @@ -179,44 +178,44 @@ ;; -sco6) os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 @@ -228,10 +227,7 @@ os=-lynxos ;; -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` ;; -psos*) os=-psos @@ -255,15 +251,16 @@ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ - | i370 | i860 | i960 | ia64 \ + | i370 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ @@ -299,13 +296,14 @@ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ + | pdp10 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -314,7 +312,7 @@ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ - | we32k \ + | wasm32 \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown @@ -335,7 +333,7 @@ basic_machine=$basic_machine-unknown os=-none ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) ;; ms1) basic_machine=mt-unknown @@ -364,7 +362,7 @@ ;; # Object if more than one company name word. *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. @@ -376,17 +374,18 @@ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ @@ -427,13 +426,15 @@ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -442,6 +443,7 @@ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ + | wasm32-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -455,7 +457,7 @@ # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) - basic_machine=i386-unknown + basic_machine=i386-pc os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) @@ -489,7 +491,7 @@ basic_machine=x86_64-pc ;; amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl @@ -518,6 +520,9 @@ basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -531,7 +536,7 @@ os=-linux ;; blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) @@ -539,13 +544,13 @@ os=-cnk ;; c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray @@ -634,10 +639,18 @@ basic_machine=rs6000-bull os=-bosx ;; - dpx2* | dpx2*-bull) + dpx2*) basic_machine=m68k-bull os=-sysv3 ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=$os"spe" + ;; ebmon29k) basic_machine=a29k-amd os=-ebmon @@ -727,9 +740,6 @@ hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; - hppa-next) - os=-nextstep3 - ;; hppaosf) basic_machine=hppa1.1-hp os=-osf @@ -742,26 +752,26 @@ basic_machine=i370-ibm ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; - i386-vsta | vsta) + vsta) basic_machine=i386-unknown os=-vsta ;; @@ -780,19 +790,16 @@ os=-sysv ;; leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; - m88k-omron*) - basic_machine=m88k-omron - ;; magnum | m3230) basic_machine=mips-mips os=-sysv @@ -824,10 +831,10 @@ os=-mint ;; mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` ;; mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k @@ -846,7 +853,7 @@ os=-msdos ;; ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc @@ -888,7 +895,7 @@ basic_machine=v70-nec os=-sysv ;; - next | m*-next ) + next | m*-next) basic_machine=m68k-next case $os in -nextstep* ) @@ -933,6 +940,12 @@ nsr-tandem) basic_machine=nsr-tandem ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf @@ -965,7 +978,7 @@ os=-linux ;; parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; pbd) @@ -981,7 +994,7 @@ basic_machine=i386-pc ;; pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc @@ -996,16 +1009,16 @@ basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould @@ -1015,23 +1028,23 @@ ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; - ppcle | powerpclittle | ppc-le | powerpc-little) + ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) + ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm @@ -1085,17 +1098,10 @@ sequent) basic_machine=i386-sequent ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; sh5el) basic_machine=sh5le-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) + simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; @@ -1114,7 +1120,7 @@ os=-sysv4 ;; strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun @@ -1236,6 +1242,9 @@ basic_machine=hppa1.1-winbond os=-proelf ;; + x64) + basic_machine=x86_64-pc + ;; xbox) basic_machine=i686-pc os=-mingw32 @@ -1244,20 +1253,12 @@ basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; none) basic_machine=none-none os=-none @@ -1286,10 +1287,6 @@ vax) basic_machine=vax-dec ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; pdp11) basic_machine=pdp11-dec ;; @@ -1299,9 +1296,6 @@ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; cydra) basic_machine=cydra-cydrome ;; @@ -1321,7 +1315,7 @@ # Make sure to match an already-canonicalized machine name. ;; *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; esac @@ -1329,10 +1323,10 @@ # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` ;; *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` ;; *) ;; @@ -1343,8 +1337,8 @@ if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases that might get confused + # with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux @@ -1355,45 +1349,48 @@ -solaris) os=-solaris2 ;; - -svr4*) - os=-sysv4 - ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; - # First accept the basic system types. + # es1800 is here to avoid being matched by es* (a different OS) + -es1800*) + os=-ose + ;; + # Now accept the basic system types. # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. + # Each alternative MUST end in a * to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ + | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -morphos* | -superux* | -rtmk* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ + | -midnightbsd*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1410,12 +1407,12 @@ -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + -sim | -xray | -os68k* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) - os=`echo $os | sed -e 's|mac|macos|'` + os=`echo "$os" | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc @@ -1424,10 +1421,10 @@ os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition @@ -1438,12 +1435,6 @@ -wince*) os=-wince ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; -utek*) os=-bsd ;; @@ -1468,7 +1459,7 @@ -nova*) os=-rtmk-nova ;; - -ns2 ) + -ns2) os=-nextstep2 ;; -nsk*) @@ -1490,7 +1481,7 @@ -oss*) os=-sysv3 ;; - -svr4) + -svr4*) os=-sysv4 ;; -svr3) @@ -1505,32 +1496,38 @@ -ose*) os=-ose ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; - -aros*) - os=-aros - ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; + -pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=-eabi + ;; + *) + os=-elf + ;; + esac + ;; -nacl*) ;; + -ios) + ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; esac @@ -1620,12 +1617,12 @@ sparc-* | *-sun) os=-sunos4.1.1 ;; + pru-*) + os=-elf + ;; *-be) os=-beos ;; - *-haiku) - os=-haiku - ;; *-ibm) os=-aix ;; @@ -1665,7 +1662,7 @@ m88k-omron*) os=-luna ;; - *-next ) + *-next) os=-nextstep ;; *-sequent) @@ -1680,9 +1677,6 @@ i370-*) os=-mvs ;; - *-next) - os=-nextstep3 - ;; *-gould) os=-sysv ;; @@ -1792,15 +1786,15 @@ vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$basic_machine$os" exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru libmbim-1.14.2/configure libmbim-1.18.0/configure --- libmbim-1.14.2/configure 2017-08-08 13:43:24.000000000 +0200 +++ libmbim-1.18.0/configure 2019-01-08 13:52:18.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libmbim 1.14.2. +# Generated by GNU Autoconf 2.69 for libmbim 1.18.0. # # Report bugs to . # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='libmbim' PACKAGE_TARNAME='libmbim' -PACKAGE_VERSION='1.14.2' -PACKAGE_STRING='libmbim 1.14.2' +PACKAGE_VERSION='1.18.0' +PACKAGE_STRING='libmbim 1.18.0' PACKAGE_BUGREPORT='libmbim-devel@lists.freedesktop.org' PACKAGE_URL='' @@ -665,12 +665,23 @@ GTKDOC_CHECK_PATH GTKDOC_CHECK GLIB_MKENUMS +pkgpyexecdir +pyexecdir +pkgpythondir +pythondir +PYTHON_PLATFORM +PYTHON_EXEC_PREFIX +PYTHON_PREFIX +PYTHON_VERSION +PYTHON MBIMPROXY_LIBS MBIMPROXY_CFLAGS MBIMCLI_LIBS MBIMCLI_CFLAGS LIBMBIM_GLIB_LIBS LIBMBIM_GLIB_CFLAGS +MBIM_COMMON_LIBS +MBIM_COMMON_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG @@ -719,7 +730,6 @@ AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE -am__quote am__include DEPDIR OBJEXT @@ -796,7 +806,8 @@ PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR -SHELL' +SHELL +am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking @@ -833,12 +844,15 @@ PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR +MBIM_COMMON_CFLAGS +MBIM_COMMON_LIBS LIBMBIM_GLIB_CFLAGS LIBMBIM_GLIB_LIBS MBIMCLI_CFLAGS MBIMCLI_LIBS MBIMPROXY_CFLAGS MBIMPROXY_LIBS +PYTHON GTKDOC_DEPS_CFLAGS GTKDOC_DEPS_LIBS GUDEV_CFLAGS @@ -1383,7 +1397,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libmbim 1.14.2 to adapt to many kinds of systems. +\`configure' configures libmbim 1.18.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1453,7 +1467,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libmbim 1.14.2:";; + short | recursive ) echo "Configuration of libmbim 1.18.0:";; esac cat <<\_ACEOF @@ -1514,6 +1528,10 @@ directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path + MBIM_COMMON_CFLAGS + C compiler flags for MBIM_COMMON, overriding pkg-config + MBIM_COMMON_LIBS + linker flags for MBIM_COMMON, overriding pkg-config LIBMBIM_GLIB_CFLAGS C compiler flags for LIBMBIM_GLIB, overriding pkg-config LIBMBIM_GLIB_LIBS @@ -1526,6 +1544,7 @@ C compiler flags for MBIMPROXY, overriding pkg-config MBIMPROXY_LIBS linker flags for MBIMPROXY, overriding pkg-config + PYTHON the Python interpreter GTKDOC_DEPS_CFLAGS C compiler flags for GTKDOC_DEPS, overriding pkg-config GTKDOC_DEPS_LIBS @@ -1600,7 +1619,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libmbim configure 1.14.2 +libmbim configure 1.18.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1878,7 +1897,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libmbim $as_me 1.14.2, which was +It was created by libmbim $as_me 1.18.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2231,7 +2250,7 @@ -am__api_version='1.15' +am__api_version='1.16' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -2746,7 +2765,7 @@ # Define the identity of the package. PACKAGE='libmbim' - VERSION='1.14.2' + VERSION='1.18.0' # Some tools Automake needs. @@ -2767,8 +2786,8 @@ # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The @@ -2935,7 +2954,7 @@ Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -3861,45 +3880,45 @@ ac_config_commands="$ac_config_commands depfiles" - -am_make=${MAKE-make} -cat > confinc << 'END' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : @@ -4061,8 +4080,8 @@ -macro_version='2.4.6' -macro_revision='2.4.6' +macro_version='2.4.6.42-b88ce' +macro_revision='2.4.6.42' @@ -5725,13 +5744,29 @@ fi : ${AR=ar} -: ${AR_FLAGS=cru} +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS + + + + + + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. + @@ -6180,7 +6215,7 @@ if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, + # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ @@ -7449,8 +7484,8 @@ _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 + $AR $AR_FLAGS libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF @@ -8113,8 +8148,8 @@ ofile=libtool can_build_shared=yes -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld @@ -9041,15 +9076,15 @@ case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) @@ -9213,6 +9248,7 @@ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; interix[3-9]*) @@ -9430,7 +9466,7 @@ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -9697,12 +9733,12 @@ cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in - cl*) - # Native MSVC + cl* | icl*) + # Native MSVC or ICC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes @@ -9743,7 +9779,7 @@ fi' ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. @@ -10067,6 +10103,7 @@ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; osf3*) @@ -10774,8 +10811,8 @@ dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -10831,7 +10868,7 @@ ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -12010,30 +12047,41 @@ old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if test -z "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - ;; - esac + ;; + esac + fi fi @@ -12145,7 +12193,7 @@ -Wundef -Wimplicit-function-declaration \ -Wpointer-arith -Winit-self -Wshadow \ -Wmissing-include-dirs -Waggregate-return \ - -Wformat-security; do + -Wformat-security -Wtype-limits; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $option" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands $option" >&5 @@ -12186,20 +12234,22 @@ MBIM_MAJOR_VERSION=1 -MBIM_MINOR_VERSION=14 -MBIM_MICRO_VERSION=2 -MBIM_VERSION=1.14.2 +MBIM_MINOR_VERSION=18 +MBIM_MICRO_VERSION=0 +MBIM_VERSION=1.18.0 -MBIM_GLIB_LT_CURRENT=6 +MBIM_GLIB_LT_CURRENT=8 MBIM_GLIB_LT_REVISION=0 -MBIM_GLIB_LT_AGE=2 +MBIM_GLIB_LT_AGE=4 + +GLIB_MIN_VERSION=2.36 @@ -12323,31 +12373,119 @@ fi pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-2.0 >= 2.32 - gobject-2.0 - gio-2.0 - gio-unix-2.0" >&5 -$as_echo_n "checking for glib-2.0 >= 2.32 - gobject-2.0 - gio-2.0 - gio-unix-2.0... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MBIM_COMMON" >&5 +$as_echo_n "checking for MBIM_COMMON... " >&6; } + +if test -n "$MBIM_COMMON_CFLAGS"; then + pkg_cv_MBIM_COMMON_CFLAGS="$MBIM_COMMON_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_MIN_VERSION") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MBIM_COMMON_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_MIN_VERSION" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$MBIM_COMMON_LIBS"; then + pkg_cv_MBIM_COMMON_LIBS="$MBIM_COMMON_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_MIN_VERSION") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MBIM_COMMON_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_MIN_VERSION" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + MBIM_COMMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= $GLIB_MIN_VERSION" 2>&1` + else + MBIM_COMMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= $GLIB_MIN_VERSION" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$MBIM_COMMON_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_MIN_VERSION) were not met: + +$MBIM_COMMON_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables MBIM_COMMON_CFLAGS +and MBIM_COMMON_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables MBIM_COMMON_CFLAGS +and MBIM_COMMON_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + MBIM_COMMON_CFLAGS=$pkg_cv_MBIM_COMMON_CFLAGS + MBIM_COMMON_LIBS=$pkg_cv_MBIM_COMMON_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBMBIM_GLIB" >&5 +$as_echo_n "checking for LIBMBIM_GLIB... " >&6; } if test -n "$LIBMBIM_GLIB_CFLAGS"; then pkg_cv_LIBMBIM_GLIB_CFLAGS="$LIBMBIM_GLIB_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.32 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_MIN_VERSION gobject-2.0 gio-2.0 gio-unix-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.32 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0 gio-unix-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBMBIM_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.32 + pkg_cv_LIBMBIM_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0 gio-unix-2.0" 2>/dev/null` @@ -12362,18 +12500,18 @@ pkg_cv_LIBMBIM_GLIB_LIBS="$LIBMBIM_GLIB_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.32 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_MIN_VERSION gobject-2.0 gio-2.0 gio-unix-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.32 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0 gio-unix-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBMBIM_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.32 + pkg_cv_LIBMBIM_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0 gio-unix-2.0" 2>/dev/null` @@ -12388,7 +12526,7 @@ if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -12397,12 +12535,12 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBMBIM_GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.32 + LIBMBIM_GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0 gio-unix-2.0" 2>&1` else - LIBMBIM_GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.32 + LIBMBIM_GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0 gio-unix-2.0" 2>&1` @@ -12410,7 +12548,7 @@ # Put the nasty error message in config.log where it belongs echo "$LIBMBIM_GLIB_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (glib-2.0 >= 2.32 + as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0 gio-unix-2.0) were not met: @@ -12424,7 +12562,7 @@ and LIBMBIM_GLIB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -12450,27 +12588,23 @@ pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-2.0 >= 2.32 - gobject-2.0 - gio-2.0" >&5 -$as_echo_n "checking for glib-2.0 >= 2.32 - gobject-2.0 - gio-2.0... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MBIMCLI" >&5 +$as_echo_n "checking for MBIMCLI... " >&6; } if test -n "$MBIMCLI_CFLAGS"; then pkg_cv_MBIMCLI_CFLAGS="$MBIMCLI_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.32 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_MIN_VERSION gobject-2.0 gio-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.32 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_MBIMCLI_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.32 + pkg_cv_MBIMCLI_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes @@ -12484,16 +12618,16 @@ pkg_cv_MBIMCLI_LIBS="$MBIMCLI_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.32 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_MIN_VERSION gobject-2.0 gio-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.32 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_MBIMCLI_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.32 + pkg_cv_MBIMCLI_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes @@ -12507,7 +12641,7 @@ if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -12516,18 +12650,18 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - MBIMCLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.32 + MBIMCLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0" 2>&1` else - MBIMCLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.32 + MBIMCLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MBIMCLI_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (glib-2.0 >= 2.32 + as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0) were not met: @@ -12540,7 +12674,7 @@ and MBIMCLI_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -12566,27 +12700,23 @@ pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-2.0 >= 2.32 - gobject-2.0 - gio-2.0" >&5 -$as_echo_n "checking for glib-2.0 >= 2.32 - gobject-2.0 - gio-2.0... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MBIMPROXY" >&5 +$as_echo_n "checking for MBIMPROXY... " >&6; } if test -n "$MBIMPROXY_CFLAGS"; then pkg_cv_MBIMPROXY_CFLAGS="$MBIMPROXY_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.32 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_MIN_VERSION gobject-2.0 gio-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.32 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_MBIMPROXY_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.32 + pkg_cv_MBIMPROXY_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes @@ -12600,16 +12730,16 @@ pkg_cv_MBIMPROXY_LIBS="$MBIMPROXY_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.32 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_MIN_VERSION gobject-2.0 gio-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.32 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_MBIMPROXY_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.32 + pkg_cv_MBIMPROXY_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes @@ -12623,7 +12753,7 @@ if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -12632,18 +12762,18 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - MBIMPROXY_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.32 + MBIMPROXY_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0" 2>&1` else - MBIMPROXY_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.32 + MBIMPROXY_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MBIMPROXY_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (glib-2.0 >= 2.32 + as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0) were not met: @@ -12656,7 +12786,7 @@ and MBIMPROXY_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -12680,6 +12810,214 @@ + + + + + + + # Find any Python interpreter. + if test -z "$PYTHON"; then + for ac_prog in python python2 python3 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PYTHON+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PYTHON in + [\\/]* | ?:[\\/]*) + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PYTHON=$ac_cv_path_PYTHON +if test -n "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 +$as_echo "$PYTHON" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$PYTHON" && break +done +test -n "$PYTHON" || PYTHON=":" + + fi + am_display_PYTHON=python + + + if test "$PYTHON" = :; then + PYTHON=python + else + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5 +$as_echo_n "checking for $am_display_PYTHON version... " >&6; } +if ${am_cv_python_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"` +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 +$as_echo "$am_cv_python_version" >&6; } + PYTHON_VERSION=$am_cv_python_version + + + + PYTHON_PREFIX='${prefix}' + + PYTHON_EXEC_PREFIX='${exec_prefix}' + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5 +$as_echo_n "checking for $am_display_PYTHON platform... " >&6; } +if ${am_cv_python_platform+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"` +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 +$as_echo "$am_cv_python_platform" >&6; } + PYTHON_PLATFORM=$am_cv_python_platform + + + # Just factor out some code duplication. + am_python_setup_sysconfig="\ +import sys +# Prefer sysconfig over distutils.sysconfig, for better compatibility +# with python 3.x. See automake bug#10227. +try: + import sysconfig +except ImportError: + can_use_sysconfig = 0 +else: + can_use_sysconfig = 1 +# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: +# +try: + from platform import python_implementation + if python_implementation() == 'CPython' and sys.version[:3] == '2.7': + can_use_sysconfig = 0 +except ImportError: + pass" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5 +$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } +if ${am_cv_python_pythondir+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$prefix" = xNONE + then + am_py_prefix=$ac_default_prefix + else + am_py_prefix=$prefix + fi + am_cv_python_pythondir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pythondir in + $am_py_prefix*) + am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` + am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` + ;; + *) + case $am_py_prefix in + /usr|/System*) ;; + *) + am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5 +$as_echo "$am_cv_python_pythondir" >&6; } + pythondir=$am_cv_python_pythondir + + + + pkgpythondir=\${pythondir}/$PACKAGE + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5 +$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } +if ${am_cv_python_pyexecdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$exec_prefix" = xNONE + then + am_py_exec_prefix=$am_py_prefix + else + am_py_exec_prefix=$exec_prefix + fi + am_cv_python_pyexecdir=`$PYTHON -c " +$am_python_setup_sysconfig +if can_use_sysconfig: + sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) +else: + from distutils import sysconfig + sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') +sys.stdout.write(sitedir)"` + case $am_cv_python_pyexecdir in + $am_py_exec_prefix*) + am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` + am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` + ;; + *) + case $am_py_exec_prefix in + /usr|/System*) ;; + *) + am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5 +$as_echo "$am_cv_python_pyexecdir" >&6; } + pyexecdir=$am_cv_python_pyexecdir + + + + pkgpyexecdir=\${pyexecdir}/$PACKAGE + + + + fi + + + GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` @@ -12909,8 +13247,8 @@ if test "x$PACKAGE_NAME" != "xglib"; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" >&5 -$as_echo_n "checking for glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5 +$as_echo_n "checking for GTKDOC_DEPS... " >&6; } if test -n "$GTKDOC_DEPS_CFLAGS"; then pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS" @@ -12950,7 +13288,7 @@ if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -12968,7 +13306,7 @@ : elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } : else @@ -13091,8 +13429,8 @@ pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gudev-1.0 >= $GUDEV_VERSION" >&5 -$as_echo_n "checking for gudev-1.0 >= $GUDEV_VERSION... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GUDEV" >&5 +$as_echo_n "checking for GUDEV... " >&6; } if test -n "$GUDEV_CFLAGS"; then pkg_cv_GUDEV_CFLAGS="$GUDEV_CFLAGS" @@ -13132,7 +13470,7 @@ if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -13150,7 +13488,7 @@ have_gudev=no elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_gudev=no else @@ -13191,9 +13529,6 @@ fi ;; *) - -$as_echo "#define WITH_UDEV 0" >>confdefs.h - with_udev=no ;; esac @@ -13262,7 +13597,7 @@ fi -ac_config_files="$ac_config_files Makefile build-aux/Makefile build-aux/templates/Makefile build-aux/mbim-codegen/Makefile data/Makefile data/pkg-config/Makefile data/pkg-config/mbim-glib.pc src/Makefile src/libmbim-glib/Makefile src/libmbim-glib/mbim-version.h src/libmbim-glib/generated/Makefile src/libmbim-glib/test/Makefile src/mbimcli/Makefile src/mbim-proxy/Makefile utils/Makefile docs/Makefile docs/reference/Makefile docs/reference/libmbim-glib/Makefile docs/reference/libmbim-glib/version.xml docs/man/Makefile" +ac_config_files="$ac_config_files Makefile build-aux/Makefile build-aux/templates/Makefile build-aux/mbim-codegen/Makefile data/Makefile data/pkg-config/Makefile data/pkg-config/mbim-glib.pc src/Makefile src/common/Makefile src/common/test/Makefile src/libmbim-glib/Makefile src/libmbim-glib/mbim-version.h src/libmbim-glib/generated/Makefile src/libmbim-glib/test/Makefile src/mbimcli/Makefile src/mbim-proxy/Makefile utils/Makefile docs/Makefile docs/reference/Makefile docs/reference/libmbim-glib/Makefile docs/reference/libmbim-glib/version.xml docs/man/Makefile" if test "x$MBIM_USERNAME_ENABLED" = "xyes"; then @@ -13836,7 +14171,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libmbim $as_me 1.14.2, which was +This file was extended by libmbim $as_me 1.18.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13902,7 +14237,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libmbim config.status 1.14.2 +libmbim config.status 1.18.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -14021,7 +14356,7 @@ # # INIT-COMMANDS # -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # The HP-UX ksh and POSIX shell print the target directory to stdout @@ -14073,6 +14408,7 @@ DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' @@ -14201,7 +14537,6 @@ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ -AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ @@ -14325,6 +14660,8 @@ "data/pkg-config/Makefile") CONFIG_FILES="$CONFIG_FILES data/pkg-config/Makefile" ;; "data/pkg-config/mbim-glib.pc") CONFIG_FILES="$CONFIG_FILES data/pkg-config/mbim-glib.pc" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/common/Makefile") CONFIG_FILES="$CONFIG_FILES src/common/Makefile" ;; + "src/common/test/Makefile") CONFIG_FILES="$CONFIG_FILES src/common/test/Makefile" ;; "src/libmbim-glib/Makefile") CONFIG_FILES="$CONFIG_FILES src/libmbim-glib/Makefile" ;; "src/libmbim-glib/mbim-version.h") CONFIG_FILES="$CONFIG_FILES src/libmbim-glib/mbim-version.h" ;; "src/libmbim-glib/generated/Makefile") CONFIG_FILES="$CONFIG_FILES src/libmbim-glib/generated/Makefile" ;; @@ -14937,29 +15274,35 @@ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -14977,53 +15320,48 @@ q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } - /^X\(\/\/\)$/{ + /^X\/\(\/\/\)$/{ s//\1/ q } - /^X\(\/\).*/{ + /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? done + if test $am_rc -ne 0; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk } ;; "libtool":C) @@ -15185,8 +15523,11 @@ # The archiver. AR=$lt_AR +# Flags to create an archive (by configure). +lt_ar_flags=$lt_ar_flags + # Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS +AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec diff -Nru libmbim-1.14.2/configure.ac libmbim-1.18.0/configure.ac --- libmbim-1.14.2/configure.ac 2017-08-08 13:41:23.000000000 +0200 +++ libmbim-1.18.0/configure.ac 2019-01-08 13:51:41.000000000 +0100 @@ -3,8 +3,8 @@ dnl The libmbim version number m4_define([mbim_major_version], [1]) -m4_define([mbim_minor_version], [14]) -m4_define([mbim_micro_version], [2]) +m4_define([mbim_minor_version], [18]) +m4_define([mbim_micro_version], [0]) m4_define([mbim_version], [mbim_major_version.mbim_minor_version.mbim_micro_version]) @@ -16,9 +16,9 @@ dnl with old code), increment a. dnl If the interface has changed in an incompatible way (that is, dnl functions have changed or been removed), then zero a. -m4_define([mbim_glib_lt_current], [6]) +m4_define([mbim_glib_lt_current], [8]) m4_define([mbim_glib_lt_revision], [0]) -m4_define([mbim_glib_lt_age], [2]) +m4_define([mbim_glib_lt_age], [4]) AC_INIT([libmbim], [mbim_version], [libmbim-devel@lists.freedesktop.org]) @@ -64,9 +64,18 @@ AC_SUBST(MBIM_GLIB_LT_REVISION) AC_SUBST(MBIM_GLIB_LT_AGE) +dnl Required dependency versions +GLIB_MIN_VERSION=2.36 + +dnl General dependencies for common +PKG_CHECK_MODULES(MBIM_COMMON, + glib-2.0 >= $GLIB_MIN_VERSION) +AC_SUBST(MBIM_COMMON_CFLAGS) +AC_SUBST(MBIM_COMMON_LIBS) + dnl General dependencies for libmbim-glib PKG_CHECK_MODULES(LIBMBIM_GLIB, - glib-2.0 >= 2.32 + glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0 gio-unix-2.0) @@ -75,7 +84,7 @@ dnl General dependencies for mbimcli PKG_CHECK_MODULES(MBIMCLI, - glib-2.0 >= 2.32 + glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0) AC_SUBST(MBIMCLI_CFLAGS) @@ -83,12 +92,14 @@ dnl General dependencies for mbim-proxy PKG_CHECK_MODULES(MBIMPROXY, - glib-2.0 >= 2.32 + glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0 gio-2.0) AC_SUBST(MBIMPROXY_CFLAGS) AC_SUBST(MBIMPROXY_LIBS) +AM_PATH_PYTHON([], [], [PYTHON=python]) + GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` AC_SUBST(GLIB_MKENUMS) @@ -138,7 +149,6 @@ fi ;; *) - AC_DEFINE(WITH_UDEV, 0, [Define if you want udev support]) with_udev=no ;; esac @@ -164,6 +174,8 @@ data/pkg-config/Makefile data/pkg-config/mbim-glib.pc src/Makefile + src/common/Makefile + src/common/test/Makefile src/libmbim-glib/Makefile src/libmbim-glib/mbim-version.h src/libmbim-glib/generated/Makefile diff -Nru libmbim-1.14.2/data/Makefile.am libmbim-1.18.0/data/Makefile.am --- libmbim-1.14.2/data/Makefile.am 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/data/Makefile.am 2019-01-08 13:16:16.000000000 +0100 @@ -11,4 +11,7 @@ mbim-service-ms-firmware-id.json \ mbim-service-ms-host-shutdown.json \ mbim-service-proxy-control.json \ - mbim-service-qmi.json + mbim-service-qmi.json \ + mbim-service-atds.json \ + mbim-service-intel-firmware-update.json \ + mbim-service-ms-basic-connect-extensions.json diff -Nru libmbim-1.14.2/data/Makefile.in libmbim-1.18.0/data/Makefile.in --- libmbim-1.14.2/data/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/data/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -135,7 +135,7 @@ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -243,6 +243,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -269,6 +271,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -317,9 +324,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -340,7 +351,10 @@ mbim-service-ms-firmware-id.json \ mbim-service-ms-host-shutdown.json \ mbim-service-proxy-control.json \ - mbim-service-qmi.json + mbim-service-qmi.json \ + mbim-service-atds.json \ + mbim-service-intel-firmware-update.json \ + mbim-service-ms-basic-connect-extensions.json all: all-recursive @@ -362,8 +376,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -480,7 +494,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libmbim-1.14.2/data/mbim-service-atds.json libmbim-1.18.0/data/mbim-service-atds.json --- libmbim-1.14.2/data/mbim-service-atds.json 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/data/mbim-service-atds.json 2019-01-08 13:16:16.000000000 +0100 @@ -0,0 +1,147 @@ +[ + // ********************************************************************************* + { "type" : "Service", + "name" : "ATDS" }, + + // ********************************************************************************* + { "name" : "Signal", + "service" : "ATDS", + "type" : "Command", + "query" : [], + "response" : [ + // 0-31: dBm = -113 + (2*rssi) + // 99: unknown/undetectable + { "name" : "Rssi", + "format" : "guint32" }, + + // 0: BER < 0.2% + // 1: 0.2% < BER < 0.4% + // 2: 0.4% < BER < 0.8% + // 3: 0.8% < BER < 1.6% + // 4: 1.6% < BER < 3.2% + // 5: 3.2% < BER < 6.4% + // 6: 6.4% < BER < 12.8% + // 7: 12.8% < BER + // 99: unknown/undetectable + { "name" : "ErrorRate", + "format" : "guint32" }, + + // 0: -120 or less dBm + // <96: dBm = -120+rscp + // 96: -24 or greater dBm + // 255: unknown/undetectable + { "name" : "Rscp", + "format" : "guint32" }, + + // 0: -24 or less dBm + // <49: dBm = -24 + ((float)ecno/2) + // 49: 0.5 or greater dBm + // 255: unknown/undetectable + { "name" : "Ecno", + "format" : "guint32" }, + + // 0: -19.5 or less dBm + // <34: dBm = -19.5 + ((float)rsrq/2) + // 34: -2.5 or greater dBm + // 255: unknown/undetectable + { "name" : "Rsrq", + "format" : "guint32" }, + + // 0: -140 or less dBm + // <97: dBm = -140 + rsrp + // 97: -43 or greater dBm + // 255: unknown/undetectable + { "name" : "Rsrp", + "format" : "guint32" }, + + // 0: -5 or less dB + // <35: dB = -5 + rssnr + // 35: 30 or greater dB + // 255: unknown/undetectable + { "name" : "Rssnr", + "format" : "guint32" } ] }, + + // ********************************************************************************* + { "name" : "Location", + "service" : "ATDS", + "type" : "Command", + "query" : [], + "response" : [ { "name" : "Lac", + "format" : "guint32" }, + { "name" : "Tac", + "format" : "guint32" }, + { "name" : "CellId", + "format" : "guint32" } ] }, + + // ********************************************************************************* + { "name" : "MbimAtdsProvider", + "type" : "Struct", + "contents" : [ { "name" : "ProviderId", + "format" : "string" }, + { "name" : "ProviderState", + "format" : "guint32", + "public-format" : "MbimProviderState" }, + { "name" : "ProviderName", + "format" : "string" }, + { "name" : "PlmnMode", + "format" : "guint32", + "public-format" : "MbimAtdsProviderPlmnMode" }, + { "name" : "Rssi", + "format" : "guint32" }, + { "name" : "ErrorRate", + "format" : "guint32" } ] }, + + { "name" : "Operators", + "service" : "ATDS", + "type" : "Command", + "query" : [], + "response" : [ { "name" : "ProvidersCount", + "format" : "guint32" }, + { "name" : "Providers", + "format" : "ref-struct-array" , + "struct-type" : "MbimAtdsProvider", + "array-size-field" : "ProvidersCount" } ] }, + + // ********************************************************************************* + { "name" : "RAT", + "service" : "ATDS", + "type" : "Command", + "set" : [ { "name" : "Mode", + "format" : "guint32", + "public-format" : "MbimAtdsRatMode" } ], + "query" : [], + "response" : [ { "name" : "Mode", + "format" : "guint32", + "public-format" : "MbimAtdsRatMode" } ] }, + + // ********************************************************************************* + { "name" : "Register State", + "service" : "ATDS", + "type" : "Command", + "query" : [], + "response" : [ { "name" : "NwError", + "format" : "guint32", + "public-format" : "MbimNwError" }, + { "name" : "RegisterState", + "format" : "guint32", + "public-format" : "MbimRegisterState" }, + { "name" : "RegisterMode", + "format" : "guint32", + "public-format" : "MbimRegisterMode" }, + { "name" : "AvailableDataClasses", + "format" : "guint32", + "public-format" : "MbimDataClass" }, + { "name" : "CurrentCellularClass", + "format" : "guint32", + "public-format" : "MbimCellularClass" }, + { "name" : "ProviderId", + "format" : "string" }, + { "name" : "ProviderName", + "format" : "string" }, + { "name" : "RoamingText", + "format" : "string" }, + { "name" : "RegistrationFlag", + "format" : "guint32", + "public-format" : "MbimRegistrationFlag" } ] } + +] diff -Nru libmbim-1.14.2/data/mbim-service-intel-firmware-update.json libmbim-1.18.0/data/mbim-service-intel-firmware-update.json --- libmbim-1.14.2/data/mbim-service-intel-firmware-update.json 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/data/mbim-service-intel-firmware-update.json 2018-03-20 21:33:15.000000000 +0100 @@ -0,0 +1,11 @@ +[ + // ********************************************************************************* + { "type" : "Service", + "name" : "Intel Firmware Update" }, + + // ********************************************************************************* + { "name" : "Modem Reboot", + "service" : "Intel Firmware Update", + "type" : "Command", + "set" : [] } +] diff -Nru libmbim-1.14.2/data/mbim-service-ms-basic-connect-extensions.json libmbim-1.18.0/data/mbim-service-ms-basic-connect-extensions.json --- libmbim-1.14.2/data/mbim-service-ms-basic-connect-extensions.json 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/data/mbim-service-ms-basic-connect-extensions.json 2019-01-08 13:16:16.000000000 +0100 @@ -0,0 +1,118 @@ +[ + // ********************************************************************************* + { "type" : "Service", + "name" : "Ms Basic Connect Extensions" }, + + // ********************************************************************************* + { "name" : "MbimPcoValue", + "type" : "Struct", + "contents" : [ { "name" : "SessionId", + "format" : "guint32" }, + { "name" : "PcoDataSize", + "format" : "guint32" }, + { "name" : "PcoDataType", + "format" : "guint32", + "public-format" : "MbimPcoType" }, + { "name" : "PcoDataBuffer", + "format" : "ref-byte-array-no-offset", + "array-size-field" : "PcoDataSize" } ] }, + + { "name" : "PCO", + "service" : "Ms Basic Connect Extensions", + "type" : "Command", + "query" : [ { "name" : "PcoValue", + "format" : "struct", + "struct-type" : "MbimPcoValue" } ], + "response" : [ { "name" : "PcoValue", + "format" : "struct", + "struct-type" : "MbimPcoValue" } ], + "notification" : [ { "name" : "PcoValue", + "format" : "struct", + "struct-type" : "MbimPcoValue" } ] }, + + // ********************************************************************************* + + { "name" : "MbimLteAttachConfiguration", + "type" : "Struct", + "contents" : [ { "name" : "IpType", + "format" : "guint32", + "public-format" : "MbimContextIpType" }, + { "name" : "Roaming", + "format" : "guint32", + "public-format" : "MbimLteAttachContextRoamingControl" }, + { "name" : "Source", + "format" : "guint32", + "public-format" : "MbimContextSource" }, + { "name" : "AccessString", + "format" : "string" }, + { "name" : "UserName", + "format" : "string" }, + { "name" : "Password", + "format" : "string" }, + { "name" : "Compression", + "format" : "guint32", + "public-format" : "MbimCompression" }, + { "name" : "AuthProtocol", + "format" : "guint32", + "public-format" : "MbimAuthProtocol" } ] }, + + { "name" : "Lte Attach Configuration", + "service" : "Ms Basic Connect Extensions", + "type" : "Command", + "set" : [ { "name" : "Operation", + "format" : "guint32", + "public-format" : "MbimLteAttachContextOperation" }, + { "name" : "ConfigurationCount", + "format" : "guint32" }, + { "name" : "Configurations", + "format" : "ref-struct-array" , + "struct-type" : "MbimLteAttachConfiguration", + "array-size-field" : "ConfigurationCount" } ], + "query" : [], + "response" : [ { "name" : "ConfigurationCount", + "format" : "guint32" }, + { "name" : "Configurations", + "format" : "ref-struct-array" , + "struct-type" : "MbimLteAttachConfiguration", + "array-size-field" : "ConfigurationCount" } ], + "notification" : [ { "name" : "ConfigurationCount", + "format" : "guint32" }, + { "name" : "Configurations", + "format" : "ref-struct-array" , + "struct-type" : "MbimLteAttachConfiguration", + "array-size-field" : "ConfigurationCount" } ] }, + + // ********************************************************************************* + + { "name" : "MbimLteAttachStatus", + "type" : "Struct", + "contents" : [ { "name" : "LteAttachState", + "format" : "guint32", + "public-format" : "MbimLteAttachState" }, + { "name" : "IpType", + "format" : "guint32", + "public-format" : "MbimContextIpType" }, + { "name" : "AccessString", + "format" : "string" }, + { "name" : "UserName", + "format" : "string" }, + { "name" : "Password", + "format" : "string" }, + { "name" : "Compression", + "format" : "guint32", + "public-format" : "MbimCompression" }, + { "name" : "AuthProtocol", + "format" : "guint32", + "public-format" : "MbimAuthProtocol" } ] }, + + { "name" : "Lte Attach Status", + "service" : "Ms Basic Connect Extensions", + "type" : "Command", + "query" : [], + "response" : [ { "name" : "LteAttachStatus", + "format" : "struct", + "struct-type" : "MbimLteAttachStatus" } ], + "notification" : [ { "name" : "LteAttachStatus", + "format" : "struct", + "struct-type" : "MbimLteAttachStatus" } ] } +] diff -Nru libmbim-1.14.2/data/mbim-service-qmi.json libmbim-1.18.0/data/mbim-service-qmi.json --- libmbim-1.14.2/data/mbim-service-qmi.json 2017-08-08 12:17:29.000000000 +0200 +++ libmbim-1.18.0/data/mbim-service-qmi.json 2019-01-08 13:16:16.000000000 +0100 @@ -5,13 +5,16 @@ "name" : "QMI" }, // ********************************************************************************* - { "name" : "msg", - "service" : "QMI", - "type" : "Command", - "set" : [ { "name" : "QmiMsg", - "format" : "unsized-byte-array", - "pad-array" : "FALSE" } ], - "response" : [ { "name" : "QMUX", - "format" : "unsized-byte-array", - "pad-array" : "FALSE" } ] } + { "name" : "msg", + "service" : "QMI", + "type" : "Command", + "set" : [ { "name" : "QmiMsg", + "format" : "unsized-byte-array", + "pad-array" : "FALSE" } ], + "response" : [ { "name" : "QMUX", + "format" : "unsized-byte-array", + "pad-array" : "FALSE" } ], + "notification" : [ { "name" : "QMUX", + "format" : "unsized-byte-array", + "pad-array" : "FALSE" } ]} ] diff -Nru libmbim-1.14.2/data/pkg-config/Makefile.in libmbim-1.18.0/data/pkg-config/Makefile.in --- libmbim-1.14.2/data/pkg-config/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/data/pkg-config/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -213,6 +213,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -239,6 +241,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -287,9 +294,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -322,8 +333,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -370,7 +381,10 @@ cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libmbim-1.14.2/debian/changelog libmbim-1.18.0/debian/changelog --- libmbim-1.14.2/debian/changelog 2018-04-17 13:16:07.000000000 +0200 +++ libmbim-1.18.0/debian/changelog 2019-03-20 20:37:29.000000000 +0100 @@ -1,3 +1,25 @@ +libmbim (1.18.0-1~ubuntu18.04.1) bionic; urgency=medium + + * New upstream release + - Needed by ModemManager 1.10 (LP: #1819615). + * debian/libmbim-glib4.symbols: Updated symbols for new release. + * debian/patches/ref_cast.patch: Removed, not applicable any more on + 1.18.0. + + -- Till Kamppeter Thu, 20 Mar 2019 20:37:29 +0100 + +libmbim (1.16.0-1) unstable; urgency=medium + + * New upstream release 1.16.0 (Closes: #887974) + * Adopting the package. (Closes: #888680) + * debian/control: bump libglib-dev Depends to (>= 2.36) as required by the + new release. + * debian/libmbim-glib4.symbols: update symbols for new release. + * debian/rules: add DPKG_GENSYMBOLS_CHECK_LEVEL=4; it's more verbose with + added or changed symbols then. + + -- Mathieu Trudel-Lapierre Thu, 01 Mar 2018 09:24:23 -0500 + libmbim (1.14.2-2.1ubuntu1) bionic; urgency=medium * Fix a -Wincompatible-pointer-types warning, which fails the build. diff -Nru libmbim-1.14.2/debian/control libmbim-1.18.0/debian/control --- libmbim-1.14.2/debian/control 2017-11-21 01:07:21.000000000 +0100 +++ libmbim-1.18.0/debian/control 2018-03-01 15:22:52.000000000 +0100 @@ -1,10 +1,10 @@ Source: libmbim Section: libs Priority: optional -Maintainer: Thomas Bechtold +Maintainer: Mathieu Trudel-Lapierre Build-Depends: debhelper (>= 10.3), pkg-config, - libglib2.0-dev (>= 2.32), + libglib2.0-dev (>= 2.36), libgudev-1.0-dev (>= 147), gtk-doc-tools, libglib2.0-doc diff -Nru libmbim-1.14.2/debian/libmbim-glib4.symbols libmbim-1.18.0/debian/libmbim-glib4.symbols --- libmbim-1.14.2/debian/libmbim-glib4.symbols 2017-11-21 01:07:21.000000000 +0100 +++ libmbim-1.18.0/debian/libmbim-glib4.symbols 2019-03-12 19:03:29.000000000 +0100 @@ -3,10 +3,17 @@ mbim_activation_command_get_type@Base 1.10.0 mbim_activation_state_get_string@Base 1.10.0 mbim_activation_state_get_type@Base 1.10.0 + mbim_atds_provider_array_free@Base 1.16.0 + mbim_atds_provider_plmn_mode_get_string@Base 1.16.0 + mbim_atds_provider_plmn_mode_get_type@Base 1.16.0 + mbim_atds_rat_mode_get_string@Base 1.16.0 + mbim_atds_rat_mode_get_type@Base 1.16.0 mbim_auth_protocol_get_string@Base 1.10.0 mbim_auth_protocol_get_type@Base 1.10.0 mbim_cellular_class_build_string_from_mask@Base 1.10.0 mbim_cellular_class_get_type@Base 1.10.0 + mbim_cid_atds_get_string@Base 1.16.0 + mbim_cid_atds_get_type@Base 1.16.0 mbim_cid_auth_get_string@Base 1.10.0 mbim_cid_auth_get_type@Base 1.10.0 mbim_cid_basic_connect_get_string@Base 1.10.0 @@ -17,6 +24,10 @@ mbim_cid_dss_get_string@Base 1.10.0 mbim_cid_dss_get_type@Base 1.10.0 mbim_cid_get_printable@Base 1.10.0 + mbim_cid_intel_firmware_update_get_string@Base 1.16.0 + mbim_cid_intel_firmware_update_get_type@Base 1.16.0 + mbim_cid_ms_basic_connect_extensions_get_string@Base 1.18.0-0ubuntu1 + mbim_cid_ms_basic_connect_extensions_get_type@Base 1.18.0-0ubuntu1 mbim_cid_ms_firmware_id_get_string@Base 1.10.0 mbim_cid_ms_firmware_id_get_type@Base 1.10.0 mbim_cid_ms_host_shutdown_get_string@Base 1.10.0 @@ -33,10 +44,13 @@ mbim_cid_stk_get_type@Base 1.10.0 mbim_cid_ussd_get_string@Base 1.10.0 mbim_cid_ussd_get_type@Base 1.10.0 + mbim_common_str_hex@Base 1.16.0 mbim_compression_get_string@Base 1.10.0 mbim_compression_get_type@Base 1.10.0 mbim_context_ip_type_get_string@Base 1.10.0 mbim_context_ip_type_get_type@Base 1.10.0 + mbim_context_source_get_string@Base 1.18.0-0ubuntu1 + mbim_context_source_get_type@Base 1.18.0-0ubuntu1 mbim_context_type_get_string@Base 1.10.0 mbim_context_type_get_type@Base 1.10.0 mbim_core_error_get_string@Base 1.10.0 @@ -76,6 +90,25 @@ mbim_ip_configuration_available_flag_get_type@Base 1.10.0 mbim_ipv4_element_array_free@Base 1.10.0 mbim_ipv6_element_array_free@Base 1.10.0 + mbim_lte_attach_configuration_array_free@Base 1.18.0-0ubuntu1 + mbim_lte_attach_context_operation_get_string@Base 1.18.0-0ubuntu1 + mbim_lte_attach_context_operation_get_type@Base 1.18.0-0ubuntu1 + mbim_lte_attach_context_roaming_control_get_string@Base 1.18.0-0ubuntu1 + mbim_lte_attach_context_roaming_control_get_type@Base 1.18.0-0ubuntu1 + mbim_lte_attach_state_get_string@Base 1.18.0-0ubuntu1 + mbim_lte_attach_state_get_type@Base 1.18.0-0ubuntu1 + mbim_lte_attach_status_free@Base 1.18.0-0ubuntu1 + mbim_message_atds_location_query_new@Base 1.16.0 + mbim_message_atds_location_response_parse@Base 1.16.0 + mbim_message_atds_operators_query_new@Base 1.16.0 + mbim_message_atds_operators_response_parse@Base 1.16.0 + mbim_message_atds_rat_query_new@Base 1.16.0 + mbim_message_atds_rat_response_parse@Base 1.16.0 + mbim_message_atds_rat_set_new@Base 1.16.0 + mbim_message_atds_register_state_query_new@Base 1.16.0 + mbim_message_atds_register_state_response_parse@Base 1.16.0 + mbim_message_atds_signal_query_new@Base 1.16.0 + mbim_message_atds_signal_response_parse@Base 1.16.0 mbim_message_auth_aka_query_new@Base 1.10.0 mbim_message_auth_aka_response_parse@Base 1.10.0 mbim_message_auth_akap_query_new@Base 1.10.0 @@ -137,12 +170,23 @@ mbim_message_indicate_status_get_raw_information_buffer@Base 1.10.0 mbim_message_indicate_status_get_service@Base 1.10.0 mbim_message_indicate_status_get_service_id@Base 1.10.0 + mbim_message_intel_firmware_update_modem_reboot_set_new@Base 1.16.0 mbim_message_ip_configuration_notification_parse@Base 1.10.0 mbim_message_ip_configuration_query_new@Base 1.10.0 mbim_message_ip_configuration_response_parse@Base 1.10.0 mbim_message_ip_packet_filters_query_new@Base 1.10.0 mbim_message_ip_packet_filters_response_parse@Base 1.10.0 mbim_message_ip_packet_filters_set_new@Base 1.10.0 + mbim_message_ms_basic_connect_extensions_lte_attach_configuration_notification_parse@Base 1.18.0-0ubuntu1 + mbim_message_ms_basic_connect_extensions_lte_attach_configuration_query_new@Base 1.18.0-0ubuntu1 + mbim_message_ms_basic_connect_extensions_lte_attach_configuration_response_parse@Base 1.18.0-0ubuntu1 + mbim_message_ms_basic_connect_extensions_lte_attach_configuration_set_new@Base 1.18.0-0ubuntu1 + mbim_message_ms_basic_connect_extensions_lte_attach_status_notification_parse@Base 1.18.0-0ubuntu1 + mbim_message_ms_basic_connect_extensions_lte_attach_status_query_new@Base 1.18.0-0ubuntu1 + mbim_message_ms_basic_connect_extensions_lte_attach_status_response_parse@Base 1.18.0-0ubuntu1 + mbim_message_ms_basic_connect_extensions_pco_notification_parse@Base 1.18.0-0ubuntu1 + mbim_message_ms_basic_connect_extensions_pco_query_new@Base 1.18.0-0ubuntu1 + mbim_message_ms_basic_connect_extensions_pco_response_parse@Base 1.18.0-0ubuntu1 mbim_message_ms_firmware_id_get_query_new@Base 1.10.0 mbim_message_ms_firmware_id_get_response_parse@Base 1.10.0 mbim_message_ms_host_shutdown_notify_set_new@Base 1.10.0 @@ -189,6 +233,7 @@ mbim_message_provisioned_contexts_set_new@Base 1.10.0 mbim_message_proxy_control_configuration_response_parse@Base 1.10.0 mbim_message_proxy_control_configuration_set_new@Base 1.10.0 + mbim_message_qmi_msg_notification_parse@Base 1.18.0-0ubuntu1 mbim_message_qmi_msg_response_parse@Base 1.14.0 mbim_message_qmi_msg_set_new@Base 1.14.0 mbim_message_radio_state_notification_parse@Base 1.10.0 @@ -250,6 +295,9 @@ mbim_packet_service_action_get_type@Base 1.10.0 mbim_packet_service_state_get_string@Base 1.10.0 mbim_packet_service_state_get_type@Base 1.10.0 + mbim_pco_type_get_string@Base 1.18.0-0ubuntu1 + mbim_pco_type_get_type@Base 1.18.0-0ubuntu1 + mbim_pco_value_free@Base 1.18.0-0ubuntu1 mbim_phonebook_entry_array_free@Base 1.10.0 mbim_phonebook_flag_get_string@Base 1.10.0 mbim_phonebook_flag_get_type@Base 1.10.0 diff -Nru libmbim-1.14.2/debian/patches/ref_cast.patch libmbim-1.18.0/debian/patches/ref_cast.patch --- libmbim-1.14.2/debian/patches/ref_cast.patch 2018-04-17 13:16:05.000000000 +0200 +++ libmbim-1.18.0/debian/patches/ref_cast.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,21 +0,0 @@ -Description: g_object_ref now returns a pointer of the type of its argument. - ctx->self is an MbimDevice. Assigning a GAsyncInitiable* to this is a - -Wincompatible-pointer-types warning. We build with -Werror, and so this - warning fails the build. Let's fix it. Note that the next series, 1.16, has - rewritten this code and so I don't propose to forward this patch upstream. -Author: Iain Lane -Forwarded: not-needed - -Index: b/src/libmbim-glib/mbim-device.c -=================================================================== ---- a/src/libmbim-glib/mbim-device.c -+++ b/src/libmbim-glib/mbim-device.c -@@ -2173,7 +2173,7 @@ - InitContext *ctx; - - ctx = g_slice_new0 (InitContext); -- ctx->self = g_object_ref (initable); -+ ctx->self = g_object_ref (MBIM_DEVICE (initable)); - if (cancellable) - ctx->cancellable = g_object_ref (cancellable); - ctx->result = g_simple_async_result_new (G_OBJECT (initable), diff -Nru libmbim-1.14.2/debian/patches/series libmbim-1.18.0/debian/patches/series --- libmbim-1.14.2/debian/patches/series 2018-04-17 13:09:58.000000000 +0200 +++ libmbim-1.18.0/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -ref_cast.patch diff -Nru libmbim-1.14.2/debian/rules libmbim-1.18.0/debian/rules --- libmbim-1.14.2/debian/rules 2017-11-21 01:09:41.000000000 +0100 +++ libmbim-1.18.0/debian/rules 2018-03-01 15:22:52.000000000 +0100 @@ -1,5 +1,6 @@ #!/usr/bin/make -f +export DPKG_GENSYMBOLS_CHECK_LEVEL=4 %: dh $@ diff -Nru libmbim-1.14.2/depcomp libmbim-1.18.0/depcomp --- libmbim-1.14.2/depcomp 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/depcomp 2019-01-08 13:52:19.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2013-05-30.07; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -783,9 +783,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru libmbim-1.14.2/docs/Makefile.in libmbim-1.18.0/docs/Makefile.in --- libmbim-1.14.2/docs/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/docs/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -135,7 +135,7 @@ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -243,6 +243,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -269,6 +271,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -317,9 +324,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -349,8 +360,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -467,7 +478,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libmbim-1.14.2/docs/man/Makefile.am libmbim-1.18.0/docs/man/Makefile.am --- libmbim-1.14.2/docs/man/Makefile.am 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/docs/man/Makefile.am 2019-01-08 13:16:16.000000000 +0100 @@ -5,7 +5,14 @@ # List of all source files which affect the output of --help-all MBIMCLI_SOURCES_WITH_HELP = \ + $(top_srcdir)/src/mbimcli/mbimcli-atds.c \ $(top_srcdir)/src/mbimcli/mbimcli-basic-connect.c \ + $(top_srcdir)/src/mbimcli/mbimcli-ms-basic-connect-extensions.c \ + $(top_srcdir)/src/mbimcli/mbimcli-dss.c \ + $(top_srcdir)/src/mbimcli/mbimcli-ms-firmware-id.c \ + $(top_srcdir)/src/mbimcli/mbimcli-ms-host-shutdown.c \ + $(top_srcdir)/src/mbimcli/mbimcli-intel-firmware-update.c \ + $(top_srcdir)/src/mbimcli/mbimcli-phonebook.c \ $(top_srcdir)/src/mbimcli/mbimcli.c # Depend only in the source files, not in the actual program, so that the diff -Nru libmbim-1.14.2/docs/man/Makefile.in libmbim-1.18.0/docs/man/Makefile.in --- libmbim-1.14.2/docs/man/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/docs/man/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -214,6 +214,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -240,6 +242,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -288,9 +295,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -306,7 +317,14 @@ # List of all source files which affect the output of --help-all MBIMCLI_SOURCES_WITH_HELP = \ + $(top_srcdir)/src/mbimcli/mbimcli-atds.c \ $(top_srcdir)/src/mbimcli/mbimcli-basic-connect.c \ + $(top_srcdir)/src/mbimcli/mbimcli-ms-basic-connect-extensions.c \ + $(top_srcdir)/src/mbimcli/mbimcli-dss.c \ + $(top_srcdir)/src/mbimcli/mbimcli-ms-firmware-id.c \ + $(top_srcdir)/src/mbimcli/mbimcli-ms-host-shutdown.c \ + $(top_srcdir)/src/mbimcli/mbimcli-intel-firmware-update.c \ + $(top_srcdir)/src/mbimcli/mbimcli-phonebook.c \ $(top_srcdir)/src/mbimcli/mbimcli.c all: all-am @@ -329,8 +347,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -397,7 +415,10 @@ cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libmbim-1.14.2/docs/man/mbimcli.1 libmbim-1.18.0/docs/man/mbimcli.1 --- libmbim-1.14.2/docs/man/mbimcli.1 2017-08-08 13:43:56.000000000 +0200 +++ libmbim-1.18.0/docs/man/mbimcli.1 2019-01-08 13:52:37.000000000 +0100 @@ -1,5 +1,5 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH MBIMCLI "1" "August 2017" "mbimcli " "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.8. +.TH MBIMCLI "1" "January 2019" "mbimcli " "User Commands" .SH NAME mbimcli \- Control MBIM devices .SH DESCRIPTION @@ -28,6 +28,15 @@ .TP \fB\-\-help\-ms\-host\-shutdown\fR Show Microsoft Host Shutdown Service options +.TP +\fB\-\-help\-atds\fR +Show AT&T Device Service options +.TP +\fB\-\-help\-intel\-firmware\-update\fR +Show Intel Firmware Update Service options +.TP +\fB\-\-help\-ms\-basic\-connect\-extensions\fR +Show Microsoft Basic Connect Extensions Service options .PP Basic Connect options .TP @@ -64,6 +73,9 @@ \fB\-\-enter\-puk\fR=\fI\,[\/\fR(PUK),(new PIN)] Enter PUK .TP +\fB\-\-query\-pin\-list\fR +Query PIN list +.TP \fB\-\-query\-home\-provider\fR Query home provider .TP @@ -95,7 +107,7 @@ Query connection state (SessionID is optional, defaults to 0) .TP \fB\-\-connect\fR=\fI\,[\/\fR"key=value,..."] -Connect (allowed keys: session\-id, apn, auth (PAP|CHAP|MSCHAPV2), username, password) +Connect (allowed keys: session\-id, apn, ip\-type (ipv4|ipv6|ipv4v6), auth (PAP|CHAP|MSCHAPV2), username, password) .TP \fB\-\-query\-ip\-configuration\fR=\fI\,[SessionID]\/\fR Query IP configuration (SessionID is optional, defaults to 0) @@ -105,6 +117,9 @@ .TP \fB\-\-query\-packet\-statistics\fR Query packet statistics +.TP +\fB\-\-query\-ip\-packet\-filters\fR=\fI\,[SessionID]\/\fR +Query IP packet filters (SessionID is optional, defaults to 0) .PP Phonebook options .TP @@ -143,6 +158,30 @@ .TP \fB\-\-ms\-notify\-host\-shutdown\fR Notify that host is shutting down +.PP +AT&T Device Service options +.TP +\fB\-\-atds\-query\-signal\fR +Query signal info +.TP +\fB\-\-atds\-query\-location\fR +Query cell location +.PP +Intel Firmware Update Service options +.TP +\fB\-\-intel\-modem\-reboot\fR +Reboot modem +.PP +Microsoft Basic Connect Extensions options +.TP +\fB\-\-ms\-query\-pco\fR=\fI\,[SessionID]\/\fR +Query PCO value (SessionID is optional, defaults to 0) +.TP +\fB\-\-ms\-query\-lte\-attach\-configuration\fR +Query LTE attach configuration +.TP +\fB\-\-ms\-query\-lte\-attach\-status\fR +Query LTE attach status .SS "Application Options:" .TP \fB\-d\fR, \fB\-\-device\fR=\fI\,[PATH]\/\fR @@ -169,8 +208,8 @@ \fB\-V\fR, \fB\-\-version\fR Print version .PP -mbimcli 1.14.2 -Copyright (2013\-2014) Aleksander Morgado +mbimcli 1.18.0 +Copyright \(co 2013\-2019 Aleksander Morgado License GPLv2+: GNU GPL version 2 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. diff -Nru libmbim-1.14.2/docs/man/mbim-network.1 libmbim-1.18.0/docs/man/mbim-network.1 --- libmbim-1.14.2/docs/man/mbim-network.1 2017-08-08 13:43:56.000000000 +0200 +++ libmbim-1.18.0/docs/man/mbim-network.1 2019-01-08 13:52:37.000000000 +0100 @@ -1,5 +1,5 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH MBIM-NETWORK "1" "August 2017" "mbim-network 1.14.2" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.8. +.TH MBIM-NETWORK "1" "January 2019" "mbim-network 1.18.0" "User Commands" .SH NAME mbim-network \- Simple network management of MBIM devices .SH SYNOPSIS @@ -22,7 +22,7 @@ \fB\-\-profile\fR=\fI\,[PATH]\/\fR Use the profile in the specified path .TP -\fB\-\-help\fR +\fB\-\-help\fR, \fB\-h\fR Show help options .TP \fB\-\-version\fR @@ -68,7 +68,7 @@ you still need to run a DHCP client on the associated WWAN network interface. .SH COPYRIGHT -Copyright (2013\-2015) Aleksander Morgado +Copyright \(co 2013\-2018 Aleksander Morgado License GPLv2+: GNU GPL version 2 or later .br This is free software: you are free to change and redistribute it. diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/annotation-glossary.html libmbim-1.18.0/docs/reference/libmbim-glib/html/annotation-glossary.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/annotation-glossary.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/annotation-glossary.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,11 +3,11 @@ Annotation Glossary: libmbim-glib Reference Manual - + - + @@ -33,6 +33,6 @@

Don't free data after the code is done.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/api-index-full.html libmbim-1.18.0/docs/reference/libmbim-glib/html/api-index-full.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/api-index-full.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/api-index-full.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ API Index: libmbim-glib Reference Manual - + - + @@ -23,6 +23,8 @@  |  I  |  + L +  |  M  |  N @@ -62,6 +64,30 @@
+MbimAtdsProvider, struct in ATDS +
+
+
+MbimAtdsProviderPlmnMode, enum in Enumerations and Flags +
+
+
+MbimAtdsRatMode, enum in Enumerations and Flags +
+
+
+mbim_atds_provider_array_free, function in ATDS +
+
+
+mbim_atds_provider_plmn_mode_get_string, function in Enumerations and Flags +
+
+
+mbim_atds_rat_mode_get_string, function in Enumerations and Flags +
+
+
MbimAuthProtocol, enum in Enumerations and Flags
@@ -83,6 +109,10 @@
+MbimCidAtds, enum in Command IDs +
+
+
MbimCidAuth, enum in Command IDs
@@ -95,6 +125,14 @@
+MbimCidIntelFirmwareUpdate, enum in Command IDs +
+
+
+MbimCidMsBasicConnectExtensions, enum in Command IDs +
+
+
MbimCidMsFirmwareId, enum in Command IDs
@@ -127,6 +165,10 @@
+mbim_cid_atds_get_string, function in Command IDs +
+
+
mbim_cid_auth_get_string, function in Command IDs
@@ -159,6 +201,14 @@
+mbim_cid_intel_firmware_update_get_string, function in Command IDs +
+
+
+mbim_cid_ms_basic_connect_extensions_get_string, function in Command IDs +
+
+
mbim_cid_ms_firmware_id_get_string, function in Command IDs
@@ -203,6 +253,10 @@
+MbimContextSource, enum in Enumerations and Flags +
+
+
MbimContextType, enum in UUIDs
@@ -211,6 +265,10 @@
+mbim_context_source_get_string, function in Enumerations and Flags +
+
+
mbim_context_type_get_string, function in UUIDs
@@ -437,6 +495,47 @@ mbim_ip_configuration_available_flag_build_string_from_mask, function in Enumerations and Flags
+

L

+
+MbimLteAttachConfiguration, struct in Ms Basic Connect Extensions +
+
+
+MbimLteAttachContextOperation, enum in Enumerations and Flags +
+
+
+MbimLteAttachContextRoamingControl, enum in Enumerations and Flags +
+
+
+MbimLteAttachState, enum in Enumerations and Flags +
+
+
+MbimLteAttachStatus, struct in Ms Basic Connect Extensions +
+
+
+mbim_lte_attach_configuration_array_free, function in Ms Basic Connect Extensions +
+
+
+mbim_lte_attach_context_operation_get_string, function in Enumerations and Flags +
+
+
+mbim_lte_attach_context_roaming_control_get_string, function in Enumerations and Flags +
+
+
+mbim_lte_attach_state_get_string, function in Enumerations and Flags +
+
+
+mbim_lte_attach_status_free, function in Ms Basic Connect Extensions +
+

M

MBIM_MAJOR_VERSION, macro in Version checks @@ -455,6 +554,50 @@
+mbim_message_atds_location_query_new, function in ATDS +
+
+
+mbim_message_atds_location_response_parse, function in ATDS +
+
+
+mbim_message_atds_operators_query_new, function in ATDS +
+
+
+mbim_message_atds_operators_response_parse, function in ATDS +
+
+
+mbim_message_atds_rat_query_new, function in ATDS +
+
+
+mbim_message_atds_rat_response_parse, function in ATDS +
+
+
+mbim_message_atds_rat_set_new, function in ATDS +
+
+
+mbim_message_atds_register_state_query_new, function in ATDS +
+
+
+mbim_message_atds_register_state_response_parse, function in ATDS +
+
+
+mbim_message_atds_signal_query_new, function in ATDS +
+
+
+mbim_message_atds_signal_response_parse, function in ATDS +
+
+
mbim_message_auth_akap_query_new, function in Auth
@@ -687,6 +830,10 @@
+mbim_message_intel_firmware_update_modem_reboot_set_new, function in Intel Firmware Update +
+
+
mbim_message_ip_configuration_notification_parse, function in Basic Connect
@@ -711,6 +858,46 @@
+mbim_message_ms_basic_connect_extensions_lte_attach_configuration_notification_parse, function in Ms Basic Connect Extensions +
+
+
+mbim_message_ms_basic_connect_extensions_lte_attach_configuration_query_new, function in Ms Basic Connect Extensions +
+
+
+mbim_message_ms_basic_connect_extensions_lte_attach_configuration_response_parse, function in Ms Basic Connect Extensions +
+
+
+mbim_message_ms_basic_connect_extensions_lte_attach_configuration_set_new, function in Ms Basic Connect Extensions +
+
+
+mbim_message_ms_basic_connect_extensions_lte_attach_status_notification_parse, function in Ms Basic Connect Extensions +
+
+
+mbim_message_ms_basic_connect_extensions_lte_attach_status_query_new, function in Ms Basic Connect Extensions +
+
+
+mbim_message_ms_basic_connect_extensions_lte_attach_status_response_parse, function in Ms Basic Connect Extensions +
+
+
+mbim_message_ms_basic_connect_extensions_pco_notification_parse, function in Ms Basic Connect Extensions +
+
+
+mbim_message_ms_basic_connect_extensions_pco_query_new, function in Ms Basic Connect Extensions +
+
+
+mbim_message_ms_basic_connect_extensions_pco_response_parse, function in Ms Basic Connect Extensions +
+
+
mbim_message_ms_firmware_id_get_query_new, function in MS Firmware ID
@@ -883,6 +1070,10 @@
+mbim_message_qmi_msg_notification_parse, function in QMI +
+
+
mbim_message_qmi_msg_response_parse, function in QMI
@@ -1137,6 +1328,22 @@
+MbimPcoType, enum in Enumerations and Flags +
+
+
+MbimPcoValue, struct in Ms Basic Connect Extensions +
+
+
+mbim_pco_type_get_string, function in Enumerations and Flags +
+
+
+mbim_pco_value_free, function in Ms Basic Connect Extensions +
+
+
MbimPhonebookEntry, struct in Phonebook
@@ -1536,6 +1743,10 @@
+MBIM_UUID_ATDS, macro in UUIDs +
+
+
MBIM_UUID_AUTH, macro in UUIDs
@@ -1568,10 +1779,18 @@
+MBIM_UUID_INTEL_FIRMWARE_UPDATE, macro in UUIDs +
+
+
MBIM_UUID_INVALID, macro in UUIDs
+MBIM_UUID_MS_BASIC_CONNECT_EXTENSIONS, macro in UUIDs +
+
+
MBIM_UUID_MS_FIRMWARE_ID, macro in UUIDs
@@ -1638,6 +1857,6 @@
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/ch01.html libmbim-1.18.0/docs/reference/libmbim-glib/html/ch01.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/ch01.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/ch01.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Core: libmbim-glib Reference Manual - + - + @@ -53,6 +53,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/ch02.html libmbim-1.18.0/docs/reference/libmbim-glib/html/ch02.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/ch02.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/ch02.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Generic Services: libmbim-glib Reference Manual - + - + @@ -47,6 +47,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/ch03.html libmbim-1.18.0/docs/reference/libmbim-glib/html/ch03.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/ch03.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/ch03.html 2019-01-08 13:52:41.000000000 +0100 @@ -2,13 +2,13 @@ -Other Services: libmbim-glib Reference Manual - +Microsoft-defined services: libmbim-glib Reference Manual + - - + + @@ -17,24 +17,24 @@ Home Prev -Next +Next

-Other Services

+Microsoft-defined services
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/ch04.html libmbim-1.18.0/docs/reference/libmbim-glib/html/ch04.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/ch04.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/ch04.html 2019-01-08 13:52:41.000000000 +0100 @@ -2,13 +2,13 @@ -Compatibility: libmbim-glib Reference Manual - +Qualcomm-defined services: libmbim-glib Reference Manual + - - - + + + @@ -16,17 +16,17 @@ Home -Prev -Next +Prev +Next

-Compatibility

+Qualcomm-defined services
-Deprecated API — Types and functions flagged as deprecated. +QMI
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/ch05.html libmbim-1.18.0/docs/reference/libmbim-glib/html/ch05.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/ch05.html 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/ch05.html 2019-01-08 13:52:41.000000000 +0100 @@ -0,0 +1,32 @@ + + + + +AT&T-defined services: libmbim-glib Reference Manual + + + + + + + + + + + + + + + + +
+

+AT&T-defined services

+
+ATDS +
+
+ + + \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/ch06.html libmbim-1.18.0/docs/reference/libmbim-glib/html/ch06.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/ch06.html 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/ch06.html 2019-01-08 13:52:41.000000000 +0100 @@ -0,0 +1,32 @@ + + + + +Intel-defined Services: libmbim-glib Reference Manual + + + + + + + + + + + + + + + + +
+

+Intel-defined Services

+ +
+ + + \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/ch07.html libmbim-1.18.0/docs/reference/libmbim-glib/html/ch07.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/ch07.html 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/ch07.html 2019-01-08 13:52:41.000000000 +0100 @@ -0,0 +1,32 @@ + + + + +Compatibility: libmbim-glib Reference Manual + + + + + + + + + + + + + + + + +
+

+Compatibility

+
+Deprecated API — Types and functions flagged as deprecated. +
+
+ + + \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/index.html libmbim-1.18.0/docs/reference/libmbim-glib/html/index.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/index.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/index.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,10 +3,10 @@ libmbim-glib Reference Manual: libmbim-glib Reference Manual - + - + @@ -14,9 +14,9 @@
-

for libmbim-glib 1.14.2 +

for libmbim-glib 1.18.0

-
+

Permission is granted to copy, distribute and/or modify this @@ -96,19 +96,31 @@ DSS -

Other Services
+
Microsoft-defined services
-MS Firmware ID +Ms Basic Connect Extensions
-MS Host Shutdown +MS Firmware ID
-QMI +MS Host Shutdown
-
Compatibility
+
Qualcomm-defined services
+
+QMI +
+
AT&T-defined services
+
+ATDS +
+
Intel-defined Services
+
+Intel Firmware Update +
+
Compatibility
Deprecated API — Types and functions flagged as deprecated.
@@ -118,6 +130,6 @@
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-ATDS.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-ATDS.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-ATDS.html 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-ATDS.html 2019-01-08 13:52:41.000000000 +0100 @@ -0,0 +1,718 @@ + + + + +ATDS: libmbim-glib Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

ATDS

+

ATDS

+
+ +
+

Types and Values

+
++++ + + + + +
 MbimAtdsProvider
+
+
+

Description

+
+
+

Functions

+
+

mbim_atds_provider_array_free ()

+
void
+mbim_atds_provider_array_free (MbimAtdsProvider **array);
+

Frees the memory allocated for the array of MbimAtdsProviders.

+
+

Parameters

+
+++++ + + + + + +

array

a NULL terminated array of MbimAtdsProvider structs.

 
+
+
+
+
+

mbim_message_atds_signal_query_new ()

+
MbimMessage *
+mbim_message_atds_signal_query_new (GError **error);
+

Create a new request for the 'Signal' query command in the 'ATDS' service.

+
+

Parameters

+
+++++ + + + + + +

error

return location for error or NULL.

 
+
+
+

Returns

+

a newly allocated MbimMessage, which should be freed with mbim_message_unref().

+
+
+
+
+

mbim_message_atds_signal_response_parse ()

+
gboolean
+mbim_message_atds_signal_response_parse
+                               (const MbimMessage *message,
+                                guint32 *rssi,
+                                guint32 *error_rate,
+                                guint32 *rscp,
+                                guint32 *ecno,
+                                guint32 *rsrq,
+                                guint32 *rsrp,
+                                guint32 *rssnr,
+                                GError **error);
+

Parses and returns parameters of the 'Signal' response command in the 'ATDS' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

rssi

return location for a guint32, or NULL if the 'Rssi' field is not needed.

 

error_rate

return location for a guint32, or NULL if the 'ErrorRate' field is not needed.

 

rscp

return location for a guint32, or NULL if the 'Rscp' field is not needed.

 

ecno

return location for a guint32, or NULL if the 'Ecno' field is not needed.

 

rsrq

return location for a guint32, or NULL if the 'Rsrq' field is not needed.

 

rsrp

return location for a guint32, or NULL if the 'Rsrp' field is not needed.

 

rssnr

return location for a guint32, or NULL if the 'Rssnr' field is not needed.

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+
+
+
+

mbim_message_atds_location_query_new ()

+
MbimMessage *
+mbim_message_atds_location_query_new (GError **error);
+

Create a new request for the 'Location' query command in the 'ATDS' service.

+
+

Parameters

+
+++++ + + + + + +

error

return location for error or NULL.

 
+
+
+

Returns

+

a newly allocated MbimMessage, which should be freed with mbim_message_unref().

+
+
+
+
+

mbim_message_atds_location_response_parse ()

+
gboolean
+mbim_message_atds_location_response_parse
+                               (const MbimMessage *message,
+                                guint32 *lac,
+                                guint32 *tac,
+                                guint32 *cell_id,
+                                GError **error);
+

Parses and returns parameters of the 'Location' response command in the 'ATDS' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

lac

return location for a guint32, or NULL if the 'Lac' field is not needed.

 

tac

return location for a guint32, or NULL if the 'Tac' field is not needed.

 

cell_id

return location for a guint32, or NULL if the 'CellId' field is not needed.

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+
+
+
+

mbim_message_atds_operators_query_new ()

+
MbimMessage *
+mbim_message_atds_operators_query_new (GError **error);
+

Create a new request for the 'Operators' query command in the 'ATDS' service.

+
+

Parameters

+
+++++ + + + + + +

error

return location for error or NULL.

 
+
+
+

Returns

+

a newly allocated MbimMessage, which should be freed with mbim_message_unref().

+
+
+
+
+

mbim_message_atds_operators_response_parse ()

+
gboolean
+mbim_message_atds_operators_response_parse
+                               (const MbimMessage *message,
+                                guint32 *providers_count,
+                                MbimAtdsProvider ***providers,
+                                GError **error);
+

Parses and returns parameters of the 'Operators' response command in the 'ATDS' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

providers_count

return location for a guint32, or NULL if the 'ProvidersCount' field is not needed.

 

providers

return location for a newly allocated array of MbimAtdsProviders, or NULL if the 'Providers' field is not needed. Free the returned value with mbim_atds_provider_array_free().

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+
+
+
+

mbim_message_atds_rat_query_new ()

+
MbimMessage *
+mbim_message_atds_rat_query_new (GError **error);
+

Create a new request for the 'RAT' query command in the 'ATDS' service.

+
+

Parameters

+
+++++ + + + + + +

error

return location for error or NULL.

 
+
+
+

Returns

+

a newly allocated MbimMessage, which should be freed with mbim_message_unref().

+
+
+
+
+

mbim_message_atds_rat_set_new ()

+
MbimMessage *
+mbim_message_atds_rat_set_new (MbimAtdsRatMode mode,
+                               GError **error);
+

Create a new request for the 'RAT' set command in the 'ATDS' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

mode

the 'Mode' field, given as a MbimAtdsRatMode.

 

error

return location for error or NULL.

 
+
+
+

Returns

+

a newly allocated MbimMessage, which should be freed with mbim_message_unref().

+
+
+
+
+

mbim_message_atds_rat_response_parse ()

+
gboolean
+mbim_message_atds_rat_response_parse (const MbimMessage *message,
+                                      MbimAtdsRatMode *mode,
+                                      GError **error);
+

Parses and returns parameters of the 'RAT' response command in the 'ATDS' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

mode

return location for a MbimAtdsRatMode, or NULL if the 'Mode' field is not needed.

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+
+
+
+

mbim_message_atds_register_state_query_new ()

+
MbimMessage *
+mbim_message_atds_register_state_query_new
+                               (GError **error);
+

Create a new request for the 'Register State' query command in the 'ATDS' service.

+
+

Parameters

+
+++++ + + + + + +

error

return location for error or NULL.

 
+
+
+

Returns

+

a newly allocated MbimMessage, which should be freed with mbim_message_unref().

+
+
+
+
+

mbim_message_atds_register_state_response_parse ()

+
gboolean
+mbim_message_atds_register_state_response_parse
+                               (const MbimMessage *message,
+                                MbimNwError *nw_error,
+                                MbimRegisterState *register_state,
+                                MbimRegisterMode *register_mode,
+                                MbimDataClass *available_data_classes,
+                                MbimCellularClass *current_cellular_class,
+                                gchar **provider_id,
+                                gchar **provider_name,
+                                gchar **roaming_text,
+                                MbimRegistrationFlag *registration_flag,
+                                GError **error);
+

Parses and returns parameters of the 'Register State' response command in the 'ATDS' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

nw_error

return location for a MbimNwError, or NULL if the 'NwError' field is not needed.

 

register_state

return location for a MbimRegisterState, or NULL if the 'RegisterState' field is not needed.

 

register_mode

return location for a MbimRegisterMode, or NULL if the 'RegisterMode' field is not needed.

 

available_data_classes

return location for a MbimDataClass, or NULL if the 'AvailableDataClasses' field is not needed.

 

current_cellular_class

return location for a MbimCellularClass, or NULL if the 'CurrentCellularClass' field is not needed.

 

provider_id

return location for a newly allocated string, or NULL if the 'ProviderId' field is not needed. Free the returned value with g_free().

 

provider_name

return location for a newly allocated string, or NULL if the 'ProviderName' field is not needed. Free the returned value with g_free().

 

roaming_text

return location for a newly allocated string, or NULL if the 'RoamingText' field is not needed. Free the returned value with g_free().

 

registration_flag

return location for a MbimRegistrationFlag, or NULL if the 'RegistrationFlag' field is not needed.

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+
+
+
+

Types and Values

+
+

MbimAtdsProvider

+
typedef struct {
+    gchar *provider_id;
+    guint32 provider_state;
+    gchar *provider_name;
+    guint32 plmn_mode;
+    guint32 rssi;
+    guint32 error_rate;
+} MbimAtdsProvider;
+
+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

gchar *provider_id;

a string.

 

guint32 provider_state;

a guint32.

 

gchar *provider_name;

a string.

 

guint32 plmn_mode;

a guint32.

 

guint32 rssi;

a guint32.

 

guint32 error_rate;

a guint32.

 
+
+
+
+
+ + + \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Auth.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Auth.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Auth.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Auth.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Auth: libmbim-glib Reference Manual - + - + @@ -145,7 +145,7 @@ const guint8 **ciphering_key, const guint8 **auts, GError **error); -

Create a new request for the 'Auts' response command in the 'Auth' service.

+

Parses and returns parameters of the 'Aka' response command in the 'Auth' service.

Parameters

@@ -260,7 +260,7 @@ const guint8 **ciphering_key, const guint8 **auts, GError **error); -

Create a new request for the 'Auts' response command in the 'Auth' service.

+

Parses and returns parameters of the 'Akap' response command in the 'Auth' service.

Parameters

@@ -383,7 +383,7 @@ guint64 *kc3, guint32 *n, GError **error); -

Create a new request for the 'N' response command in the 'Auth' service.

+

Parses and returns parameters of the 'Sim' response command in the 'Auth' service.

Parameters

@@ -453,6 +453,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Basic-Connect.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Basic-Connect.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Basic-Connect.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Basic-Connect.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Basic Connect: libmbim-glib Reference Manual - + - + @@ -950,7 +950,7 @@ gchar **firmware_info, gchar **hardware_info, GError **error); -

Create a new request for the 'HardwareInfo' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Device Caps' response command in the 'Basic Connect' service.

Parameters

@@ -1079,7 +1079,7 @@ guint32 *telephone_numbers_count, gchar ***telephone_numbers, GError **error); -

Create a new request for the 'TelephoneNumbers' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Subscriber Ready Status' response command in the 'Basic Connect' service.

Parameters

@@ -1151,7 +1151,7 @@ guint32 *telephone_numbers_count, gchar ***telephone_numbers, GError **error); -

Create a new request for the 'TelephoneNumbers' notification command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Subscriber Ready Status' notification command in the 'Basic Connect' service.

Parameters

@@ -1279,7 +1279,7 @@ MbimRadioSwitchState *hw_radio_state, MbimRadioSwitchState *sw_radio_state, GError **error); -

Create a new request for the 'SwRadioState' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Radio State' response command in the 'Basic Connect' service.

Parameters

@@ -1327,7 +1327,7 @@ MbimRadioSwitchState *hw_radio_state, MbimRadioSwitchState *sw_radio_state, GError **error); -

Create a new request for the 'SwRadioState' notification command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Radio State' notification command in the 'Basic Connect' service.

Parameters

@@ -1453,7 +1453,7 @@ MbimPinState *pin_state, guint32 *remaining_attempts, GError **error); -

Create a new request for the 'RemainingAttempts' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Pin' response command in the 'Basic Connect' service.

Parameters

@@ -1539,7 +1539,7 @@ MbimPinDesc **pin_desc_subsidy_lock, MbimPinDesc **pin_desc_custom, GError **error); -

Create a new request for the 'PinDescCustom' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Pin List' response command in the 'Basic Connect' service.

Parameters

@@ -1686,7 +1686,7 @@ (const MbimMessage *message, MbimProvider **provider, GError **error); -

Create a new request for the 'Provider' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Home Provider' response command in the 'Basic Connect' service.

Parameters

@@ -1797,7 +1797,7 @@ guint32 *providers_count, MbimProvider ***providers, GError **error); -

Create a new request for the 'Providers' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Preferred Providers' response command in the 'Basic Connect' service.

Parameters

@@ -1845,7 +1845,7 @@ guint32 *providers_count, MbimProvider ***providers, GError **error); -

Create a new request for the 'Providers' notification command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Preferred Providers' notification command in the 'Basic Connect' service.

Parameters

@@ -1928,7 +1928,7 @@ guint32 *providers_count, MbimProvider ***providers, GError **error); -

Create a new request for the 'Providers' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Visible Providers' response command in the 'Basic Connect' service.

Parameters

@@ -2055,7 +2055,7 @@ gchar **roaming_text, MbimRegistrationFlag *registration_flag, GError **error); -

Create a new request for the 'RegistrationFlag' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Register State' response command in the 'Basic Connect' service.

Parameters

@@ -2145,7 +2145,7 @@ gchar **roaming_text, MbimRegistrationFlag *registration_flag, GError **error); -

Create a new request for the 'RegistrationFlag' notification command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Register State' notification command in the 'Basic Connect' service.

Parameters

@@ -2303,7 +2303,7 @@ guint32 *rssi_threshold, guint32 *error_rate_threshold, GError **error); -

Create a new request for the 'ErrorRateThreshold' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Signal State' response command in the 'Basic Connect' service.

Parameters

@@ -2369,7 +2369,7 @@ guint32 *rssi_threshold, guint32 *error_rate_threshold, GError **error); -

Create a new request for the 'ErrorRateThreshold' notification command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Signal State' notification command in the 'Basic Connect' service.

Parameters

@@ -2495,7 +2495,7 @@ guint64 *uplink_speed, guint64 *downlink_speed, GError **error); -

Create a new request for the 'DownlinkSpeed' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Packet Service' response command in the 'Basic Connect' service.

Parameters

@@ -2561,7 +2561,7 @@ guint64 *uplink_speed, guint64 *downlink_speed, GError **error); -

Create a new request for the 'DownlinkSpeed' notification command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Packet Service' notification command in the 'Basic Connect' service.

Parameters

@@ -2773,7 +2773,7 @@ const MbimUuid **context_type, guint32 *nw_error, GError **error); -

Create a new request for the 'NwError' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Connect' response command in the 'Basic Connect' service.

Parameters

@@ -2846,7 +2846,7 @@ const MbimUuid **context_type, guint32 *nw_error, GError **error); -

Create a new request for the 'NwError' notification command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Connect' notification command in the 'Basic Connect' service.

Parameters

@@ -3019,7 +3019,7 @@ guint32 *provisioned_contexts_count, MbimProvisionedContextElement ***provisioned_contexts, GError **error); -

Create a new request for the 'ProvisionedContexts' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Provisioned Contexts' response command in the 'Basic Connect' service.

Parameters

@@ -3067,7 +3067,7 @@ guint32 *provisioned_contexts_count, MbimProvisionedContextElement ***provisioned_contexts, GError **error); -

Create a new request for the 'ProvisionedContexts' notification command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Provisioned Contexts' notification command in the 'Basic Connect' service.

Parameters

@@ -3157,7 +3157,7 @@ guint32 *buffer_size, const guint8 **buffer, GError **error); -

Create a new request for the 'Buffer' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Service Activation' response command in the 'Basic Connect' service.

Parameters

@@ -3343,7 +3343,7 @@ guint32 *ipv4_mtu, guint32 *ipv6_mtu, GError **error); -

Create a new request for the 'IPv6Mtu' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'IP Configuration' response command in the 'Basic Connect' service.

Parameters

@@ -3471,7 +3471,7 @@ guint32 *ipv4_mtu, guint32 *ipv6_mtu, GError **error); -

Create a new request for the 'IPv6Mtu' notification command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'IP Configuration' notification command in the 'Basic Connect' service.

Parameters

@@ -3614,7 +3614,7 @@ guint32 *max_dss_sessions, MbimDeviceServiceElement ***device_services, GError **error); -

Create a new request for the 'DeviceServices' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Device Services' response command in the 'Basic Connect' service.

Parameters

@@ -3708,7 +3708,7 @@ guint32 *events_count, MbimEventEntry ***events, GError **error); -

Create a new request for the 'Events' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Device Service Subscribe List' response command in the 'Basic Connect' service.

Parameters

@@ -3789,7 +3789,7 @@ guint32 *out_errors, guint32 *out_discards, GError **error); -

Create a new request for the 'OutDiscards' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Packet Statistics' response command in the 'Basic Connect' service.

Parameters

@@ -3928,7 +3928,7 @@ (const MbimMessage *message, MbimNetworkIdleHintState *state, GError **error); -

Create a new request for the 'State' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Network Idle Hint' response command in the 'Basic Connect' service.

Parameters

@@ -4030,7 +4030,7 @@ (const MbimMessage *message, MbimEmergencyModeState *state, GError **error); -

Create a new request for the 'State' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Emergency Mode' response command in the 'Basic Connect' service.

Parameters

@@ -4072,7 +4072,7 @@ (const MbimMessage *message, MbimEmergencyModeState *state, GError **error); -

Create a new request for the 'State' notification command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Emergency Mode' notification command in the 'Basic Connect' service.

Parameters

@@ -4210,7 +4210,7 @@ guint32 *packet_filters_count, MbimPacketFilter ***packet_filters, GError **error); -

Create a new request for the 'PacketFilters' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'IP Packet Filters' response command in the 'Basic Connect' service.

Parameters

@@ -4331,7 +4331,7 @@ guint32 *providers_count, MbimProvider ***providers, GError **error); -

Create a new request for the 'Providers' response command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Multicarrier Providers' response command in the 'Basic Connect' service.

Parameters

@@ -4379,7 +4379,7 @@ guint32 *providers_count, MbimProvider ***providers, GError **error); -

Create a new request for the 'Providers' notification command in the 'Basic Connect' service.

+

Parses and returns parameters of the 'Multicarrier Providers' notification command in the 'Basic Connect' service.

Parameters

@@ -4767,6 +4767,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Command-IDs.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Command-IDs.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Command-IDs.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Command-IDs.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Command IDs: libmbim-glib Reference Manual - + - + @@ -75,6 +75,13 @@ + + + + @@ -148,6 +155,20 @@ mbim_cid_qmi_get_string () + + + + + + + +
const gchar * +mbim_cid_atds_get_string () +
const gchar * + mbim_cid_basic_connect_get_string ()
const gchar * + +mbim_cid_intel_firmware_update_get_string () +
const gchar * + +mbim_cid_ms_basic_connect_extensions_get_string () +
@@ -161,6 +182,10 @@ enum +MbimCidAtds + + +enum MbimCidBasicConnect @@ -203,15 +228,26 @@ enum MbimCidQmi + +enum +MbimCidIntelFirmwareUpdate + + +enum +MbimCidMsBasicConnectExtensions +

Object Hierarchy

-
    GEnum
+
    GEnum
+    ├── MbimCidAtds
     ├── MbimCidAuth
     ├── MbimCidBasicConnect
     ├── MbimCidDss
+    ├── MbimCidIntelFirmwareUpdate
+    ├── MbimCidMsBasicConnectExtensions
     ├── MbimCidMsFirmwareId
     ├── MbimCidMsHostShutdown
     ├── MbimCidPhonebook
@@ -363,7 +399,35 @@
 

Returns

-

a constant string.

+

a constant string.

+

[transfer none]

+
+ +
+
+

mbim_cid_atds_get_string ()

+
const gchar *
+mbim_cid_atds_get_string (MbimCidAtds val);
+

Gets the nickname string for the MbimCidAtds specified at val +.

+
+

Parameters

+
+++++ + + + + + +

val

a MbimCidAtds.

 
+
+
+

Returns

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -391,7 +455,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -419,7 +483,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -447,7 +511,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -475,7 +539,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -503,7 +567,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -531,7 +595,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -559,7 +623,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -587,7 +651,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -615,7 +679,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -643,7 +707,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -671,7 +735,65 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

+

[transfer none]

+
+ +
+
+

mbim_cid_intel_firmware_update_get_string ()

+
const gchar *
+mbim_cid_intel_firmware_update_get_string
+                               (MbimCidIntelFirmwareUpdate val);
+

Gets the nickname string for the MbimCidIntelFirmwareUpdate specified at val +.

+
+

Parameters

+
+++++ + + + + + +

val

a MbimCidIntelFirmwareUpdate.

 
+
+
+

Returns

+

a string with the nickname, or NULL if not found. Do not free the returned value.

+

[transfer none]

+
+
+
+
+

mbim_cid_ms_basic_connect_extensions_get_string ()

+
const gchar *
+mbim_cid_ms_basic_connect_extensions_get_string
+                               (MbimCidMsBasicConnectExtensions val);
+

Gets the nickname string for the MbimCidMsBasicConnectExtensions specified at val +.

+
+

Parameters

+
+++++ + + + + + +

val

a MbimCidMsBasicConnectExtensions.

 
+
+
+

Returns

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -679,6 +801,65 @@

Types and Values

+

enum MbimCidAtds

+

MBIM commands in the MBIM_SERVICE_ATDS service.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

MBIM_CID_ATDS_UNKNOWN

+

Unknown command.

+
 

MBIM_CID_ATDS_SIGNAL

+

Radio signal information.

+
 

MBIM_CID_ATDS_LOCATION

+

Cell location information.

+
 

MBIM_CID_ATDS_OPERATORS

+

Operator selection.

+
 

MBIM_CID_ATDS_RAT

+

Radio Access Technology selection.

+
 

MBIM_CID_ATDS_REGISTER_STATE

+

Registration state.

+
 
+
+
+
+

enum MbimCidBasicConnect

MBIM commands in the MBIM_SERVICE_BASIC_CONNECT service.

@@ -1234,7 +1415,132 @@

MBIM_CID_QMI_MSG

-

Configuration.

+

Send QMI request and receive QMI response.

+ +  + + +
+
+
+
+
+

enum MbimCidIntelFirmwareUpdate

+

MBIM commands in the MBIM_SERVICE_INTEL_FIRMWARE_UPDATE service.

+
+

Members

+
+++++ + + + + + + + + + + + + +

MBIM_CID_INTEL_FIRMWARE_UPDATE_UNKNOWN

+

Unknown command.

+
 

MBIM_CID_INTEL_FIRMWARE_UPDATE_MODEM_REBOOT

+

Reboot modem for firmware update.

+
 
+
+
+
+
+

enum MbimCidMsBasicConnectExtensions

+

MBIM commands in the MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS service.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1245,6 +1551,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Common-utilities.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Common-utilities.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Common-utilities.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Common-utilities.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Common utilities: libmbim-glib Reference Manual - + - + @@ -103,6 +103,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Deprecated-API.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Deprecated-API.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Deprecated-API.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Deprecated-API.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Deprecated API: libmbim-glib Reference Manual - + - - + + - + @@ -18,8 +18,8 @@ Description - - + +

MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_UNKNOWN

+

Unknown command.

+
 

MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_PROVISIONED_CONTEXTS

+

Provisioned contexts (v2).

+
 

MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_NETWORK_BLACKLIST

+

Network blacklist.

+
 

MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_LTE_ATTACH_CONFIGURATION

+

LTE attach configuration.

+
 

MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_LTE_ATTACH_STATUS

+

LTE attach status.

+
 

MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_SYS_CAPS

+

System capabilities.

+
 

MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_CAPS

+

Device capabilities (v2).

+
 

MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_SLOT_MAPPINGS

+

Device slot mappings.

+
 

MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_SLOT_INFO_STATUS

+

Slot info status.

+
 

MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_PCO

+

Protocol configuration operations (PCO).

+
 

MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_RESET

+

Device reset.

 
HomeUpPrevUpPrev Next
@@ -184,7 +184,7 @@

Types and Values

MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBER_LIST

-
#define MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBER_LIST MBIM_DEPRECATED_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBER_LIST
+
#define MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBER_LIST (MbimDeprecatedCidBasicConnect) MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBE_LIST
 

MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBER_LIST has been deprecated since version 1.8.0 and should not be used in newly-written code.

@@ -195,7 +195,7 @@

MBIM_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH

-
#define MBIM_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH MBIM_DEPRECATED_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH
+
#define MBIM_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH (MbimDeprecatedRegistrationFlag) MBIM_REGISTRATION_FLAG_PACKET_SERVICE_AUTOMATIC_ATTACH
 

MBIM_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH has been deprecated since version 1.8.0 and should not be used in newly-written code.

@@ -206,6 +206,6 @@
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib.devhelp2 libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib.devhelp2 --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib.devhelp2 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib.devhelp2 2019-01-08 13:52:41.000000000 +0100 @@ -21,12 +21,21 @@ - + + + + - + + + + + + + @@ -55,6 +64,7 @@ + @@ -66,10 +76,13 @@ + + + @@ -81,6 +94,9 @@ + + + @@ -92,6 +108,8 @@ + + @@ -226,6 +244,15 @@ + + + + + + + + + @@ -275,6 +302,11 @@ + + + + + @@ -420,11 +452,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -441,6 +504,10 @@ + + + + @@ -451,6 +518,12 @@ + + + + + + @@ -505,6 +578,19 @@ + + + + + + + + + + + + + @@ -520,6 +606,13 @@ + + + + + + + @@ -627,11 +720,20 @@ + + + + + + + + + @@ -640,6 +742,8 @@ + + @@ -756,6 +860,20 @@ + + + + + + + + + + + + + + @@ -763,6 +881,7 @@ + @@ -809,6 +928,7 @@ + @@ -872,5 +992,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-DSS.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-DSS.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-DSS.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-DSS.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ DSS: libmbim-glib Reference Manual - + - - + + @@ -115,7 +115,7 @@ mbim_message_dss_connect_response_parse (const MbimMessage *message, GError **error);
-

Create a new request for the 'Connect' response command in the 'DSS' service.

+

Parses and returns parameters of the 'Connect' response command in the 'DSS' service.

Parameters

@@ -150,6 +150,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Enumerations-and-Flags.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Enumerations-and-Flags.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Enumerations-and-Flags.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Enumerations-and-Flags.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Enumerations and Flags: libmbim-glib Reference Manual - + - + @@ -384,6 +384,55 @@ mbim_dss_link_state_get_string () + + + + + + + + + + + + + + + + + + + + + + + + + + + +
const gchar * + +mbim_atds_provider_plmn_mode_get_string () +
const gchar * + +mbim_atds_rat_mode_get_string () +
const gchar * + +mbim_pco_type_get_string () +
const gchar * + +mbim_context_source_get_string () +
const gchar * + +mbim_lte_attach_context_operation_get_string () +
const gchar * + +mbim_lte_attach_context_roaming_control_get_string () +
const gchar * + +mbim_lte_attach_state_get_string () +
@@ -397,6 +446,14 @@ enum +MbimAtdsProviderPlmnMode + + +enum +MbimAtdsRatMode + + +enum MbimDeviceType @@ -591,24 +648,51 @@ enum MbimDssLinkState + +enum +MbimPcoType + + +enum +MbimContextSource + + +enum +MbimLteAttachContextOperation + + +enum +MbimLteAttachContextRoamingControl + + +enum +MbimLteAttachState +

Object Hierarchy

-
    GEnum
+
    GEnum
     ├── MbimActivationCommand
     ├── MbimActivationState
+    ├── MbimAtdsProviderPlmnMode
+    ├── MbimAtdsRatMode
     ├── MbimAuthProtocol
     ├── MbimCompression
     ├── MbimContextIpType
+    ├── MbimContextSource
     ├── MbimDeviceType
     ├── MbimDssLinkState
     ├── MbimEmergencyModeState
+    ├── MbimLteAttachContextOperation
+    ├── MbimLteAttachContextRoamingControl
+    ├── MbimLteAttachState
     ├── MbimNetworkIdleHintState
     ├── MbimNwError
     ├── MbimPacketServiceAction
     ├── MbimPacketServiceState
+    ├── MbimPcoType
     ├── MbimPhonebookFlag
     ├── MbimPhonebookState
     ├── MbimPhonebookWriteFlag
@@ -637,7 +721,7 @@
     ├── MbimVisibleProvidersAction
     ├── MbimVoiceCallState
     ╰── MbimVoiceClass
-    GFlags
+    GFlags
     ├── MbimCellularClass
     ├── MbimCtrlCaps
     ├── MbimDataClass
@@ -678,7 +762,7 @@
 

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -708,7 +792,7 @@

Returns

-

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

+

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

[transfer full]

@@ -736,7 +820,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -765,7 +849,7 @@

Returns

-

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

+

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

[transfer full]

@@ -795,7 +879,7 @@

Returns

-

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

+

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

[transfer full]

@@ -824,7 +908,7 @@

Returns

-

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

+

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

[transfer full]

@@ -853,7 +937,7 @@

Returns

-

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

+

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

[transfer full]

@@ -882,7 +966,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -912,7 +996,7 @@

Returns

-

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

+

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

[transfer full]

@@ -940,7 +1024,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -968,7 +1052,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -996,7 +1080,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1024,7 +1108,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1052,7 +1136,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1080,7 +1164,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1110,7 +1194,7 @@

Returns

-

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

+

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

[transfer full]

@@ -1139,7 +1223,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1167,7 +1251,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1195,7 +1279,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1223,7 +1307,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1251,7 +1335,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1279,7 +1363,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1307,7 +1391,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1335,7 +1419,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1363,7 +1447,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1391,7 +1475,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1419,7 +1503,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1447,7 +1531,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1475,7 +1559,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1505,7 +1589,7 @@

Returns

-

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

+

a string with the list of nicknames, or NULL if none given. The returned value should be freed with g_free().

[transfer full]

@@ -1533,7 +1617,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1561,7 +1645,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1589,7 +1673,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1617,7 +1701,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1645,7 +1729,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1673,7 +1757,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1701,7 +1785,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1729,7 +1813,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1757,7 +1841,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1785,7 +1869,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1813,7 +1897,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1841,7 +1925,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1869,7 +1953,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1897,7 +1981,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1925,7 +2009,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1954,7 +2038,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1982,7 +2066,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -2010,7 +2094,206 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

+

[transfer none]

+
+ +
+
+

mbim_atds_provider_plmn_mode_get_string ()

+
const gchar *
+mbim_atds_provider_plmn_mode_get_string
+                               (MbimAtdsProviderPlmnMode val);
+

Gets the nickname string for the MbimAtdsProviderPlmnMode specified at val +.

+
+

Parameters

+
+++++ + + + + + +

val

a MbimAtdsProviderPlmnMode.

 
+
+
+

Returns

+

a string with the nickname, or NULL if not found. Do not free the returned value.

+

[transfer none]

+
+
+
+
+

mbim_atds_rat_mode_get_string ()

+
const gchar *
+mbim_atds_rat_mode_get_string (MbimAtdsRatMode val);
+

Gets the nickname string for the MbimAtdsRatMode specified at val +.

+
+

Parameters

+
+++++ + + + + + +

val

a MbimAtdsRatMode.

 
+
+
+

Returns

+

a string with the nickname, or NULL if not found. Do not free the returned value.

+

[transfer none]

+
+
+
+
+

mbim_pco_type_get_string ()

+
const gchar *
+mbim_pco_type_get_string (MbimPcoType val);
+

Gets the nickname string for the MbimPcoType specified at val +.

+
+

Parameters

+
+++++ + + + + + +

val

a MbimPcoType.

 
+
+
+

Returns

+

a string with the nickname, or NULL if not found. Do not free the returned value.

+

[transfer none]

+
+
+
+
+

mbim_context_source_get_string ()

+
const gchar *
+mbim_context_source_get_string (MbimContextSource val);
+

Gets the nickname string for the MbimContextSource specified at val +.

+
+

Parameters

+
+++++ + + + + + +

val

a MbimContextSource.

 
+
+
+

Returns

+

a string with the nickname, or NULL if not found. Do not free the returned value.

+

[transfer none]

+
+
+
+
+

mbim_lte_attach_context_operation_get_string ()

+
const gchar *
+mbim_lte_attach_context_operation_get_string
+                               (MbimLteAttachContextOperation val);
+

Gets the nickname string for the MbimLteAttachContextOperation specified at val +.

+
+

Parameters

+
+++++ + + + + + +

val

a MbimLteAttachContextOperation.

 
+
+
+

Returns

+

a string with the nickname, or NULL if not found. Do not free the returned value.

+

[transfer none]

+
+
+
+
+

mbim_lte_attach_context_roaming_control_get_string ()

+
const gchar *
+mbim_lte_attach_context_roaming_control_get_string
+                               (MbimLteAttachContextRoamingControl val);
+

Gets the nickname string for the MbimLteAttachContextRoamingControl specified at val +.

+
+

Parameters

+
+++++ + + + + + +

val

a MbimLteAttachContextRoamingControl.

 
+
+
+

Returns

+

a string with the nickname, or NULL if not found. Do not free the returned value.

+

[transfer none]

+
+
+
+
+

mbim_lte_attach_state_get_string ()

+
const gchar *
+mbim_lte_attach_state_get_string (MbimLteAttachState val);
+

Gets the nickname string for the MbimLteAttachState specified at val +.

+
+

Parameters

+
+++++ + + + + + +

val

a MbimLteAttachState.

 
+
+
+

Returns

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -2018,6 +2301,89 @@

Types and Values

+

enum MbimAtdsProviderPlmnMode

+

Provider PLMN mode.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

MBIM_ATDS_PROVIDER_PLMN_MODE_GSM

+

GSM.

+
 

MBIM_ATDS_PROVIDER_PLMN_MODE_UTRAN

+

UTRAN (UMTS).

+
 

MBIM_ATDS_PROVIDER_PLMN_MODE_LTE

+

LTE.

+
 
+
+
+
+
+

enum MbimAtdsRatMode

+

RAT mode preferences.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

MBIM_ATDS_RAT_MODE_AUTOMATIC

+

Automatic.

+
 

MBIM_ATDS_RAT_MODE_2G_ONLY

+

2G only.

+
 

MBIM_ATDS_RAT_MODE_3G_ONLY

+

3G only.

+
 

MBIM_ATDS_RAT_MODE_4G_ONLY

+

4G only.

+
 
+
+
+
+

enum MbimDeviceType

Type of device.

@@ -3066,6 +3432,13 @@   +

MBIM_NW_ERROR_INSUFFICIENT_RESOURCES

+ +

Insufficient resources.

+ +  + +

MBIM_NW_ERROR_MISSING_OR_UNKNOWN_APN

Missing or unknown access point name.

@@ -3073,6 +3446,34 @@   +

MBIM_NW_ERROR_UNKNOWN_PDP_ADDRESS_OR_TYPE

+ +

Unknown PDP address or PDP type.

+ +  + + +

MBIM_NW_ERROR_USER_AUTHENTICATION_FAILED

+ +

User authentication failed.

+ +  + + +

MBIM_NW_ERROR_ACTIVATION_REJECTED_BY_GGSN_OR_GW

+ +

Activation rejected by GGSN, Serving GW or PDN GW.

+ +  + + +

MBIM_NW_ERROR_ACTIVATION_REJECTED_UNSPECIFIED

+ +

Activation rejected, unspecified.

+ +  + +

MBIM_NW_ERROR_SERVICE_OPTION_NOT_SUPPORTED

Service option not supported.

@@ -3101,6 +3502,34 @@   +

MBIM_NW_ERROR_PDP_TYPE_IPV4_ONLY_ALLOWED

+ +

PDP type IPv4 only allowed.

+ +  + + +

MBIM_NW_ERROR_PDP_TYPE_IPV6_ONLY_ALLOWED

+ +

PDP type IPv6 only allowed.

+ +  + + +

MBIM_NW_ERROR_MAXIMUM_NUMBER_OF_PDP_CONTEXTS_REACHED

+ +

Maximum number of PDP contexts reached.

+ +  + + +

MBIM_NW_ERROR_REQUESTED_APN_NOT_SUPPORTED_IN_CURRENT_RAT_AND_PLMN

+ +

Requested APN not supported in current RAT and PLMN combination.

+ +  + +

MBIM_NW_ERROR_SEMANTICALLY_INCORRECT_MESSAGE

Semantically incorrect message.

@@ -3156,6 +3585,20 @@   + +

MBIM_NW_ERROR_APN_RESTRICTION_VALUE_INCOMPATIBLE_WITH_ACTIVE_PDP_CONTEXT

+ +

APN restriction value incompatible with active PDP context.

+ +  + + +

MBIM_NW_ERROR_MULTIPLE_ACCESSES_TO_A_PDN_CONNECTION_NOT_ALLOWED

+ +

Multiple accesses to a PDN connection not allowed.

+ +  +
@@ -4502,9 +4945,191 @@
+
+
+

enum MbimPcoType

+

Type of PCO structure.

+
+

Members

+
+++++ + + + + + + + + + + + + +

MBIM_PCO_TYPE_COMPLETE

+

The PCO structure is complete.

+
 

MBIM_PCO_TYPE_PARTIAL

+

The PCO structure is a subset of what was received from the network.

+
 
+
+
+
+
+

enum MbimContextSource

+

Source of context creation.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

MBIM_CONTEXT_SOURCE_ADMIN

+

Context created by enterprise IT.

+
 

MBIM_CONTEXT_SOURCE_USER

+

Context created by user.

+
 

MBIM_CONTEXT_SOURCE_OPERATOR

+

Context created by operator.

+
 

MBIM_CONTEXT_SOURCE_MODEM

+

Context created by modem manufacturer.

+
 

MBIM_CONTEXT_SOURCE_DEVICE

+

Context created by OS APN database.

+
 
+
+
+
+
+

enum MbimLteAttachContextOperation

+

Command to run when updating LTE attach configuration.

+
+

Members

+
+++++ + + + + + + + + + + + + +

MBIM_LTE_ATTACH_CONTEXT_OPERATION_DEFAULT

+

Overwrite existing contexts.

+
 

MBIM_LTE_ATTACH_CONTEXT_OPERATION_RESTORE_FACTORY

+

Restore factory preconfigured contexts.

+
 
+
+
+
+
+

enum MbimLteAttachContextRoamingControl

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

MBIM_LTE_ATTACH_CONTEXT_ROAMING_CONTROL_HOME

+

Context allowed to be used on home network.

+
 

MBIM_LTE_ATTACH_CONTEXT_ROAMING_CONTROL_PARTNER

+

Context allowed to be used on partner network.

+
 

MBIM_LTE_ATTACH_CONTEXT_ROAMING_CONTROL_NON_PARTNER

+

Context allowed to be used on non-partner network.

+
 
+
+
+
+
+

enum MbimLteAttachState

+

LTE attach state.

+
+

Members

+
+++++ + + + + + + + + + + + + +

MBIM_LTE_ATTACH_STATE_DETACHED

+

Detached.

+
 

MBIM_LTE_ATTACH_STATE_ATTACHED

+

Attached.

+
 
+
+
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Errors.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Errors.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Errors.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Errors.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Errors: libmbim-glib Reference Manual - + - + @@ -89,7 +89,7 @@

Object Hierarchy

-
    GEnum
+
    GEnum
     ├── MbimCoreError
     ├── MbimProtocolError
     ╰── MbimStatusError
@@ -124,7 +124,7 @@
 

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -152,7 +152,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -180,7 +180,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -244,7 +244,14 @@

MBIM_CORE_ERROR_ABORTED

-

Operation aborted..

+

Operation aborted.

+ +  + + +

MBIM_CORE_ERROR_UNKNOWN_STATE

+ +

State is unknown.

  @@ -605,6 +612,13 @@   +

MBIM_STATUS_ERROR_CONTEXT_NOT_SUPPORTED

+ +

ContextType not supported by the operation.

+ +  + +

MBIM_STATUS_ERROR_SMS_UNKNOWN_SMSC_ADDRESS

Unknown SMSC address.

@@ -646,6 +660,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Intel-Firmware-Update.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Intel-Firmware-Update.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Intel-Firmware-Update.html 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Intel-Firmware-Update.html 2019-01-08 13:52:41.000000000 +0100 @@ -0,0 +1,90 @@ + + + + +Intel Firmware Update: libmbim-glib Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Intel Firmware Update

+

Intel Firmware Update

+
+
+

Functions

+ +
+
+

Description

+
+
+

Functions

+
+

mbim_message_intel_firmware_update_modem_reboot_set_new ()

+
MbimMessage *
+mbim_message_intel_firmware_update_modem_reboot_set_new
+                               (GError **error);
+

Create a new request for the 'Modem Reboot' set command in the 'Intel Firmware Update' service.

+
+

Parameters

+
+++++ + + + + + +

error

return location for error or NULL.

 
+
+
+

Returns

+

a newly allocated MbimMessage, which should be freed with mbim_message_unref().

+
+
+
+
+

Types and Values

+
+
+ + + \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Ms-Basic-Connect-Extensions.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Ms-Basic-Connect-Extensions.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Ms-Basic-Connect-Extensions.html 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Ms-Basic-Connect-Extensions.html 2019-01-08 13:52:41.000000000 +0100 @@ -0,0 +1,821 @@ + + + + +Ms Basic Connect Extensions: libmbim-glib Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Ms Basic Connect Extensions

+

Ms Basic Connect Extensions

+
+ +
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
 MbimPcoValue
 MbimLteAttachConfiguration
 MbimLteAttachStatus
+
+
+

Description

+
+
+

Functions

+
+

mbim_pco_value_free ()

+
void
+mbim_pco_value_free (MbimPcoValue *var);
+

Frees the memory allocated for the MbimPcoValue.

+
+

Parameters

+
+++++ + + + + + +

var

a MbimPcoValue.

 
+
+
+
+
+

mbim_lte_attach_configuration_array_free ()

+
void
+mbim_lte_attach_configuration_array_free
+                               (MbimLteAttachConfiguration **array);
+

Frees the memory allocated for the array of MbimLteAttachConfigurations.

+
+

Parameters

+
+++++ + + + + + +

array

a NULL terminated array of MbimLteAttachConfiguration structs.

 
+
+
+
+
+

mbim_lte_attach_status_free ()

+
void
+mbim_lte_attach_status_free (MbimLteAttachStatus *var);
+

Frees the memory allocated for the MbimLteAttachStatus.

+
+

Parameters

+
+++++ + + + + + +

var

a MbimLteAttachStatus.

 
+
+
+
+
+

mbim_message_ms_basic_connect_extensions_pco_query_new ()

+
MbimMessage *
+mbim_message_ms_basic_connect_extensions_pco_query_new
+                               (const MbimPcoValue *pco_value,
+                                GError **error);
+

Create a new request for the 'PCO' query command in the 'Ms Basic Connect Extensions' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pco_value

the 'PcoValue' field, given as a MbimPcoValue.

 

error

return location for error or NULL.

 
+
+
+

Returns

+

a newly allocated MbimMessage, which should be freed with mbim_message_unref().

+
+
+
+
+

mbim_message_ms_basic_connect_extensions_pco_response_parse ()

+
gboolean
+mbim_message_ms_basic_connect_extensions_pco_response_parse
+                               (const MbimMessage *message,
+                                MbimPcoValue **pco_value,
+                                GError **error);
+

Parses and returns parameters of the 'PCO' response command in the 'Ms Basic Connect Extensions' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

pco_value

return location for a newly allocated MbimPcoValue, or NULL if the 'PcoValue' field is not needed. Free the returned value with mbim_pco_value_free().

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+
+
+
+

mbim_message_ms_basic_connect_extensions_pco_notification_parse ()

+
gboolean
+mbim_message_ms_basic_connect_extensions_pco_notification_parse
+                               (const MbimMessage *message,
+                                MbimPcoValue **pco_value,
+                                GError **error);
+

Parses and returns parameters of the 'PCO' notification command in the 'Ms Basic Connect Extensions' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

pco_value

return location for a newly allocated MbimPcoValue, or NULL if the 'PcoValue' field is not needed. Free the returned value with mbim_pco_value_free().

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+
+
+
+

mbim_message_ms_basic_connect_extensions_lte_attach_configuration_query_new ()

+
MbimMessage *
+mbim_message_ms_basic_connect_extensions_lte_attach_configuration_query_new
+                               (GError **error);
+

Create a new request for the 'Lte Attach Configuration' query command in the 'Ms Basic Connect Extensions' service.

+
+

Parameters

+
+++++ + + + + + +

error

return location for error or NULL.

 
+
+
+

Returns

+

a newly allocated MbimMessage, which should be freed with mbim_message_unref().

+
+
+
+
+

mbim_message_ms_basic_connect_extensions_lte_attach_configuration_set_new ()

+
MbimMessage *
+mbim_message_ms_basic_connect_extensions_lte_attach_configuration_set_new
+                               (MbimLteAttachContextOperation operation,
+                                guint32 configuration_count,
+                                const MbimLteAttachConfiguration *const *configurations,
+                                GError **error);
+

Create a new request for the 'Lte Attach Configuration' set command in the 'Ms Basic Connect Extensions' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

operation

the 'Operation' field, given as a MbimLteAttachContextOperation.

 

configuration_count

the 'ConfigurationCount' field, given as a guint32.

 

configurations

the 'Configurations' field, given as an array of MbimLteAttachConfigurations.

 

error

return location for error or NULL.

 
+
+
+

Returns

+

a newly allocated MbimMessage, which should be freed with mbim_message_unref().

+
+
+
+
+

mbim_message_ms_basic_connect_extensions_lte_attach_configuration_response_parse ()

+
gboolean
+mbim_message_ms_basic_connect_extensions_lte_attach_configuration_response_parse
+                               (const MbimMessage *message,
+                                guint32 *configuration_count,
+                                MbimLteAttachConfiguration ***configurations,
+                                GError **error);
+

Parses and returns parameters of the 'Lte Attach Configuration' response command in the 'Ms Basic Connect Extensions' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

configuration_count

return location for a guint32, or NULL if the 'ConfigurationCount' field is not needed.

 

configurations

return location for a newly allocated array of MbimLteAttachConfigurations, or NULL if the 'Configurations' field is not needed. Free the returned value with mbim_lte_attach_configuration_array_free().

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+
+
+
+

mbim_message_ms_basic_connect_extensions_lte_attach_configuration_notification_parse ()

+
gboolean
+mbim_message_ms_basic_connect_extensions_lte_attach_configuration_notification_parse
+                               (const MbimMessage *message,
+                                guint32 *configuration_count,
+                                MbimLteAttachConfiguration ***configurations,
+                                GError **error);
+

Parses and returns parameters of the 'Lte Attach Configuration' notification command in the 'Ms Basic Connect Extensions' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

configuration_count

return location for a guint32, or NULL if the 'ConfigurationCount' field is not needed.

 

configurations

return location for a newly allocated array of MbimLteAttachConfigurations, or NULL if the 'Configurations' field is not needed. Free the returned value with mbim_lte_attach_configuration_array_free().

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+
+
+
+

mbim_message_ms_basic_connect_extensions_lte_attach_status_query_new ()

+
MbimMessage *
+mbim_message_ms_basic_connect_extensions_lte_attach_status_query_new
+                               (GError **error);
+

Create a new request for the 'Lte Attach Status' query command in the 'Ms Basic Connect Extensions' service.

+
+

Parameters

+
+++++ + + + + + +

error

return location for error or NULL.

 
+
+
+

Returns

+

a newly allocated MbimMessage, which should be freed with mbim_message_unref().

+
+
+
+
+

mbim_message_ms_basic_connect_extensions_lte_attach_status_response_parse ()

+
gboolean
+mbim_message_ms_basic_connect_extensions_lte_attach_status_response_parse
+                               (const MbimMessage *message,
+                                MbimLteAttachStatus **lte_attach_status,
+                                GError **error);
+

Parses and returns parameters of the 'Lte Attach Status' response command in the 'Ms Basic Connect Extensions' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

lte_attach_status

return location for a newly allocated MbimLteAttachStatus, or NULL if the 'LteAttachStatus' field is not needed. Free the returned value with mbim_lte_attach_status_free().

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+
+
+
+

mbim_message_ms_basic_connect_extensions_lte_attach_status_notification_parse ()

+
gboolean
+mbim_message_ms_basic_connect_extensions_lte_attach_status_notification_parse
+                               (const MbimMessage *message,
+                                MbimLteAttachStatus **lte_attach_status,
+                                GError **error);
+

Parses and returns parameters of the 'Lte Attach Status' notification command in the 'Ms Basic Connect Extensions' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

lte_attach_status

return location for a newly allocated MbimLteAttachStatus, or NULL if the 'LteAttachStatus' field is not needed. Free the returned value with mbim_lte_attach_status_free().

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+
+
+
+

Types and Values

+
+

MbimPcoValue

+
typedef struct {
+    guint32 session_id;
+    guint32 pco_data_size;
+    guint32 pco_data_type;
+    guint8 *pco_data_buffer;
+} MbimPcoValue;
+
+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

guint32 session_id;

a guint32.

 

guint32 pco_data_size;

a guint32.

 

guint32 pco_data_type;

a guint32.

 

guint8 *pco_data_buffer;

an array of guint8 values.

 
+
+
+
+
+

MbimLteAttachConfiguration

+
typedef struct {
+    guint32 ip_type;
+    guint32 roaming;
+    guint32 source;
+    gchar *access_string;
+    gchar *user_name;
+    gchar *password;
+    guint32 compression;
+    guint32 auth_protocol;
+} MbimLteAttachConfiguration;
+
+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

guint32 ip_type;

a guint32.

 

guint32 roaming;

a guint32.

 

guint32 source;

a guint32.

 

gchar *access_string;

a string.

 

gchar *user_name;

a string.

 

gchar *password;

a string.

 

guint32 compression;

a guint32.

 

guint32 auth_protocol;

a guint32.

 
+
+
+
+
+

MbimLteAttachStatus

+
typedef struct {
+    guint32 lte_attach_state;
+    guint32 ip_type;
+    gchar *access_string;
+    gchar *user_name;
+    gchar *password;
+    guint32 compression;
+    guint32 auth_protocol;
+} MbimLteAttachStatus;
+
+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

guint32 lte_attach_state;

a guint32.

 

guint32 ip_type;

a guint32.

 

gchar *access_string;

a string.

 

gchar *user_name;

a string.

 

gchar *password;

a string.

 

guint32 compression;

a guint32.

 

guint32 auth_protocol;

a guint32.

 
+
+
+
+
+ + + \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-MS-Firmware-ID.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-MS-Firmware-ID.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-MS-Firmware-ID.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-MS-Firmware-ID.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ MS Firmware ID: libmbim-glib Reference Manual - + - - + + - + @@ -19,7 +19,7 @@ Home Up -Prev +Prev Next
@@ -97,7 +97,7 @@ (const MbimMessage *message, const MbimUuid **firmware_id, GError **error); -

Create a new request for the 'FirmwareId' response command in the 'MS Firmware ID' service.

+

Parses and returns parameters of the 'Get' response command in the 'MS Firmware ID' service.

Parameters

@@ -138,6 +138,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-MS-Host-Shutdown.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-MS-Host-Shutdown.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-MS-Host-Shutdown.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-MS-Host-Shutdown.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ MS Host Shutdown: libmbim-glib Reference Manual - + - + - - + + @@ -20,7 +20,7 @@ - +
Home Up PrevNextNext
@@ -85,6 +85,6 @@
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Phonebook.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Phonebook.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Phonebook.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Phonebook.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Phonebook: libmbim-glib Reference Manual - + - + @@ -200,7 +200,7 @@ guint32 *max_number_length, guint32 *max_name, GError **error); -

Create a new request for the 'MaxName' response command in the 'Phonebook' service.

+

Parses and returns parameters of the 'Configuration' response command in the 'Phonebook' service.

Parameters

@@ -266,7 +266,7 @@ guint32 *max_number_length, guint32 *max_name, GError **error); -

Create a new request for the 'MaxName' notification command in the 'Phonebook' service.

+

Parses and returns parameters of the 'Configuration' notification command in the 'Phonebook' service.

Parameters

@@ -369,7 +369,7 @@ guint32 *entry_count, MbimPhonebookEntry ***entries, GError **error); -

Create a new request for the 'Entries' response command in the 'Phonebook' service.

+

Parses and returns parameters of the 'Read' response command in the 'Phonebook' service.

Parameters

@@ -455,7 +455,7 @@ mbim_message_phonebook_delete_response_parse (const MbimMessage *message, GError **error); -

Create a new request for the 'Delete' response command in the 'Phonebook' service.

+

Parses and returns parameters of the 'Delete' response command in the 'Phonebook' service.

Parameters

@@ -543,7 +543,7 @@ mbim_message_phonebook_write_response_parse (const MbimMessage *message, GError **error); -

Create a new request for the 'Write' response command in the 'Phonebook' service.

+

Parses and returns parameters of the 'Write' response command in the 'Phonebook' service.

Parameters

@@ -614,6 +614,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-QMI.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-QMI.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-QMI.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-QMI.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ QMI: libmbim-glib Reference Manual - + - - - - + + + + @@ -18,9 +18,9 @@ Description - - - + + +
HomeUpPrevNextUpPrevNext
@@ -110,7 +118,7 @@ guint32 *qmux_size, const guint8 **qmux, GError **error); -

Create a new request for the 'QMUX' response command in the 'QMI' service.

+

Parses and returns parameters of the 'msg' response command in the 'QMI' service.

Parameters

@@ -150,12 +158,61 @@ is set.

+
+
+

mbim_message_qmi_msg_notification_parse ()

+
gboolean
+mbim_message_qmi_msg_notification_parse
+                               (const MbimMessage *message,
+                                guint32 *qmux_size,
+                                const guint8 **qmux,
+                                GError **error);
+

Parses and returns parameters of the 'msg' notification command in the 'QMI' service.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

message

the MbimMessage.

 

qmux_size

return location for the size of the qmux array.

 

qmux

return location for an array of guint8 values. Do not free the returned value, it is owned by message +.

 

error

return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the message was correctly parsed, FALSE if error +is set.

+
+

Types and Values

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-SMS.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-SMS.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-SMS.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-SMS.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ SMS: libmbim-glib Reference Manual - + - + @@ -377,7 +377,7 @@ guint32 *cdma_short_message_size, gchar **sc_address, GError **error); -

Create a new request for the 'ScAddress' response command in the 'SMS' service.

+

Parses and returns parameters of the 'Configuration' response command in the 'SMS' service.

Parameters

@@ -487,7 +487,7 @@ MbimSmsPduReadRecord ***pdu_messages, MbimSmsCdmaReadRecord ***cdma_messages, GError **error); -

Create a new request for the 'CdmaMessages' response command in the 'SMS' service.

+

Parses and returns parameters of the 'Read' response command in the 'SMS' service.

Parameters

@@ -547,7 +547,7 @@ MbimSmsPduReadRecord ***pdu_messages, MbimSmsCdmaReadRecord ***cdma_messages, GError **error); -

Create a new request for the 'CdmaMessages' notification command in the 'SMS' service.

+

Parses and returns parameters of the 'Read' notification command in the 'SMS' service.

Parameters

@@ -649,7 +649,7 @@ mbim_message_sms_send_response_parse (const MbimMessage *message, guint32 *message_reference, GError **error); -

Create a new request for the 'MessageReference' response command in the 'SMS' service.

+

Parses and returns parameters of the 'Send' response command in the 'SMS' service.

Parameters

@@ -730,7 +730,7 @@ mbim_message_sms_delete_response_parse (const MbimMessage *message, GError **error); -

Create a new request for the 'Delete' response command in the 'SMS' service.

+

Parses and returns parameters of the 'Delete' response command in the 'SMS' service.

Parameters

@@ -795,7 +795,7 @@ MbimSmsStatusFlag *flag, guint32 *message_index, GError **error); -

Create a new request for the 'MessageIndex' response command in the 'SMS' service.

+

Parses and returns parameters of the 'Message Store Status' response command in the 'SMS' service.

Parameters

@@ -843,7 +843,7 @@ MbimSmsStatusFlag *flag, guint32 *message_index, GError **error); -

Create a new request for the 'MessageIndex' notification command in the 'SMS' service.

+

Parses and returns parameters of the 'Message Store Status' notification command in the 'SMS' service.

Parameters

@@ -1089,6 +1089,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-STK.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-STK.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-STK.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-STK.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ STK: libmbim-glib Reference Manual - + - + @@ -185,7 +185,7 @@ mbim_message_stk_pac_response_parse (const MbimMessage *message, const guint8 **pac_support, GError **error); -

Create a new request for the 'PacSupport' response command in the 'STK' service.

+

Parses and returns parameters of the 'Pac' response command in the 'STK' service.

Parameters

@@ -230,7 +230,7 @@ guint32 *data_buffer_size, const guint8 **data_buffer, GError **error); -

Create a new request for the 'DataBuffer' notification command in the 'STK' service.

+

Parses and returns parameters of the 'Pac' notification command in the 'STK' service.

Parameters

@@ -326,7 +326,7 @@ const guint8 **result_data, guint32 *status_words, GError **error); -

Create a new request for the 'StatusWords' response command in the 'STK' service.

+

Parses and returns parameters of the 'Terminal Response' response command in the 'STK' service.

Parameters

@@ -445,7 +445,7 @@ (const MbimMessage *message, const guint8 **envelope_support, GError **error); -

Create a new request for the 'EnvelopeSupport' response command in the 'STK' service.

+

Parses and returns parameters of the 'Envelope' response command in the 'STK' service.

Parameters

@@ -486,6 +486,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-USSD.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-USSD.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-USSD.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-USSD.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ USSD: libmbim-glib Reference Manual - + - + @@ -133,7 +133,7 @@ guint32 *payload_size, const guint8 **payload, GError **error); -

Create a new request for the 'Payload' response command in the 'USSD' service.

+

Parses and returns parameters of the '' response command in the 'USSD' service.

Parameters

@@ -199,7 +199,7 @@ guint32 *payload_size, const guint8 **payload, GError **error); -

Create a new request for the 'Payload' notification command in the 'USSD' service.

+

Parses and returns parameters of the '' notification command in the 'USSD' service.

Parameters

@@ -260,6 +260,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-UUIDs.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-UUIDs.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-UUIDs.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-UUIDs.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ UUIDs: libmbim-glib Reference Manual - + - + @@ -168,6 +168,10 @@ + + + + @@ -210,12 +214,20 @@ + + + + + + + +
#defineMBIM_UUID_ATDS
#define MBIM_UUID_BASIC_CONNECT
#define MBIM_UUID_QMI
#defineMBIM_UUID_INTEL_FIRMWARE_UPDATE
#defineMBIM_UUID_MS_BASIC_CONNECT_EXTENSIONS

Object Hierarchy

-
    GEnum
+
    GEnum
     ├── MbimContextType
     ╰── MbimService
 
@@ -249,7 +261,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -279,7 +291,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -394,7 +406,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -497,7 +509,7 @@

Returns

-

a newly allocated string, which should be freed with g_free().

+

a newly allocated string, which should be freed with g_free().

[transfer full]

@@ -528,7 +540,7 @@

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -583,7 +595,7 @@

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -713,6 +725,34 @@   + +

MBIM_SERVICE_ATDS

+ +

ATT Device service.

+ +  + + +

MBIM_SERVICE_INTEL_FIRMWARE_UPDATE

+ +

Intel firmware update service.

+ +  + + +

MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS

+ +

Microsoft basic connectivity extensions service.

+ +  + + +

MBIM_SERVICE_LAST

+ +

Internal value.

+ +  + @@ -818,7 +858,19 @@

Get the UUID of the MBIM_SERVICE_INVALID service.

Returns

-

a MbimUuid.

+

a MbimUuid.

+

[transfer none]

+
+ +
+
+

MBIM_UUID_ATDS

+
#define MBIM_UUID_ATDS mbim_uuid_from_service (MBIM_SERVICE_ATDS)
+
+

Get the UUID of the MBIM_SERVICE_ATDS service.

+
+

Returns

+

a MbimUuid.

[transfer none]

@@ -830,7 +882,7 @@

Get the UUID of the MBIM_SERVICE_BASIC_CONNECT service.

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -842,7 +894,7 @@

Get the UUID of the MBIM_SERVICE_SMS service.

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -854,7 +906,7 @@

Get the UUID of the MBIM_SERVICE_USSD service.

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -866,7 +918,7 @@

Get the UUID of the MBIM_SERVICE_PHONEBOOK service.

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -878,7 +930,7 @@

Get the UUID of the MBIM_SERVICE_STK service.

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -890,7 +942,7 @@

Get the UUID of the MBIM_SERVICE_AUTH service.

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -902,7 +954,7 @@

Get the UUID of the MBIM_SERVICE_DSS service.

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -914,7 +966,7 @@

Get the UUID of the MBIM_SERVICE_MS_FIRMWARE_ID service.

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -926,7 +978,7 @@

Get the UUID of the MBIM_SERVICE_MS_HOST_SHUTDOWN service.

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -938,7 +990,7 @@

Get the UUID of the MBIM_SERVICE_PROXY_CONTROL service.

Returns

-

a MbimUuid.

+

a MbimUuid.

[transfer none]

@@ -950,13 +1002,37 @@

Get the UUID of the MBIM_SERVICE_QMI service.

Returns

-

a MbimUuid.

+

a MbimUuid.

+

[transfer none]

+
+ +
+
+

MBIM_UUID_INTEL_FIRMWARE_UPDATE

+
#define MBIM_UUID_INTEL_FIRMWARE_UPDATE mbim_uuid_from_service (MBIM_SERVICE_INTEL_FIRMWARE_UPDATE)
+
+

Get the UUID of the MBIM_SERVICE_INTEL_FIRMWARE_UPDATE service.

+
+

Returns

+

a MbimUuid.

+

[transfer none]

+
+
+
+
+

MBIM_UUID_MS_BASIC_CONNECT_EXTENSIONS

+
#define MBIM_UUID_MS_BASIC_CONNECT_EXTENSIONS mbim_uuid_from_service (MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS)
+
+

Get the UUID of the MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS service.

+
+

Returns

+

a MbimUuid.

[transfer none]

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Version-checks.html libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Version-checks.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/libmbim-glib-Version-checks.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/libmbim-glib-Version-checks.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Version checks: libmbim-glib Reference Manual - + - + @@ -124,7 +124,7 @@

MBIM_MINOR_VERSION

-
#define MBIM_MINOR_VERSION (14)
+
#define MBIM_MINOR_VERSION (18)
 

Evaluates to the minor version number of libmbim-glib which this source is compiled against.

@@ -132,7 +132,7 @@

MBIM_MICRO_VERSION

-
#define MBIM_MICRO_VERSION (2)
+
#define MBIM_MICRO_VERSION (0)
 

Evaluates to the micro version number of libmbim-glib which this source compiled against.

@@ -140,6 +140,6 @@
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/MbimDevice.html libmbim-1.18.0/docs/reference/libmbim-glib/html/MbimDevice.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/MbimDevice.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/MbimDevice.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ MbimDevice: libmbim-glib Reference Manual - + - + @@ -1173,6 +1173,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/MbimMessage.html libmbim-1.18.0/docs/reference/libmbim-glib/html/MbimMessage.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/MbimMessage.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/MbimMessage.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ MbimMessage: libmbim-glib Reference Manual - + - + @@ -395,9 +395,9 @@

Object Hierarchy

-
    GBoxed
+
    GBoxed
     ╰── MbimMessage
-    GEnum
+    GEnum
     ├── MbimMessageCommandType
     ╰── MbimMessageType
 
@@ -439,7 +439,7 @@

Returns

-

a newly created MbimMessage, which should be freed with mbim_message_unref().

+

a newly created MbimMessage, which should be freed with mbim_message_unref().

[transfer full]

@@ -467,7 +467,7 @@

Returns

-

a newly created MbimMessage, which should be freed with mbim_message_unref().

+

a newly created MbimMessage, which should be freed with mbim_message_unref().

[transfer full]

@@ -561,7 +561,7 @@

Returns

-

a newly allocated string, which should be freed with g_free().

+

a newly allocated string, which should be freed with g_free().

[transfer full]

@@ -589,7 +589,7 @@

length

-

return location for the size of the output buffer.

+

return location for the size of the output buffer.

[out] @@ -602,7 +602,7 @@

Returns

-

The raw data buffer, or NULL if error +

The raw data buffer, or NULL if error is set.

[transfer none]

@@ -739,7 +739,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -775,7 +775,7 @@

Returns

-

a newly created MbimMessage. The returned value +

a newly created MbimMessage. The returned value should be freed with mbim_message_unref().

[transfer full]

@@ -894,7 +894,7 @@

Returns

-

a newly created MbimMessage. The returned value +

a newly created MbimMessage. The returned value should be freed with mbim_message_unref().

[transfer full]

@@ -993,7 +993,7 @@

Returns

-

a newly created MbimMessage. The returned value +

a newly created MbimMessage. The returned value should be freed with mbim_message_unref().

[transfer full]

@@ -1030,7 +1030,7 @@

Returns

-

a newly created MbimMessage. The returned value +

a newly created MbimMessage. The returned value should be freed with mbim_message_unref().

[transfer full]

@@ -1134,7 +1134,7 @@

Returns

-

a newly created MbimMessage. The returned value +

a newly created MbimMessage. The returned value should be freed with mbim_message_unref().

[transfer full]

@@ -1306,7 +1306,7 @@

length

-

return location for the size of the output buffer.

+

return location for the size of the output buffer.

[out] @@ -1314,7 +1314,7 @@

Returns

-

The raw data buffer, or NULL if empty.

+

The raw data buffer, or NULL if empty.

[transfer none]

@@ -1342,7 +1342,7 @@

Returns

-

a string with the nickname, or NULL if not found. Do not free the returned value.

+

a string with the nickname, or NULL if not found. Do not free the returned value.

[transfer none]

@@ -1511,7 +1511,7 @@

length

-

return location for the size of the output buffer.

+

return location for the size of the output buffer.

[out] @@ -1519,7 +1519,7 @@

Returns

-

The raw data buffer, or NULL if empty.

+

The raw data buffer, or NULL if empty.

[transfer none]

@@ -1627,7 +1627,7 @@

length

-

return location for the size of the output buffer.

+

return location for the size of the output buffer.

[out] @@ -1635,7 +1635,7 @@

Returns

-

The raw data buffer, or NULL if empty.

+

The raw data buffer, or NULL if empty.

[transfer none]

@@ -1867,6 +1867,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/MbimProxy.html libmbim-1.18.0/docs/reference/libmbim-glib/html/MbimProxy.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/MbimProxy.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/MbimProxy.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ MbimProxy: libmbim-glib Reference Manual - + - + @@ -231,6 +231,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/object-tree.html libmbim-1.18.0/docs/reference/libmbim-glib/html/object-tree.html --- libmbim-1.14.2/docs/reference/libmbim-glib/html/object-tree.html 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/object-tree.html 2019-01-08 13:52:41.000000000 +0100 @@ -3,12 +3,12 @@ Object Hierarchy: libmbim-glib Reference Manual - + - + @@ -26,13 +26,18 @@ GObject ├── MbimDevice ╰── MbimProxy - GEnum + GEnum ├── MbimActivationCommand ├── MbimActivationState + ├── MbimAtdsProviderPlmnMode + ├── MbimAtdsRatMode ├── MbimAuthProtocol + ├── MbimCidAtds ├── MbimCidAuth ├── MbimCidBasicConnect ├── MbimCidDss + ├── MbimCidIntelFirmwareUpdate + ├── MbimCidMsBasicConnectExtensions ├── MbimCidMsFirmwareId ├── MbimCidMsHostShutdown ├── MbimCidPhonebook @@ -43,17 +48,22 @@ ├── MbimCidUssd ├── MbimCompression ├── MbimContextIpType + ├── MbimContextSource ├── MbimContextType ├── MbimCoreError ├── MbimDeviceType ├── MbimDssLinkState ├── MbimEmergencyModeState + ├── MbimLteAttachContextOperation + ├── MbimLteAttachContextRoamingControl + ├── MbimLteAttachState ├── MbimMessageCommandType ├── MbimMessageType ├── MbimNetworkIdleHintState ├── MbimNwError ├── MbimPacketServiceAction ├── MbimPacketServiceState + ├── MbimPcoType ├── MbimPhonebookFlag ├── MbimPhonebookState ├── MbimPhonebookWriteFlag @@ -85,7 +95,7 @@ ├── MbimVisibleProvidersAction ├── MbimVoiceCallState ╰── MbimVoiceClass - GFlags + GFlags ├── MbimCellularClass ├── MbimCtrlCaps ├── MbimDataClass @@ -95,11 +105,11 @@ ├── MbimRegistrationFlag ├── MbimSimClass ╰── MbimSmsCaps - GBoxed + GBoxed ╰── MbimMessage +
Generated by GTK-Doc V1.29 \ No newline at end of file diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/html/style.css libmbim-1.18.0/docs/reference/libmbim-glib/html/style.css --- libmbim-1.14.2/docs/reference/libmbim-glib/html/style.css 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/html/style.css 2019-01-08 13:52:41.000000000 +0100 @@ -30,6 +30,10 @@ vertical-align: top; } +span.nowrap { + white-space: nowrap; +} + div.gallery-float { float: left; diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/libmbim-glib-common.sections libmbim-1.18.0/docs/reference/libmbim-glib/libmbim-glib-common.sections --- libmbim-1.14.2/docs/reference/libmbim-glib/libmbim-glib-common.sections 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/libmbim-glib-common.sections 2019-01-08 13:16:16.000000000 +0100 @@ -13,6 +13,7 @@ MbimContextType MbimUuid MBIM_UUID_INVALID +MBIM_UUID_ATDS MBIM_UUID_BASIC_CONNECT MBIM_UUID_SMS MBIM_UUID_USSD @@ -24,6 +25,8 @@ MBIM_UUID_MS_HOST_SHUTDOWN MBIM_UUID_PROXY_CONTROL MBIM_UUID_QMI +MBIM_UUID_INTEL_FIRMWARE_UPDATE +MBIM_UUID_MS_BASIC_CONNECT_EXTENSIONS mbim_service_get_string mbim_service_lookup_name @@ -46,6 +49,7 @@
mbim-cid +MbimCidAtds MbimCidBasicConnect MbimCidSms MbimCidUssd @@ -57,11 +61,14 @@ MbimCidMsHostShutdown MbimCidProxyControl MbimCidQmi +MbimCidIntelFirmwareUpdate +MbimCidMsBasicConnectExtensions mbim_cid_can_set mbim_cid_can_query mbim_cid_can_notify mbim_cid_get_printable +mbim_cid_atds_get_string mbim_cid_basic_connect_get_string mbim_cid_sms_get_string mbim_cid_ussd_get_string @@ -73,7 +80,10 @@ mbim_cid_ms_host_shutdown_get_string mbim_cid_proxy_control_get_string mbim_cid_qmi_get_string +mbim_cid_intel_firmware_update_get_string +mbim_cid_ms_basic_connect_extensions_get_string +mbim_cid_atds_build_string_from_mask mbim_cid_basic_connect_build_string_from_mask mbim_cid_sms_build_string_from_mask mbim_cid_ussd_build_string_from_mask @@ -85,7 +95,10 @@ mbim_cid_ms_host_shutdown_build_string_from_mask mbim_cid_proxy_control_build_string_from_mask mbim_cid_qmi_build_string_from_mask +mbim_cid_intel_firmware_update_build_string_from_mask +mbim_cid_ms_basic_connect_extensions_build_string_from_mask +MBIM_TYPE_CID_ATDS MBIM_TYPE_CID_AUTH MBIM_TYPE_CID_BASIC_CONNECT MBIM_TYPE_CID_DSS @@ -97,6 +110,9 @@ MBIM_TYPE_CID_MS_HOST_SHUTDOWN MBIM_TYPE_CID_PROXY_CONTROL MBIM_TYPE_CID_QMI +MBIM_TYPE_CID_INTEL_FIRMWARE_UPDATE +MBIM_TYPE_CID_MS_BASIC_CONNECT_EXTENSIONS +mbim_cid_atds_get_type mbim_cid_auth_get_type mbim_cid_basic_connect_get_type mbim_cid_dss_get_type @@ -108,6 +124,8 @@ mbim_cid_ms_host_shutdown_get_type mbim_cid_proxy_control_get_type mbim_cid_qmi_get_type +mbim_cid_intel_firmware_update_get_type +mbim_cid_ms_basic_connect_extensions_get_type
@@ -245,6 +263,8 @@
mbim-enums +MbimAtdsProviderPlmnMode +MbimAtdsRatMode MbimDeviceType MbimCellularClass MbimVoiceClass @@ -294,6 +314,11 @@ MbimNetworkIdleHintState MbimEmergencyModeState MbimDssLinkState +MbimPcoType +MbimContextSource +MbimLteAttachContextOperation +MbimLteAttachContextRoamingControl +MbimLteAttachState mbim_device_type_get_string mbim_cellular_class_build_string_from_mask @@ -343,6 +368,13 @@ mbim_network_idle_hint_state_get_string mbim_emergency_mode_state_get_string mbim_dss_link_state_get_string +mbim_atds_provider_plmn_mode_get_string +mbim_atds_rat_mode_get_string +mbim_pco_type_get_string +mbim_context_source_get_string +mbim_lte_attach_context_operation_get_string +mbim_lte_attach_context_roaming_control_get_string +mbim_lte_attach_state_get_string mbim_device_type_build_string_from_mask mbim_cellular_class_get_string @@ -394,9 +426,18 @@ mbim_network_idle_hint_state_build_string_from_mask mbim_emergency_mode_state_build_string_from_mask mbim_dss_link_state_build_string_from_mask +mbim_atds_provider_plmn_mode_build_string_from_mask +mbim_atds_rat_mode_build_string_from_mask +mbim_pco_type_build_string_from_mask +mbim_context_source_build_string_from_mask +mbim_lte_attach_context_operation_build_string_from_mask +mbim_lte_attach_context_roaming_control_build_string_from_mask +mbim_lte_attach_state_build_string_from_mask MBIM_TYPE_ACTIVATION_COMMAND MBIM_TYPE_ACTIVATION_STATE +MBIM_TYPE_ATDS_PROVIDER_PLMN_MODE +MBIM_TYPE_ATDS_RAT_MODE MBIM_TYPE_AUTH_PROTOCOL MBIM_TYPE_CELLULAR_CLASS MBIM_TYPE_COMPRESSION @@ -448,6 +489,11 @@ MBIM_TYPE_NETWORK_IDLE_HINT_STATE MBIM_TYPE_EMERGENCY_MODE_STATE MBIM_TYPE_DSS_LINK_STATE +MBIM_TYPE_PCO_TYPE +MBIM_TYPE_CONTEXT_SOURCE +MBIM_TYPE_LTE_ATTACH_CONTEXT_OPERATION +MBIM_TYPE_LTE_ATTACH_CONTEXT_ROAMING_CONTROL +MBIM_TYPE_LTE_ATTACH_STATE mbim_activation_command_get_type mbim_activation_state_get_type mbim_auth_protocol_get_type @@ -501,6 +547,13 @@ mbim_network_idle_hint_state_get_type mbim_emergency_mode_state_get_type mbim_dss_link_state_get_type +mbim_atds_provider_plmn_mode_get_type +mbim_atds_rat_mode_get_type +mbim_pco_type_get_type +mbim_context_source_get_type +mbim_lte_attach_context_operation_get_type +mbim_lte_attach_context_roaming_control_get_type +mbim_lte_attach_state_get_type
@@ -544,4 +597,7 @@ MBIM_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH mbim_message_device_service_subscriber_list_response_parse mbim_message_device_service_subscriber_list_set_new + +MbimDeprecatedCidBasicConnect +MbimDeprecatedRegistrationFlag
diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/libmbim-glib-docs.xml libmbim-1.18.0/docs/reference/libmbim-glib/libmbim-glib-docs.xml --- libmbim-1.14.2/docs/reference/libmbim-glib/libmbim-glib-docs.xml 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/libmbim-glib-docs.xml 2019-01-08 13:51:41.000000000 +0100 @@ -11,7 +11,13 @@ for libmbim-glib &version; - 2013-2014 + 2013 + 2014 + 2015 + 2016 + 2017 + 2018 + 2019 The libmbim-glib authors @@ -62,13 +68,28 @@ - Other Services + Microsoft-defined services + + + + + Qualcomm-defined services + AT&T-defined services + + + + + Intel-defined Services + + + + Compatibility diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/libmbim-glib-sections.txt libmbim-1.18.0/docs/reference/libmbim-glib/libmbim-glib-sections.txt --- libmbim-1.14.2/docs/reference/libmbim-glib/libmbim-glib-sections.txt 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/libmbim-glib-sections.txt 2019-01-08 13:52:41.000000000 +0100 @@ -13,6 +13,7 @@ MbimContextType MbimUuid MBIM_UUID_INVALID +MBIM_UUID_ATDS MBIM_UUID_BASIC_CONNECT MBIM_UUID_SMS MBIM_UUID_USSD @@ -24,6 +25,8 @@ MBIM_UUID_MS_HOST_SHUTDOWN MBIM_UUID_PROXY_CONTROL MBIM_UUID_QMI +MBIM_UUID_INTEL_FIRMWARE_UPDATE +MBIM_UUID_MS_BASIC_CONNECT_EXTENSIONS mbim_service_get_string mbim_service_lookup_name @@ -46,6 +49,7 @@
mbim-cid +MbimCidAtds MbimCidBasicConnect MbimCidSms MbimCidUssd @@ -57,11 +61,14 @@ MbimCidMsHostShutdown MbimCidProxyControl MbimCidQmi +MbimCidIntelFirmwareUpdate +MbimCidMsBasicConnectExtensions mbim_cid_can_set mbim_cid_can_query mbim_cid_can_notify mbim_cid_get_printable +mbim_cid_atds_get_string mbim_cid_basic_connect_get_string mbim_cid_sms_get_string mbim_cid_ussd_get_string @@ -73,7 +80,10 @@ mbim_cid_ms_host_shutdown_get_string mbim_cid_proxy_control_get_string mbim_cid_qmi_get_string +mbim_cid_intel_firmware_update_get_string +mbim_cid_ms_basic_connect_extensions_get_string +mbim_cid_atds_build_string_from_mask mbim_cid_basic_connect_build_string_from_mask mbim_cid_sms_build_string_from_mask mbim_cid_ussd_build_string_from_mask @@ -85,7 +95,10 @@ mbim_cid_ms_host_shutdown_build_string_from_mask mbim_cid_proxy_control_build_string_from_mask mbim_cid_qmi_build_string_from_mask +mbim_cid_intel_firmware_update_build_string_from_mask +mbim_cid_ms_basic_connect_extensions_build_string_from_mask +MBIM_TYPE_CID_ATDS MBIM_TYPE_CID_AUTH MBIM_TYPE_CID_BASIC_CONNECT MBIM_TYPE_CID_DSS @@ -97,6 +110,9 @@ MBIM_TYPE_CID_MS_HOST_SHUTDOWN MBIM_TYPE_CID_PROXY_CONTROL MBIM_TYPE_CID_QMI +MBIM_TYPE_CID_INTEL_FIRMWARE_UPDATE +MBIM_TYPE_CID_MS_BASIC_CONNECT_EXTENSIONS +mbim_cid_atds_get_type mbim_cid_auth_get_type mbim_cid_basic_connect_get_type mbim_cid_dss_get_type @@ -108,6 +124,8 @@ mbim_cid_ms_host_shutdown_get_type mbim_cid_proxy_control_get_type mbim_cid_qmi_get_type +mbim_cid_intel_firmware_update_get_type +mbim_cid_ms_basic_connect_extensions_get_type
@@ -245,6 +263,8 @@
mbim-enums +MbimAtdsProviderPlmnMode +MbimAtdsRatMode MbimDeviceType MbimCellularClass MbimVoiceClass @@ -294,6 +314,11 @@ MbimNetworkIdleHintState MbimEmergencyModeState MbimDssLinkState +MbimPcoType +MbimContextSource +MbimLteAttachContextOperation +MbimLteAttachContextRoamingControl +MbimLteAttachState mbim_device_type_get_string mbim_cellular_class_build_string_from_mask @@ -343,6 +368,13 @@ mbim_network_idle_hint_state_get_string mbim_emergency_mode_state_get_string mbim_dss_link_state_get_string +mbim_atds_provider_plmn_mode_get_string +mbim_atds_rat_mode_get_string +mbim_pco_type_get_string +mbim_context_source_get_string +mbim_lte_attach_context_operation_get_string +mbim_lte_attach_context_roaming_control_get_string +mbim_lte_attach_state_get_string mbim_device_type_build_string_from_mask mbim_cellular_class_get_string @@ -394,9 +426,18 @@ mbim_network_idle_hint_state_build_string_from_mask mbim_emergency_mode_state_build_string_from_mask mbim_dss_link_state_build_string_from_mask +mbim_atds_provider_plmn_mode_build_string_from_mask +mbim_atds_rat_mode_build_string_from_mask +mbim_pco_type_build_string_from_mask +mbim_context_source_build_string_from_mask +mbim_lte_attach_context_operation_build_string_from_mask +mbim_lte_attach_context_roaming_control_build_string_from_mask +mbim_lte_attach_state_build_string_from_mask MBIM_TYPE_ACTIVATION_COMMAND MBIM_TYPE_ACTIVATION_STATE +MBIM_TYPE_ATDS_PROVIDER_PLMN_MODE +MBIM_TYPE_ATDS_RAT_MODE MBIM_TYPE_AUTH_PROTOCOL MBIM_TYPE_CELLULAR_CLASS MBIM_TYPE_COMPRESSION @@ -448,6 +489,11 @@ MBIM_TYPE_NETWORK_IDLE_HINT_STATE MBIM_TYPE_EMERGENCY_MODE_STATE MBIM_TYPE_DSS_LINK_STATE +MBIM_TYPE_PCO_TYPE +MBIM_TYPE_CONTEXT_SOURCE +MBIM_TYPE_LTE_ATTACH_CONTEXT_OPERATION +MBIM_TYPE_LTE_ATTACH_CONTEXT_ROAMING_CONTROL +MBIM_TYPE_LTE_ATTACH_STATE mbim_activation_command_get_type mbim_activation_state_get_type mbim_auth_protocol_get_type @@ -501,6 +547,13 @@ mbim_network_idle_hint_state_get_type mbim_emergency_mode_state_get_type mbim_dss_link_state_get_type +mbim_atds_provider_plmn_mode_get_type +mbim_atds_rat_mode_get_type +mbim_pco_type_get_type +mbim_context_source_get_type +mbim_lte_attach_context_operation_get_type +mbim_lte_attach_context_roaming_control_get_type +mbim_lte_attach_state_get_type
@@ -544,6 +597,9 @@ MBIM_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH mbim_message_device_service_subscriber_list_response_parse mbim_message_device_service_subscriber_list_set_new + +MbimDeprecatedCidBasicConnect +MbimDeprecatedRegistrationFlag
@@ -833,4 +889,72 @@ mbim_message_qmi_msg_set_new mbim_message_qmi_msg_response_parse +mbim_message_qmi_msg_notification_parse +
+ +
+mbim-atds +ATDS + +MbimAtdsProvider +mbim_atds_provider_array_free + + +mbim_message_atds_signal_query_new +mbim_message_atds_signal_response_parse + + +mbim_message_atds_location_query_new +mbim_message_atds_location_response_parse + + +mbim_message_atds_operators_query_new +mbim_message_atds_operators_response_parse + + +mbim_message_atds_rat_query_new +mbim_message_atds_rat_set_new +mbim_message_atds_rat_response_parse + + +mbim_message_atds_register_state_query_new +mbim_message_atds_register_state_response_parse +
+ +
+mbim-intel-firmware-update +Intel Firmware Update + + +mbim_message_intel_firmware_update_modem_reboot_set_new +
+ +
+mbim-ms-basic-connect-extensions +Ms Basic Connect Extensions + +MbimPcoValue +mbim_pco_value_free + +MbimLteAttachConfiguration +mbim_lte_attach_configuration_array_free + +MbimLteAttachStatus +mbim_lte_attach_status_free + + +mbim_message_ms_basic_connect_extensions_pco_query_new +mbim_message_ms_basic_connect_extensions_pco_response_parse +mbim_message_ms_basic_connect_extensions_pco_notification_parse + + +mbim_message_ms_basic_connect_extensions_lte_attach_configuration_query_new +mbim_message_ms_basic_connect_extensions_lte_attach_configuration_set_new +mbim_message_ms_basic_connect_extensions_lte_attach_configuration_response_parse +mbim_message_ms_basic_connect_extensions_lte_attach_configuration_notification_parse + + +mbim_message_ms_basic_connect_extensions_lte_attach_status_query_new +mbim_message_ms_basic_connect_extensions_lte_attach_status_response_parse +mbim_message_ms_basic_connect_extensions_lte_attach_status_notification_parse
diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/libmbim-glib.types libmbim-1.18.0/docs/reference/libmbim-glib/libmbim-glib.types --- libmbim-1.14.2/docs/reference/libmbim-glib/libmbim-glib.types 2017-08-08 13:44:20.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/libmbim-glib.types 2019-01-08 13:52:41.000000000 +0100 @@ -1,10 +1,15 @@ mbim_activation_command_get_type mbim_activation_state_get_type +mbim_atds_provider_plmn_mode_get_type +mbim_atds_rat_mode_get_type mbim_auth_protocol_get_type mbim_cellular_class_get_type +mbim_cid_atds_get_type mbim_cid_auth_get_type mbim_cid_basic_connect_get_type mbim_cid_dss_get_type +mbim_cid_intel_firmware_update_get_type +mbim_cid_ms_basic_connect_extensions_get_type mbim_cid_ms_firmware_id_get_type mbim_cid_ms_host_shutdown_get_type mbim_cid_phonebook_get_type @@ -15,6 +20,7 @@ mbim_cid_ussd_get_type mbim_compression_get_type mbim_context_ip_type_get_type +mbim_context_source_get_type mbim_context_type_get_type mbim_core_error_get_type mbim_ctrl_caps_get_type @@ -24,6 +30,9 @@ mbim_dss_link_state_get_type mbim_emergency_mode_state_get_type mbim_ip_configuration_available_flag_get_type +mbim_lte_attach_context_operation_get_type +mbim_lte_attach_context_roaming_control_get_type +mbim_lte_attach_state_get_type mbim_message_command_type_get_type mbim_message_get_type mbim_message_type_get_type @@ -31,6 +40,7 @@ mbim_nw_error_get_type mbim_packet_service_action_get_type mbim_packet_service_state_get_type +mbim_pco_type_get_type mbim_phonebook_flag_get_type mbim_phonebook_state_get_type mbim_phonebook_write_flag_get_type diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/Makefile.am libmbim-1.18.0/docs/reference/libmbim-glib/Makefile.am --- libmbim-1.14.2/docs/reference/libmbim-glib/Makefile.am 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/Makefile.am 2019-01-08 13:16:16.000000000 +0100 @@ -17,7 +17,10 @@ $(top_builddir)/src/libmbim-glib/generated/mbim-dss.sections \ $(top_builddir)/src/libmbim-glib/generated/mbim-ms-firmware-id.sections \ $(top_builddir)/src/libmbim-glib/generated/mbim-ms-host-shutdown.sections \ - $(top_builddir)/src/libmbim-glib/generated/mbim-qmi.sections + $(top_builddir)/src/libmbim-glib/generated/mbim-qmi.sections \ + $(top_builddir)/src/libmbim-glib/generated/mbim-atds.sections \ + $(top_builddir)/src/libmbim-glib/generated/mbim-intel-firmware-update.sections \ + $(top_builddir)/src/libmbim-glib/generated/mbim-ms-basic-connect-extensions.sections $(DOC_MODULE)-sections.mstamp: $(ALL_SECTIONS) $(AM_V_GEN) \ @@ -28,7 +31,7 @@ BUILT_SOURCES = $(DOC_MODULE)-sections.mstamp # Extra options to supply to gtkdoc-scan -SCAN_OPTIONS = --rebuild-types +SCAN_OPTIONS = --rebuild-types --deprecated-guards="MBIM_DISABLE_DEPRECATED" # The directory containing the source code. DOC_SOURCE_DIR = \ diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/Makefile.in libmbim-1.18.0/docs/reference/libmbim-glib/Makefile.in --- libmbim-1.14.2/docs/reference/libmbim-glib/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -190,6 +190,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -216,6 +218,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -264,9 +271,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -294,12 +305,15 @@ $(top_builddir)/src/libmbim-glib/generated/mbim-dss.sections \ $(top_builddir)/src/libmbim-glib/generated/mbim-ms-firmware-id.sections \ $(top_builddir)/src/libmbim-glib/generated/mbim-ms-host-shutdown.sections \ - $(top_builddir)/src/libmbim-glib/generated/mbim-qmi.sections + $(top_builddir)/src/libmbim-glib/generated/mbim-qmi.sections \ + $(top_builddir)/src/libmbim-glib/generated/mbim-atds.sections \ + $(top_builddir)/src/libmbim-glib/generated/mbim-intel-firmware-update.sections \ + $(top_builddir)/src/libmbim-glib/generated/mbim-ms-basic-connect-extensions.sections BUILT_SOURCES = $(DOC_MODULE)-sections.mstamp # Extra options to supply to gtkdoc-scan -SCAN_OPTIONS = --rebuild-types +SCAN_OPTIONS = --rebuild-types --deprecated-guards="MBIM_DISABLE_DEPRECATED" # The directory containing the source code. DOC_SOURCE_DIR = \ @@ -401,34 +415,34 @@ @GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp #### setup #### -GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V)) -GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_@AM_V@) +GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; #### scan #### -GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V)) -GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_@AM_V@) +GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; -GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V)) -GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_@AM_V@) +GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; #### xml #### -GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V)) -GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XML = $(GTK_DOC_V_XML_@AM_V@) +GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_@AM_DEFAULT_V@) GTK_DOC_V_XML_0 = @echo " DOC Building XML"; #### html #### -GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V)) -GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_@AM_V@) +GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_@AM_DEFAULT_V@) GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; -GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V)) -GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_@AM_V@) +GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_@AM_DEFAULT_V@) GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; #### pdf #### -GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V)) -GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_@AM_V@) +GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_@AM_DEFAULT_V@) GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am @@ -451,8 +465,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_srcdir)/gtk-doc.make $(am__empty): @@ -479,7 +493,10 @@ cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -659,38 +676,38 @@ setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ - if test "x$$files" != "x" ; then \ - for file in $$files ; do \ - destdir=`dirname $(abs_builddir)/$$file`; \ - test -d "$$destdir" || mkdir -p "$$destdir"; \ - test -f $(abs_srcdir)/$$file && \ - cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ - done; \ - fi; \ + files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ fi $(AM_V_at)touch setup-build.stamp scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ - scanobj_options=""; \ - gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ - if test "$$?" = "0"; then \ - if test "x$(V)" = "x1"; then \ - scanobj_options="--verbose"; \ - fi; \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ fi; \ - CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ - gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ - for i in $(SCANOBJ_FILES) ; do \ - test -f $$i || touch $$i ; \ - done \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ fi $(AM_V_at)touch scan-build.stamp @@ -700,7 +717,7 @@ sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp @@ -708,6 +725,9 @@ sgml.stamp: sgml-build.stamp @true +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ @@ -735,12 +755,8 @@ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ - if test -f $(abs_srcdir)/$$file ; then \ - cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ - fi; \ - if test -f $(abs_builddir)/$$file ; then \ - cp $(abs_builddir)/$$file $(abs_builddir)/html; \ - fi; \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp diff -Nru libmbim-1.14.2/docs/reference/libmbim-glib/version.xml libmbim-1.18.0/docs/reference/libmbim-glib/version.xml --- libmbim-1.14.2/docs/reference/libmbim-glib/version.xml 2017-08-08 13:43:32.000000000 +0200 +++ libmbim-1.18.0/docs/reference/libmbim-glib/version.xml 2019-01-08 13:52:24.000000000 +0100 @@ -1 +1 @@ -1.14.2 +1.18.0 diff -Nru libmbim-1.14.2/docs/reference/Makefile.in libmbim-1.18.0/docs/reference/Makefile.in --- libmbim-1.14.2/docs/reference/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/docs/reference/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -135,7 +135,7 @@ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -243,6 +243,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -269,6 +271,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -317,9 +324,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -349,8 +360,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -467,7 +478,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libmbim-1.14.2/gtk-doc.make libmbim-1.18.0/gtk-doc.make --- libmbim-1.14.2/gtk-doc.make 2017-01-26 22:08:45.000000000 +0100 +++ libmbim-1.18.0/gtk-doc.make 2018-03-20 21:33:15.000000000 +0100 @@ -81,55 +81,54 @@ #### setup #### -GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V)) -GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_@AM_V@) +GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ - if test "x$$files" != "x" ; then \ - for file in $$files ; do \ - destdir=`dirname $(abs_builddir)/$$file`; \ - test -d "$$destdir" || mkdir -p "$$destdir"; \ - test -f $(abs_srcdir)/$$file && \ - cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ - done; \ - fi; \ + files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ fi $(AM_V_at)touch setup-build.stamp - #### scan #### -GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V)) -GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_@AM_V@) +GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; -GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V)) -GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_@AM_V@) +GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ - scanobj_options=""; \ - gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ - if test "$$?" = "0"; then \ - if test "x$(V)" = "x1"; then \ - scanobj_options="--verbose"; \ - fi; \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ fi; \ - CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ - gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ - for i in $(SCANOBJ_FILES) ; do \ - test -f $$i || touch $$i ; \ - done \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ fi $(AM_V_at)touch scan-build.stamp @@ -138,14 +137,14 @@ #### xml #### -GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V)) -GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XML=$(GTK_DOC_V_XML_@AM_V@) +GTK_DOC_V_XML_=$(GTK_DOC_V_XML_@AM_DEFAULT_V@) GTK_DOC_V_XML_0=@echo " DOC Building XML"; sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp @@ -153,6 +152,9 @@ sgml.stamp: sgml-build.stamp @true +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ @@ -166,12 +168,12 @@ #### html #### -GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V)) -GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_@AM_V@) +GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_@AM_DEFAULT_V@) GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; -GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V)) -GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_@AM_V@) +GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_@AM_DEFAULT_V@) GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) @@ -190,20 +192,16 @@ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ - if test -f $(abs_srcdir)/$$file ; then \ - cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ - fi; \ - if test -f $(abs_builddir)/$$file ; then \ - cp $(abs_builddir)/$$file $(abs_builddir)/html; \ - fi; \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp #### pdf #### -GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V)) -GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_@AM_V@) +GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_@AM_DEFAULT_V@) GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) diff -Nru libmbim-1.14.2/INSTALL libmbim-1.18.0/INSTALL --- libmbim-1.14.2/INSTALL 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/INSTALL 2019-01-08 13:52:19.000000000 +0100 @@ -1,8 +1,8 @@ Installation Instructions ************************* -Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, -Inc. + Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software +Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -12,97 +12,96 @@ Basic Installation ================== - Briefly, the shell command `./configure && make && make install' + Briefly, the shell command './configure && make && make install' should configure, build, and install this package. The following -more-detailed instructions are generic; see the `README' file for +more-detailed instructions are generic; see the 'README' file for instructions specific to this package. Some packages provide this -`INSTALL' file but do not implement all of the features documented +'INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. - The `configure' shell script attempts to guess correct values for + The 'configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that +those values to create a 'Makefile' in each directory of the package. +It may also create one or more '.h' files containing system-dependent +definitions. Finally, it creates a shell script 'config.status' that you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). +file 'config.log' containing compiler output (useful mainly for +debugging 'configure'). - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. Caching is -disabled by default to prevent problems with accidental use of stale -cache files. + It can also use an optional file (typically called 'config.cache' and +enabled with '--cache-file=config.cache' or simply '-C') that saves the +results of its tests to speed up reconfiguring. Caching is disabled by +default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can +to figure out how 'configure' could check whether to do them, and mail +diffs or instructions to the address given in the 'README' so they can be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you +some point 'config.cache' contains results you don't want to keep, you may remove or edit it. - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You need `configure.ac' if -you want to change it or regenerate `configure' using a newer version -of `autoconf'. + The file 'configure.ac' (or 'configure.in') is used to create +'configure' by a program called 'autoconf'. You need 'configure.ac' if +you want to change it or regenerate 'configure' using a newer version of +'autoconf'. The simplest way to compile this package is: - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. + 1. 'cd' to the directory containing the package's source code and type + './configure' to configure the package for your system. - Running `configure' might take a while. While running, it prints + Running 'configure' might take a while. While running, it prints some messages telling which features it is checking for. - 2. Type `make' to compile the package. + 2. Type 'make' to compile the package. - 3. Optionally, type `make check' to run any self-tests that come with + 3. Optionally, type 'make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. - 4. Type `make install' to install the programs and any data files and + 4. Type 'make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular - user, and only the `make install' phase executed with root + user, and only the 'make install' phase executed with root privileges. - 5. Optionally, type `make installcheck' to repeat any self-tests, but + 5. Optionally, type 'make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a - regular user, particularly if the prior `make install' required + regular user, particularly if the prior 'make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly + source code directory by typing 'make clean'. To also remove the + files that 'configure' created (so you can compile the package for + a different kind of computer), type 'make distclean'. There is + also a 'make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. - 7. Often, you can also type `make uninstall' to remove the installed + 7. Often, you can also type 'make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. - 8. Some packages, particularly those that use Automake, provide `make + 8. Some packages, particularly those that use Automake, provide 'make distcheck', which can by used by developers to test that all other - targets like `make install' and `make uninstall' work correctly. + targets like 'make install' and 'make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that -the `configure' script does not know about. Run `./configure --help' +the 'configure' script does not know about. Run './configure --help' for details on some of the pertinent environment variables. - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: + You can give 'configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here is +an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix @@ -113,21 +112,21 @@ You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you can use GNU `make'. `cd' to the +own directory. To do this, you can use GNU 'make'. 'cd' to the directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. This -is known as a "VPATH" build. +the 'configure' script. 'configure' automatically checks for the source +code in the directory that 'configure' is in and in '..'. This is known +as a "VPATH" build. - With a non-GNU `make', it is safer to compile the package for one + With a non-GNU 'make', it is safer to compile the package for one architecture at a time in the source code directory. After you have -installed the package for one architecture, use `make distclean' before +installed the package for one architecture, use 'make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or -"universal" binaries--by specifying multiple `-arch' options to the -compiler but only a single `-arch' option to the preprocessor. Like +"universal" binaries--by specifying multiple '-arch' options to the +compiler but only a single '-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ @@ -136,105 +135,104 @@ This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results -using the `lipo' tool if you have problems. +using the 'lipo' tool if you have problems. Installation Names ================== - By default, `make install' installs the package's commands under -`/usr/local/bin', include files under `/usr/local/include', etc. You -can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX', where PREFIX must be an + By default, 'make install' installs the package's commands under +'/usr/local/bin', include files under '/usr/local/include', etc. You +can specify an installation prefix other than '/usr/local' by giving +'configure' the option '--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you -pass the option `--exec-prefix=PREFIX' to `configure', the package uses +pass the option '--exec-prefix=PREFIX' to 'configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. In general, the -default for these options is expressed in terms of `${prefix}', so that -specifying just `--prefix' will affect all of the other directory +options like '--bindir=DIR' to specify different values for particular +kinds of files. Run 'configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the default +for these options is expressed in terms of '${prefix}', so that +specifying just '--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the -correct locations to `configure'; however, many packages provide one or +correct locations to 'configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the -`make install' command line to change installation locations without +'make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each -affected directory. For example, `make install +affected directory. For example, 'make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of -`${prefix}'. Any directories that were specified during `configure', -but not in terms of `${prefix}', must each be overridden at install -time for the entire installation to be relocated. The approach of -makefile variable overrides for each directory variable is required by -the GNU Coding Standards, and ideally causes no recompilation. -However, some platforms have known limitations with the semantics of -shared libraries that end up requiring recompilation when using this -method, particularly noticeable in packages that use GNU Libtool. - - The second method involves providing the `DESTDIR' variable. For -example, `make install DESTDIR=/alternate/directory' will prepend -`/alternate/directory' before all installation names. The approach of -`DESTDIR' overrides is not required by the GNU Coding Standards, and +'${prefix}'. Any directories that were specified during 'configure', +but not in terms of '${prefix}', must each be overridden at install time +for the entire installation to be relocated. The approach of makefile +variable overrides for each directory variable is required by the GNU +Coding Standards, and ideally causes no recompilation. However, some +platforms have known limitations with the semantics of shared libraries +that end up requiring recompilation when using this method, particularly +noticeable in packages that use GNU Libtool. + + The second method involves providing the 'DESTDIR' variable. For +example, 'make install DESTDIR=/alternate/directory' will prepend +'/alternate/directory' before all installation names. The approach of +'DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even -when some directory options were not specified in terms of `${prefix}' -at `configure' time. +when some directory options were not specified in terms of '${prefix}' +at 'configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. +with an extra prefix or suffix on their names by giving 'configure' the +option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the + Some packages pay attention to '--enable-FEATURE' options to +'configure', where FEATURE indicates an optional part of the package. +They may also pay attention to '--with-PACKAGE' options, where PACKAGE +is something like 'gnu-as' or 'x' (for the X Window System). The +'README' should mention any '--enable-' and '--with-' options that the package recognizes. - For packages that use the X Window System, `configure' can usually + For packages that use the X Window System, 'configure' can usually find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. +you can use the 'configure' options '--x-includes=DIR' and +'--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the -execution of `make' will be. For these packages, running `./configure +execution of 'make' will be. For these packages, running './configure --enable-silent-rules' sets the default to minimal output, which can be -overridden with `make V=1'; while running `./configure +overridden with 'make V=1'; while running './configure --disable-silent-rules' sets the default to verbose, which can be -overridden with `make V=0'. +overridden with 'make V=0'. Particular systems ================== - On HP-UX, the default C compiler is not ANSI C compatible. If GNU -CC is not installed, it is recommended to use the following options in + On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC +is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. - HP-UX `make' updates targets which have the same time stamps as -their prerequisites, which makes it generally unusable when shipped -generated files such as `configure' are involved. Use GNU `make' -instead. + HP-UX 'make' updates targets which have the same time stamps as their +prerequisites, which makes it generally unusable when shipped generated +files such as 'configure' are involved. Use GNU 'make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot -parse its `' header file. The option `-nodtk' can be used as -a workaround. If GNU CC is not installed, it is therefore recommended -to try +parse its '' header file. The option '-nodtk' can be used as a +workaround. If GNU CC is not installed, it is therefore recommended to +try ./configure CC="cc" @@ -242,26 +240,26 @@ ./configure CC="cc -nodtk" - On Solaris, don't put `/usr/ucb' early in your `PATH'. This + On Solaris, don't put '/usr/ucb' early in your 'PATH'. This directory contains several dysfunctional programs; working variants of -these programs are available in `/usr/bin'. So, if you need `/usr/ucb' -in your `PATH', put it _after_ `/usr/bin'. +these programs are available in '/usr/bin'. So, if you need '/usr/ucb' +in your 'PATH', put it _after_ '/usr/bin'. - On Haiku, software installed for all users goes in `/boot/common', -not `/usr/local'. It is recommended to use the following options: + On Haiku, software installed for all users goes in '/boot/common', +not '/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== - There may be some features `configure' cannot figure out + There may be some features 'configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the -_same_ architectures, `configure' can figure that out, but if it prints +_same_ architectures, 'configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: +'--build=TYPE' option. TYPE can either be a short name for the system +type, such as 'sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM @@ -270,101 +268,101 @@ OS KERNEL-OS - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't + See the file 'config.sub' for the possible values of each field. If +'config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should -use the option `--target=TYPE' to select the type of system they will +use the option '--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. +eventually be run) with '--host=TYPE'. Sharing Defaults ================ - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. + If you want to set default values for 'configure' scripts to share, +you can create a site shell script called 'config.site' that gives +default values for variables like 'CC', 'cache_file', and 'prefix'. +'configure' looks for 'PREFIX/share/config.site' if it exists, then +'PREFIX/etc/config.site' if it exists. Or, you can set the +'CONFIG_SITE' environment variable to the location of the site script. +A warning: not all 'configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run +environment passed to 'configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: +them in the 'configure' command line, using 'VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc -causes the specified `gcc' to be used as the C compiler (unless it is +causes the specified 'gcc' to be used as the C compiler (unless it is overridden in the site shell script). -Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf limitation. Until the limitation is lifted, you can use -this workaround: +Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an +Autoconf limitation. Until the limitation is lifted, you can use this +workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash -`configure' Invocation +'configure' Invocation ====================== - `configure' recognizes the following options to control how it + 'configure' recognizes the following options to control how it operates. -`--help' -`-h' - Print a summary of all of the options to `configure', and exit. +'--help' +'-h' + Print a summary of all of the options to 'configure', and exit. -`--help=short' -`--help=recursive' +'--help=short' +'--help=recursive' Print a summary of the options unique to this package's - `configure', and exit. The `short' variant lists options used - only in the top level, while the `recursive' variant lists options - also present in any nested packages. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' + 'configure', and exit. The 'short' variant lists options used only + in the top level, while the 'recursive' variant lists options also + present in any nested packages. + +'--version' +'-V' + Print the version of Autoconf used to generate the 'configure' script, and exit. -`--cache-file=FILE' +'--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to + traditionally 'config.cache'. FILE defaults to '/dev/null' to disable caching. -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' +'--config-cache' +'-C' + Alias for '--cache-file=config.cache'. + +'--quiet' +'--silent' +'-q' Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error + suppress all normal output, redirect it to '/dev/null' (any error messages will still be shown). -`--srcdir=DIR' +'--srcdir=DIR' Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. + 'configure' can determine that directory automatically. -`--prefix=DIR' - Use DIR as the installation prefix. *note Installation Names:: - for more details, including other options available for fine-tuning - the installation locations. +'--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: for + more details, including other options available for fine-tuning the + installation locations. -`--no-create' -`-n' +'--no-create' +'-n' Run the configure checks, but stop before creating any output files. -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. +'configure' also accepts some other, not widely useful, options. Run +'configure --help' for more details. diff -Nru libmbim-1.14.2/install-sh libmbim-1.18.0/install-sh --- libmbim-1.14.2/install-sh 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/install-sh 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2013-12-25.23; # UTC +scriptversion=2018-03-11.20; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -271,15 +271,18 @@ fi dst=$dst_arg - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. + # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst - dst=$dstdir/`basename "$src"` + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac dstdir_status=0 else dstdir=`dirname "$dst"` @@ -288,6 +291,11 @@ fi fi + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + obsolete_mkdir_used=false if test $dstdir_status != 0; then @@ -324,34 +332,43 @@ # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) + # Note that $RANDOM variable is not portable (e.g. dash); Use it + # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p' feature. if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi - rmdir "$tmpdir/d" "$tmpdir" + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; @@ -427,8 +444,8 @@ else # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 @@ -493,9 +510,9 @@ done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru libmbim-1.14.2/ltmain.sh libmbim-1.18.0/ltmain.sh --- libmbim-1.14.2/ltmain.sh 2017-08-08 13:43:18.000000000 +0200 +++ libmbim-1.18.0/ltmain.sh 2019-01-08 13:52:14.000000000 +0100 @@ -1,12 +1,12 @@ #! /bin/sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in -## by inline-source v2014-01-03.01 +## by inline-source v2018-07-24.06 -# libtool (GNU libtool) 2.4.6 +# libtool (GNU libtool) 2.4.6.42-b88ce # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -31,8 +31,8 @@ PROGRAM=libtool PACKAGE=libtool -VERSION=2.4.6 -package_revision=2.4.6 +VERSION=2.4.6.42-b88ce +package_revision=2.4.6.42 ## ------ ## @@ -64,34 +64,25 @@ # libraries, which are installed to $pkgauxdir. # Set a version string for this script. -scriptversion=2015-01-20.17; # UTC +scriptversion=2018-07-24.06; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 -# Copyright (C) 2004-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. - -# As a special exception to the GNU General Public License, if you distribute -# this file as part of a program or library that is built using GNU Libtool, -# you may include this file under the same distribution terms that you use -# for the rest of that program. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2004-2018 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 3 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# Please report bugs or propose patches to gary@gnu.org. +# Please report bugs or propose patches to: +# ## ------ ## @@ -140,9 +131,6 @@ fi" done -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - # Make sure IFS has a sensible default sp=' ' nl=' @@ -159,6 +147,26 @@ fi +# func_unset VAR +# -------------- +# Portably unset VAR. +# In some shells, an 'unset VAR' statement leaves a non-zero return +# status if VAR is already unset, which might be problematic if the +# statement is used at the end of a function (thus poisoning its return +# value) or when 'set -e' is active (causing even a spurious abort of +# the script in this case). +func_unset () +{ + { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } +} + + +# Make sure CDPATH doesn't cause `cd` commands to output the target dir. +func_unset CDPATH + +# Make sure ${,E,F}GREP behave sanely. +func_unset GREP_OPTIONS + ## ------------------------- ## ## Locate command utilities. ## @@ -259,7 +267,7 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" rm -f conftest.sed SED=$func_path_progs_result } @@ -295,7 +303,7 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" GREP=$func_path_progs_result } @@ -580,16 +588,16 @@ { $debug_cmd - func_quote_for_eval "$2" - eval "$1+=\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1+=\\ \$func_quote_arg_result" }' else func_append_quoted () { $debug_cmd - func_quote_for_eval "$2" - eval "$1=\$$1\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1=\$$1\\ \$func_quote_arg_result" } fi @@ -1091,85 +1099,199 @@ } -# func_quote_for_eval ARG... -# -------------------------- -# Aesthetically quote ARGs to be evaled later. -# This function returns two values: -# i) func_quote_for_eval_result -# double-quoted, suitable for a subsequent eval -# ii) func_quote_for_eval_unquoted_result -# has all characters that are still active within double -# quotes backslashified. -func_quote_for_eval () +# func_quote_portable EVAL ARG +# ---------------------------- +# Internal function to portably implement func_quote_arg. Note that we still +# keep attention to performance here so we as much as possible try to avoid +# calling sed binary (so far O(N) complexity as long as func_append is O(1)). +func_quote_portable () { $debug_cmd - func_quote_for_eval_unquoted_result= - func_quote_for_eval_result= - while test 0 -lt $#; do - case $1 in - *[\\\`\"\$]*) - _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; - *) - _G_unquoted_arg=$1 ;; - esac - if test -n "$func_quote_for_eval_unquoted_result"; then - func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" - else - func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + func_quote_portable_result=$2 + + # one-time-loop (easy break) + while true + do + if $1; then + func_quote_portable_result=`$ECHO "$2" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` + break fi - case $_G_unquoted_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and variable expansion - # for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_quoted_arg=\"$_G_unquoted_arg\" + # Quote for eval. + case $func_quote_portable_result in + *[\\\`\"\$]*) + case $func_quote_portable_result in + *[\[\*\?]*) + func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ + | $SED "$sed_quote_subst"` + break + ;; + esac + + func_quote_portable_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_portable_result + do + case $1 in + quote) + func_append func_quote_portable_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_portable_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + done + IFS=$func_quote_portable_old_IFS ;; - *) - _G_quoted_arg=$_G_unquoted_arg - ;; + *) ;; esac - - if test -n "$func_quote_for_eval_result"; then - func_append func_quote_for_eval_result " $_G_quoted_arg" - else - func_append func_quote_for_eval_result "$_G_quoted_arg" - fi - shift + break done + + func_quote_portable_unquoted_result=$func_quote_portable_result + case $func_quote_portable_result in + # double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # many bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_portable_result=\"$func_quote_portable_result\" + ;; + esac } -# func_quote_for_expand ARG -# ------------------------- -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - $debug_cmd +# func_quotefast_eval ARG +# ----------------------- +# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', +# but optimized for speed. Result is stored in $func_quotefast_eval. +if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then + printf -v _GL_test_printf_tilde %q '~' + if test '\~' = "$_GL_test_printf_tilde"; then + func_quotefast_eval () + { + printf -v func_quotefast_eval_result %q "$1" + } + else + # Broken older Bash implementations. Make those faster too if possible. + func_quotefast_eval () + { + case $1 in + '~'*) + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + ;; + *) + printf -v func_quotefast_eval_result %q "$1" + ;; + esac + } + fi +else + func_quotefast_eval () + { + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + } +fi - case $1 in - *[\\\`\"]*) - _G_arg=`$ECHO "$1" | $SED \ - -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; - *) - _G_arg=$1 ;; + +# func_quote_arg MODEs ARG +# ------------------------ +# Quote one ARG to be evaled later. MODEs argument may contain zero or more +# specifiers listed below separated by ',' character. This function returns two +# values: +# i) func_quote_arg_result +# double-quoted (when needed), suitable for a subsequent eval +# ii) func_quote_arg_unquoted_result +# has all characters that are still active within double +# quotes backslashified. Available only if 'unquoted' is specified. +# +# Available modes: +# ---------------- +# 'eval' (default) +# - escape shell special characters +# 'expand' +# - the same as 'eval'; but do not quote variable references +# 'pretty' +# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might +# be used later in func_quote to get output like: 'echo "a b"' instead +# of 'echo a\ b'. This is slower than default on some shells. +# 'unquoted' +# - produce also $func_quote_arg_unquoted_result which does not contain +# wrapping double-quotes. +# +# Examples for 'func_quote_arg pretty,unquoted string': +# +# string | *_result | *_unquoted_result +# ------------+-----------------------+------------------- +# " | \" | \" +# a b | "a b" | a b +# "a b" | "\"a b\"" | \"a b\" +# * | "*" | * +# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" +# +# Examples for 'func_quote_arg pretty,unquoted,expand string': +# +# string | *_result | *_unquoted_result +# --------------+---------------------+-------------------- +# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" +func_quote_arg () +{ + _G_quote_expand=false + case ,$1, in + *,expand,*) + _G_quote_expand=: + ;; esac - case $_G_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_arg=\"$_G_arg\" + case ,$1, in + *,pretty,*|*,expand,*|*,unquoted,*) + func_quote_portable $_G_quote_expand "$2" + func_quote_arg_result=$func_quote_portable_result + func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result + ;; + *) + # Faster quote-for-eval for some shells. + func_quotefast_eval "$2" + func_quote_arg_result=$func_quotefast_eval_result ;; esac +} + - func_quote_for_expand_result=$_G_arg +# func_quote MODEs ARGs... +# ------------------------ +# Quote all ARGs to be evaled later and join them into single command. See +# func_quote_arg's description for more info. +func_quote () +{ + $debug_cmd + _G_func_quote_mode=$1 ; shift + func_quote_result= + while test 0 -lt $#; do + func_quote_arg "$_G_func_quote_mode" "$1" + if test -n "$func_quote_result"; then + func_append func_quote_result " $func_quote_arg_result" + else + func_append func_quote_result "$func_quote_arg_result" + fi + shift + done } @@ -1215,8 +1337,8 @@ _G_cmd=$1 _G_fail_exp=${2-':'} - func_quote_for_expand "$_G_cmd" - eval "func_notquiet $func_quote_for_expand_result" + func_quote_arg pretty,expand "$_G_cmd" + eval "func_notquiet $func_quote_arg_result" $opt_dry_run || { eval "$_G_cmd" @@ -1241,8 +1363,8 @@ _G_fail_exp=${2-':'} $opt_quiet || { - func_quote_for_expand "$_G_cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$_G_cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || { @@ -1369,30 +1491,26 @@ # End: #! /bin/sh -# Set a version string for this script. -scriptversion=2014-01-07.03; # UTC - # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 -# Copyright (C) 2010-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2018 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 3 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# Please report bugs or propose patches to: +# -# Please report bugs or propose patches to gary@gnu.org. +# Set a version string for this script. +scriptversion=2018-07-24.06; # UTC ## ------ ## @@ -1415,7 +1533,7 @@ # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file -# starting with '# Written by ' and ending with '# warranty; '. +# starting with '# Written by ' and ending with '# Copyright'. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the @@ -1427,7 +1545,7 @@ # to display verbose messages only when your user has specified # '--verbose'. # -# After sourcing this file, you can plug processing for additional +# After sourcing this file, you can plug in processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. @@ -1476,8 +1594,8 @@ ## ------------------------- ## # This section contains functions for adding, removing, and running hooks -# to the main code. A hook is just a named list of of function, that can -# be run in order later on. +# in the main code. A hook is just a list of function names that can be +# run in order later on. # func_hookable FUNC_NAME # ----------------------- @@ -1510,7 +1628,8 @@ # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ -# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +# Remove HOOK_FUNC from the list of hook functions to be called by +# FUNC_NAME. func_remove_hook () { $debug_cmd @@ -1519,10 +1638,28 @@ } +# func_propagate_result FUNC_NAME_A FUNC_NAME_B +# --------------------------------------------- +# If the *_result variable of FUNC_NAME_A _is set_, assign its value to +# *_result variable of FUNC_NAME_B. +func_propagate_result () +{ + $debug_cmd + + func_propagate_result_result=: + if eval "test \"\${${1}_result+set}\" = set" + then + eval "${2}_result=\$${1}_result" + else + func_propagate_result_result=false + fi +} + + # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. -# It is assumed that the list of hook functions contains nothing more +# It's assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. @@ -1532,22 +1669,19 @@ case " $hookable_fns " in *" $1 "*) ;; - *) func_fatal_error "'$1' does not support hook funcions.n" ;; + *) func_fatal_error "'$1' does not support hook functions." ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do - eval $_G_hook '"$@"' - - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift + func_unset "${_G_hook}_result" + eval $_G_hook '${1+"$@"}' + func_propagate_result $_G_hook func_run_hooks + if $func_propagate_result_result; then + eval set dummy "$func_run_hooks_result"; shift + fi done - - func_quote_for_eval ${1+"$@"} - func_run_hooks_result=$func_quote_for_eval_result } @@ -1557,10 +1691,18 @@ ## --------------- ## # In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, remove any -# options that you action, and then pass back the remaining unprocessed -# options in '_result', escaped suitably for -# 'eval'. Like this: +# full positional parameter list from your hook function. You may remove +# or edit any options that you action, and then pass back the remaining +# unprocessed options in '_result', escaped +# suitably for 'eval'. +# +# The '_result' variable is automatically unset +# before your hook gets called; for best performance, only set the +# *_result variable when necessary (i.e. don't call the 'func_quote' +# function unnecessarily because it can be an expensive operation on some +# machines). +# +# Like this: # # my_options_prep () # { @@ -1570,9 +1712,8 @@ # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' -# -# func_quote_for_eval ${1+"$@"} -# my_options_prep_result=$func_quote_for_eval_result +# # No change in '$@' (ignored completely by this hook). Leave +# # my_options_prep_result variable intact. # } # func_add_hook func_options_prep my_options_prep # @@ -1581,25 +1722,36 @@ # { # $debug_cmd # -# # Note that for efficiency, we parse as many options as we can +# args_changed=false +# +# # Note that, for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in -# --silent|-s) opt_silent=: ;; +# --silent|-s) opt_silent=: +# args_changed=: +# ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift +# args_changed=: # ;; -# *) set dummy "$_G_opt" "$*"; shift; break ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@" in case we need it later, +# # if $args_changed was set to 'true'. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result +# # Only call 'func_quote' here if we processed at least one argument. +# if $args_changed; then +# func_quote eval ${1+"$@"} +# my_silent_option_result=$func_quote_result +# fi # } # func_add_hook func_parse_options my_silent_option # @@ -1610,17 +1762,26 @@ # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." -# -# func_quote_for_eval ${1+"$@"} -# my_option_validation_result=$func_quote_for_eval_result # } # func_add_hook func_validate_options my_option_validation # -# You'll alse need to manually amend $usage_message to reflect the extra +# You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + func_run_hooks func_options ${1+"$@"} + func_propagate_result func_run_hooks func_options_finish +} + + # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the @@ -1630,17 +1791,27 @@ { $debug_cmd - func_options_prep ${1+"$@"} - eval func_parse_options \ - ${func_options_prep_result+"$func_options_prep_result"} - eval func_validate_options \ - ${func_parse_options_result+"$func_parse_options_result"} + _G_options_quoted=false - eval func_run_hooks func_options \ - ${func_validate_options_result+"$func_validate_options_result"} + for my_func in options_prep parse_options validate_options options_finish + do + func_unset func_${my_func}_result + func_unset func_run_hooks_result + eval func_$my_func '${1+"$@"}' + func_propagate_result func_$my_func func_options + if $func_propagate_result_result; then + eval set dummy "$func_options_result"; shift + _G_options_quoted=: + fi + done - # save modified positional parameters for caller - func_options_result=$func_run_hooks_result + $_G_options_quoted || { + # As we (func_options) are top-level options-parser function and + # nobody quoted "$@" for us yet, we need to do it explicitly for + # caller. + func_quote eval ${1+"$@"} + func_options_result=$func_quote_result + } } @@ -1649,9 +1820,8 @@ # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and -# needs to propogate that back to rest of this script, then the complete -# modified list must be put in 'func_run_hooks_result' before -# returning. +# needs to propagate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before returning. func_hookable func_options_prep func_options_prep () { @@ -1662,9 +1832,7 @@ opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} - - # save modified positional parameters for caller - func_options_prep_result=$func_run_hooks_result + func_propagate_result func_run_hooks func_options_prep } @@ -1676,25 +1844,32 @@ { $debug_cmd - func_parse_options_result= - + _G_parse_options_requote=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} - - # Adjust func_parse_options positional parameters to match - eval set dummy "$func_run_hooks_result"; shift + func_propagate_result func_run_hooks func_parse_options + if $func_propagate_result_result; then + eval set dummy "$func_parse_options_result"; shift + # Even though we may have changed "$@", we passed the "$@" array + # down into the hook and it quoted it for us (because we are in + # this if-branch). No need to quote it again. + _G_parse_options_requote=false + fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break + # We expect that one of the options parsed in this function matches + # and thus we remove _G_opt from "$@" and need to re-quote. + _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' - func_echo "enabling shell trace mode" + func_echo "enabling shell trace mode" >&2 $debug_cmd ;; @@ -1704,7 +1879,10 @@ ;; --warnings|--warning|-W) - test $# = 0 && func_missing_arg $_G_opt && break + if test $# = 0 && func_missing_arg $_G_opt; then + _G_parse_options_requote=: + break + fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above @@ -1757,15 +1935,24 @@ shift ;; - --) break ;; + --) _G_parse_options_requote=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; esac + + if $_G_match_parse_options; then + _G_parse_options_requote=: + fi done - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - func_parse_options_result=$func_quote_for_eval_result + if $_G_parse_options_requote; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + func_parse_options_result=$func_quote_result + fi } @@ -1782,12 +1969,10 @@ test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} + func_propagate_result func_run_hooks func_validate_options # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE - - # save modified positional parameters for caller - func_validate_options_result=$func_run_hooks_result } @@ -1843,8 +2028,8 @@ # func_split_equals STRING # ------------------------ -# Set func_split_equals_lhs and func_split_equals_rhs shell variables after -# splitting STRING at the '=' sign. +# Set func_split_equals_lhs and func_split_equals_rhs shell variables +# after splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ @@ -1859,8 +2044,9 @@ func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} - test "x$func_split_equals_lhs" = "x$1" \ - && func_split_equals_rhs= + if test "x$func_split_equals_lhs" = "x$1"; then + func_split_equals_rhs= + fi }' else # ...otherwise fall back to using expr, which is often a shell builtin. @@ -1938,31 +2124,44 @@ # func_version # ------------ # Echo version message to standard output and exit. +# The version message is extracted from the calling file's header +# comments, with leading '# ' stripped: +# 1. First display the progname and version +# 2. Followed by the header comment line matching /^# Written by / +# 3. Then a blank line followed by the first following line matching +# /^# Copyright / +# 4. Immediately followed by any lines between the previous matches, +# except lines preceding the intervening completely blank line. +# For example, see the header comments of this file. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' - /(C)/!b go - :more - /\./!{ - N - s|\n# | | - b more - } - :go - /^# Written by /,/# warranty; / { - s|^# || - s|^# *$|| - s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| - p + /^# Written by /!b + s|^# ||; p; n + + :fwd2blnk + /./ { + n + b fwd2blnk } - /^# Written by / { - s|^# || - p + p; n + + :holdwrnt + s|^# || + s|^# *$|| + /^Copyright /!{ + /./H + n + b holdwrnt } - /^warranty; /q' < "$progpath" + + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + G + s|\(\n\)\n*|\1|g + p; q' < "$progpath" exit $? } @@ -1972,12 +2171,12 @@ # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. -scriptversion='(GNU libtool) 2.4.6' +scriptversion='(GNU libtool) 2.4.6.42-b88ce' # func_echo ARG... @@ -2068,12 +2267,12 @@ compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname (GNU libtool) 2.4.6 + version: $progname (GNU libtool) 2.4.6.42-b88ce automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . -GNU libtool home page: . +GNU libtool home page: . General help using GNU software: ." exit 0 } @@ -2124,7 +2323,7 @@ # a configuration failure hint, and exit. func_fatal_configuration () { - func__fatal_error ${1+"$@"} \ + func_fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } @@ -2270,6 +2469,8 @@ nonopt= preserve_args= + _G_rc_lt_options_prep=: + # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) @@ -2293,11 +2494,16 @@ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; + *) + _G_rc_lt_options_prep=false + ;; esac - # Pass back the list of options. - func_quote_for_eval ${1+"$@"} - libtool_options_prep_result=$func_quote_for_eval_result + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote eval ${1+"$@"} + libtool_options_prep_result=$func_quote_result + fi } func_add_hook func_options_prep libtool_options_prep @@ -2309,9 +2515,12 @@ { $debug_cmd + _G_rc_lt_parse_options=false + # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do + _G_match_lt_parse_options=: _G_opt=$1 shift case $_G_opt in @@ -2386,15 +2595,20 @@ func_append preserve_args " $_G_opt" ;; - # An option not handled by this hook function: - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: done - - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - libtool_parse_options_result=$func_quote_for_eval_result + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + libtool_parse_options_result=$func_quote_result + fi } func_add_hook func_parse_options libtool_parse_options @@ -2451,8 +2665,8 @@ } # Pass back the unparsed argument list - func_quote_for_eval ${1+"$@"} - libtool_validate_options_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + libtool_validate_options_result=$func_quote_result } func_add_hook func_validate_options libtool_validate_options @@ -3418,8 +3632,8 @@ esac done - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ + func_quote_arg pretty "$libobj" + test "X$libobj" != "X$func_quote_arg_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" @@ -3492,8 +3706,8 @@ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result + func_quote_arg pretty "$srcfile" + qsrcfile=$func_quote_arg_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then @@ -4096,8 +4310,8 @@ case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " + func_quote_arg pretty "$nonopt" + install_prog="$func_quote_arg_result " arg=$1 shift else @@ -4107,8 +4321,8 @@ # The real first argument should be the name of the installation program. # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog "$func_quote_arg_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; @@ -4165,12 +4379,12 @@ esac # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog " $func_quote_arg_result" if test -n "$arg2"; then - func_quote_for_eval "$arg2" + func_quote_arg pretty "$arg2" fi - func_append install_shared_prog " $func_quote_for_eval_result" + func_append install_shared_prog " $func_quote_arg_result" done test -z "$install_prog" && \ @@ -4181,8 +4395,8 @@ if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" + func_quote_arg pretty "$install_override_mode" + func_append install_shared_prog " -m $func_quote_arg_result" fi fi @@ -4478,8 +4692,8 @@ relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$relink_command" + eval "func_echo $func_quote_arg_result" } if eval "$relink_command"; then : else @@ -5258,7 +5472,8 @@ if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + func_quote_arg pretty "$ECHO" + qECHO=$func_quote_arg_result $ECHO "\ # A function that is used when there is no print builtin or printf. @@ -5268,7 +5483,7 @@ \$1 _LTECHO_EOF' } - ECHO=\"$qECHO\" + ECHO=$qECHO fi # Very basic option parsing. These options are (a) specific to @@ -6611,9 +6826,9 @@ while test "$#" -gt 0; do arg=$1 shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" + func_quote_arg pretty,unquoted "$arg" + qarg=$func_quote_arg_unquoted_result + func_append libtool_args " $func_quote_arg_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then @@ -7211,9 +7426,9 @@ save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $func_quote_arg_result" + func_append compiler_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" @@ -7227,10 +7442,10 @@ save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $wl$func_quote_arg_result" + func_append compiler_flags " $wl$func_quote_arg_result" + func_append linker_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" @@ -7254,8 +7469,8 @@ # -msg_* for osf cc -msg_*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; # Flags to be passed through unchanged, with rationale: @@ -7272,12 +7487,16 @@ # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + # -fuse-ld=* Linker select flags for GCC -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*|-fuse-ld=*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" @@ -7298,15 +7517,15 @@ continue else # Otherwise treat like 'Some other compiler flag' below - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result fi ;; # Some other compiler flag. -* | +*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; *.$objext) @@ -7426,8 +7645,8 @@ *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; esac # arg @@ -9933,8 +10152,8 @@ for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10027,8 +10246,8 @@ eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10502,12 +10721,13 @@ elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty "$var_value" + relink_command="$var=$func_quote_arg_result; export $var; $relink_command" fi done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote eval cd "`pwd`" + func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)" + relink_command=$func_quote_arg_unquoted_result fi # Only actually do things if not in dry run mode. @@ -10747,13 +10967,15 @@ elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty,unquoted "$var_value" + relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command" fi done # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote eval cd "`pwd`" + relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + func_quote_arg pretty,unquoted "$relink_command" + relink_command=$func_quote_arg_unquoted_result if test yes = "$hardcode_automatic"; then relink_command= fi diff -Nru libmbim-1.14.2/m4/compiler-warnings.m4 libmbim-1.18.0/m4/compiler-warnings.m4 --- libmbim-1.14.2/m4/compiler-warnings.m4 2015-01-21 00:25:49.000000000 +0100 +++ libmbim-1.18.0/m4/compiler-warnings.m4 2019-01-08 13:16:16.000000000 +0100 @@ -15,7 +15,7 @@ -Wundef -Wimplicit-function-declaration \ -Wpointer-arith -Winit-self -Wshadow \ -Wmissing-include-dirs -Waggregate-return \ - -Wformat-security; do + -Wformat-security -Wtype-limits; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $option" AC_MSG_CHECKING([whether gcc understands $option]) diff -Nru libmbim-1.14.2/m4/libtool.m4 libmbim-1.18.0/m4/libtool.m4 --- libmbim-1.14.2/m4/libtool.m4 2017-08-08 13:43:18.000000000 +0200 +++ libmbim-1.18.0/m4/libtool.m4 2019-01-08 13:52:14.000000000 +0100 @@ -1,6 +1,6 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # -# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2003-2018 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -219,8 +219,8 @@ ofile=libtool can_build_shared=yes -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld @@ -1042,8 +1042,8 @@ _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF @@ -1493,9 +1493,22 @@ m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} -: ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS +_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)]) + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. +_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}], + [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no @@ -2207,26 +2220,35 @@ striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) +if test -z "$STRIP"; then + AC_MSG_RESULT([no]) else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) - else + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac + ;; + esac + fi fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) @@ -2565,8 +2587,8 @@ dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -2622,7 +2644,7 @@ ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -4010,7 +4032,7 @@ if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, + # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ @@ -4919,7 +4941,7 @@ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) @@ -4927,7 +4949,7 @@ ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) + cl* | icl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) @@ -4984,15 +5006,15 @@ case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) @@ -5156,6 +5178,7 @@ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; interix[[3-9]]*) @@ -5373,7 +5396,7 @@ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -5556,12 +5579,12 @@ cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in - cl*) - # Native MSVC + cl* | icl*) + # Native MSVC or ICC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes @@ -5602,7 +5625,7 @@ fi' ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. @@ -5861,6 +5884,7 @@ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; osf3*) @@ -6631,8 +6655,8 @@ cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' @@ -6730,6 +6754,7 @@ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; dgux*) diff -Nru libmbim-1.14.2/m4/lt~obsolete.m4 libmbim-1.18.0/m4/lt~obsolete.m4 --- libmbim-1.14.2/m4/lt~obsolete.m4 2017-08-08 13:43:18.000000000 +0200 +++ libmbim-1.18.0/m4/lt~obsolete.m4 2019-01-08 13:52:14.000000000 +0100 @@ -1,6 +1,6 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007, 2009, 2011-2018 Free Software # Foundation, Inc. # Written by Scott James Remnant, 2004. # diff -Nru libmbim-1.14.2/m4/ltoptions.m4 libmbim-1.18.0/m4/ltoptions.m4 --- libmbim-1.14.2/m4/ltoptions.m4 2017-08-08 13:43:18.000000000 +0200 +++ libmbim-1.18.0/m4/ltoptions.m4 2019-01-08 13:52:14.000000000 +0100 @@ -1,6 +1,6 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007-2009, 2011-2018 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # diff -Nru libmbim-1.14.2/m4/ltsugar.m4 libmbim-1.18.0/m4/ltsugar.m4 --- libmbim-1.14.2/m4/ltsugar.m4 2017-08-08 13:43:18.000000000 +0200 +++ libmbim-1.18.0/m4/ltsugar.m4 2019-01-08 13:52:14.000000000 +0100 @@ -1,6 +1,6 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007-2008, 2011-2018 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # diff -Nru libmbim-1.14.2/m4/ltversion.m4 libmbim-1.18.0/m4/ltversion.m4 --- libmbim-1.14.2/m4/ltversion.m4 2017-08-08 13:43:18.000000000 +0200 +++ libmbim-1.18.0/m4/ltversion.m4 2019-01-08 13:52:14.000000000 +0100 @@ -1,6 +1,6 @@ # ltversion.m4 -- version numbers -*- Autoconf -*- # -# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Copyright (C) 2004, 2011-2018 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives @@ -9,15 +9,15 @@ # @configure_input@ -# serial 4179 ltversion.m4 +# serial 4221 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4.6]) -m4_define([LT_PACKAGE_REVISION], [2.4.6]) +m4_define([LT_PACKAGE_VERSION], [2.4.6.42-b88ce]) +m4_define([LT_PACKAGE_REVISION], [2.4.6.42]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.6' -macro_revision='2.4.6' +[macro_version='2.4.6.42-b88ce' +macro_revision='2.4.6.42' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff -Nru libmbim-1.14.2/Makefile.am libmbim-1.18.0/Makefile.am --- libmbim-1.14.2/Makefile.am 2017-08-08 12:17:09.000000000 +0200 +++ libmbim-1.18.0/Makefile.am 2018-03-20 21:33:15.000000000 +0100 @@ -7,6 +7,20 @@ --with-udev-base-dir="$$dc_install_base" \ --enable-gtk-doc +ChangeLog: + $(AM_V_GEN) if test -d "$(srcdir)/.git"; then \ + (GIT_DIR=$(top_srcdir)/.git $(top_srcdir)/missing --run git log --stat) | fmt --split-only > $@.tmp \ + && mv -f $@.tmp $@ \ + || ($(RM) $@.tmp; \ + echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \ + (test -f $@ || echo git-log is required to generate this file >> $@)); \ + else \ + test -f $@ || \ + (echo A git checkout and git-log is required to generate ChangeLog >&2 && \ + echo A git checkout and git-log is required to generate this file >> $@); \ + fi + + EXTRA_DIST = \ gtester.make \ COPYING.LIB diff -Nru libmbim-1.14.2/Makefile.in libmbim-1.18.0/Makefile.in --- libmbim-1.14.2/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -138,7 +138,7 @@ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck + cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, @@ -266,6 +266,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -292,6 +294,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -340,9 +347,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -386,8 +397,8 @@ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -529,7 +540,10 @@ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -843,6 +857,19 @@ .PRECIOUS: Makefile +ChangeLog: + $(AM_V_GEN) if test -d "$(srcdir)/.git"; then \ + (GIT_DIR=$(top_srcdir)/.git $(top_srcdir)/missing --run git log --stat) | fmt --split-only > $@.tmp \ + && mv -f $@.tmp $@ \ + || ($(RM) $@.tmp; \ + echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \ + (test -f $@ || echo git-log is required to generate this file >> $@)); \ + else \ + test -f $@ || \ + (echo A git checkout and git-log is required to generate ChangeLog >&2 && \ + echo A git checkout and git-log is required to generate this file >> $@); \ + fi + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -Nru libmbim-1.14.2/missing libmbim-1.18.0/missing --- libmbim-1.14.2/missing 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/missing 2019-01-08 13:52:19.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru libmbim-1.14.2/NEWS libmbim-1.18.0/NEWS --- libmbim-1.14.2/NEWS 2017-08-08 13:34:24.000000000 +0200 +++ libmbim-1.18.0/NEWS 2019-01-08 13:51:41.000000000 +0100 @@ -1,24 +1,87 @@ -Overview of changes in libmbim 1.14.2 +Overview of changes in libmbim 1.18 ---------------------------------------- + * Build now looks for the correct python provider in the system during + configure. + + * New Microsoft Basic Connect Extensions service, that includes new commands to + manage Protocol Configuration Operations (PCO) as well as LTE attach status + and settings. + + * libmbim-glib: + ** Added support to fully print all message contents, including all fields, + when traces are enabled. + ** Added support for QMI indications over MBIM. + ** Added additional cause codes to MbimNwError. + ** Fixed signal emission in device, so that it's done before completing + transaction task. + + * mbim-proxy: + ** Fixed the management of subscribed events, so that the lists are + maintained per-device. + + * mbimcli: + ** New '--ms-query-pco' action. + ** New '--ms-query-lte-attach-configuration' action. + ** New '--ms-query-lte-attach-status' action. + + * Several other minor improvements and fixes. + +The following features which were backported to 1.16.x releases are also present +in libmbim 1.18.0: + + * mbimcli: + ** Fix SNR reporting in --atds-query-signal output. + ** Longer timeout (60s) in --disconnect. + ** Add "ip-type" property to --connect + + * libmbim-glib: + ** Fix printing message in Intel Firmware Update service. + ** Fix error reporting when unknown status. + +Overview of changes in libmbim 1.16 +---------------------------------------- + +* Build now requires GLib 2.36. + +* All the code base was ported to use the GTask based asynchronous operations + support instead of the deprecated GSimpleAsyncResult. + +* New AT&T Device Service support, that includes operator-specific commands to + query signal info or cell location. + +* New Intel Firmware Update Service support, that includes commands to request + the Intel-based module to reboot in firmware download mode. + +* libmbim-glib: + ** Added MBIM_STATUS_ERROR_CONTEXT_NOT_SUPPORTED to MbimStatusError. + ** Avoid using iconv() directly for the UTF-16BE conversions, which makes it + possible to use libmbim on systems with a stub iconv() implementation. + ** Added support to detect already open MBIM channels on the Sierra Wireless + EM7345. + +* mbimcli: + ** New '--query-ip-packet-filters' action. + ** New '--query-pin-list' action. + ** New '--atds-query-signal' and '--atds-query-location' actions. + ** New '--intel-modem-reboot' action. + +* Several other minor improvements and fixes. + +The following features which were backported to 1.14.x releases are also present +in libmbim 1.16.0: + * libmbim-glib: + ** Prefer realpath() to canonicalize_file_name(). ** Added MBIM_READY_INFO_FLAG_NONE to MbimReadyInfoFlag. - ** Fixed G_DEPRECATED_FOR annotations. * mbim-proxy: - ** Fixed segfault when device goes away while being opened. ** Avoid receiving signals from the parent process. * mbimcli: - ** Fix second ctrl+c handling. ** Add cancellability to the query-ip-configuration action. -* mbim-network: - ** Fix bashisms. - -* Several other minor improvements and fixes. - Overview of changes in libmbim 1.14 ---------------------------------------- diff -Nru libmbim-1.14.2/src/common/Makefile.am libmbim-1.18.0/src/common/Makefile.am --- libmbim-1.14.2/src/common/Makefile.am 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/src/common/Makefile.am 2018-03-20 21:33:15.000000000 +0100 @@ -0,0 +1,15 @@ +SUBDIRS = . test + +# common library, built as a noinst +noinst_LTLIBRARIES = libmbim-common.la + +libmbim_common_la_CPPFLAGS = \ + $(MBIM_COMMON_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -I$(top_srcdir)/src/common +libmbim_common_la_SOURCES = \ + mbim-common.h \ + mbim-common.c +libmbim_common_la_LIBADD = \ + $(MBIM_COMMON_LIBS) diff -Nru libmbim-1.14.2/src/common/Makefile.in libmbim-1.18.0/src/common/Makefile.in --- libmbim-1.14.2/src/common/Makefile.in 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/src/common/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -0,0 +1,773 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/common +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/compiler-warnings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +libmbim_common_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am_libmbim_common_la_OBJECTS = libmbim_common_la-mbim-common.lo +libmbim_common_la_OBJECTS = $(am_libmbim_common_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/libmbim_common_la-mbim-common.Plo +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmbim_common_la_SOURCES) +DIST_SOURCES = $(libmbim_common_la_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GUDEV_CFLAGS = @GUDEV_CFLAGS@ +GUDEV_LIBS = @GUDEV_LIBS@ +HELP2MAN = @HELP2MAN@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBMBIM_GLIB_CFLAGS = @LIBMBIM_GLIB_CFLAGS@ +LIBMBIM_GLIB_LIBS = @LIBMBIM_GLIB_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MBIMCLI_CFLAGS = @MBIMCLI_CFLAGS@ +MBIMCLI_LIBS = @MBIMCLI_LIBS@ +MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ +MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ +MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ +MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ +MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ +MBIM_MAJOR_VERSION = @MBIM_MAJOR_VERSION@ +MBIM_MICRO_VERSION = @MBIM_MICRO_VERSION@ +MBIM_MINOR_VERSION = @MBIM_MINOR_VERSION@ +MBIM_USERNAME = @MBIM_USERNAME@ +MBIM_VERSION = @MBIM_VERSION@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UDEV_BASE_DIR = @UDEV_BASE_DIR@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = . test + +# common library, built as a noinst +noinst_LTLIBRARIES = libmbim-common.la +libmbim_common_la_CPPFLAGS = \ + $(MBIM_COMMON_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -I$(top_srcdir)/src/common + +libmbim_common_la_SOURCES = \ + mbim-common.h \ + mbim-common.c + +libmbim_common_la_LIBADD = \ + $(MBIM_COMMON_LIBS) + +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/common/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/common/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmbim-common.la: $(libmbim_common_la_OBJECTS) $(libmbim_common_la_DEPENDENCIES) $(EXTRA_libmbim_common_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libmbim_common_la_OBJECTS) $(libmbim_common_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_common_la-mbim-common.Plo@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libmbim_common_la-mbim-common.lo: mbim-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmbim_common_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmbim_common_la-mbim-common.lo -MD -MP -MF $(DEPDIR)/libmbim_common_la-mbim-common.Tpo -c -o libmbim_common_la-mbim-common.lo `test -f 'mbim-common.c' || echo '$(srcdir)/'`mbim-common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmbim_common_la-mbim-common.Tpo $(DEPDIR)/libmbim_common_la-mbim-common.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbim-common.c' object='libmbim_common_la-mbim-common.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmbim_common_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmbim_common_la-mbim-common.lo `test -f 'mbim-common.c' || echo '$(srcdir)/'`mbim-common.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(LTLIBRARIES) +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-recursive + -rm -f ./$(DEPDIR)/libmbim_common_la-mbim-common.Plo + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f ./$(DEPDIR)/libmbim_common_la-mbim-common.Plo + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--depfiles check check-am clean clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru libmbim-1.14.2/src/common/mbim-common.c libmbim-1.18.0/src/common/mbim-common.c --- libmbim-1.14.2/src/common/mbim-common.c 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/src/common/mbim-common.c 2018-03-20 21:33:15.000000000 +0100 @@ -0,0 +1,61 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * Copyright (C) 2013 - 2014 Aleksander Morgado + * Copyright (C) 2017 Google Inc. + */ + +#include +#include + +#include "mbim-common.h" + +/*****************************************************************************/ + +gchar * +mbim_common_str_hex (gconstpointer mem, + gsize size, + gchar delimiter) +{ + const guint8 *data = mem; + gsize i; + gsize j; + gsize new_str_length; + gchar *new_str; + + /* Get new string length. If input string has N bytes, we need: + * - 1 byte for last NUL char + * - 2N bytes for hexadecimal char representation of each byte... + * - N-1 bytes for the separator ':' + * So... a total of (1+2N+N-1) = 3N bytes are needed... */ + new_str_length = 3 * size; + + /* Allocate memory for new array and initialize contents to NUL */ + new_str = g_malloc0 (new_str_length); + + /* Print hexadecimal representation of each byte... */ + for (i = 0, j = 0; i < size; i++, j += 3) { + /* Print character in output string... */ + snprintf (&new_str[j], 3, "%02X", data[i]); + /* And if needed, add separator */ + if (i != (size - 1) ) + new_str[j + 2] = delimiter; + } + + /* Set output string */ + return new_str; +} diff -Nru libmbim-1.14.2/src/common/mbim-common.h libmbim-1.18.0/src/common/mbim-common.h --- libmbim-1.14.2/src/common/mbim-common.h 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/src/common/mbim-common.h 2018-03-20 21:33:15.000000000 +0100 @@ -0,0 +1,31 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * Copyright (C) 2013 - 2014 Aleksander Morgado + * Copyright (C) 2017 Google Inc. + */ + +#ifndef _COMMON_MBIM_COMMON_H_ +#define _COMMON_MBIM_COMMON_H_ + +#include + +gchar *mbim_common_str_hex (gconstpointer mem, + gsize size, + gchar delimiter); + +#endif /* _COMMON_MBIM_COMMON_H_ */ diff -Nru libmbim-1.14.2/src/common/test/Makefile.am libmbim-1.18.0/src/common/test/Makefile.am --- libmbim-1.14.2/src/common/test/Makefile.am 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/src/common/test/Makefile.am 2018-03-20 21:33:15.000000000 +0100 @@ -0,0 +1,17 @@ +include $(top_srcdir)/gtester.make + +noinst_PROGRAMS = \ + test-common + +TEST_PROGS += $(noinst_PROGRAMS) + +test_common_SOURCES = \ + test-common.c +test_common_CPPFLAGS = \ + $(MBIM_COMMON_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -I$(top_srcdir)/src/common +test_common_LDADD = \ + $(top_builddir)/src/common/libmbim-common.la \ + $(MBIM_COMMON_LIBS) diff -Nru libmbim-1.14.2/src/common/test/Makefile.in libmbim-1.18.0/src/common/test/Makefile.in --- libmbim-1.14.2/src/common/test/Makefile.in 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/src/common/test/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -0,0 +1,755 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +noinst_PROGRAMS = test-common$(EXEEXT) +subdir = src/common/test +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/compiler-warnings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +PROGRAMS = $(noinst_PROGRAMS) +am_test_common_OBJECTS = test_common-test-common.$(OBJEXT) +test_common_OBJECTS = $(am_test_common_OBJECTS) +am__DEPENDENCIES_1 = +test_common_DEPENDENCIES = \ + $(top_builddir)/src/common/libmbim-common.la \ + $(am__DEPENDENCIES_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/test_common-test-common.Po +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(test_common_SOURCES) +DIST_SOURCES = $(test_common_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ + $(top_srcdir)/gtester.make +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GUDEV_CFLAGS = @GUDEV_CFLAGS@ +GUDEV_LIBS = @GUDEV_LIBS@ +HELP2MAN = @HELP2MAN@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBMBIM_GLIB_CFLAGS = @LIBMBIM_GLIB_CFLAGS@ +LIBMBIM_GLIB_LIBS = @LIBMBIM_GLIB_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MBIMCLI_CFLAGS = @MBIMCLI_CFLAGS@ +MBIMCLI_LIBS = @MBIMCLI_LIBS@ +MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ +MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ +MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ +MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ +MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ +MBIM_MAJOR_VERSION = @MBIM_MAJOR_VERSION@ +MBIM_MICRO_VERSION = @MBIM_MICRO_VERSION@ +MBIM_MINOR_VERSION = @MBIM_MINOR_VERSION@ +MBIM_USERNAME = @MBIM_USERNAME@ +MBIM_VERSION = @MBIM_VERSION@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UDEV_BASE_DIR = @UDEV_BASE_DIR@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +GTESTER = gtester +GTESTER_REPORT = gtester-report + +# initialize variables for unconditional += appending +EXTRA_DIST = +TEST_PROGS = $(noinst_PROGRAMS) +test_common_SOURCES = \ + test-common.c + +test_common_CPPFLAGS = \ + $(MBIM_COMMON_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -I$(top_srcdir)/src/common + +test_common_LDADD = \ + $(top_builddir)/src/common/libmbim-common.la \ + $(MBIM_COMMON_LIBS) + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gtester.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/common/test/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/common/test/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; +$(top_srcdir)/gtester.make $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +test-common$(EXEEXT): $(test_common_OBJECTS) $(test_common_DEPENDENCIES) $(EXTRA_test_common_DEPENDENCIES) + @rm -f test-common$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_common_OBJECTS) $(test_common_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_common-test-common.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +test_common-test-common.o: test-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_common_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_common-test-common.o -MD -MP -MF $(DEPDIR)/test_common-test-common.Tpo -c -o test_common-test-common.o `test -f 'test-common.c' || echo '$(srcdir)/'`test-common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_common-test-common.Tpo $(DEPDIR)/test_common-test-common.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-common.c' object='test_common-test-common.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_common_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_common-test-common.o `test -f 'test-common.c' || echo '$(srcdir)/'`test-common.c + +test_common-test-common.obj: test-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_common_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_common-test-common.obj -MD -MP -MF $(DEPDIR)/test_common-test-common.Tpo -c -o test_common-test-common.obj `if test -f 'test-common.c'; then $(CYGPATH_W) 'test-common.c'; else $(CYGPATH_W) '$(srcdir)/test-common.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_common-test-common.Tpo $(DEPDIR)/test_common-test-common.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-common.c' object='test_common-test-common.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_common_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_common-test-common.obj `if test -f 'test-common.c'; then $(CYGPATH_W) 'test-common.c'; else $(CYGPATH_W) '$(srcdir)/test-common.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -f ./$(DEPDIR)/test_common-test-common.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f ./$(DEPDIR)/test_common-test-common.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am \ + check-local clean clean-generic clean-libtool \ + clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +### testing rules + +# test: run all tests in cwd and subdirs +test: test-nonrecursive + @ for subdir in $(SUBDIRS) . ; do \ + test "$$subdir" = "." -o "$$subdir" = "po" || \ + ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ + done + +# test-nonrecursive: run tests only in cwd +test-nonrecursive: ${TEST_PROGS} + @test -z "${TEST_PROGS}" || G_DEBUG=gc-friendly MALLOC_CHECK_=2 MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) ${GTESTER} --verbose ${TEST_PROGS} + +# test-report: run tests in subdirs and generate report +# perf-report: run tests in subdirs with -m perf and generate report +# full-report: like test-report: with -m perf and -m slow +test-report perf-report full-report: ${TEST_PROGS} + @test -z "${TEST_PROGS}" || { \ + case $@ in \ + test-report) test_options="-k";; \ + perf-report) test_options="-k -m=perf";; \ + full-report) test_options="-k -m=perf -m=slow";; \ + esac ; \ + if test -z "$$GTESTER_LOGDIR" ; then \ + ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \ + elif test -n "${TEST_PROGS}" ; then \ + ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \ + fi ; \ + } + @ ignore_logdir=true ; \ + if test -z "$$GTESTER_LOGDIR" ; then \ + GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \ + ignore_logdir=false ; \ + fi ; \ + if test -d "$(top_srcdir)/.git" ; then \ + REVISION=`git describe` ; \ + else \ + REVISION=$(VERSION) ; \ + fi ; \ + for subdir in $(SUBDIRS) . ; do \ + test "$$subdir" = "." -o "$$subdir" = "po" || \ + ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ + done ; \ + $$ignore_logdir || { \ + echo '' > $@.xml ; \ + echo '' >> $@.xml ; \ + echo '' >> $@.xml ; \ + echo ' $(PACKAGE)' >> $@.xml ; \ + echo ' $(VERSION)' >> $@.xml ; \ + echo " $$REVISION" >> $@.xml ; \ + echo '' >> $@.xml ; \ + for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ + sed '1,1s/^?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ + done ; \ + echo >> $@.xml ; \ + echo '' >> $@.xml ; \ + rm -rf "$$GTESTER_LOGDIR"/ ; \ + ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \ + } +.PHONY: test test-report perf-report full-report test-nonrecursive + +.PHONY: lcov genlcov lcov-clean +# use recursive makes in order to ignore errors during check +lcov: + -$(MAKE) $(AM_MAKEFLAGS) -k check + $(MAKE) $(AM_MAKEFLAGS) genlcov + +# we have to massage the lcov.info file slightly to hide the effect of libtool +# placing the objects files in the .libs/ directory separate from the *.c +# we also have to delete tests/.libs/libmoduletestplugin_*.gcda +genlcov: + rm -f $(top_builddir)/tests/.libs/libmoduletestplugin_*.gcda + $(LTP) --directory $(top_builddir) --capture --output-file glib-lcov.info --test-name GLIB_PERF --no-checksum --compat-libtool + LANG=C $(LTP_GENHTML) --prefix $(top_builddir) --output-directory glib-lcov --title "GLib Code Coverage" --legend --show-details glib-lcov.info + @echo "file://$(abs_top_builddir)/glib-lcov/index.html" + +lcov-clean: + -$(LTP) --directory $(top_builddir) -z + -rm -rf glib-lcov.info glib-lcov + -find -name '*.gcda' -print | xargs rm + +# run tests in cwd as part of make check +check-local: test-nonrecursive + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru libmbim-1.14.2/src/common/test/test-common.c libmbim-1.18.0/src/common/test/test-common.c --- libmbim-1.14.2/src/common/test/test-common.c 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/src/common/test/test-common.c 2018-03-20 21:33:15.000000000 +0100 @@ -0,0 +1,54 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details: + * + * Copyright (C) 2017 Google Inc. + */ + +#include + +#include "mbim-common.h" + +static void +test_common_str_hex (void) +{ + static const guint8 buffer [] = { 0x00, 0xDE, 0xAD, 0xC0, 0xDE }; + gchar *str; + + str = mbim_common_str_hex (NULL, 0, ':'); + g_assert (str == NULL); + + str = mbim_common_str_hex (buffer, 0, ':'); + g_assert (str == NULL); + + str = mbim_common_str_hex (buffer, 1, ':'); + g_assert_cmpstr (str, ==, "00"); + g_free (str); + + str = mbim_common_str_hex (buffer, 2, '-'); + g_assert_cmpstr (str, ==, "00-DE"); + g_free (str); + + str = mbim_common_str_hex (buffer, 5, '.'); + g_assert_cmpstr (str, ==, "00.DE.AD.C0.DE"); + g_free (str); +} + +/*****************************************************************************/ + +int main (int argc, char **argv) +{ + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/common/str_hex", test_common_str_hex); + + return g_test_run (); +} diff -Nru libmbim-1.14.2/src/libmbim-glib/generated/Makefile.am libmbim-1.18.0/src/libmbim-glib/generated/Makefile.am --- libmbim-1.14.2/src/libmbim-glib/generated/Makefile.am 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/generated/Makefile.am 2019-01-08 13:16:16.000000000 +0100 @@ -13,7 +13,10 @@ mbim-ms-firmware-id.h \ mbim-ms-host-shutdown.h \ mbim-proxy-control.h \ - mbim-qmi.h + mbim-qmi.h \ + mbim-atds.h \ + mbim-intel-firmware-update.h \ + mbim-ms-basic-connect-extensions.h GENERATED_C = \ mbim-error-types.c \ @@ -29,7 +32,10 @@ mbim-ms-firmware-id.c \ mbim-ms-host-shutdown.c \ mbim-proxy-control.c \ - mbim-qmi.c + mbim-qmi.c \ + mbim-atds.c \ + mbim-intel-firmware-update.c \ + mbim-ms-basic-connect-extensions.c GENERATED_SECTIONS = \ mbim-basic-connect.sections \ @@ -42,7 +48,10 @@ mbim-ms-firmware-id.sections \ mbim-ms-host-shutdown.sections \ mbim-proxy-control.sections \ - mbim-qmi.sections + mbim-qmi.sections \ + mbim-atds.sections \ + mbim-intel-firmware-update.sections \ + mbim-ms-basic-connect-extensions.sections # Error types mbim-error-types.h: $(top_srcdir)/src/libmbim-glib/mbim-errors.h $(top_srcdir)/build-aux/templates/mbim-error-types-template.h @@ -88,7 +97,7 @@ $(AM_V_GEN) \ rm -f mbim-basic-connect.h && \ rm -f mbim-basic-connect.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-basic-connect.json \ --output mbim-basic-connect @@ -97,7 +106,7 @@ $(AM_V_GEN) \ rm -f mbim-sms.h && \ rm -f mbim-sms.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-sms.json \ --output mbim-sms @@ -106,7 +115,7 @@ $(AM_V_GEN) \ rm -f mbim-ussd.h && \ rm -f mbim-ussd.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-ussd.json \ --output mbim-ussd @@ -115,7 +124,7 @@ $(AM_V_GEN) \ rm -f mbim-auth.h && \ rm -f mbim-auth.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-auth.json \ --output mbim-auth @@ -124,7 +133,7 @@ $(AM_V_GEN) \ rm -f mbim-phonebook.h && \ rm -f mbim-phonebook.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-phonebook.json \ --output mbim-phonebook @@ -133,7 +142,7 @@ $(AM_V_GEN) \ rm -f mbim-stk.h && \ rm -f mbim-stk.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-stk.json \ --output mbim-stk @@ -142,7 +151,7 @@ $(AM_V_GEN) \ rm -f mbim-dss.h && \ rm -f mbim-dss.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-dss.json \ --output mbim-dss @@ -151,7 +160,7 @@ $(AM_V_GEN) \ rm -f mbim-ms-firmware-id.h && \ rm -f mbim-ms-firmware-id.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-ms-firmware-id.json \ --output mbim-ms-firmware-id @@ -160,7 +169,7 @@ $(AM_V_GEN) \ rm -f mbim-ms-host-shutdown.h && \ rm -f mbim-ms-host-shutdown.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-ms-host-shutdown.json \ --output mbim-ms-host-shutdown @@ -169,7 +178,7 @@ $(AM_V_GEN) \ rm -f mbim-proxy-control.h && \ rm -f mbim-proxy-control.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-proxy-control.json \ --output mbim-proxy-control @@ -178,10 +187,37 @@ $(AM_V_GEN) \ rm -f mbim-qmi.h && \ rm -f mbim-qmi.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-qmi.json \ --output mbim-qmi +# ATT Device service +mbim-atds.h mbim-atds.c mbim-atds.sections: $(top_srcdir)/data/mbim-service-atds.json $(top_srcdir)/build-aux/mbim-codegen/*.py $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen + $(AM_V_GEN) \ + rm -f mbim-atds.h && \ + rm -f mbim-atds.c && \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + --input $(top_srcdir)/data/mbim-service-atds.json \ + --output mbim-atds + +# Intel Firmware Update Service +mbim-intel-firmware-update.h mbim-intel-firmware-update.c mbim-intel-firmware-update.sections: $(top_srcdir)/data/mbim-service-intel-firmware-update.json $(top_srcdir)/build-aux/mbim-codegen/*.py $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen + $(AM_V_GEN) \ + rm -f mbim-intel-firmware-update.h && \ + rm -f mbim-intel-firmware-update.c && \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + --input $(top_srcdir)/data/mbim-service-intel-firmware-update.json \ + --output mbim-intel-firmware-update + +# Microsoft Basic Connect Extensions service +mbim-ms-basic-connect-extensions.h mbim-ms-basic-connect-extensions.c mbim-ms-basic-connect-extensions.sections: $(top_srcdir)/data/mbim-service-ms-basic-connect-extensions.json $(top_srcdir)/build-aux/mbim-codegen/*.py $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen + $(AM_V_GEN) \ + rm -f mbim-ms-basic-connect-extensions.h && \ + rm -f mbim-ms-basic-connect-extensions.c && \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + --input $(top_srcdir)/data/mbim-service-ms-basic-connect-extensions.json \ + --output mbim-ms-basic-connect-extensions + BUILT_SOURCES = $(GENERATED_H) $(GENERATED_C) nodist_libmbim_glib_generated_la_SOURCES = \ diff -Nru libmbim-1.14.2/src/libmbim-glib/generated/Makefile.in libmbim-1.18.0/src/libmbim-glib/generated/Makefile.in --- libmbim-1.14.2/src/libmbim-glib/generated/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/generated/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -120,7 +120,10 @@ libmbim_glib_generated_la-mbim-ms-firmware-id.lo \ libmbim_glib_generated_la-mbim-ms-host-shutdown.lo \ libmbim_glib_generated_la-mbim-proxy-control.lo \ - libmbim_glib_generated_la-mbim-qmi.lo + libmbim_glib_generated_la-mbim-qmi.lo \ + libmbim_glib_generated_la-mbim-atds.lo \ + libmbim_glib_generated_la-mbim-intel-firmware-update.lo \ + libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.lo nodist_libmbim_glib_generated_la_OBJECTS = $(am__objects_1) \ $(am__objects_2) libmbim_glib_generated_la_OBJECTS = \ @@ -143,7 +146,25 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-atds.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-auth.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-basic-connect.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-dss.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-enum-types.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-error-quarks.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-error-types.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-intel-firmware-update.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-firmware-id.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-host-shutdown.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-phonebook.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-proxy-control.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-qmi.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-sms.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-stk.Plo \ + ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ussd.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -280,6 +301,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -306,6 +329,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -354,9 +382,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -379,7 +411,10 @@ mbim-ms-firmware-id.h \ mbim-ms-host-shutdown.h \ mbim-proxy-control.h \ - mbim-qmi.h + mbim-qmi.h \ + mbim-atds.h \ + mbim-intel-firmware-update.h \ + mbim-ms-basic-connect-extensions.h GENERATED_C = \ mbim-error-types.c \ @@ -395,7 +430,10 @@ mbim-ms-firmware-id.c \ mbim-ms-host-shutdown.c \ mbim-proxy-control.c \ - mbim-qmi.c + mbim-qmi.c \ + mbim-atds.c \ + mbim-intel-firmware-update.c \ + mbim-ms-basic-connect-extensions.c GENERATED_SECTIONS = \ mbim-basic-connect.sections \ @@ -408,7 +446,10 @@ mbim-ms-firmware-id.sections \ mbim-ms-host-shutdown.sections \ mbim-proxy-control.sections \ - mbim-qmi.sections + mbim-qmi.sections \ + mbim-atds.sections \ + mbim-intel-firmware-update.sections \ + mbim-ms-basic-connect-extensions.sections # Enum/Flag types @@ -459,8 +500,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -492,20 +533,29 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-auth.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-basic-connect.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-dss.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-enum-types.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-error-quarks.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-error-types.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-firmware-id.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-host-shutdown.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-phonebook.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-proxy-control.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-qmi.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-sms.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-stk.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-ussd.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-atds.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-auth.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-basic-connect.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-dss.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-enum-types.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-error-quarks.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-error-types.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-intel-firmware-update.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-firmware-id.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-host-shutdown.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-phonebook.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-proxy-control.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-qmi.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-sms.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-stk.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_generated_la-mbim-ussd.Plo@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -626,6 +676,27 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmbim_glib_generated_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmbim_glib_generated_la-mbim-qmi.lo `test -f 'mbim-qmi.c' || echo '$(srcdir)/'`mbim-qmi.c +libmbim_glib_generated_la-mbim-atds.lo: mbim-atds.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmbim_glib_generated_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmbim_glib_generated_la-mbim-atds.lo -MD -MP -MF $(DEPDIR)/libmbim_glib_generated_la-mbim-atds.Tpo -c -o libmbim_glib_generated_la-mbim-atds.lo `test -f 'mbim-atds.c' || echo '$(srcdir)/'`mbim-atds.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmbim_glib_generated_la-mbim-atds.Tpo $(DEPDIR)/libmbim_glib_generated_la-mbim-atds.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbim-atds.c' object='libmbim_glib_generated_la-mbim-atds.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmbim_glib_generated_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmbim_glib_generated_la-mbim-atds.lo `test -f 'mbim-atds.c' || echo '$(srcdir)/'`mbim-atds.c + +libmbim_glib_generated_la-mbim-intel-firmware-update.lo: mbim-intel-firmware-update.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmbim_glib_generated_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmbim_glib_generated_la-mbim-intel-firmware-update.lo -MD -MP -MF $(DEPDIR)/libmbim_glib_generated_la-mbim-intel-firmware-update.Tpo -c -o libmbim_glib_generated_la-mbim-intel-firmware-update.lo `test -f 'mbim-intel-firmware-update.c' || echo '$(srcdir)/'`mbim-intel-firmware-update.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmbim_glib_generated_la-mbim-intel-firmware-update.Tpo $(DEPDIR)/libmbim_glib_generated_la-mbim-intel-firmware-update.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbim-intel-firmware-update.c' object='libmbim_glib_generated_la-mbim-intel-firmware-update.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmbim_glib_generated_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmbim_glib_generated_la-mbim-intel-firmware-update.lo `test -f 'mbim-intel-firmware-update.c' || echo '$(srcdir)/'`mbim-intel-firmware-update.c + +libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.lo: mbim-ms-basic-connect-extensions.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmbim_glib_generated_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.lo -MD -MP -MF $(DEPDIR)/libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.Tpo -c -o libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.lo `test -f 'mbim-ms-basic-connect-extensions.c' || echo '$(srcdir)/'`mbim-ms-basic-connect-extensions.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.Tpo $(DEPDIR)/libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbim-ms-basic-connect-extensions.c' object='libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmbim_glib_generated_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.lo `test -f 'mbim-ms-basic-connect-extensions.c' || echo '$(srcdir)/'`mbim-ms-basic-connect-extensions.c + mostlyclean-libtool: -rm -f *.lo @@ -705,7 +776,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -782,7 +856,23 @@ mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-atds.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-auth.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-basic-connect.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-dss.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-enum-types.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-error-quarks.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-error-types.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-intel-firmware-update.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-firmware-id.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-host-shutdown.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-phonebook.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-proxy-control.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-qmi.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-sms.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-stk.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ussd.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -828,7 +918,23 @@ installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-atds.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-auth.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-basic-connect.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-dss.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-enum-types.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-error-quarks.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-error-types.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-intel-firmware-update.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-basic-connect-extensions.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-firmware-id.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ms-host-shutdown.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-phonebook.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-proxy-control.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-qmi.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-sms.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-stk.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_generated_la-mbim-ussd.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -849,19 +955,20 @@ .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-nodist_includeHEADERS \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-libtool clean-noinstLTLIBRARIES \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man \ + install-nodist_includeHEADERS install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ uninstall-nodist_includeHEADERS .PRECIOUS: Makefile @@ -904,7 +1011,7 @@ $(AM_V_GEN) \ rm -f mbim-basic-connect.h && \ rm -f mbim-basic-connect.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-basic-connect.json \ --output mbim-basic-connect @@ -913,7 +1020,7 @@ $(AM_V_GEN) \ rm -f mbim-sms.h && \ rm -f mbim-sms.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-sms.json \ --output mbim-sms @@ -922,7 +1029,7 @@ $(AM_V_GEN) \ rm -f mbim-ussd.h && \ rm -f mbim-ussd.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-ussd.json \ --output mbim-ussd @@ -931,7 +1038,7 @@ $(AM_V_GEN) \ rm -f mbim-auth.h && \ rm -f mbim-auth.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-auth.json \ --output mbim-auth @@ -940,7 +1047,7 @@ $(AM_V_GEN) \ rm -f mbim-phonebook.h && \ rm -f mbim-phonebook.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-phonebook.json \ --output mbim-phonebook @@ -949,7 +1056,7 @@ $(AM_V_GEN) \ rm -f mbim-stk.h && \ rm -f mbim-stk.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-stk.json \ --output mbim-stk @@ -958,7 +1065,7 @@ $(AM_V_GEN) \ rm -f mbim-dss.h && \ rm -f mbim-dss.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-dss.json \ --output mbim-dss @@ -967,7 +1074,7 @@ $(AM_V_GEN) \ rm -f mbim-ms-firmware-id.h && \ rm -f mbim-ms-firmware-id.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-ms-firmware-id.json \ --output mbim-ms-firmware-id @@ -976,7 +1083,7 @@ $(AM_V_GEN) \ rm -f mbim-ms-host-shutdown.h && \ rm -f mbim-ms-host-shutdown.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-ms-host-shutdown.json \ --output mbim-ms-host-shutdown @@ -985,7 +1092,7 @@ $(AM_V_GEN) \ rm -f mbim-proxy-control.h && \ rm -f mbim-proxy-control.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-proxy-control.json \ --output mbim-proxy-control @@ -994,10 +1101,37 @@ $(AM_V_GEN) \ rm -f mbim-qmi.h && \ rm -f mbim-qmi.c && \ - $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ --input $(top_srcdir)/data/mbim-service-qmi.json \ --output mbim-qmi +# ATT Device service +mbim-atds.h mbim-atds.c mbim-atds.sections: $(top_srcdir)/data/mbim-service-atds.json $(top_srcdir)/build-aux/mbim-codegen/*.py $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen + $(AM_V_GEN) \ + rm -f mbim-atds.h && \ + rm -f mbim-atds.c && \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + --input $(top_srcdir)/data/mbim-service-atds.json \ + --output mbim-atds + +# Intel Firmware Update Service +mbim-intel-firmware-update.h mbim-intel-firmware-update.c mbim-intel-firmware-update.sections: $(top_srcdir)/data/mbim-service-intel-firmware-update.json $(top_srcdir)/build-aux/mbim-codegen/*.py $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen + $(AM_V_GEN) \ + rm -f mbim-intel-firmware-update.h && \ + rm -f mbim-intel-firmware-update.c && \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + --input $(top_srcdir)/data/mbim-service-intel-firmware-update.json \ + --output mbim-intel-firmware-update + +# Microsoft Basic Connect Extensions service +mbim-ms-basic-connect-extensions.h mbim-ms-basic-connect-extensions.c mbim-ms-basic-connect-extensions.sections: $(top_srcdir)/data/mbim-service-ms-basic-connect-extensions.json $(top_srcdir)/build-aux/mbim-codegen/*.py $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen + $(AM_V_GEN) \ + rm -f mbim-ms-basic-connect-extensions.h && \ + rm -f mbim-ms-basic-connect-extensions.c && \ + $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \ + --input $(top_srcdir)/data/mbim-service-ms-basic-connect-extensions.json \ + --output mbim-ms-basic-connect-extensions + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -Nru libmbim-1.14.2/src/libmbim-glib/libmbim-glib.h libmbim-1.18.0/src/libmbim-glib/libmbim-glib.h --- libmbim-1.14.2/src/libmbim-glib/libmbim-glib.h 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/libmbim-glib.h 2019-01-08 13:16:16.000000000 +0100 @@ -49,6 +49,9 @@ #include "mbim-ms-firmware-id.h" #include "mbim-ms-host-shutdown.h" #include "mbim-qmi.h" +#include "mbim-atds.h" +#include "mbim-intel-firmware-update.h" +#include "mbim-ms-basic-connect-extensions.h" /* backwards compatibility */ #include "mbim-compat.h" diff -Nru libmbim-1.14.2/src/libmbim-glib/Makefile.am libmbim-1.18.0/src/libmbim-glib/Makefile.am --- libmbim-1.14.2/src/libmbim-glib/Makefile.am 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/Makefile.am 2018-03-20 21:33:15.000000000 +0100 @@ -8,6 +8,7 @@ $(GUDEV_CFLAGS) \ -I$(top_srcdir) \ -I$(top_builddir) \ + -I$(top_srcdir)/src/common \ -I$(top_srcdir)/src/libmbim-glib \ -I$(top_srcdir)/src/libmbim-glib/generated \ -I$(top_builddir)/src/libmbim-glib \ @@ -36,6 +37,7 @@ libmbim_glib_la_LIBADD = \ libmbim-glib-core.la \ + ${top_builddir}/src/common/libmbim-common.la \ ${top_builddir}/src/libmbim-glib/generated/libmbim-glib-generated.la \ $(LIBMBIM_GLIB_LIBS) \ $(GUDEV_LIBS) diff -Nru libmbim-1.14.2/src/libmbim-glib/Makefile.in libmbim-1.18.0/src/libmbim-glib/Makefile.in --- libmbim-1.14.2/src/libmbim-glib/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -149,6 +149,7 @@ am__v_lt_1 = am__DEPENDENCIES_1 = libmbim_glib_la_DEPENDENCIES = libmbim-glib-core.la \ + ${top_builddir}/src/common/libmbim-common.la \ ${top_builddir}/src/libmbim-glib/generated/libmbim-glib-generated.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libmbim_glib_la_OBJECTS = @@ -171,7 +172,15 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/libmbim_glib_core_la-mbim-cid.Plo \ + ./$(DEPDIR)/libmbim_glib_core_la-mbim-compat.Plo \ + ./$(DEPDIR)/libmbim_glib_core_la-mbim-device.Plo \ + ./$(DEPDIR)/libmbim_glib_core_la-mbim-message.Plo \ + ./$(DEPDIR)/libmbim_glib_core_la-mbim-proxy-helpers.Plo \ + ./$(DEPDIR)/libmbim_glib_core_la-mbim-proxy.Plo \ + ./$(DEPDIR)/libmbim_glib_core_la-mbim-utils.Plo \ + ./$(DEPDIR)/libmbim_glib_core_la-mbim-uuid.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -215,7 +224,7 @@ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -324,6 +333,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -350,6 +361,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -398,9 +414,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -418,6 +438,7 @@ $(GUDEV_CFLAGS) \ -I$(top_srcdir) \ -I$(top_builddir) \ + -I$(top_srcdir)/src/common \ -I$(top_srcdir)/src/libmbim-glib \ -I$(top_srcdir)/src/libmbim-glib/generated \ -I$(top_builddir)/src/libmbim-glib \ @@ -447,6 +468,7 @@ libmbim_glib_la_LIBADD = \ libmbim-glib-core.la \ + ${top_builddir}/src/common/libmbim-common.la \ ${top_builddir}/src/libmbim-glib/generated/libmbim-glib-generated.la \ $(LIBMBIM_GLIB_LIBS) \ $(GUDEV_LIBS) @@ -492,8 +514,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -565,14 +587,20 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-cid.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-compat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-device.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-message.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-proxy-helpers.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-proxy.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-utils.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-uuid.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-cid.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-compat.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-device.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-message.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-proxy-helpers.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-proxy.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-utils.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmbim_glib_core_la-mbim-uuid.Plo@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -777,7 +805,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -876,7 +907,14 @@ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-cid.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-compat.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-device.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-message.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-proxy-helpers.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-proxy.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-utils.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-uuid.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -922,7 +960,14 @@ installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-cid.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-compat.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-device.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-message.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-proxy-helpers.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-proxy.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-utils.Plo + -rm -f ./$(DEPDIR)/libmbim_glib_core_la-mbim-uuid.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -943,14 +988,14 @@ .MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic clean-libLTLIBRARIES \ - clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--depfiles check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-cid.c libmbim-1.18.0/src/libmbim-glib/mbim-cid.c --- libmbim-1.14.2/src/libmbim-glib/mbim-cid.c 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-cid.c 2019-01-08 13:16:16.000000000 +0100 @@ -144,7 +144,38 @@ /* Note: index of the array is CID-1 */ #define MBIM_CID_QMI_LAST MBIM_CID_QMI_MSG static const CidConfig cid_qmi_config [MBIM_CID_QMI_LAST] = { - { SET, NO_QUERY, NO_NOTIFY }, /* MBIM_CID_QMI_MSG */ + { SET, NO_QUERY, NOTIFY }, /* MBIM_CID_QMI_MSG */ +}; + +/* Note: index of the array is CID-1 */ +#define MBIM_CID_ATDS_LAST MBIM_CID_ATDS_REGISTER_STATE +static const CidConfig cid_atds_config [MBIM_CID_ATDS_LAST] = { + { NO_SET, QUERY, NO_NOTIFY }, /* MBIM_CID_ATDS_SIGNAL */ + { NO_SET, QUERY, NO_NOTIFY }, /* MBIM_CID_ATDS_LOCATION */ + { SET, QUERY, NO_NOTIFY }, /* MBIM_CID_ATDS_OPERATORS */ + { SET, QUERY, NO_NOTIFY }, /* MBIM_CID_ATDS_RAT */ + { NO_SET, QUERY, NO_NOTIFY }, /* MBIM_CID_ATDS_REGISTER_STATE */ +}; + +/* Note: index of the array is CID-1 */ +#define MBIM_CID_INTEL_FIRMWARE_UPDATE_LAST MBIM_CID_INTEL_FIRMWARE_UPDATE_MODEM_REBOOT +static const CidConfig cid_intel_firmware_update_config [MBIM_CID_INTEL_FIRMWARE_UPDATE_LAST] = { + { SET, NO_QUERY, NO_NOTIFY }, /* MBIM_CID_INTEL_FIRMWARE_UPDATE_MODEM_REBOOT */ +}; + +/* Note: index of the array is CID-1 */ +#define MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_LAST MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_RESET +static const CidConfig cid_ms_basic_connect_extensions_config [MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_LAST] = { + { SET, QUERY, NOTIFY }, /* MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_PROVISIONED_CONTEXTS */ + { SET, QUERY, NOTIFY }, /* MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_NETWORK_BLACKLIST */ + { SET, QUERY, NOTIFY }, /* MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_LTE_ATTACH_CONFIG */ + { SET, QUERY, NOTIFY }, /* MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_LTE_ATTACH_STATUS */ + { NO_SET, QUERY, NO_NOTIFY }, /* MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_SYS_CAPS */ + { NO_SET, QUERY, NO_NOTIFY }, /* MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_CAPS */ + { SET, QUERY, NO_NOTIFY }, /* MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_SLOT_MAPPINGS */ + { NO_SET, QUERY, NOTIFY }, /* MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_SLOT_INFO_STATUS */ + { NO_SET, QUERY, NOTIFY }, /* MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_PCO */ + { SET, NO_QUERY, NO_NOTIFY }, /* MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_RESET */ }; /** @@ -189,6 +220,12 @@ return cid_proxy_control_config[cid - 1].set; case MBIM_SERVICE_QMI: return cid_qmi_config[cid - 1].set; + case MBIM_SERVICE_ATDS: + return cid_atds_config[cid - 1].set; + case MBIM_SERVICE_INTEL_FIRMWARE_UPDATE: + return cid_intel_firmware_update_config[cid - 1].set; + case MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS: + return cid_ms_basic_connect_extensions_config[cid - 1].set; default: g_assert_not_reached (); return FALSE; @@ -237,6 +274,12 @@ return cid_proxy_control_config[cid - 1].query; case MBIM_SERVICE_QMI: return cid_qmi_config[cid - 1].query; + case MBIM_SERVICE_ATDS: + return cid_atds_config[cid - 1].query; + case MBIM_SERVICE_INTEL_FIRMWARE_UPDATE: + return cid_intel_firmware_update_config[cid - 1].query; + case MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS: + return cid_ms_basic_connect_extensions_config[cid - 1].query; default: g_assert_not_reached (); return FALSE; @@ -285,6 +328,12 @@ return cid_proxy_control_config[cid - 1].notify; case MBIM_SERVICE_QMI: return cid_qmi_config[cid - 1].notify; + case MBIM_SERVICE_ATDS: + return cid_atds_config[cid - 1].notify; + case MBIM_SERVICE_INTEL_FIRMWARE_UPDATE: + return cid_intel_firmware_update_config[cid - 1].notify; + case MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS: + return cid_ms_basic_connect_extensions_config[cid - 1].notify; default: g_assert_not_reached (); return FALSE; @@ -308,10 +357,12 @@ /* CID = 0 is never a valid command */ g_return_val_if_fail (cid > 0, NULL); /* Known service required */ - g_return_val_if_fail (service > MBIM_SERVICE_INVALID, NULL); + g_return_val_if_fail (service >= MBIM_SERVICE_INVALID, NULL); g_return_val_if_fail (service < MBIM_SERVICE_LAST, NULL); switch (service) { + case MBIM_SERVICE_INVALID: + return "invalid"; case MBIM_SERVICE_BASIC_CONNECT: return mbim_cid_basic_connect_get_string (cid); case MBIM_SERVICE_SMS: @@ -334,8 +385,14 @@ return mbim_cid_proxy_control_get_string (cid); case MBIM_SERVICE_QMI: return mbim_cid_qmi_get_string (cid); + case MBIM_SERVICE_ATDS: + return mbim_cid_atds_get_string (cid); + case MBIM_SERVICE_INTEL_FIRMWARE_UPDATE: + return mbim_cid_intel_firmware_update_get_string (cid); + case MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS: + return mbim_cid_ms_basic_connect_extensions_get_string (cid); default: g_assert_not_reached (); - return FALSE; + return NULL; } } diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-cid.h libmbim-1.18.0/src/libmbim-glib/mbim-cid.h --- libmbim-1.14.2/src/libmbim-glib/mbim-cid.h 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-cid.h 2019-01-08 13:16:16.000000000 +0100 @@ -18,7 +18,7 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * - * Copyright (C) 2013 - 2014 Aleksander Morgado + * Copyright (C) 2013 - 2018 Aleksander Morgado */ #ifndef _LIBMBIM_GLIB_MBIM_CID_H_ @@ -222,7 +222,7 @@ /** * MbimCidQmi: * @MBIM_CID_QMI_UNKNOWN: Unknown command. - * @MBIM_CID_QMI_MSG: Configuration. + * @MBIM_CID_QMI_MSG: Send QMI request and receive QMI response. * * MBIM commands in the %MBIM_SERVICE_QMI service. */ @@ -231,6 +231,68 @@ MBIM_CID_QMI_MSG = 1 } MbimCidQmi; +/** + * MbimCidAtds: + * @MBIM_CID_ATDS_UNKNOWN: Unknown command. + * @MBIM_CID_ATDS_SIGNAL: Radio signal information. + * @MBIM_CID_ATDS_LOCATION: Cell location information. + * @MBIM_CID_ATDS_OPERATORS: Operator selection. + * @MBIM_CID_ATDS_RAT: Radio Access Technology selection. + * @MBIM_CID_ATDS_REGISTER_STATE: Registration state. + * + * MBIM commands in the %MBIM_SERVICE_ATDS service. + */ +typedef enum { + MBIM_CID_ATDS_UNKNOWN = 0, + MBIM_CID_ATDS_SIGNAL = 1, + MBIM_CID_ATDS_LOCATION = 2, + MBIM_CID_ATDS_OPERATORS = 3, + MBIM_CID_ATDS_RAT = 4, + MBIM_CID_ATDS_REGISTER_STATE = 9, +} MbimCidAtds; + +/** + * MbimCidIntelFirmwareUpdate: + * @MBIM_CID_INTEL_FIRMWARE_UPDATE_UNKNOWN: Unknown command. + * @MBIM_CID_INTEL_FIRMWARE_UPDATE_MODEM_REBOOT: Reboot modem for firmware update. + * + * MBIM commands in the %MBIM_SERVICE_INTEL_FIRMWARE_UPDATE service. + */ +typedef enum { + MBIM_CID_INTEL_FIRMWARE_UPDATE_UNKNOWN = 0, + MBIM_CID_INTEL_FIRMWARE_UPDATE_MODEM_REBOOT = 1, +} MbimCidIntelFirmwareUpdate; + +/** + * MbimCidMsBasicConnectExtensions: + * @MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_UNKNOWN: Unknown command. + * @MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_PROVISIONED_CONTEXTS: Provisioned contexts (v2). + * @MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_NETWORK_BLACKLIST: Network blacklist. + * @MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_LTE_ATTACH_CONFIGURATION: LTE attach configuration. + * @MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_LTE_ATTACH_STATUS: LTE attach status. + * @MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_SYS_CAPS: System capabilities. + * @MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_CAPS: Device capabilities (v2). + * @MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_SLOT_MAPPINGS: Device slot mappings. + * @MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_SLOT_INFO_STATUS: Slot info status. + * @MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_PCO: Protocol configuration operations (PCO). + * @MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_RESET: Device reset. + * + * MBIM commands in the %MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS service. + */ +typedef enum { + MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_UNKNOWN = 0, + MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_PROVISIONED_CONTEXTS = 1, + MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_NETWORK_BLACKLIST = 2, + MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_LTE_ATTACH_CONFIGURATION = 3, + MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_LTE_ATTACH_STATUS = 4, + MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_SYS_CAPS = 5, + MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_CAPS = 6, + MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_SLOT_MAPPINGS = 7, + MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_SLOT_INFO_STATUS = 8, + MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_PCO = 9, + MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_DEVICE_RESET = 10, +} MbimCidMsBasicConnectExtensions; + /* Command helpers */ gboolean mbim_cid_can_set (MbimService service, diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-compat.c libmbim-1.18.0/src/libmbim-glib/mbim-compat.c --- libmbim-1.14.2/src/libmbim-glib/mbim-compat.c 2015-01-21 00:25:49.000000000 +0100 +++ libmbim-1.18.0/src/libmbim-glib/mbim-compat.c 2018-03-20 21:33:15.000000000 +0100 @@ -28,6 +28,8 @@ * This section defines types and functions that have been deprecated. */ +#ifndef MBIM_DISABLE_DEPRECATED + /*****************************************************************************/ /* 'Service Subscriber List' rename to 'Service Subscribe List' */ @@ -81,3 +83,5 @@ events, error)); } + +#endif /* MBIM_DISABLE_DEPRECATED */ diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-compat.h libmbim-1.18.0/src/libmbim-glib/mbim-compat.h --- libmbim-1.14.2/src/libmbim-glib/mbim-compat.h 2017-06-28 18:03:52.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-compat.h 2018-03-20 21:33:15.000000000 +0100 @@ -32,9 +32,15 @@ G_BEGIN_DECLS +#ifndef MBIM_DISABLE_DEPRECATED + /*****************************************************************************/ /* Registration flags name fixup */ +/* The following type exists just so that we can get deprecation warnings */ +G_DEPRECATED +typedef int MbimDeprecatedRegistrationFlag; + /** * MBIM_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH: * @@ -42,14 +48,15 @@ * * Deprecated:1.8.0: Use MBIM_REGISTRATION_FLAG_PACKET_SERVICE_AUTOMATIC_ATTACH instead. */ -G_DEPRECATED_FOR (MBIM_REGISTRATION_FLAG_PACKET_SERVICE_AUTOMATIC_ATTACH) -static const int MBIM_DEPRECATED_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH = - MBIM_REGISTRATION_FLAG_PACKET_SERVICE_AUTOMATIC_ATTACH; -#define MBIM_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH MBIM_DEPRECATED_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH +#define MBIM_REGISTRATION_FLAG_MANUAL_PACKET_SERVICE_AUTOMATIC_ATTACH (MbimDeprecatedRegistrationFlag) MBIM_REGISTRATION_FLAG_PACKET_SERVICE_AUTOMATIC_ATTACH /*****************************************************************************/ /* 'Service Subscriber List' rename to 'Service Subscribe List' */ +/* The following type exists just so that we can get deprecation warnings */ +G_DEPRECATED +typedef int MbimDeprecatedCidBasicConnect; + /** * MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBER_LIST: * @@ -57,10 +64,7 @@ * * Deprecated:1.8.0: Use MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBE_LIST instead. */ -G_DEPRECATED_FOR (MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBE_LIST) -static const int MBIM_DEPRECATED_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBER_LIST = - MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBE_LIST; -#define MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBER_LIST MBIM_DEPRECATED_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBER_LIST +#define MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBER_LIST (MbimDeprecatedCidBasicConnect) MBIM_CID_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBE_LIST G_DEPRECATED_FOR (mbim_message_device_service_subscribe_list_set_new) MbimMessage *mbim_message_device_service_subscriber_list_set_new ( @@ -75,6 +79,8 @@ MbimEventEntry ***events, GError **error); +#endif /* MBIM_DISABLE_DEPRECATED */ + G_END_DECLS #endif /* _LIBMBIM_GLIB_MBIM_COMPAT_H_ */ diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-device.c libmbim-1.18.0/src/libmbim-glib/mbim-device.c --- libmbim-1.14.2/src/libmbim-glib/mbim-device.c 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-device.c 2019-01-08 13:16:16.000000000 +0100 @@ -37,12 +37,15 @@ #include #include #define IOCTL_WDM_MAX_COMMAND _IOR('H', 0xA0, guint16) -#define RETRY_TIMEOUT_SECS 5 -#if WITH_UDEV +#define OPEN_RETRY_TIMEOUT_SECS 5 +#define OPEN_CLOSE_TIMEOUT_SECS 2 + +#if defined WITH_UDEV # include #endif +#include "mbim-common.h" #include "mbim-utils.h" #include "mbim-device.h" #include "mbim-message.h" @@ -110,6 +113,7 @@ GSource *iochannel_source; GByteArray *response; OpenStatus open_status; + guint32 open_transaction_id; /* Support for mbim-proxy */ GSocketClient *socket_client; @@ -143,140 +147,156 @@ /* Message transactions (private) */ typedef struct { - MbimDevice *self; - guint32 transaction_id; - TransactionType type; + MbimDevice *self; + guint32 transaction_id; + TransactionType type; } TransactionWaitContext; typedef struct { - MbimDevice *self; - MbimMessage *fragments; - MbimMessageType type; - guint32 transaction_id; - GSimpleAsyncResult *result; - GSource *timeout_source; - GCancellable *cancellable; - gulong cancellable_id; + MbimMessage *fragments; + MbimMessageType type; + guint32 transaction_id; + GSource *timeout_source; + GCancellable *cancellable; + gulong cancellable_id; TransactionWaitContext *wait_ctx; -} Transaction; +} TransactionContext; + +static void +transaction_context_free (TransactionContext *ctx) +{ + if (ctx->fragments) + mbim_message_unref (ctx->fragments); + + if (ctx->timeout_source) + g_source_destroy (ctx->timeout_source); + + if (ctx->cancellable) { + if (ctx->cancellable_id) + g_cancellable_disconnect (ctx->cancellable, ctx->cancellable_id); + g_object_unref (ctx->cancellable); + } + + if (ctx->wait_ctx) + g_slice_free (TransactionWaitContext, ctx->wait_ctx); + + g_slice_free (TransactionContext, ctx); +} /* #define TRACE_TRANSACTION 1 */ #ifdef TRACE_TRANSACTION static void -trace_transaction (Transaction *tr, - const gchar *state) +transaction_task_trace (GTask *task, + const gchar *state) { + MbimDevice *self; + TransactionContext *ctx; + + self = g_task_get_source_object (task); + ctx = g_task_get_task_data (task); + g_debug ("[%s,%u] transaction %s: %s", - tr->self->priv->path_display, - tr->transaction_id, - mbim_message_type_get_string (tr->type), + self->priv->path_display, + ctx->transaction_id, + mbim_message_type_get_string (ctx->type), state); } #else -# define trace_transaction(...) +# define transaction_task_trace(...) #endif -static Transaction * -transaction_new (MbimDevice *self, - MbimMessageType type, - guint32 transaction_id, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - Transaction *tr; - - tr = g_slice_new0 (Transaction); - tr->type = type; - tr->transaction_id = transaction_id; - tr->self = g_object_ref (self); - tr->result = g_simple_async_result_new (G_OBJECT (self), - callback, - user_data, - transaction_new); - if (cancellable) - tr->cancellable = g_object_ref (cancellable); +static GTask * +transaction_task_new (MbimDevice *self, + MbimMessageType type, + guint32 transaction_id, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *task; + TransactionContext *ctx; + + task = g_task_new (self, cancellable, callback, user_data); + + ctx = g_slice_new0 (TransactionContext); + ctx->type = type; + ctx->transaction_id = transaction_id; + ctx->cancellable = (cancellable ? g_object_ref (cancellable) : NULL); + g_task_set_task_data (task, ctx, (GDestroyNotify) transaction_context_free); - trace_transaction (tr, "new"); + transaction_task_trace (task, "new"); - return tr; + return task; } static void -transaction_complete_and_free (Transaction *tr, - const GError *error) +transaction_task_complete_and_free (GTask *task, + const GError *error) { - if (tr->timeout_source) - g_source_destroy (tr->timeout_source); - - if (tr->cancellable) { - if (tr->cancellable_id) - g_cancellable_disconnect (tr->cancellable, tr->cancellable_id); - g_object_unref (tr->cancellable); - } + TransactionContext *ctx; - if (tr->wait_ctx) - g_slice_free (TransactionWaitContext, tr->wait_ctx); + ctx = g_task_get_task_data (task); if (error) { - trace_transaction (tr, "complete: response"); - g_simple_async_result_set_from_error (tr->result, error); - if (tr->fragments) - mbim_message_unref (tr->fragments); + transaction_task_trace (task, "complete: error"); + g_task_return_error (task, g_error_copy (error)); } else { - trace_transaction (tr, "complete: error"); - g_assert (tr->fragments != NULL); - g_simple_async_result_set_op_res_gpointer (tr->result, - tr->fragments, - (GDestroyNotify) mbim_message_unref); + transaction_task_trace (task, "complete: response"); + g_assert (ctx->fragments != NULL); + g_task_return_pointer (task, mbim_message_ref (ctx->fragments), (GDestroyNotify) mbim_message_unref); } - g_simple_async_result_complete_in_idle (tr->result); - g_object_unref (tr->result); - g_object_unref (tr->self); - g_slice_free (Transaction, tr); + g_object_unref (task); } -static Transaction * +static GTask * device_release_transaction (MbimDevice *self, TransactionType type, MbimMessageType expected_type, guint32 transaction_id) { - Transaction *tr = NULL; + GTask *task; + TransactionContext *ctx; /* Only return transaction if it was released from the HT */ - if (self->priv->transactions[type]) { - tr = g_hash_table_lookup (self->priv->transactions[type], GUINT_TO_POINTER (transaction_id)); - if (tr && ((tr->type == expected_type) || (expected_type == MBIM_MESSAGE_TYPE_INVALID))) { - /* If found, remove it from the HT */ - trace_transaction (tr, "release"); - g_hash_table_remove (self->priv->transactions[type], GUINT_TO_POINTER (transaction_id)); - return tr; - } + if (!self->priv->transactions[type]) + return NULL; + + task = g_hash_table_lookup (self->priv->transactions[type], GUINT_TO_POINTER (transaction_id)); + if (!task) + return NULL; + + ctx = g_task_get_task_data (task); + if ((ctx->type == expected_type) || (expected_type == MBIM_MESSAGE_TYPE_INVALID)) { + /* If found, remove it from the HT */ + transaction_task_trace (task, "release"); + g_hash_table_remove (self->priv->transactions[type], GUINT_TO_POINTER (transaction_id)); + return task; } return NULL; } static gboolean -transaction_timed_out (TransactionWaitContext *ctx) +transaction_timed_out (TransactionWaitContext *wait_ctx) { - Transaction *tr; - GError *error = NULL; - - tr = device_release_transaction (ctx->self, - ctx->type, - MBIM_MESSAGE_TYPE_INVALID, - ctx->transaction_id); - if (!tr) + GTask *task; + TransactionContext *ctx; + GError *error = NULL; + + task = device_release_transaction (wait_ctx->self, + wait_ctx->type, + MBIM_MESSAGE_TYPE_INVALID, + wait_ctx->transaction_id); + if (!task) /* transaction already completed */ return FALSE; - tr->timeout_source = NULL; + ctx = g_task_get_task_data (task); + ctx->timeout_source = NULL; /* If no fragment was received, complete transaction with a timeout error */ - if (!tr->fragments) + if (!ctx->fragments) error = g_error_new (MBIM_CORE_ERROR, MBIM_CORE_ERROR_TIMEOUT, "Transaction timed out"); @@ -287,70 +307,85 @@ "Fragment timed out"); /* Also notify to the modem */ - device_report_error (ctx->self, - tr->transaction_id, + device_report_error (wait_ctx->self, + wait_ctx->transaction_id, error); } - transaction_complete_and_free (tr, error); + transaction_task_complete_and_free (task, error); g_error_free (error); - return FALSE; + return G_SOURCE_REMOVE; } static void transaction_cancelled (GCancellable *cancellable, - TransactionWaitContext *ctx) + TransactionWaitContext *wait_ctx) { - Transaction *tr; - GError *error = NULL; + GTask *task; + TransactionContext *ctx; + GError *error = NULL; + + task = device_release_transaction (wait_ctx->self, + wait_ctx->type, + MBIM_MESSAGE_TYPE_INVALID, + wait_ctx->transaction_id); - tr = device_release_transaction (ctx->self, - ctx->type, - MBIM_MESSAGE_TYPE_INVALID, - ctx->transaction_id); - tr->cancellable_id = 0; + /* The transaction may have already been cancelled before we stored it in + * the tracking table */ + if (!task) + return; + + ctx = g_task_get_task_data (task); + ctx->cancellable_id = 0; /* Complete transaction with an abort error */ error = g_error_new (MBIM_CORE_ERROR, MBIM_CORE_ERROR_ABORTED, "Transaction aborted"); - transaction_complete_and_free (tr, error); + transaction_task_complete_and_free (task, error); g_error_free (error); } static gboolean device_store_transaction (MbimDevice *self, TransactionType type, - Transaction *tr, + GTask *task, guint timeout_ms, GError **error) { - trace_transaction (tr, "store"); + TransactionContext *ctx; + + transaction_task_trace (task, "store"); if (G_UNLIKELY (!self->priv->transactions[type])) self->priv->transactions[type] = g_hash_table_new (g_direct_hash, g_direct_equal); - tr->wait_ctx = g_slice_new (TransactionWaitContext); - tr->wait_ctx->self = self; + ctx = g_task_get_task_data (task); + + ctx->wait_ctx = g_slice_new (TransactionWaitContext); + ctx->wait_ctx->self = self; /* valid as long as the transaction is in the HT */ - tr->wait_ctx->transaction_id = tr->transaction_id; - tr->wait_ctx->type = type; + ctx->wait_ctx->transaction_id = ctx->transaction_id; + ctx->wait_ctx->type = type; /* don't add timeout if one already exists */ - if (!tr->timeout_source) { - tr->timeout_source = g_timeout_source_new (timeout_ms); - g_source_set_callback (tr->timeout_source, (GSourceFunc)transaction_timed_out, tr->wait_ctx, NULL); - g_source_attach (tr->timeout_source, g_main_context_get_thread_default ()); - g_source_unref (tr->timeout_source); - } - - if (tr->cancellable && !tr->cancellable_id) { - tr->cancellable_id = g_cancellable_connect (tr->cancellable, - (GCallback)transaction_cancelled, - tr->wait_ctx, - NULL); - if (!tr->cancellable_id) { + if (!ctx->timeout_source) { + ctx->timeout_source = g_timeout_source_new (timeout_ms); + g_source_set_callback (ctx->timeout_source, (GSourceFunc)transaction_timed_out, ctx->wait_ctx, NULL); + g_source_attach (ctx->timeout_source, g_main_context_get_thread_default ()); + g_source_unref (ctx->timeout_source); + } + + /* Indication transactions don't have cancellable */ + if (ctx->cancellable && !ctx->cancellable_id) { + /* Note: transaction_cancelled() will also be called directly if the + * cancellable is already cancelled */ + ctx->cancellable_id = g_cancellable_connect (ctx->cancellable, + (GCallback)transaction_cancelled, + ctx->wait_ctx, + NULL); + if (!ctx->cancellable_id) { g_set_error_literal (error, MBIM_CORE_ERROR, MBIM_CORE_ERROR_ABORTED, @@ -360,7 +395,7 @@ } /* Keep in the HT */ - g_hash_table_insert (self->priv->transactions[type], GUINT_TO_POINTER (tr->transaction_id), tr); + g_hash_table_insert (self->priv->transactions[type], GUINT_TO_POINTER (ctx->transaction_id), task); return TRUE; } @@ -463,7 +498,7 @@ GError *error = NULL; MbimMessage *indication; - if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), &error)) { + if (!(indication = g_task_propagate_pointer (G_TASK (res), &error))) { g_debug ("[%s] Error processing indication message: %s", self->priv->path_display, error->message); @@ -471,12 +506,39 @@ return; } - indication = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)); g_signal_emit (self, signals[SIGNAL_INDICATE_STATUS], 0, indication); + mbim_message_unref (indication); +} + +static void +finalize_pending_open_request (MbimDevice *self) +{ + GTask *task; + GError *error = NULL; + + if (!self->priv->open_transaction_id) + return; + + /* Grab transaction. This is a _DONE message, so look for the request + * that generated the _DONE */ + task = device_release_transaction (self, + TRANSACTION_TYPE_HOST, + MBIM_MESSAGE_TYPE_OPEN, + self->priv->open_transaction_id); + + /* If there is a valid open_transaction_id, there must be a valid transaction */ + g_assert (task); + + /* Clear right away before completing the transaction */ + self->priv->open_transaction_id = 0; + + error = g_error_new (MBIM_CORE_ERROR, MBIM_CORE_ERROR_UNKNOWN_STATE, "device state is unknown"); + transaction_task_complete_and_free (task, error); + g_error_free (error); } static void -process_message (MbimDevice *self, +process_message (MbimDevice *self, const MbimMessage *message) { gboolean is_partial_fragment; @@ -487,9 +549,9 @@ if (mbim_utils_get_traces_enabled ()) { gchar *printable; - printable = __mbim_utils_str_hex (((GByteArray *)message)->data, - ((GByteArray *)message)->len, - ':'); + printable = mbim_common_str_hex (((GByteArray *)message)->data, + ((GByteArray *)message)->len, + ':'); g_debug ("[%s] Received message...%s\n" ">>>>>> RAW:\n" ">>>>>> length = %u\n" @@ -514,32 +576,33 @@ case MBIM_MESSAGE_TYPE_CLOSE_DONE: case MBIM_MESSAGE_TYPE_COMMAND_DONE: case MBIM_MESSAGE_TYPE_INDICATE_STATUS: { - GError *error = NULL; - Transaction *tr; + GError *error = NULL; + GTask *task; + TransactionContext *ctx; if (MBIM_MESSAGE_GET_MESSAGE_TYPE (message) == MBIM_MESSAGE_TYPE_INDICATE_STATUS) { /* Grab transaction */ - tr = device_release_transaction (self, - TRANSACTION_TYPE_MODEM, - MBIM_MESSAGE_TYPE_INDICATE_STATUS, - mbim_message_get_transaction_id (message)); + task = device_release_transaction (self, + TRANSACTION_TYPE_MODEM, + MBIM_MESSAGE_TYPE_INDICATE_STATUS, + mbim_message_get_transaction_id (message)); - if (!tr) + if (!task) /* Create new transaction for the indication */ - tr = transaction_new (self, - MBIM_MESSAGE_TYPE_INDICATE_STATUS, - mbim_message_get_transaction_id (message), - NULL, /* no cancellable */ - (GAsyncReadyCallback)indication_ready, - NULL); + task = transaction_task_new (self, + MBIM_MESSAGE_TYPE_INDICATE_STATUS, + mbim_message_get_transaction_id (message), + NULL, /* no cancellable */ + (GAsyncReadyCallback) indication_ready, + NULL); } else { /* Grab transaction. This is a _DONE message, so look for the request * that generated the _DONE */ - tr = device_release_transaction (self, - TRANSACTION_TYPE_HOST, - (MBIM_MESSAGE_GET_MESSAGE_TYPE (message) - 0x80000000), - mbim_message_get_transaction_id (message)); - if (!tr) { + task = device_release_transaction (self, + TRANSACTION_TYPE_HOST, + (MBIM_MESSAGE_GET_MESSAGE_TYPE (message) - 0x80000000), + mbim_message_get_transaction_id (message)); + if (!task) { gchar *printable; g_debug ("[%s] No transaction matched in received message", @@ -552,70 +615,78 @@ printable); g_free (printable); } + + /* If we're opening and we get a CLOSE_DONE message without any + * matched transaction, finalize the open request right away to + * trigger a close before open */ + if (self->priv->open_status == OPEN_STATUS_OPENING && + MBIM_MESSAGE_GET_MESSAGE_TYPE (message) == MBIM_MESSAGE_TYPE_CLOSE_DONE) + finalize_pending_open_request (self); + return; } /* If the message doesn't have fragments, we're done */ if (!_mbim_message_is_fragment (message)) { - g_assert (tr->fragments == NULL); - tr->fragments = mbim_message_dup (message); - transaction_complete_and_free (tr, NULL); + ctx = g_task_get_task_data (task); + g_assert (ctx->fragments == NULL); + ctx->fragments = mbim_message_dup (message); + transaction_task_complete_and_free (task, NULL); return; } } /* More than one fragment expected; is this the first one? */ - if (!tr->fragments) - tr->fragments = _mbim_message_fragment_collector_init (message, &error); + ctx = g_task_get_task_data (task); + if (!ctx->fragments) + ctx->fragments = _mbim_message_fragment_collector_init (message, &error); else - _mbim_message_fragment_collector_add (tr->fragments, message, &error); + _mbim_message_fragment_collector_add (ctx->fragments, message, &error); if (error) { - device_report_error (self, - tr->transaction_id, - error); - transaction_complete_and_free (tr, error); + device_report_error (self, ctx->transaction_id, error); + transaction_task_complete_and_free (task, error); g_error_free (error); return; } /* Did we get all needed fragments? */ - if (_mbim_message_fragment_collector_complete (tr->fragments)) { + if (_mbim_message_fragment_collector_complete (ctx->fragments)) { /* Now, translate the whole message */ if (mbim_utils_get_traces_enabled ()) { gchar *printable; - printable = mbim_message_get_printable (tr->fragments, ">>>>>> ", FALSE); + printable = mbim_message_get_printable (ctx->fragments, ">>>>>> ", FALSE); g_debug ("[%s] Received message (translated)...\n%s", self->priv->path_display, printable); g_free (printable); } - transaction_complete_and_free (tr, NULL); + transaction_task_complete_and_free (task, NULL); return; } /* Need more fragments, store transaction */ g_assert (device_store_transaction (self, TRANSACTION_TYPE_HOST, - tr, + task, MAX_TIME_BETWEEN_FRAGMENTS_MS, NULL)); return; } case MBIM_MESSAGE_TYPE_FUNCTION_ERROR: { - Transaction *tr; GError *error_indication; + GTask *task; /* Try to match this transaction just per transaction ID */ - tr = device_release_transaction (self, - TRANSACTION_TYPE_HOST, - MBIM_MESSAGE_TYPE_INVALID, - mbim_message_get_transaction_id (message)); + task = device_release_transaction (self, + TRANSACTION_TYPE_HOST, + MBIM_MESSAGE_TYPE_INVALID, + mbim_message_get_transaction_id (message)); - if (!tr) + if (!task) g_debug ("[%s] No transaction matched in received function error message", self->priv->path_display); @@ -629,17 +700,21 @@ g_free (printable); } - if (tr) { - if (tr->fragments) - mbim_message_unref (tr->fragments); - tr->fragments = mbim_message_dup (message); - transaction_complete_and_free (tr, NULL); - } - /* Signals are emitted regardless of whether the transaction matched or not */ error_indication = mbim_message_error_get_error (message); g_signal_emit (self, signals[SIGNAL_ERROR], 0, error_indication); g_error_free (error_indication); + + if (task) { + TransactionContext *ctx; + + ctx = g_task_get_task_data (task); + + if (ctx->fragments) + mbim_message_unref (ctx->fragments); + ctx->fragments = mbim_message_dup (message); + transaction_task_complete_and_free (task, NULL); + } return; } @@ -720,39 +795,47 @@ if (G_UNLIKELY (!self->priv->response)) self->priv->response = g_byte_array_sized_new (500); - do { - GError *error = NULL; - - status = g_io_channel_read_chars (source, - buffer, - self->priv->max_control_transfer, - &bytes_read, - &error); - if (status == G_IO_STATUS_ERROR) { - if (error) { - g_warning ("[%s] error reading from the IOChannel: '%s'", - self->priv->path_display, - error->message); - g_error_free (error); - } + /* The parse_response() message may end up triggering a close of the + * MbimDevice or even a full unref. We are going to make sure a valid + * reference is available for as long as we need it in the while() + * loop. */ + g_object_ref (self); + { + do { + GError *error = NULL; /* Port is closed; we're done */ if (!self->priv->iochannel_source) break; - } - /* If no bytes read, just let g_io_channel wait for more data */ - if (bytes_read == 0) - break; + status = g_io_channel_read_chars (source, + buffer, + self->priv->max_control_transfer, + &bytes_read, + &error); + if (status == G_IO_STATUS_ERROR) { + if (error) { + g_warning ("[%s] error reading from the IOChannel: '%s'", + self->priv->path_display, + error->message); + g_error_free (error); + } + } + + /* If no bytes read, just let g_io_channel wait for more data */ + if (bytes_read == 0) + break; - if (bytes_read > 0) - g_byte_array_append (self->priv->response, (const guint8 *)buffer, bytes_read); + if (bytes_read > 0) + g_byte_array_append (self->priv->response, (const guint8 *)buffer, bytes_read); - /* Try to parse what we already got */ - parse_response (self); + /* Try to parse what we already got */ + parse_response (self); - /* And keep on if we were told to keep on */ - } while (bytes_read == self->priv->max_control_transfer || status == G_IO_STATUS_AGAIN); + /* And keep on if we were told to keep on */ + } while (bytes_read == self->priv->max_control_transfer || status == G_IO_STATUS_AGAIN); + } + g_object_unref (self); return TRUE; } @@ -770,7 +853,7 @@ guint8 bmNetworkCapabilities; } __attribute__ ((packed)); -#if WITH_UDEV +#if defined WITH_UDEV static gchar * get_descriptors_filepath (MbimDevice *self) @@ -867,7 +950,7 @@ * /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:2.0 */ tmp = g_strdup_printf ("/sys/class/%s/%s/device", subsystems[i], device_basename); - path = canonicalize_file_name (tmp); + path = realpath (tmp, NULL); g_free (tmp); if (g_file_test (path, G_FILE_TEST_EXISTS)) { @@ -956,17 +1039,12 @@ } typedef struct { - MbimDevice *self; - GSimpleAsyncResult *result; guint spawn_retries; } CreateIoChannelContext; static void -create_iochannel_context_complete_and_free (CreateIoChannelContext *ctx) +create_iochannel_context_free (CreateIoChannelContext *ctx) { - g_simple_async_result_complete_in_idle (ctx->result); - g_object_unref (ctx->result); - g_object_unref (ctx->self); g_slice_free (CreateIoChannelContext, ctx); } @@ -975,66 +1053,70 @@ GAsyncResult *res, GError **error) { - return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error); + return g_task_propagate_boolean (G_TASK (res), error); } static void -setup_iochannel (CreateIoChannelContext *ctx) +setup_iochannel (GTask *task) { + MbimDevice *self; GError *inner_error = NULL; + self = g_task_get_source_object (task); + /* We don't want UTF-8 encoding, we're playing with raw binary data */ - g_io_channel_set_encoding (ctx->self->priv->iochannel, NULL, NULL); + g_io_channel_set_encoding (self->priv->iochannel, NULL, NULL); /* We don't want to get the channel buffered */ - g_io_channel_set_buffered (ctx->self->priv->iochannel, FALSE); + g_io_channel_set_buffered (self->priv->iochannel, FALSE); /* Let the GIOChannel own the FD */ - g_io_channel_set_close_on_unref (ctx->self->priv->iochannel, TRUE); + g_io_channel_set_close_on_unref (self->priv->iochannel, TRUE); /* We don't want to get blocked while writing stuff */ - if (!g_io_channel_set_flags (ctx->self->priv->iochannel, + if (!g_io_channel_set_flags (self->priv->iochannel, G_IO_FLAG_NONBLOCK, &inner_error)) { - g_simple_async_result_take_error (ctx->result, inner_error); - g_io_channel_shutdown (ctx->self->priv->iochannel, FALSE, NULL); - g_io_channel_unref (ctx->self->priv->iochannel); - ctx->self->priv->iochannel = NULL; - g_clear_object (&ctx->self->priv->socket_connection); - g_clear_object (&ctx->self->priv->socket_client); - create_iochannel_context_complete_and_free (ctx); + g_io_channel_shutdown (self->priv->iochannel, FALSE, NULL); + g_io_channel_unref (self->priv->iochannel); + self->priv->iochannel = NULL; + g_clear_object (&self->priv->socket_connection); + g_clear_object (&self->priv->socket_client); + g_task_return_error (task, inner_error); + g_object_unref (task); return; } - ctx->self->priv->iochannel_source = g_io_create_watch (ctx->self->priv->iochannel, - G_IO_IN | G_IO_ERR | G_IO_HUP); - g_source_set_callback (ctx->self->priv->iochannel_source, + self->priv->iochannel_source = g_io_create_watch (self->priv->iochannel, + G_IO_IN | G_IO_ERR | G_IO_HUP); + g_source_set_callback (self->priv->iochannel_source, (GSourceFunc)data_available, - ctx->self, + self, NULL); - g_source_attach (ctx->self->priv->iochannel_source, g_main_context_get_thread_default ()); + g_source_attach (self->priv->iochannel_source, g_main_context_get_thread_default ()); - g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); - create_iochannel_context_complete_and_free (ctx); + g_task_return_boolean (task, TRUE); + g_object_unref (task); } static void -create_iochannel_with_fd (CreateIoChannelContext *ctx) +create_iochannel_with_fd (GTask *task) { + MbimDevice *self; gint fd; guint16 max; + self = g_task_get_source_object (task); errno = 0; - fd = open (ctx->self->priv->path, O_RDWR | O_EXCL | O_NONBLOCK | O_NOCTTY); + fd = open (self->priv->path, O_RDWR | O_EXCL | O_NONBLOCK | O_NOCTTY); if (fd < 0) { - g_simple_async_result_set_error ( - ctx->result, - MBIM_CORE_ERROR, - MBIM_CORE_ERROR_FAILED, - "Cannot open device file '%s': %s", - ctx->self->priv->path_display, - strerror (errno)); - create_iochannel_context_complete_and_free (ctx); + g_task_return_new_error (task, + MBIM_CORE_ERROR, + MBIM_CORE_ERROR_FAILED, + "Cannot open device file '%s': %s", + self->priv->path_display, + strerror (errno)); + g_object_unref (task); return; } @@ -1042,29 +1124,29 @@ if (ioctl (fd, IOCTL_WDM_MAX_COMMAND, &max) < 0) { g_debug ("[%s] Couldn't query maximum message size: " "IOCTL_WDM_MAX_COMMAND failed: %s", - ctx->self->priv->path_display, + self->priv->path_display, strerror (errno)); /* Fallback, try to read the descriptor file */ - max = read_max_control_transfer (ctx->self); + max = read_max_control_transfer (self); } else { g_debug ("[%s] Queried max control message size: %" G_GUINT16_FORMAT, - ctx->self->priv->path_display, + self->priv->path_display, max); } - ctx->self->priv->max_control_transfer = max; + self->priv->max_control_transfer = max; /* Create new GIOChannel */ - ctx->self->priv->iochannel = g_io_channel_unix_new (fd); + self->priv->iochannel = g_io_channel_unix_new (fd); - setup_iochannel (ctx); + setup_iochannel (task); } -static void create_iochannel_with_socket (CreateIoChannelContext *ctx); +static void create_iochannel_with_socket (GTask *task); static gboolean -wait_for_proxy_cb (CreateIoChannelContext *ctx) +wait_for_proxy_cb (GTask *task) { - create_iochannel_with_socket (ctx); + create_iochannel_with_socket (task); return FALSE; } @@ -1076,18 +1158,23 @@ } static void -create_iochannel_with_socket (CreateIoChannelContext *ctx) +create_iochannel_with_socket (GTask *task) { + MbimDevice *self; + CreateIoChannelContext *ctx; GSocketAddress *socket_address; GError *error = NULL; + self = g_task_get_source_object (task); + ctx = g_task_get_task_data (task); + /* Create socket client */ - if (ctx->self->priv->socket_client) - g_object_unref (ctx->self->priv->socket_client); - ctx->self->priv->socket_client = g_socket_client_new (); - g_socket_client_set_family (ctx->self->priv->socket_client, G_SOCKET_FAMILY_UNIX); - g_socket_client_set_socket_type (ctx->self->priv->socket_client, G_SOCKET_TYPE_STREAM); - g_socket_client_set_protocol (ctx->self->priv->socket_client, G_SOCKET_PROTOCOL_DEFAULT); + if (self->priv->socket_client) + g_object_unref (self->priv->socket_client); + self->priv->socket_client = g_socket_client_new (); + g_socket_client_set_family (self->priv->socket_client, G_SOCKET_FAMILY_UNIX); + g_socket_client_set_socket_type (self->priv->socket_client, G_SOCKET_TYPE_STREAM); + g_socket_client_set_protocol (self->priv->socket_client, G_SOCKET_PROTOCOL_DEFAULT); /* Setup socket address */ socket_address = (g_unix_socket_address_new_with_type ( @@ -1096,31 +1183,31 @@ G_UNIX_SOCKET_ADDRESS_ABSTRACT)); /* Connect to address */ - if (ctx->self->priv->socket_connection) - g_object_unref (ctx->self->priv->socket_connection); - ctx->self->priv->socket_connection = (g_socket_client_connect ( - ctx->self->priv->socket_client, + if (self->priv->socket_connection) + g_object_unref (self->priv->socket_connection); + self->priv->socket_connection = (g_socket_client_connect ( + self->priv->socket_client, G_SOCKET_CONNECTABLE (socket_address), NULL, &error)); g_object_unref (socket_address); - if (!ctx->self->priv->socket_connection) { + if (!self->priv->socket_connection) { gchar **argc; GSource *source; g_debug ("cannot connect to proxy: %s", error->message); g_clear_error (&error); - g_clear_object (&ctx->self->priv->socket_client); + g_clear_object (&self->priv->socket_client); /* Don't retry forever */ ctx->spawn_retries++; if (ctx->spawn_retries > MAX_SPAWN_RETRIES) { - g_simple_async_result_set_error (ctx->result, - MBIM_CORE_ERROR, - MBIM_CORE_ERROR_FAILED, - "Couldn't spawn the mbim-proxy"); - create_iochannel_context_complete_and_free (ctx); + g_task_return_new_error (task, + MBIM_CORE_ERROR, + MBIM_CORE_ERROR_FAILED, + "Couldn't spawn the mbim-proxy"); + g_object_unref (task); return; } @@ -1143,20 +1230,20 @@ /* Wait some ms and retry */ source = g_timeout_source_new (100); - g_source_set_callback (source, (GSourceFunc)wait_for_proxy_cb, ctx, NULL); + g_source_set_callback (source, (GSourceFunc)wait_for_proxy_cb, task, NULL); g_source_attach (source, g_main_context_get_thread_default ()); g_source_unref (source); return; } - ctx->self->priv->iochannel = g_io_channel_unix_new ( + self->priv->iochannel = g_io_channel_unix_new ( g_socket_get_fd ( - g_socket_connection_get_socket (ctx->self->priv->socket_connection))); + g_socket_connection_get_socket (self->priv->socket_connection))); /* try to read the descriptor file */ - ctx->self->priv->max_control_transfer = read_max_control_transfer (ctx->self); + self->priv->max_control_transfer = read_max_control_transfer (self); - setup_iochannel (ctx); + setup_iochannel (task); } static void @@ -1166,21 +1253,20 @@ gpointer user_data) { CreateIoChannelContext *ctx; + GTask *task; ctx = g_slice_new (CreateIoChannelContext); - ctx->self = g_object_ref (self); - ctx->result = g_simple_async_result_new (G_OBJECT (self), - callback, - user_data, - create_iochannel); ctx->spawn_retries = 0; + task = g_task_new (self, NULL, callback, user_data); + g_task_set_task_data (task, ctx, (GDestroyNotify)create_iochannel_context_free); + if (self->priv->iochannel) { - g_simple_async_result_set_error (ctx->result, - MBIM_CORE_ERROR, - MBIM_CORE_ERROR_WRONG_STATE, - "Already open"); - create_iochannel_context_complete_and_free (ctx); + g_task_return_new_error (task, + MBIM_CORE_ERROR, + MBIM_CORE_ERROR_WRONG_STATE, + "Already open"); + g_object_unref (task); return; } @@ -1188,46 +1274,36 @@ g_assert (self->priv->path); if (proxy) - create_iochannel_with_socket (ctx); + create_iochannel_with_socket (task); else - create_iochannel_with_fd (ctx); + create_iochannel_with_fd (task); } typedef enum { DEVICE_OPEN_CONTEXT_STEP_FIRST = 0, DEVICE_OPEN_CONTEXT_STEP_CREATE_IOCHANNEL, DEVICE_OPEN_CONTEXT_STEP_FLAGS_PROXY, + DEVICE_OPEN_CONTEXT_STEP_CLOSE_MESSAGE, DEVICE_OPEN_CONTEXT_STEP_OPEN_MESSAGE, DEVICE_OPEN_CONTEXT_STEP_LAST } DeviceOpenContextStep; typedef struct { - MbimDevice *self; - GSimpleAsyncResult *result; - GCancellable *cancellable; - DeviceOpenContextStep step; - MbimDeviceOpenFlags flags; - gint timeout; + DeviceOpenContextStep step; + MbimDeviceOpenFlags flags; + guint timeout; + GTimer *timer; + gboolean close_before_open; } DeviceOpenContext; static void -device_open_context_complete_and_free (DeviceOpenContext *ctx, - GError *error) +device_open_context_free (DeviceOpenContext *ctx) { - if (error) - g_simple_async_result_take_error (ctx->result, error); - else - g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); - - g_simple_async_result_complete_in_idle (ctx->result); - g_object_unref (ctx->result); - if (ctx->cancellable) - g_object_unref (ctx->cancellable); - g_object_unref (ctx->self); + g_timer_destroy (ctx->timer); g_slice_free (DeviceOpenContext, ctx); } -static void device_open_context_step (DeviceOpenContext *ctx); +static void device_open_context_step (GTask *task); /** * mbim_device_open_full_finish: @@ -1244,7 +1320,7 @@ GAsyncResult *res, GError **error) { - return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error); + return g_task_propagate_boolean (G_TASK (res), error); } /** @@ -1265,42 +1341,52 @@ return mbim_device_open_full_finish (self, res, error); } -static void open_message (DeviceOpenContext *ctx); +static void open_message (GTask *task); static void -open_message_ready (MbimDevice *self, - GAsyncResult *res, - DeviceOpenContext *ctx) +open_message_ready (MbimDevice *self, + GAsyncResult *res, + GTask *task) { + DeviceOpenContext *ctx; MbimMessage *response; GError *error = NULL; + ctx = g_task_get_task_data (task); + + /* Cleanup, as no longer needed */ + self->priv->open_transaction_id = 0; + response = mbim_device_command_finish (self, res, &error); if (!response) { - /* Check if we should be retrying */ - if (g_error_matches (error, MBIM_CORE_ERROR, MBIM_CORE_ERROR_TIMEOUT)) { - /* The timeout will tell us how many retries we should do */ - ctx->timeout -= RETRY_TIMEOUT_SECS; - if (ctx->timeout > 0) { - g_error_free (error); - open_message (ctx); - return; - } + /* If we get reported that the state is unknown, try to close before open */ + if (g_error_matches (error, MBIM_CORE_ERROR, MBIM_CORE_ERROR_UNKNOWN_STATE)) { + ctx->close_before_open = TRUE; + ctx->step = DEVICE_OPEN_CONTEXT_STEP_CLOSE_MESSAGE; + device_open_context_step (task); + return; + } - /* No more seconds left in the timeout... return error */ + /* Check if we should be retrying after a timeout */ + if (g_error_matches (error, MBIM_CORE_ERROR, MBIM_CORE_ERROR_TIMEOUT)) { + /* Retry same step */ + device_open_context_step (task); + return; } - g_debug ("open operation timed out: closed"); + g_debug ("error reported in open operation: closed"); self->priv->open_status = OPEN_STATUS_CLOSED; - device_open_context_complete_and_free (ctx, error); + g_task_return_error (task, error); + g_object_unref (task); return; } if (!mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_OPEN_DONE, &error)) { g_debug ("getting open done result failed: closed"); self->priv->open_status = OPEN_STATUS_CLOSED; - device_open_context_complete_and_free (ctx, error); mbim_message_unref (response); + g_task_return_error (task, error); + g_object_unref (task); return; } @@ -1308,129 +1394,216 @@ /* go on */ ctx->step++; - device_open_context_step (ctx); + device_open_context_step (task); } static void -open_message (DeviceOpenContext *ctx) +open_message (GTask *task) { + MbimDevice *self; MbimMessage *request; + self = g_task_get_source_object (task); + /* Launch 'Open' command */ - request = mbim_message_open_new (mbim_device_get_next_transaction_id (ctx->self), - ctx->self->priv->max_control_transfer); - mbim_device_command (ctx->self, + self->priv->open_transaction_id = mbim_device_get_next_transaction_id (self); + request = mbim_message_open_new (self->priv->open_transaction_id, + self->priv->max_control_transfer); + mbim_device_command (self, request, - RETRY_TIMEOUT_SECS, - ctx->cancellable, + OPEN_RETRY_TIMEOUT_SECS, + g_task_get_cancellable (task), (GAsyncReadyCallback)open_message_ready, - ctx); + task); + mbim_message_unref (request); +} + +static void +close_message_before_open_ready (MbimDevice *self, + GAsyncResult *res, + GTask *task) +{ + DeviceOpenContext *ctx; + MbimMessage *response; + GError *error = NULL; + + ctx = g_task_get_task_data (task); + + response = mbim_device_command_finish (self, res, &error); + if (!response) + g_debug ("error reported in close before open: %s (ignored)", error->message); + else if (!mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_CLOSE_DONE, &error)) + g_debug ("getting close done result failed: %s (ignored)", error->message); + + g_clear_error (&error); + if (response) + mbim_message_unref (response); + + /* go on */ + ctx->step++; + device_open_context_step (task); +} + +static void +close_message_before_open (GTask *task) +{ + MbimDevice *self; + MbimMessage *request; + + self = g_task_get_source_object (task); + + /* Launch 'Close' command */ + request = mbim_message_close_new (mbim_device_get_next_transaction_id (self)); + mbim_device_command (self, + request, + OPEN_CLOSE_TIMEOUT_SECS, + g_task_get_cancellable (task), + (GAsyncReadyCallback)close_message_before_open_ready, + task); mbim_message_unref (request); } static void -proxy_cfg_message_ready (MbimDevice *self, - GAsyncResult *res, - DeviceOpenContext *ctx) +proxy_cfg_message_ready (MbimDevice *self, + GAsyncResult *res, + GTask *task) { + DeviceOpenContext *ctx; MbimMessage *response; GError *error = NULL; + ctx = g_task_get_task_data (task); + response = mbim_device_command_finish (self, res, &error); if (!response) { /* Hard error if proxy cfg command fails */ g_debug ("proxy configuration failed: closed"); self->priv->open_status = OPEN_STATUS_CLOSED; - device_open_context_complete_and_free (ctx, error); + g_task_return_error (task, error); + g_object_unref (task); return; } mbim_message_unref (response); ctx->step++; - device_open_context_step (ctx); + device_open_context_step (task); } static void -proxy_cfg_message (DeviceOpenContext *ctx) +proxy_cfg_message (GTask *task) { + MbimDevice *self; + DeviceOpenContext *ctx; GError *error = NULL; MbimMessage *request; - request = mbim_message_proxy_control_configuration_set_new (ctx->self->priv->path, ctx->timeout, &error); + self = g_task_get_source_object (task); + ctx = g_task_get_task_data (task); + + request = mbim_message_proxy_control_configuration_set_new (self->priv->path, ctx->timeout, &error); /* This message is no longer a direct reply; as the proxy will also try to open the device * directly. If it cannot open the device, it will return an error. */ - mbim_device_command (ctx->self, + mbim_device_command (self, request, ctx->timeout, - ctx->cancellable, + g_task_get_cancellable (task), (GAsyncReadyCallback)proxy_cfg_message_ready, - ctx); + task); mbim_message_unref (request); } static void create_iochannel_ready (MbimDevice *self, GAsyncResult *res, - DeviceOpenContext *ctx) + GTask *task) { + DeviceOpenContext *ctx; GError *error = NULL; if (!create_iochannel_finish (self, res, &error)) { g_debug ("creating iochannel failed: closed"); self->priv->open_status = OPEN_STATUS_CLOSED; - device_open_context_complete_and_free (ctx, error); + g_task_return_error (task, error); + g_object_unref (task); return; } /* Go on */ + ctx = g_task_get_task_data (task); ctx->step++; - device_open_context_step (ctx); + device_open_context_step (task); } static void -device_open_context_step (DeviceOpenContext *ctx) +device_open_context_step (GTask *task) { + MbimDevice *self; + DeviceOpenContext *ctx; + + self = g_task_get_source_object (task); + ctx = g_task_get_task_data (task); + + /* Timed out? */ + if (g_timer_elapsed (ctx->timer, NULL) > ctx->timeout) { + g_debug ("open operation timed out: closed"); + self->priv->open_status = OPEN_STATUS_CLOSED; + g_task_return_new_error (task, + MBIM_CORE_ERROR, + MBIM_CORE_ERROR_TIMEOUT, + "Operation timed out: device is closed"); + g_object_unref (task); + return; + } + switch (ctx->step) { case DEVICE_OPEN_CONTEXT_STEP_FIRST: - if (ctx->self->priv->open_status == OPEN_STATUS_OPEN) { - GError *error; - - error = g_error_new (MBIM_CORE_ERROR, - MBIM_CORE_ERROR_WRONG_STATE, - "Already open"); - device_open_context_complete_and_free (ctx, error); + if (self->priv->open_status == OPEN_STATUS_OPEN) { + g_task_return_new_error (task, + MBIM_CORE_ERROR, + MBIM_CORE_ERROR_WRONG_STATE, + "Already open"); + g_object_unref (task); return; } - if (ctx->self->priv->open_status == OPEN_STATUS_OPENING) { - GError *error; - - error = g_error_new (MBIM_CORE_ERROR, - MBIM_CORE_ERROR_WRONG_STATE, - "Already opening"); - device_open_context_complete_and_free (ctx, error); + if (self->priv->open_status == OPEN_STATUS_OPENING) { + g_task_return_new_error (task, + MBIM_CORE_ERROR, + MBIM_CORE_ERROR_WRONG_STATE, + "Already opening"); + g_object_unref (task); return; } g_debug ("opening device..."); - g_assert (ctx->self->priv->open_status == OPEN_STATUS_CLOSED); - ctx->self->priv->open_status = OPEN_STATUS_OPENING; + g_assert (self->priv->open_status == OPEN_STATUS_CLOSED); + self->priv->open_status = OPEN_STATUS_OPENING; ctx->step++; /* Fall down */ case DEVICE_OPEN_CONTEXT_STEP_CREATE_IOCHANNEL: - create_iochannel (ctx->self, + create_iochannel (self, !!(ctx->flags & MBIM_DEVICE_OPEN_FLAGS_PROXY), (GAsyncReadyCallback)create_iochannel_ready, - ctx); + task); return; case DEVICE_OPEN_CONTEXT_STEP_FLAGS_PROXY: if (ctx->flags & MBIM_DEVICE_OPEN_FLAGS_PROXY) { - proxy_cfg_message (ctx); + proxy_cfg_message (task); + return; + } + ctx->step++; + /* Fall down */ + + case DEVICE_OPEN_CONTEXT_STEP_CLOSE_MESSAGE: + /* Only send an explicit close during open if needed */ + if (ctx->close_before_open) { + ctx->close_before_open = FALSE; + close_message_before_open (task); return; } ctx->step++; @@ -1438,8 +1611,8 @@ case DEVICE_OPEN_CONTEXT_STEP_OPEN_MESSAGE: /* If the device is already in-session, avoid the open message */ - if (!ctx->self->priv->in_session) { - open_message (ctx); + if (!self->priv->in_session) { + open_message (task); return; } ctx->step++; @@ -1447,8 +1620,9 @@ case DEVICE_OPEN_CONTEXT_STEP_LAST: /* Nothing else to process, complete without error */ - ctx->self->priv->open_status = OPEN_STATUS_OPEN; - device_open_context_complete_and_free (ctx, NULL); + self->priv->open_status = OPEN_STATUS_OPEN; + g_task_return_boolean (task, TRUE); + g_object_unref (task); return; default: @@ -1484,23 +1658,23 @@ gpointer user_data) { DeviceOpenContext *ctx; + GTask *task; g_return_if_fail (MBIM_IS_DEVICE (self)); g_return_if_fail (timeout > 0); - ctx = g_slice_new (DeviceOpenContext); - ctx->self = g_object_ref (self); - ctx->result = g_simple_async_result_new (G_OBJECT (self), - callback, - user_data, - mbim_device_open_full); + ctx = g_slice_new0 (DeviceOpenContext); ctx->step = DEVICE_OPEN_CONTEXT_STEP_FIRST; ctx->flags = flags; ctx->timeout = timeout; - ctx->cancellable = (cancellable ? g_object_ref (cancellable) : NULL); + ctx->timer = g_timer_new (); + ctx->close_before_open = FALSE; + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_task_data (task, ctx, (GDestroyNotify)device_open_context_free); /* Start processing */ - device_open_context_step (ctx); + device_open_context_step (task); } /** @@ -1546,6 +1720,8 @@ if (!self->priv->iochannel && !self->priv->socket_connection && !self->priv->socket_client) return TRUE; + g_debug ("[%s] channel destroyed", self->priv->path_display); + if (self->priv->iochannel) { g_io_channel_shutdown (self->priv->iochannel, TRUE, &inner_error); g_io_channel_unref (self->priv->iochannel); @@ -1594,20 +1770,12 @@ } typedef struct { - MbimDevice *self; - GSimpleAsyncResult *result; - GCancellable *cancellable; guint timeout; } DeviceCloseContext; static void -device_close_context_complete_and_free (DeviceCloseContext *ctx) +device_close_context_free (DeviceCloseContext *ctx) { - g_simple_async_result_complete_in_idle (ctx->result); - g_object_unref (ctx->result); - if (ctx->cancellable) - g_object_unref (ctx->cancellable); - g_object_unref (ctx->self); g_slice_free (DeviceCloseContext, ctx); } @@ -1626,28 +1794,31 @@ GAsyncResult *res, GError **error) { - return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error); + return g_task_propagate_boolean (G_TASK (res), error); } static void -close_message_ready (MbimDevice *self, - GAsyncResult *res, - DeviceCloseContext *ctx) +close_message_ready (MbimDevice *self, + GAsyncResult *res, + GTask *task) { MbimMessage *response; GError *error = NULL; response = mbim_device_command_finish (self, res, &error); if (!response) - g_simple_async_result_take_error (ctx->result, error); + g_task_return_error (task, error); else if (!mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_CLOSE_DONE, &error)) - g_simple_async_result_take_error (ctx->result, error); + g_task_return_error (task, error); + else if (!destroy_iochannel (self, &error)) + g_task_return_error (task, error); else - g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); + g_task_return_boolean (task, TRUE); if (response) mbim_message_unref (response); - device_close_context_complete_and_free (ctx); + + g_object_unref (task); } /** @@ -1672,22 +1843,20 @@ { MbimMessage *request; DeviceCloseContext *ctx; + GTask *task; g_return_if_fail (MBIM_IS_DEVICE (self)); ctx = g_slice_new (DeviceCloseContext); - ctx->self = g_object_ref (self); - ctx->result = g_simple_async_result_new (G_OBJECT (self), - callback, - user_data, - mbim_device_close); ctx->timeout = timeout; - ctx->cancellable = (cancellable ? g_object_ref (cancellable) : NULL); + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_task_data (task, ctx, (GDestroyNotify)device_close_context_free); /* Already closed? */ if (!self->priv->iochannel) { - g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); - device_close_context_complete_and_free (ctx); + g_task_return_boolean (task, TRUE); + g_object_unref (task); return; } @@ -1696,10 +1865,10 @@ GError *error = NULL; if (!destroy_iochannel (self, &error)) - g_simple_async_result_take_error (ctx->result, error); + g_task_return_error (task, error); else - g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); - device_close_context_complete_and_free (ctx); + g_task_return_boolean (task, TRUE); + g_object_unref (task); return; } @@ -1708,9 +1877,9 @@ mbim_device_command (self, request, 10, - ctx->cancellable, + cancellable, (GAsyncReadyCallback) close_message_ready, - ctx); + task); mbim_message_unref (request); } @@ -1804,7 +1973,7 @@ if (mbim_utils_get_traces_enabled ()) { gchar *printable; - printable = __mbim_utils_str_hex (raw_message, raw_message_len, ':'); + printable = mbim_common_str_hex (raw_message, raw_message_len, ':'); g_debug ("[%s] Sent message...\n" "<<<<<< RAW:\n" "<<<<<< length = %u\n" @@ -1839,9 +2008,9 @@ gchar *printable_fh; gchar *printable_d; - printable_h = __mbim_utils_str_hex (&fragments[i].header, sizeof (fragments[i].header), ':'); - printable_fh = __mbim_utils_str_hex (&fragments[i].fragment_header, sizeof (fragments[i].fragment_header), ':'); - printable_d = __mbim_utils_str_hex (fragments[i].data, fragments[i].data_length, ':'); + printable_h = mbim_common_str_hex (&fragments[i].header, sizeof (fragments[i].header), ':'); + printable_fh = mbim_common_str_hex (&fragments[i].fragment_header, sizeof (fragments[i].fragment_header), ':'); + printable_d = mbim_common_str_hex (fragments[i].data, fragments[i].data_length, ':'); g_debug ("[%s] Sent fragment (%u)...\n" "<<<<<< RAW:\n" "<<<<<< length = %u\n" @@ -1967,11 +2136,7 @@ GAsyncResult *res, GError **error) { - if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error)) - return NULL; - - return mbim_message_ref (g_simple_async_result_get_op_res_gpointer ( - G_SIMPLE_ASYNC_RESULT (res))); + return g_task_propagate_pointer (G_TASK (res), error); } /** @@ -1996,9 +2161,9 @@ GAsyncReadyCallback callback, gpointer user_data) { - GError *error = NULL; - Transaction *tr; - guint32 transaction_id; + GError *error = NULL; + GTask *task; + guint32 transaction_id; g_return_if_fail (MBIM_IS_DEVICE (self)); g_return_if_fail (message != NULL); @@ -2011,38 +2176,38 @@ mbim_message_set_transaction_id (message, transaction_id); } - tr = transaction_new (self, - MBIM_MESSAGE_GET_MESSAGE_TYPE (message), - transaction_id, - cancellable, - callback, - user_data); + task = transaction_task_new (self, + MBIM_MESSAGE_GET_MESSAGE_TYPE (message), + transaction_id, + cancellable, + callback, + user_data); /* Device must be open */ if (!self->priv->iochannel) { error = g_error_new (MBIM_CORE_ERROR, MBIM_CORE_ERROR_WRONG_STATE, "Device must be open to send commands"); - transaction_complete_and_free (tr, error); + transaction_task_complete_and_free (task, error); g_error_free (error); return; } /* Setup context to match response */ - if (!device_store_transaction (self, TRANSACTION_TYPE_HOST, tr, timeout * 1000, &error)) { + if (!device_store_transaction (self, TRANSACTION_TYPE_HOST, task, timeout * 1000, &error)) { g_prefix_error (&error, "Cannot store transaction: "); - transaction_complete_and_free (tr, error); + transaction_task_complete_and_free (task, error); g_error_free (error); return; } if (!device_send (self, message, &error)) { /* Match transaction so that we remove it from our tracking table */ - tr = device_release_transaction (self, - TRANSACTION_TYPE_HOST, - MBIM_MESSAGE_GET_MESSAGE_TYPE (message), - mbim_message_get_transaction_id (message)); - transaction_complete_and_free (tr, error); + task = device_release_transaction (self, + TRANSACTION_TYPE_HOST, + MBIM_MESSAGE_GET_MESSAGE_TYPE (message), + mbim_message_get_transaction_id (message)); + transaction_task_complete_and_free (task, error); g_error_free (error); return; } @@ -2105,35 +2270,18 @@ /*****************************************************************************/ /* Async init */ -typedef struct { - MbimDevice *self; - GSimpleAsyncResult *result; - GCancellable *cancellable; -} InitContext; - -static void -init_context_complete_and_free (InitContext *ctx) -{ - g_simple_async_result_complete_in_idle (ctx->result); - if (ctx->cancellable) - g_object_unref (ctx->cancellable); - g_object_unref (ctx->result); - g_object_unref (ctx->self); - g_slice_free (InitContext, ctx); -} - static gboolean initable_init_finish (GAsyncInitable *initable, GAsyncResult *result, GError **error) { - return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error); + return g_task_propagate_boolean (G_TASK (result), error); } static void query_info_async_ready (GFile *file, GAsyncResult *res, - InitContext *ctx) + GTask *task) { GError *error = NULL; GFileInfo *info; @@ -2142,25 +2290,25 @@ if (!info) { g_prefix_error (&error, "Couldn't query file info: "); - g_simple_async_result_take_error (ctx->result, error); - init_context_complete_and_free (ctx); + g_task_return_error (task, error); + g_object_unref (task); return; } /* Our MBIM device must be of SPECIAL type */ if (g_file_info_get_file_type (info) != G_FILE_TYPE_SPECIAL) { - g_simple_async_result_set_error (ctx->result, - MBIM_CORE_ERROR, - MBIM_CORE_ERROR_FAILED, - "Wrong file type"); - init_context_complete_and_free (ctx); + g_task_return_new_error (task, + MBIM_CORE_ERROR, + MBIM_CORE_ERROR_FAILED, + "Wrong file type"); + g_object_unref (task); return; } g_object_unref (info); /* Done we are */ - g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); - init_context_complete_and_free (ctx); + g_task_return_boolean (task, TRUE); + g_object_unref (task); } static void @@ -2170,37 +2318,32 @@ GAsyncReadyCallback callback, gpointer user_data) { - InitContext *ctx; + MbimDevice *self; + GTask *task; - ctx = g_slice_new0 (InitContext); - ctx->self = g_object_ref (initable); - if (cancellable) - ctx->cancellable = g_object_ref (cancellable); - ctx->result = g_simple_async_result_new (G_OBJECT (initable), - callback, - user_data, - initable_init_async); + self = MBIM_DEVICE (initable); + task = g_task_new (self, cancellable, callback, user_data); /* We need a proper file to initialize */ - if (!ctx->self->priv->file) { - g_simple_async_result_set_error (ctx->result, - MBIM_CORE_ERROR, - MBIM_CORE_ERROR_INVALID_ARGS, - "Cannot initialize MBIM device: No file given"); - init_context_complete_and_free (ctx); + if (!self->priv->file) { + g_task_return_new_error (task, + MBIM_CORE_ERROR, + MBIM_CORE_ERROR_INVALID_ARGS, + "Cannot initialize MBIM device: No file given"); + g_object_unref (task); return; } /* Check the file type. Note that this is just a quick check to avoid * creating MbimDevices pointing to a location already known not to be a MBIM * device. */ - g_file_query_info_async (ctx->self->priv->file, + g_file_query_info_async (self->priv->file, G_FILE_ATTRIBUTE_STANDARD_TYPE, G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, - ctx->cancellable, + cancellable, (GAsyncReadyCallback)query_info_async_ready, - ctx); + task); } /*****************************************************************************/ diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-enums.h libmbim-1.18.0/src/libmbim-glib/mbim-enums.h --- libmbim-1.14.2/src/libmbim-glib/mbim-enums.h 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-enums.h 2019-01-08 13:16:16.000000000 +0100 @@ -390,11 +390,20 @@ * @MBIM_NW_ERROR_CONGESTION: Congestion. * @MBIM_NW_ERROR_GSM_AUTHENTICATION_UNACCEPTABLE: GSM authentication unacceptable. * @MBIM_NW_ERROR_NOT_AUTHORIZED_FOR_CSG: Not authorized for this CSG. + * @MBIM_NW_ERROR_INSUFFICIENT_RESOURCES: Insufficient resources. * @MBIM_NW_ERROR_MISSING_OR_UNKNOWN_APN: Missing or unknown access point name. + * @MBIM_NW_ERROR_UNKNOWN_PDP_ADDRESS_OR_TYPE: Unknown PDP address or PDP type. + * @MBIM_NW_ERROR_USER_AUTHENTICATION_FAILED: User authentication failed. + * @MBIM_NW_ERROR_ACTIVATION_REJECTED_BY_GGSN_OR_GW: Activation rejected by GGSN, Serving GW or PDN GW. + * @MBIM_NW_ERROR_ACTIVATION_REJECTED_UNSPECIFIED: Activation rejected, unspecified. * @MBIM_NW_ERROR_SERVICE_OPTION_NOT_SUPPORTED: Service option not supported. * @MBIM_NW_ERROR_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED: Requested service option not subscribed. * @MBIM_NW_ERROR_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER: Service option temporarily out of order. * @MBIM_NW_ERROR_NO_PDP_CONTEXT_ACTIVATED: No PDP context activated. + * @MBIM_NW_ERROR_PDP_TYPE_IPV4_ONLY_ALLOWED: PDP type IPv4 only allowed. + * @MBIM_NW_ERROR_PDP_TYPE_IPV6_ONLY_ALLOWED: PDP type IPv6 only allowed. + * @MBIM_NW_ERROR_MAXIMUM_NUMBER_OF_PDP_CONTEXTS_REACHED: Maximum number of PDP contexts reached. + * @MBIM_NW_ERROR_REQUESTED_APN_NOT_SUPPORTED_IN_CURRENT_RAT_AND_PLMN: Requested APN not supported in current RAT and PLMN combination. * @MBIM_NW_ERROR_SEMANTICALLY_INCORRECT_MESSAGE: Semantically incorrect message. * @MBIM_NW_ERROR_INVALID_MANDATORY_INFORMATION: Invalid mandatory information. * @MBIM_NW_ERROR_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED: Message type non-existent or not implemented. @@ -403,45 +412,58 @@ * @MBIM_NW_ERROR_CONDITIONAL_IE_ERROR: Conditional IE error. * @MBIM_NW_ERROR_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE: Message not compatible with protocol state. * @MBIM_NW_ERROR_PROTOCOL_ERROR_UNSPECIFIED: Protocol error, unspecified. + * @MBIM_NW_ERROR_APN_RESTRICTION_VALUE_INCOMPATIBLE_WITH_ACTIVE_PDP_CONTEXT: APN restriction value incompatible with active PDP context. + * @MBIM_NW_ERROR_MULTIPLE_ACCESSES_TO_A_PDN_CONNECTION_NOT_ALLOWED: Multiple accesses to a PDN connection not allowed. * * Network errors. */ typedef enum { - MBIM_NW_ERROR_UNKNOWN = 0, - MBIM_NW_ERROR_IMSI_UNKNOWN_IN_HLR = 2, - MBIM_NW_ERROR_ILLEGAL_MS = 3, - MBIM_NW_ERROR_IMSI_UNKNOWN_IN_VLR = 4, - MBIM_NW_ERROR_IMEI_NOT_ACCEPTED = 5, - MBIM_NW_ERROR_ILLEGAL_ME = 6, - MBIM_NW_ERROR_GPRS_NOT_ALLOWED = 7, - MBIM_NW_ERROR_GPRS_AND_NON_GPRS_NOT_ALLOWED = 8, - MBIM_NW_ERROR_MS_IDENTITY_NOT_DERIVED_BY_NETWORK = 9, - MBIM_NW_ERROR_IMPLICITLY_DETACHED = 10, - MBIM_NW_ERROR_PLMN_NOT_ALLOWED = 11, - MBIM_NW_ERROR_LOCATION_AREA_NOT_ALLOWED = 12, - MBIM_NW_ERROR_ROAMING_NOT_ALLOWED_IN_LOCATION_AREA = 13, - MBIM_NW_ERROR_GPRS_NOT_ALLOWED_IN_PLMN = 14, - MBIM_NW_ERROR_NO_CELLS_IN_LOCATION_AREA = 15, - MBIM_NW_ERROR_MSC_TEMPORARILY_NOT_REACHABLE = 16, - MBIM_NW_ERROR_NETWORK_FAILURE = 17, - MBIM_NW_ERROR_MAC_FAILURE = 20, - MBIM_NW_ERROR_SYNCH_FAILURE = 21, - MBIM_NW_ERROR_CONGESTION = 22, - MBIM_NW_ERROR_GSM_AUTHENTICATION_UNACCEPTABLE = 23, - MBIM_NW_ERROR_NOT_AUTHORIZED_FOR_CSG = 25, - MBIM_NW_ERROR_MISSING_OR_UNKNOWN_APN = 27, - MBIM_NW_ERROR_SERVICE_OPTION_NOT_SUPPORTED = 32, - MBIM_NW_ERROR_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED = 33, - MBIM_NW_ERROR_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER = 34, - MBIM_NW_ERROR_NO_PDP_CONTEXT_ACTIVATED = 40, - MBIM_NW_ERROR_SEMANTICALLY_INCORRECT_MESSAGE = 95, - MBIM_NW_ERROR_INVALID_MANDATORY_INFORMATION = 96, - MBIM_NW_ERROR_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 97, - MBIM_NW_ERROR_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, - MBIM_NW_ERROR_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99, - MBIM_NW_ERROR_CONDITIONAL_IE_ERROR = 100, - MBIM_NW_ERROR_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, - MBIM_NW_ERROR_PROTOCOL_ERROR_UNSPECIFIED = 111 + MBIM_NW_ERROR_UNKNOWN = 0, + MBIM_NW_ERROR_IMSI_UNKNOWN_IN_HLR = 2, + MBIM_NW_ERROR_ILLEGAL_MS = 3, + MBIM_NW_ERROR_IMSI_UNKNOWN_IN_VLR = 4, + MBIM_NW_ERROR_IMEI_NOT_ACCEPTED = 5, + MBIM_NW_ERROR_ILLEGAL_ME = 6, + MBIM_NW_ERROR_GPRS_NOT_ALLOWED = 7, + MBIM_NW_ERROR_GPRS_AND_NON_GPRS_NOT_ALLOWED = 8, + MBIM_NW_ERROR_MS_IDENTITY_NOT_DERIVED_BY_NETWORK = 9, + MBIM_NW_ERROR_IMPLICITLY_DETACHED = 10, + MBIM_NW_ERROR_PLMN_NOT_ALLOWED = 11, + MBIM_NW_ERROR_LOCATION_AREA_NOT_ALLOWED = 12, + MBIM_NW_ERROR_ROAMING_NOT_ALLOWED_IN_LOCATION_AREA = 13, + MBIM_NW_ERROR_GPRS_NOT_ALLOWED_IN_PLMN = 14, + MBIM_NW_ERROR_NO_CELLS_IN_LOCATION_AREA = 15, + MBIM_NW_ERROR_MSC_TEMPORARILY_NOT_REACHABLE = 16, + MBIM_NW_ERROR_NETWORK_FAILURE = 17, + MBIM_NW_ERROR_MAC_FAILURE = 20, + MBIM_NW_ERROR_SYNCH_FAILURE = 21, + MBIM_NW_ERROR_CONGESTION = 22, + MBIM_NW_ERROR_GSM_AUTHENTICATION_UNACCEPTABLE = 23, + MBIM_NW_ERROR_NOT_AUTHORIZED_FOR_CSG = 25, + MBIM_NW_ERROR_INSUFFICIENT_RESOURCES = 26, + MBIM_NW_ERROR_MISSING_OR_UNKNOWN_APN = 27, + MBIM_NW_ERROR_UNKNOWN_PDP_ADDRESS_OR_TYPE = 28, + MBIM_NW_ERROR_USER_AUTHENTICATION_FAILED = 29, + MBIM_NW_ERROR_ACTIVATION_REJECTED_BY_GGSN_OR_GW = 30, + MBIM_NW_ERROR_ACTIVATION_REJECTED_UNSPECIFIED = 31, + MBIM_NW_ERROR_SERVICE_OPTION_NOT_SUPPORTED = 32, + MBIM_NW_ERROR_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED = 33, + MBIM_NW_ERROR_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER = 34, + MBIM_NW_ERROR_NO_PDP_CONTEXT_ACTIVATED = 40, + MBIM_NW_ERROR_PDP_TYPE_IPV4_ONLY_ALLOWED = 50, + MBIM_NW_ERROR_PDP_TYPE_IPV6_ONLY_ALLOWED = 51, + MBIM_NW_ERROR_MAXIMUM_NUMBER_OF_PDP_CONTEXTS_REACHED = 65, + MBIM_NW_ERROR_REQUESTED_APN_NOT_SUPPORTED_IN_CURRENT_RAT_AND_PLMN = 66, + MBIM_NW_ERROR_SEMANTICALLY_INCORRECT_MESSAGE = 95, + MBIM_NW_ERROR_INVALID_MANDATORY_INFORMATION = 96, + MBIM_NW_ERROR_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 97, + MBIM_NW_ERROR_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, + MBIM_NW_ERROR_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99, + MBIM_NW_ERROR_CONDITIONAL_IE_ERROR = 100, + MBIM_NW_ERROR_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, + MBIM_NW_ERROR_PROTOCOL_ERROR_UNSPECIFIED = 111, + MBIM_NW_ERROR_APN_RESTRICTION_VALUE_INCOMPATIBLE_WITH_ACTIVE_PDP_CONTEXT = 112, + MBIM_NW_ERROR_MULTIPLE_ACCESSES_TO_A_PDN_CONNECTION_NOT_ALLOWED = 113 } MbimNwError; /** @@ -964,6 +986,114 @@ MBIM_DSS_LINK_STATE_ACTIVATE = 1 } MbimDssLinkState; +/*****************************************************************************/ +/* 'ATDS RAT' enums */ + +/** + * MbimAtdsRatMode: + * @MBIM_ATDS_RAT_MODE_AUTOMATIC: Automatic. + * @MBIM_ATDS_RAT_MODE_2G_ONLY: 2G only. + * @MBIM_ATDS_RAT_MODE_3G_ONLY: 3G only. + * @MBIM_ATDS_RAT_MODE_4G_ONLY: 4G only. + * + * RAT mode preferences. + */ +typedef enum { + MBIM_ATDS_RAT_MODE_AUTOMATIC = 0, + MBIM_ATDS_RAT_MODE_2G_ONLY = 1, + MBIM_ATDS_RAT_MODE_3G_ONLY = 2, + MBIM_ATDS_RAT_MODE_4G_ONLY = 3, +} MbimAtdsRatMode; + +/*****************************************************************************/ +/* 'ATDS Operators' enums */ + +/** + * MbimAtdsProviderPlmnMode: + * @MBIM_ATDS_PROVIDER_PLMN_MODE_GSM: GSM. + * @MBIM_ATDS_PROVIDER_PLMN_MODE_UTRAN: UTRAN (UMTS). + * @MBIM_ATDS_PROVIDER_PLMN_MODE_LTE: LTE. + * + * Provider PLMN mode. + */ +typedef enum { + MBIM_ATDS_PROVIDER_PLMN_MODE_GSM = 0, + MBIM_ATDS_PROVIDER_PLMN_MODE_UTRAN = 6, + MBIM_ATDS_PROVIDER_PLMN_MODE_LTE = 7, +} MbimAtdsProviderPlmnMode; + +/*****************************************************************************/ +/* 'PCO' enums */ + +/** + * MbimPcoType: + * @MBIM_PCO_TYPE_COMPLETE: The PCO structure is complete. + * @MBIM_PCO_TYPE_PARTIAL: The PCO structure is a subset of what was received from the network. + * + * Type of PCO structure. + */ +typedef enum { + MBIM_PCO_TYPE_COMPLETE = 0, + MBIM_PCO_TYPE_PARTIAL = 1 +} MbimPcoType; + +/*****************************************************************************/ +/* 'LTE Attach Configuration' enums */ + +/** + * MbimLteAttachContextOperation: + * @MBIM_LTE_ATTACH_CONTEXT_OPERATION_DEFAULT: Overwrite existing contexts. + * @MBIM_LTE_ATTACH_CONTEXT_OPERATION_RESTORE_FACTORY: Restore factory preconfigured contexts. + * + * Command to run when updating LTE attach configuration. + */ +typedef enum { + MBIM_LTE_ATTACH_CONTEXT_OPERATION_DEFAULT = 0, + MBIM_LTE_ATTACH_CONTEXT_OPERATION_RESTORE_FACTORY = 1 +} MbimLteAttachContextOperation; + +/** + * MbimLteAttachContextRoamingControl: + * @MBIM_LTE_ATTACH_CONTEXT_ROAMING_CONTROL_HOME: Context allowed to be used on home network. + * @MBIM_LTE_ATTACH_CONTEXT_ROAMING_CONTROL_PARTNER: Context allowed to be used on partner network. + * @MBIM_LTE_ATTACH_CONTEXT_ROAMING_CONTROL_NON_PARTNER: Context allowed to be used on non-partner network. +*/ +typedef enum { + MBIM_LTE_ATTACH_CONTEXT_ROAMING_CONTROL_HOME = 0, + MBIM_LTE_ATTACH_CONTEXT_ROAMING_CONTROL_PARTNER = 1, + MBIM_LTE_ATTACH_CONTEXT_ROAMING_CONTROL_NON_PARTNER = 2 +} MbimLteAttachContextRoamingControl; + +/** + * MbimContextSource: + * @MBIM_CONTEXT_SOURCE_ADMIN: Context created by enterprise IT. + * @MBIM_CONTEXT_SOURCE_USER: Context created by user. + * @MBIM_CONTEXT_SOURCE_OPERATOR: Context created by operator. + * @MBIM_CONTEXT_SOURCE_MODEM: Context created by modem manufacturer. + * @MBIM_CONTEXT_SOURCE_DEVICE: Context created by OS APN database. + * + * Source of context creation. + */ +typedef enum { + MBIM_CONTEXT_SOURCE_ADMIN = 0, + MBIM_CONTEXT_SOURCE_USER = 1, + MBIM_CONTEXT_SOURCE_OPERATOR = 2, + MBIM_CONTEXT_SOURCE_MODEM = 3, + MBIM_CONTEXT_SOURCE_DEVICE = 4 +} MbimContextSource; + +/** + * MbimLteAttachState: + * @MBIM_LTE_ATTACH_STATE_DETACHED: Detached. + * @MBIM_LTE_ATTACH_STATE_ATTACHED: Attached. + * + * LTE attach state. + */ +typedef enum { + MBIM_LTE_ATTACH_STATE_DETACHED = 0, + MBIM_LTE_ATTACH_STATE_ATTACHED = 1 +} MbimLteAttachState; + G_END_DECLS #endif /* _LIBMBIM_GLIB_MBIM_ENUMS_H_ */ diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-errors.h libmbim-1.18.0/src/libmbim-glib/mbim-errors.h --- libmbim-1.14.2/src/libmbim-glib/mbim-errors.h 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-errors.h 2018-03-20 21:33:15.000000000 +0100 @@ -49,7 +49,8 @@ * @MBIM_CORE_ERROR_INVALID_ARGS: Invalid arguments given. * @MBIM_CORE_ERROR_INVALID_MESSAGE: MBIM message is invalid. * @MBIM_CORE_ERROR_UNSUPPORTED: Not supported. - * @MBIM_CORE_ERROR_ABORTED: Operation aborted.. + * @MBIM_CORE_ERROR_ABORTED: Operation aborted. + * @MBIM_CORE_ERROR_UNKNOWN_STATE: State is unknown. * * Common errors that may be reported by libmbim-glib. */ @@ -60,7 +61,8 @@ MBIM_CORE_ERROR_INVALID_ARGS = 3, /*< nick=InvalidArgs >*/ MBIM_CORE_ERROR_INVALID_MESSAGE = 4, /*< nick=InvalidMessage >*/ MBIM_CORE_ERROR_UNSUPPORTED = 5, /*< nick=Unsupported >*/ - MBIM_CORE_ERROR_ABORTED = 6 /*< nick=Aborted >*/ + MBIM_CORE_ERROR_ABORTED = 6, /*< nick=Aborted >*/ + MBIM_CORE_ERROR_UNKNOWN_STATE = 7 /*< nick=UnknownState >*/ } MbimCoreError; /** @@ -129,6 +131,7 @@ * @MBIM_STATUS_ERROR_AUTH_INCORRECT_AUTN: Incorrect AUTN when sending authentication. * @MBIM_STATUS_ERROR_AUTH_SYNC_FAILURE: Synchronization failure during the authentication. * @MBIM_STATUS_ERROR_AUTH_AMF_NOT_SET: AMF bit not set in the authentication. + * @MBIM_STATUS_ERROR_CONTEXT_NOT_SUPPORTED: ContextType not supported by the operation. * @MBIM_STATUS_ERROR_SMS_UNKNOWN_SMSC_ADDRESS: Unknown SMSC address. * @MBIM_STATUS_ERROR_SMS_NETWORK_TIMEOUT: Network timeout when sending SMS. * @MBIM_STATUS_ERROR_SMS_LANG_NOT_SUPPORTED: Language not supported in SMS. @@ -176,6 +179,7 @@ MBIM_STATUS_ERROR_AUTH_INCORRECT_AUTN = 35, /*< nick=AuthIncorrectAuth >*/ MBIM_STATUS_ERROR_AUTH_SYNC_FAILURE = 36, /*< nick=AuthSyncFailure >*/ MBIM_STATUS_ERROR_AUTH_AMF_NOT_SET = 37, /*< nick=AuthAmfNotSet >*/ + MBIM_STATUS_ERROR_CONTEXT_NOT_SUPPORTED = 38, /*< nick=ContextNotSupported >*/ MBIM_STATUS_ERROR_SMS_UNKNOWN_SMSC_ADDRESS = 100, /*< nick=SmsUnknownSmscAddress >*/ MBIM_STATUS_ERROR_SMS_NETWORK_TIMEOUT = 101, /*< nick=SmsNetworkTimeout >*/ MBIM_STATUS_ERROR_SMS_LANG_NOT_SUPPORTED = 102, /*< nick=SmsLangNotSupported >*/ diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-message.c libmbim-1.18.0/src/libmbim-glib/mbim-message.c --- libmbim-1.14.2/src/libmbim-glib/mbim-message.c 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-message.c 2019-01-08 13:16:16.000000000 +0100 @@ -18,7 +18,7 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * - * Copyright (C) 2013 - 2014 Aleksander Morgado + * Copyright (C) 2013 - 2018 Aleksander Morgado */ #include @@ -32,6 +32,21 @@ #include "mbim-error-types.h" #include "mbim-enum-types.h" +#include "mbim-basic-connect.h" +#include "mbim-auth.h" +#include "mbim-dss.h" +#include "mbim-phonebook.h" +#include "mbim-sms.h" +#include "mbim-stk.h" +#include "mbim-ussd.h" +#include "mbim-proxy-control.h" +#include "mbim-qmi.h" +#include "mbim-ms-firmware-id.h" +#include "mbim-ms-host-shutdown.h" +#include "mbim-atds.h" +#include "mbim-intel-firmware-update.h" +#include "mbim-ms-basic-connect-extensions.h" + /** * SECTION:mbim-message * @title: MbimMessage @@ -59,6 +74,26 @@ } } +static void +set_error_from_status (GError **error, + MbimStatusError status) +{ + const gchar *error_string; + + error_string = mbim_status_error_get_string (status); + if (error_string) + g_set_error_literal (error, + MBIM_STATUS_ERROR, + status, + error_string); + else + g_set_error (error, + MBIM_STATUS_ERROR, + status, + "Unknown status 0x%08x", + status); +} + /*****************************************************************************/ GType @@ -193,6 +228,8 @@ gchar *str; GError *error = NULL; guint32 information_buffer_offset; + gunichar2 *utf16d = NULL; + const gunichar2 *utf16 = NULL; information_buffer_offset = _mbim_message_get_information_buffer_offset (self); @@ -207,20 +244,29 @@ if (!size) return NULL; - str = g_convert (G_STRUCT_MEMBER_P ( - self->data, - (information_buffer_offset + struct_start_offset + offset)), - size, - "utf-8", - "utf-16le", - NULL, - NULL, - &error); + utf16 = (const gunichar2 *) G_STRUCT_MEMBER_P (self->data, (information_buffer_offset + struct_start_offset + offset)); + + /* For BE systems, convert from LE to BE */ + if (G_BYTE_ORDER == G_BIG_ENDIAN) { + guint i; + + utf16d = (gunichar2 *) g_malloc (size); + for (i = 0; i < (size / 2); i++) + utf16d[i] = GUINT16_FROM_LE (utf16[i]); + } + + str = g_utf16_to_utf8 (utf16d ? utf16d : utf16, + size / 2, + NULL, + NULL, + &error); if (error) { g_warning ("Error converting string: %s", error->message); g_error_free (error); } + g_free (utf16d); + return str; } @@ -624,53 +670,39 @@ } void -_mbim_struct_builder_append_guint64_array (MbimStructBuilder *builder, - const guint64 *values, - guint32 n_values) -{ - guint i; - - /* guint64 array added directly in the static buffer */ - for (i = 0; i < n_values; i++) - _mbim_struct_builder_append_guint64 (builder, values[i]); -} - -void _mbim_struct_builder_append_string (MbimStructBuilder *builder, const gchar *value) { guint32 offset; guint32 length; - gchar *utf16le = NULL; - guint32 utf16le_bytes = 0; + gunichar2 *utf16 = NULL; + guint32 utf16_bytes = 0; GError *error = NULL; /* A string consists of Offset+Size in the static buffer, plus the * string itself in the variable buffer */ - /* Convert the string from UTF-8 to UTF-16LE */ + /* Convert the string from UTF-8 to UTF-16HE */ if (value && value[0]) { - gsize out_bytes = 0; + glong items_written = 0; - utf16le = g_convert (value, - -1, - "utf-16le", - "utf-8", - NULL, - &out_bytes, - &error); - if (error) { + utf16 = g_utf8_to_utf16 (value, + -1, + NULL, /* bytes */ + &items_written, /* gunichar2 */ + &error); + if (!utf16) { g_warning ("Error converting string: %s", error->message); g_error_free (error); return; } - utf16le_bytes = out_bytes; + utf16_bytes = items_written * 2; } /* If string length is greater than 0, add the offset to fix, otherwise set * the offset to 0 and don't configure the update */ - if (utf16le_bytes == 0) { + if (utf16_bytes == 0) { offset = 0; g_byte_array_append (builder->fixed_buffer, (guint8 *)&offset, sizeof (offset)); } else { @@ -688,15 +720,22 @@ } /* Add the length value */ - length = GUINT32_TO_LE (utf16le_bytes); + length = GUINT32_TO_LE (utf16_bytes); g_byte_array_append (builder->fixed_buffer, (guint8 *)&length, sizeof (length)); /* And finally, the string itself to the variable buffer */ - if (utf16le_bytes) { - g_byte_array_append (builder->variable_buffer, (const guint8 *)utf16le, (guint)utf16le_bytes); - bytearray_apply_padding (builder->variable_buffer, &utf16le_bytes); + if (utf16_bytes) { + /* For BE systems, convert from BE to LE */ + if (G_BYTE_ORDER == G_BIG_ENDIAN) { + guint i; + + for (i = 0; i < (utf16_bytes / 2); i++) + utf16[i] = GUINT16_TO_LE (utf16[i]); + } + g_byte_array_append (builder->variable_buffer, (const guint8 *)utf16, (guint)utf16_bytes); + bytearray_apply_padding (builder->variable_buffer, &utf16_bytes); } - g_free (utf16le); + g_free (utf16); } void @@ -872,14 +911,6 @@ } void -_mbim_message_command_builder_append_guint64_array (MbimMessageCommandBuilder *builder, - const guint64 *values, - guint32 n_values) -{ - _mbim_struct_builder_append_guint64_array (builder->contents_builder, values, n_values); -} - -void _mbim_message_command_builder_append_string (MbimMessageCommandBuilder *builder, const gchar *value) { @@ -1109,6 +1140,7 @@ gboolean headers_only) { GString *printable; + MbimService service_read_fields = MBIM_SERVICE_INVALID; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (line_prefix != NULL, NULL); @@ -1136,7 +1168,7 @@ if (!headers_only) g_string_append_printf (printable, "%sContents:\n" - "%s max_control_transfer = %u\n", + "%s max control transfer = %u\n", line_prefix, line_prefix, mbim_message_open_get_max_control_transfer (self)); break; @@ -1196,6 +1228,8 @@ gchar *uuid_printable; const gchar *cid_printable; + service_read_fields = mbim_message_command_get_service (self); + uuid_printable = mbim_uuid_get_printable (mbim_message_command_get_service_id (self)); cid_printable = mbim_cid_get_printable (mbim_message_command_get_service (self), mbim_message_command_get_cid (self)); @@ -1225,6 +1259,8 @@ MbimStatusError status; const gchar *cid_printable; + service_read_fields = mbim_message_command_done_get_service (self); + status = mbim_message_command_done_get_status_code (self); uuid_printable = mbim_uuid_get_printable (mbim_message_command_done_get_service_id (self)); cid_printable = mbim_cid_get_printable (mbim_message_command_done_get_service (self), @@ -1254,6 +1290,8 @@ gchar *uuid_printable; const gchar *cid_printable; + service_read_fields = mbim_message_indicate_status_get_service (self); + uuid_printable = mbim_uuid_get_printable (mbim_message_indicate_status_get_service_id (self)); cid_printable = mbim_cid_get_printable (mbim_message_indicate_status_get_service (self), mbim_message_indicate_status_get_cid (self)); @@ -1269,6 +1307,72 @@ break; } + if (service_read_fields != MBIM_SERVICE_INVALID) { + gchar *fields_printable = NULL; + GError *error = NULL; + + switch (service_read_fields) { + case MBIM_SERVICE_BASIC_CONNECT: + fields_printable = __mbim_message_basic_connect_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_SMS: + fields_printable = __mbim_message_sms_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_USSD: + fields_printable = __mbim_message_ussd_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_PHONEBOOK: + fields_printable = __mbim_message_phonebook_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_STK: + fields_printable = __mbim_message_stk_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_AUTH: + fields_printable = __mbim_message_auth_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_DSS: + fields_printable = __mbim_message_dss_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_MS_FIRMWARE_ID: + fields_printable = __mbim_message_ms_firmware_id_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_MS_HOST_SHUTDOWN: + fields_printable = __mbim_message_ms_host_shutdown_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_PROXY_CONTROL: + fields_printable = __mbim_message_proxy_control_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_QMI: + fields_printable = __mbim_message_qmi_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_ATDS: + fields_printable = __mbim_message_atds_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_INTEL_FIRMWARE_UPDATE: + fields_printable = __mbim_message_intel_firmware_update_get_printable_fields (self, line_prefix, &error); + break; + case MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS: + fields_printable = __mbim_message_ms_basic_connect_extensions_get_printable_fields (self, line_prefix, &error); + break; + default: + break; + } + + if (error) { + g_string_append_printf (printable, + "%sFields: %s\n", + line_prefix, error->message); + g_error_free (error); + } else if (fields_printable) { + if (fields_printable[0]) + g_string_append_printf (printable, + "%sFields:\n" + "%s", + line_prefix, fields_printable); + g_free (fields_printable); + } + } + return g_string_free (printable, FALSE); } @@ -1589,10 +1693,7 @@ if (status == MBIM_STATUS_ERROR_NONE) return TRUE; - g_set_error_literal (error, - MBIM_STATUS_ERROR, - status, - mbim_status_error_get_string (status)); + set_error_from_status (error, status); return FALSE; } @@ -1685,10 +1786,7 @@ if (status == MBIM_STATUS_ERROR_NONE) return TRUE; - g_set_error_literal (error, - MBIM_STATUS_ERROR, - status, - mbim_status_error_get_string (status)); + set_error_from_status (error, status); return FALSE; } @@ -2050,10 +2148,7 @@ if (status == MBIM_STATUS_ERROR_NONE) return TRUE; - g_set_error_literal (error, - MBIM_STATUS_ERROR, - status, - mbim_status_error_get_string (status)); + set_error_from_status (error, status); return FALSE; } @@ -2222,9 +2317,6 @@ return TRUE; /* Build error */ - g_set_error_literal (error, - MBIM_STATUS_ERROR, - status, - mbim_status_error_get_string (status)); + set_error_from_status (error, status); return FALSE; } diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-message-private.h libmbim-1.18.0/src/libmbim-glib/mbim-message-private.h --- libmbim-1.14.2/src/libmbim-glib/mbim-message-private.h 2017-08-08 12:17:29.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-message-private.h 2019-01-08 13:16:16.000000000 +0100 @@ -189,9 +189,6 @@ guint32 n_values); void _mbim_struct_builder_append_guint64 (MbimStructBuilder *builder, guint64 value); -void _mbim_struct_builder_append_guint64_array (MbimStructBuilder *builder, - const guint64 *values, - guint32 n_values); void _mbim_struct_builder_append_string (MbimStructBuilder *builder, const gchar *value); void _mbim_struct_builder_append_string_array (MbimStructBuilder *builder, @@ -238,9 +235,6 @@ guint32 n_values); void _mbim_message_command_builder_append_guint64 (MbimMessageCommandBuilder *builder, guint64 value); -void _mbim_message_command_builder_append_guint64_array (MbimMessageCommandBuilder *builder, - const guint64 *values, - guint32 n_values); void _mbim_message_command_builder_append_string (MbimMessageCommandBuilder *builder, const gchar *value); void _mbim_message_command_builder_append_string_array (MbimMessageCommandBuilder *builder, diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-proxy.c libmbim-1.18.0/src/libmbim-glib/mbim-proxy.c --- libmbim-1.14.2/src/libmbim-glib/mbim-proxy.c 2017-08-08 12:17:29.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-proxy.c 2019-01-08 13:16:16.000000000 +0100 @@ -66,10 +66,6 @@ /* Devices */ GList *devices; GList *opening_devices; - - /* Global events array */ - MbimEventEntry **mbim_event_entry_array; - gsize mbim_event_entry_array_size; }; static void track_device (MbimProxy *self, MbimDevice *device); @@ -126,8 +122,6 @@ MbimDevice *device; guint indication_id; - guint function_error_id; - gboolean service_subscriber_list_enabled; MbimEventEntry **mbim_event_entry_array; gsize mbim_event_entry_array_size; } Client; @@ -139,6 +133,9 @@ static void client_disconnect (Client *client) { + g_clear_pointer (&client->mbim_event_entry_array, mbim_event_entry_array_free); + client->mbim_event_entry_array_size = 0; + if (client->connection_readable_source) { g_source_destroy (client->connection_readable_source); g_source_unref (client->connection_readable_source); @@ -156,9 +153,6 @@ static void client_indication_cb (MbimDevice *device, MbimMessage *message, Client *client); -static void client_error_cb (MbimDevice *device, - GError *error, - Client *client); static void client_set_device (Client *client, @@ -167,8 +161,6 @@ if (client->device) { if (g_signal_handler_is_connected (client->device, client->indication_id)) g_signal_handler_disconnect (client->device, client->indication_id); - if (g_signal_handler_is_connected (client->device, client->function_error_id)) - g_signal_handler_disconnect (client->device, client->function_error_id); g_object_unref (client->device); } @@ -178,14 +170,9 @@ MBIM_DEVICE_SIGNAL_INDICATE_STATUS, G_CALLBACK (client_indication_cb), client); - client->function_error_id = g_signal_connect (client->device, - MBIM_DEVICE_SIGNAL_ERROR, - G_CALLBACK (client_error_cb), - client); } else { client->device = NULL; client->indication_id = 0; - client->function_error_id = 0; } } @@ -271,65 +258,50 @@ /* Client indications */ static void +forward_indication (Client *client, + MbimMessage *message) +{ + GError *error = NULL; + + if (!client_send_message (client, message, &error)) { + g_warning ("couldn't forward indication to client"); + g_error_free (error); + } +} + +static void client_indication_cb (MbimDevice *device, MbimMessage *message, Client *client) { - guint i; - GError *error = NULL; - gboolean forward_indication = FALSE; - MbimEventEntry *event = NULL; + MbimEventEntry *entry; + guint i; - if (client->service_subscriber_list_enabled) { - /* if client sent the device service subscribe list with element count 0 then - * ignore all indications */ - if (client->mbim_event_entry_array) { - for (i = 0; i < client->mbim_event_entry_array_size; i++) { - if (mbim_uuid_cmp (mbim_message_indicate_status_get_service_id (message), - &client->mbim_event_entry_array[i]->device_service_id)) { - event = client->mbim_event_entry_array[i]; - break; - } - } - - if (event) { - /* found matching service, search for cid */ - if (event->cids_count) { - for (i = 0; i < event->cids_count; i++) { - if (mbim_message_indicate_status_get_cid (message) == event->cids[i]) { - forward_indication = TRUE; - break; - } - } - } else - /* cids_count of 0 enables all indications for the service */ - forward_indication = TRUE; - } - } - } else if (mbim_message_indicate_status_get_service (message) != MBIM_SERVICE_INVALID && - !mbim_service_id_is_custom (mbim_message_indicate_status_get_service (message))) - /* only forward standard service indications if service subscriber list is not enabled */ - forward_indication = TRUE; - - if (forward_indication) { - if (!client_send_message (client, message, &error)) { - g_warning ("couldn't forward indication to client"); - g_error_free (error); + /* if client doesn't have a subscribe list, we're done. */ + if (!client->mbim_event_entry_array) + return; + + /* Look for the event list associated to the service */ + entry = NULL; + for (i = 0; i < client->mbim_event_entry_array_size; i++) { + if (mbim_uuid_cmp (mbim_message_indicate_status_get_service_id (message), + &client->mbim_event_entry_array[i]->device_service_id)) { + entry = client->mbim_event_entry_array[i]; + break; } } -} -/*****************************************************************************/ -/* Handling generic function errors */ + /* if client didn't subscribe to anything in this service, we're done */ + if (!entry) + return; -static void -client_error_cb (MbimDevice *device, - GError *error, - Client *client) -{ - if (g_error_matches (error, MBIM_PROTOCOL_ERROR, MBIM_PROTOCOL_ERROR_NOT_OPENED)) { - g_debug ("Device not opened error reported, forcing close"); - mbim_device_close_force (device, NULL); + /* Look for the specific cid in the event list */ + for (i = 0; i < entry->cids_count; i++) { + if (mbim_message_indicate_status_get_cid (message) == entry->cids[i]) { + /* exact match in the subscription */ + forward_indication (client, message); + return; + } } } @@ -390,19 +362,21 @@ /*****************************************************************************/ /* Internal proxy device opening operation */ +static MbimEventEntry **merge_client_service_subscribe_lists (MbimProxy *self, + MbimDevice *device, + gsize *out_size); +static void reset_client_service_subscribe_lists (MbimProxy *self, + MbimDevice *device); + typedef struct { - MbimProxy *self; - MbimDevice *device; - guint32 timeout_secs; - GSimpleAsyncResult *result; + MbimDevice *device; + guint32 timeout_secs; } InternalDeviceOpenContext; static void internal_device_open_context_free (InternalDeviceOpenContext *ctx) { - g_object_unref (ctx->result); g_object_unref (ctx->device); - g_object_unref (ctx->self); g_slice_free (InternalDeviceOpenContext, ctx); } @@ -411,7 +385,7 @@ GAsyncResult *res, GError **error) { - return !g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error); + return g_task_propagate_boolean (G_TASK (res), error); } typedef struct { @@ -425,16 +399,15 @@ { GList *l; - /* Complete all pending open actions */ + /* Complete all pending open tasks */ for (l = info->pending; l; l = g_list_next (l)) { - GSimpleAsyncResult *simple = (GSimpleAsyncResult *)(l->data); + GTask *task = (GTask *)(l->data); if (error) - g_simple_async_result_set_from_error (simple, error); + g_task_return_error (task, g_error_copy (error)); else - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - g_simple_async_result_complete_in_idle (simple); - g_object_unref (simple); + g_task_return_boolean (task, TRUE); + g_object_unref (task); } g_list_free (info->pending); @@ -453,7 +426,7 @@ OpeningDevice *info; info = (OpeningDevice *)(l->data); - if (g_str_equal (mbim_device_get_path (device), mbim_device_get_path (info->device))) + if (device == info->device) return info; } @@ -511,24 +484,27 @@ } static void -internal_open (InternalDeviceOpenContext *ctx) +internal_open (GTask *task) { - OpeningDevice *info; + MbimProxy *self; + InternalDeviceOpenContext *ctx; + OpeningDevice *info; + + self = g_task_get_source_object (task); + ctx = g_task_get_task_data (task); /* If already being opened, queue it up */ - info = peek_opening_device_info (ctx->self, ctx->device); + info = peek_opening_device_info (self, ctx->device); if (info) { - /* Propagate result object from context */ - info->pending = g_list_append (info->pending, g_object_ref (ctx->result)); - internal_device_open_context_free (ctx); + info->pending = g_list_append (info->pending, task); return; } - /* First time opening, go on */ + /* First time opening */ info = g_slice_new0 (OpeningDevice); info->device = g_object_ref (ctx->device); - info->pending = g_list_append (info->pending, g_object_ref (ctx->result)); - ctx->self->priv->opening_devices = g_list_prepend (ctx->self->priv->opening_devices, info); + info->pending = g_list_append (info->pending, task); + self->priv->opening_devices = g_list_prepend (self->priv->opening_devices, info); /* Note: for now, only the first timeout request is taken into account */ @@ -538,31 +514,35 @@ ctx->timeout_secs, NULL, (GAsyncReadyCallback)device_open_ready, - g_object_ref (ctx->self)); - - internal_device_open_context_free (ctx); + g_object_ref (self)); } +static void proxy_device_error_cb (MbimDevice *device, + GError *error, + MbimProxy *self); + static void -internal_device_open_caps_query_ready (MbimDevice *device, - GAsyncResult *res, - InternalDeviceOpenContext *ctx) +internal_device_open_caps_query_ready (MbimDevice *device, + GAsyncResult *res, + GTask *task) { - GError *error = NULL; + MbimProxy *self; + GError *error = NULL; MbimMessage *response; - GList *l; - /* Always unblock all signals from all clients */ - for (l = ctx->self->priv->clients; l; l = g_list_next (l)) - g_signal_handlers_unblock_by_func (device, client_error_cb, l->data); + self = g_task_get_source_object (task); + + /* Always unblock error signals */ + g_signal_handlers_unblock_by_func (device, proxy_device_error_cb, self); response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { /* If we get a not-opened error, well, force closing right away and reopen */ if (g_error_matches (error, MBIM_PROTOCOL_ERROR, MBIM_PROTOCOL_ERROR_NOT_OPENED)) { g_debug ("device not-opened error reported, reopening"); + reset_client_service_subscribe_lists (self, device); mbim_device_close_force (device, NULL); - internal_open (ctx); + internal_open (task); if (response) mbim_message_unref (response); g_error_free (error); @@ -574,9 +554,8 @@ g_error_free (error); } - g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); - g_simple_async_result_complete (ctx->result); - internal_device_open_context_free (ctx); + g_task_return_boolean (task, TRUE); + g_object_unref (task); if (response) mbim_message_unref (response); @@ -590,28 +569,25 @@ gpointer user_data) { InternalDeviceOpenContext *ctx; + GTask *task; + + task = g_task_new (self, NULL, callback, user_data); ctx = g_slice_new0 (InternalDeviceOpenContext); - ctx->self = g_object_ref (self); - ctx->device = g_object_ref (device); + ctx->device = g_object_ref (device); ctx->timeout_secs = timeout_secs; - ctx->result = g_simple_async_result_new (G_OBJECT (self), - callback, - user_data, - internal_device_open); + g_task_set_task_data (task, ctx, (GDestroyNotify) internal_device_open_context_free); /* If the device is flagged as already open, we still want to check * whether that's totally true, and we do that with a standard command * (loading caps in this case). */ if (mbim_device_is_open (device)) { MbimMessage *message; - GList *l; /* Avoid getting notified of errors in this internal check, as we're * already going to check for the NotOpened error ourselves in the * ready callback, and we'll reopen silently if we find this. */ - for (l = self->priv->clients; l; l = g_list_next (l)) - g_signal_handlers_block_by_func (device, client_error_cb, l->data); + g_signal_handlers_block_by_func (device, proxy_device_error_cb, self); g_debug ("checking device caps during client device open..."); message = mbim_message_device_caps_query_new (NULL); @@ -620,12 +596,12 @@ 5, NULL, (GAsyncReadyCallback)internal_device_open_caps_query_ready, - ctx); + task); mbim_message_unref (message); return; } - internal_open (ctx); + internal_open (task); } /*****************************************************************************/ @@ -842,11 +818,10 @@ track_service_subscribe_list (Client *client, MbimMessage *message) { - client->service_subscriber_list_enabled = TRUE; - - if (client->mbim_event_entry_array) - mbim_event_entry_array_free (client->mbim_event_entry_array); - + /* On each new request from the client, it should provide the FULL list of + * events it's subscribed to, so we can safely recreate the whole array each + * time. */ + g_clear_pointer (&client->mbim_event_entry_array, mbim_event_entry_array_free); client->mbim_event_entry_array = _mbim_proxy_helper_service_subscribe_request_parse (message, &client->mbim_event_entry_array_size); if (mbim_utils_get_traces_enabled ()) { @@ -856,43 +831,6 @@ } } -static MbimEventEntry ** -merge_client_service_subscribe_lists (MbimProxy *self, - gsize *out_size) -{ - GList *l; - MbimEventEntry **updated; - gsize updated_size = 0; - - g_assert (out_size != NULL); - - /* Add previous global list */ - updated = _mbim_proxy_helper_service_subscribe_list_merge (NULL, 0, - self->priv->mbim_event_entry_array, self->priv->mbim_event_entry_array_size, - &updated_size); - - for (l = self->priv->clients; l; l = g_list_next (l)) { - Client *client; - - client = l->data; - if (!client->mbim_event_entry_array) - continue; - - /* Add per-client list */ - updated = _mbim_proxy_helper_service_subscribe_list_merge (updated, updated_size, - client->mbim_event_entry_array, client->mbim_event_entry_array_size, - &updated_size); - } - - if (mbim_utils_get_traces_enabled ()) { - g_debug ("Merged service subscribe list built"); - _mbim_proxy_helper_service_subscribe_list_debug ((const MbimEventEntry * const *)updated, updated_size); - } - - *out_size = updated_size; - return updated; -} - static void device_service_subscribe_list_set_complete (Request *request, MbimStatusError status) @@ -957,8 +895,8 @@ MbimMessage *message) { MbimEventEntry **updated; - gsize updated_size = 0; - Request *request; + gsize updated_size = 0; + Request *request; /* create request holder */ request = request_new (self, client, message); @@ -967,26 +905,14 @@ track_service_subscribe_list (client, message); /* merge all service subscribe list for all clients to set on device */ - updated = merge_client_service_subscribe_lists (self, &updated_size); - - /* If lists are equal, ignore re-setting them up */ - if (_mbim_proxy_helper_service_subscribe_list_cmp ( - (const MbimEventEntry *const *)updated, updated_size, - (const MbimEventEntry *const *)self->priv->mbim_event_entry_array, self->priv->mbim_event_entry_array_size)) { - /* Complete directly without error */ - mbim_event_entry_array_free (updated); + updated = merge_client_service_subscribe_lists (self, client->device, &updated_size); + if (!updated) { device_service_subscribe_list_set_complete (request, MBIM_STATUS_ERROR_NONE); return TRUE; } - /* Lists are different, updated stored one */ - mbim_event_entry_array_free (self->priv->mbim_event_entry_array); - self->priv->mbim_event_entry_array = updated; - self->priv->mbim_event_entry_array_size = updated_size; - - message = mbim_message_device_service_subscribe_list_set_new (self->priv->mbim_event_entry_array_size, - (const MbimEventEntry *const *)self->priv->mbim_event_entry_array, - NULL); + /* the 'updated' array was given to us as transfer-none */ + message = mbim_message_device_service_subscribe_list_set_new (updated_size, (const MbimEventEntry *const *)updated, NULL); mbim_message_set_transaction_id (message, mbim_device_get_next_transaction_id (client->device)); mbim_device_command (client->device, @@ -1202,12 +1128,15 @@ return; } - /* Create client */ client = g_slice_new0 (Client); client->self = self; client->ref_count = 1; client->connection = g_object_ref (connection); + + /* By default, a new client has all the standard services enabled for indications */ + client->mbim_event_entry_array = _mbim_proxy_helper_service_subscribe_list_new_standard (&client->mbim_event_entry_array_size); + client->connection_readable_source = g_socket_create_source (g_socket_connection_get_socket (client->connection), G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP, NULL); @@ -1278,6 +1207,141 @@ /*****************************************************************************/ /* Device tracking */ +#define DEVICE_CONTEXT_TAG "device-context-tag" +static GQuark device_context_quark; + +typedef struct { + /* Combined events array */ + MbimEventEntry **mbim_event_entry_array; + gsize mbim_event_entry_array_size; +} DeviceContext; + +static void +device_context_free (DeviceContext *ctx) +{ + mbim_event_entry_array_free (ctx->mbim_event_entry_array); + g_slice_free (DeviceContext, ctx); +} + +static DeviceContext * +device_context_get (MbimDevice *device) +{ + DeviceContext *ctx; + + if (G_UNLIKELY (!device_context_quark)) + device_context_quark = g_quark_from_static_string (DEVICE_CONTEXT_TAG); + + ctx = g_object_get_qdata (G_OBJECT (device), device_context_quark); + if (!ctx) { + ctx = g_slice_new0 (DeviceContext); + ctx->mbim_event_entry_array = _mbim_proxy_helper_service_subscribe_list_new_standard (&ctx->mbim_event_entry_array_size); + + g_debug ("Initial device subscribe list..."); + _mbim_proxy_helper_service_subscribe_list_debug ((const MbimEventEntry * const *)ctx->mbim_event_entry_array, ctx->mbim_event_entry_array_size); + + g_object_set_qdata_full (G_OBJECT (device), device_context_quark, ctx, (GDestroyNotify)device_context_free); + } + + return ctx; +} + +static MbimEventEntry ** +merge_client_service_subscribe_lists (MbimProxy *self, + MbimDevice *device, + gsize *out_size) +{ + GList *l; + MbimEventEntry **updated; + gsize updated_size = 0; + DeviceContext *ctx; + + ctx = device_context_get (device); + g_assert (ctx); + + g_assert (out_size != NULL); + + /* Add previous global list */ + updated = _mbim_proxy_helper_service_subscribe_list_dup (ctx->mbim_event_entry_array, ctx->mbim_event_entry_array_size, &updated_size); + + /* Lookup all clients with this device */ + for (l = self->priv->clients; l; l = g_list_next (l)) { + Client *client; + + client = l->data; + if (!client->mbim_event_entry_array) + continue; + + /* Add per-client list */ + if (client->device == device) + updated = _mbim_proxy_helper_service_subscribe_list_merge (updated, updated_size, + client->mbim_event_entry_array, client->mbim_event_entry_array_size, + &updated_size); + } + + /* If lists are equal, ignore re-setting them up */ + if (_mbim_proxy_helper_service_subscribe_list_cmp ( + (const MbimEventEntry *const *)updated, updated_size, + (const MbimEventEntry *const *)ctx->mbim_event_entry_array, ctx->mbim_event_entry_array_size)) { + g_debug ("Merged service subscribe list not updated for device '%s'", mbim_device_get_path (device)); + mbim_event_entry_array_free (updated); + return NULL; + } + + /* Lists are different, update stored one */ + g_clear_pointer (&ctx->mbim_event_entry_array, mbim_event_entry_array_free); + ctx->mbim_event_entry_array = updated; + ctx->mbim_event_entry_array_size = updated_size; + + if (mbim_utils_get_traces_enabled ()) { + g_debug ("Merged service subscribe list built for device '%s'", mbim_device_get_path (device)); + _mbim_proxy_helper_service_subscribe_list_debug ((const MbimEventEntry * const *)updated, updated_size); + } + + *out_size = updated_size; + return updated; +} + +static void +reset_client_service_subscribe_lists (MbimProxy *self, + MbimDevice *device) +{ + DeviceContext *ctx; + GList *l; + + ctx = device_context_get (device); + g_assert (ctx); + + /* make sure that all clients of this device don't track any event registered */ + for (l = self->priv->clients; l; l = g_list_next (l)) { + Client *client; + + client = l->data; + if (!client->mbim_event_entry_array) + continue; + + if (client->device == device) { + g_clear_pointer (&client->mbim_event_entry_array, mbim_event_entry_array_free); + client->mbim_event_entry_array = _mbim_proxy_helper_service_subscribe_list_new_standard (&client->mbim_event_entry_array_size); + } + } + + /* And reset the device-specific merged list */ + g_clear_pointer (&ctx->mbim_event_entry_array, mbim_event_entry_array_free); + ctx->mbim_event_entry_array = _mbim_proxy_helper_service_subscribe_list_new_standard (&ctx->mbim_event_entry_array_size); +} + +static void +proxy_device_error_cb (MbimDevice *device, + GError *error, + MbimProxy *self) +{ + if (g_error_matches (error, MBIM_PROTOCOL_ERROR, MBIM_PROTOCOL_ERROR_NOT_OPENED)) { + g_debug ("device '%s' reports as being closed...", mbim_device_get_path (device)); + reset_client_service_subscribe_lists (self, device); + mbim_device_close_force (device, NULL); + } +} + static MbimDevice * peek_device_for_path (MbimProxy *self, const gchar *path) @@ -1306,11 +1370,16 @@ { GList *l; GList *to_remove = NULL; + DeviceContext *ctx; + + ctx = device_context_get (device); + g_assert (ctx); if (!g_list_find (self->priv->devices, device)) return; /* Disconnect right away */ + g_signal_handlers_disconnect_by_func (device, proxy_device_error_cb, self); g_signal_handlers_disconnect_by_func (device, proxy_device_removed_cb, self); /* If pending openings ongoing, complete them with error */ @@ -1318,7 +1387,7 @@ /* Lookup all clients with this device */ for (l = self->priv->clients; l; l = g_list_next (l)) { - if (g_str_equal (mbim_device_get_path (((Client *)(l->data))->device), mbim_device_get_path (device))) + if (((Client *)(l->data))->device == device) to_remove = g_list_append (to_remove, l->data); } @@ -1337,11 +1406,17 @@ track_device (MbimProxy *self, MbimDevice *device) { - self->priv->devices = g_list_append (self->priv->devices, g_object_ref (device)); g_signal_connect (device, MBIM_DEVICE_SIGNAL_REMOVED, G_CALLBACK (proxy_device_removed_cb), self); + + g_signal_connect (device, + MBIM_DEVICE_SIGNAL_ERROR, + G_CALLBACK (proxy_device_error_cb), + self); + + self->priv->devices = g_list_append (self->priv->devices, g_object_ref (device)); g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_N_DEVICES]); } @@ -1369,9 +1444,6 @@ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, MBIM_TYPE_PROXY, MbimProxyPrivate); - - /* By default, we assume we have all default services enabled */ - self->priv->mbim_event_entry_array = _mbim_proxy_helper_service_subscribe_standard_list_new (&self->priv->mbim_event_entry_array_size); } static void @@ -1409,7 +1481,7 @@ } if (priv->devices) { - g_list_free_full (priv->devices, (GDestroyNotify) g_object_unref); + g_list_free_full (priv->devices, g_object_unref); priv->devices = NULL; } @@ -1421,12 +1493,6 @@ g_debug ("UNIX socket service at '%s' stopped", MBIM_PROXY_SOCKET_PATH); } - if (priv->mbim_event_entry_array) { - mbim_event_entry_array_free (priv->mbim_event_entry_array); - priv->mbim_event_entry_array = NULL; - priv->mbim_event_entry_array_size = 0; - } - G_OBJECT_CLASS (mbim_proxy_parent_class)->dispose (object); } diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-proxy-helpers.c libmbim-1.18.0/src/libmbim-glib/mbim-proxy-helpers.c --- libmbim-1.14.2/src/libmbim-glib/mbim-proxy-helpers.c 2015-01-21 00:25:49.000000000 +0100 +++ libmbim-1.18.0/src/libmbim-glib/mbim-proxy-helpers.c 2019-01-08 13:16:16.000000000 +0100 @@ -111,11 +111,11 @@ g_free (str); if (entry->cids_count == 0) - g_debug ("[service %u] all CIDs enabled", (guint)i); + g_debug ("[service %u] No CIDs explicitly enabled", (guint)i); else { guint j; - g_debug ("[service %u] %u CIDs enabled", (guint)i, entry->cids_count);; + g_debug ("[service %u] %u CIDs enabled", (guint)i, entry->cids_count); for (j = 0; j < entry->cids_count; j++) { const gchar *cid_str; @@ -130,30 +130,6 @@ /*****************************************************************************/ MbimEventEntry ** -_mbim_proxy_helper_service_subscribe_standard_list_new (gsize *out_size) -{ - gsize i; - MbimService service; - MbimEventEntry **out; - - g_assert (out_size != NULL); - - out = g_new0 (MbimEventEntry *, 1 + (MBIM_SERVICE_DSS - MBIM_SERVICE_BASIC_CONNECT + 1)); - - for (service = MBIM_SERVICE_BASIC_CONNECT, i = 0; - service <= MBIM_SERVICE_DSS; - service++, i++) { - out[i] = g_new0 (MbimEventEntry, 1); - memcpy (&out[i]->device_service_id, mbim_uuid_from_service (service), sizeof (MbimUuid)); - } - - *out_size = i; - return out; -} - -/*****************************************************************************/ - -MbimEventEntry ** _mbim_proxy_helper_service_subscribe_request_parse (MbimMessage *message, gsize *out_size) { @@ -219,6 +195,12 @@ for (m = 0; m < merge_size; m++) { MbimEventEntry *entry = NULL; + MbimService id; + + /* ignore all merge additions for standard services */ + id = mbim_uuid_to_service (&merge[m]->device_service_id); + if (id >= MBIM_SERVICE_BASIC_CONNECT && id <= MBIM_SERVICE_DSS) + continue; /* look for matching uuid */ if (in && in_size) { @@ -281,3 +263,129 @@ return in; } + +/*****************************************************************************/ + +MbimEventEntry ** +_mbim_proxy_helper_service_subscribe_list_dup (MbimEventEntry **in, + gsize in_size, + gsize *out_size) +{ + MbimEventEntry **out; + guint i; + + g_assert (out_size != NULL); + + out = g_new0 (MbimEventEntry *, in_size + 1); + for (i = 0; i < in_size; i++) { + MbimEventEntry *entry_in; + MbimEventEntry *entry_out; + + entry_in = in[i]; + entry_out = g_new (MbimEventEntry, 1); + memcpy (&entry_out->device_service_id, &entry_in->device_service_id, sizeof (MbimUuid)); + entry_out->cids_count = entry_in->cids_count; + entry_out->cids = g_new (guint32, entry_out->cids_count); + memcpy (entry_out->cids, entry_in->cids, sizeof (guint32) * entry_out->cids_count); + out[i] = entry_out; + } + + *out_size = in_size; + return out; +} + +/*****************************************************************************/ + +MbimEventEntry ** +_mbim_proxy_helper_service_subscribe_list_new_standard (gsize *out_size) +{ + MbimEventEntry **out; + guint i = 0; + MbimEventEntry *entry; + + g_assert (out_size != NULL); + +#define STANDARD_SERVICES_LIST_SIZE 5 + out = g_new0 (MbimEventEntry *, STANDARD_SERVICES_LIST_SIZE + 1); + + /* Basic connect service */ + { + static const guint32 notify_cids[] = { + MBIM_CID_BASIC_CONNECT_SUBSCRIBER_READY_STATUS, + MBIM_CID_BASIC_CONNECT_RADIO_STATE, + MBIM_CID_BASIC_CONNECT_PREFERRED_PROVIDERS, + MBIM_CID_BASIC_CONNECT_REGISTER_STATE, + MBIM_CID_BASIC_CONNECT_PACKET_SERVICE, + MBIM_CID_BASIC_CONNECT_SIGNAL_STATE, + MBIM_CID_BASIC_CONNECT_CONNECT, + MBIM_CID_BASIC_CONNECT_PROVISIONED_CONTEXTS, + MBIM_CID_BASIC_CONNECT_IP_CONFIGURATION, + MBIM_CID_BASIC_CONNECT_EMERGENCY_MODE, + MBIM_CID_BASIC_CONNECT_MULTICARRIER_PROVIDERS, + }; + + entry = g_new (MbimEventEntry, 1); + memcpy (&entry->device_service_id, mbim_uuid_from_service (MBIM_SERVICE_BASIC_CONNECT), sizeof (MbimUuid)); + entry->cids_count = G_N_ELEMENTS (notify_cids); + entry->cids = g_memdup (notify_cids, sizeof (guint32) * entry->cids_count); + out[i++] = entry; + } + + /* SMS service */ + { + static const guint32 notify_cids[] = { + MBIM_CID_SMS_CONFIGURATION, + MBIM_CID_SMS_READ, + MBIM_CID_SMS_MESSAGE_STORE_STATUS, + }; + + entry = g_new (MbimEventEntry, 1); + memcpy (&entry->device_service_id, mbim_uuid_from_service (MBIM_SERVICE_SMS), sizeof (MbimUuid)); + entry->cids_count = G_N_ELEMENTS (notify_cids); + entry->cids = g_memdup (notify_cids, sizeof (guint32) * entry->cids_count); + out[i++] = entry; + } + + /* USSD service */ + { + static const guint32 notify_cids[] = { + MBIM_CID_USSD, + }; + + entry = g_new (MbimEventEntry, 1); + memcpy (&entry->device_service_id, mbim_uuid_from_service (MBIM_SERVICE_USSD), sizeof (MbimUuid)); + entry->cids_count = G_N_ELEMENTS (notify_cids); + entry->cids = g_memdup (notify_cids, sizeof (guint32) * entry->cids_count); + out[i++] = entry; + } + + /* Phonebook service */ + { + static const guint32 notify_cids[] = { + MBIM_CID_PHONEBOOK_CONFIGURATION, + }; + + entry = g_new (MbimEventEntry, 1); + memcpy (&entry->device_service_id, mbim_uuid_from_service (MBIM_SERVICE_PHONEBOOK), sizeof (MbimUuid)); + entry->cids_count = G_N_ELEMENTS (notify_cids); + entry->cids = g_memdup (notify_cids, sizeof (guint32) * entry->cids_count); + out[i++] = entry; + } + + /* STK service */ + { + static const guint32 notify_cids[] = { + MBIM_CID_STK_PAC, + }; + + entry = g_new (MbimEventEntry, 1); + memcpy (&entry->device_service_id, mbim_uuid_from_service (MBIM_SERVICE_STK), sizeof (MbimUuid)); + entry->cids_count = G_N_ELEMENTS (notify_cids); + entry->cids = g_memdup (notify_cids, sizeof (guint32) * entry->cids_count); + out[i++] = entry; + } + + g_assert_cmpuint (i, ==, STANDARD_SERVICES_LIST_SIZE); + *out_size = i; + return out; +} diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-proxy-helpers.h libmbim-1.18.0/src/libmbim-glib/mbim-proxy-helpers.h --- libmbim-1.14.2/src/libmbim-glib/mbim-proxy-helpers.h 2015-01-21 00:25:49.000000000 +0100 +++ libmbim-1.18.0/src/libmbim-glib/mbim-proxy-helpers.h 2019-01-08 13:16:16.000000000 +0100 @@ -43,7 +43,6 @@ gsize b_size); void _mbim_proxy_helper_service_subscribe_list_debug (const MbimEventEntry * const *list, gsize list_size); -MbimEventEntry **_mbim_proxy_helper_service_subscribe_standard_list_new (gsize *out_size); MbimEventEntry **_mbim_proxy_helper_service_subscribe_request_parse (MbimMessage *message, gsize *out_size); MbimEventEntry **_mbim_proxy_helper_service_subscribe_list_merge (MbimEventEntry **original, @@ -51,6 +50,10 @@ MbimEventEntry **merge, gsize merge_size, gsize *out_size); +MbimEventEntry **_mbim_proxy_helper_service_subscribe_list_dup (MbimEventEntry **original, + gsize original_size, + gsize *out_size); +MbimEventEntry **_mbim_proxy_helper_service_subscribe_list_new_standard (gsize *out_size); G_END_DECLS diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-utils.c libmbim-1.18.0/src/libmbim-glib/mbim-utils.c --- libmbim-1.14.2/src/libmbim-glib/mbim-utils.c 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-utils.c 2018-03-20 21:33:15.000000000 +0100 @@ -39,42 +39,6 @@ **/ /*****************************************************************************/ - -gchar * -__mbim_utils_str_hex (gconstpointer mem, - gsize size, - gchar delimiter) -{ - const guint8 *data = mem; - gsize i; - gsize j; - gsize new_str_length; - gchar *new_str; - - /* Get new string length. If input string has N bytes, we need: - * - 1 byte for last NUL char - * - 2N bytes for hexadecimal char representation of each byte... - * - N-1 bytes for the separator ':' - * So... a total of (1+2N+N-1) = 3N bytes are needed... */ - new_str_length = 3 * size; - - /* Allocate memory for new array and initialize contents to NUL */ - new_str = g_malloc0 (new_str_length); - - /* Print hexadecimal representation of each byte... */ - for (i = 0, j = 0; i < size; i++, j += 3) { - /* Print character in output string... */ - snprintf (&new_str[j], 3, "%02X", data[i]); - /* And if needed, add separator */ - if (i != (size - 1) ) - new_str[j + 2] = delimiter; - } - - /* Set output string */ - return new_str; -} - -/*****************************************************************************/ gboolean __mbim_user_allowed (uid_t uid, GError **error) diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-utils.h libmbim-1.18.0/src/libmbim-glib/mbim-utils.h --- libmbim-1.14.2/src/libmbim-glib/mbim-utils.h 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-utils.h 2018-03-20 21:33:15.000000000 +0100 @@ -39,9 +39,6 @@ /* Other private methods */ #if defined (LIBMBIM_GLIB_COMPILATION) -gchar *__mbim_utils_str_hex (gconstpointer mem, - gsize size, - gchar delimiter); gboolean __mbim_user_allowed (uid_t uid, GError **error); #endif diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-uuid.c libmbim-1.18.0/src/libmbim-glib/mbim-uuid.c --- libmbim-1.14.2/src/libmbim-glib/mbim-uuid.c 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-uuid.c 2019-01-08 13:16:16.000000000 +0100 @@ -236,6 +236,30 @@ .e = { 0xc7, 0xe2 , 0x4f, 0xb0, 0xf0, 0xd3 } }; +static const MbimUuid uuid_atds = { + .a = { 0x59, 0x67, 0xbd, 0xcc }, + .b = { 0x7f, 0xd2 }, + .c = { 0x49, 0xa2 }, + .d = { 0x9f, 0x5c }, + .e = { 0xb2, 0xe7, 0x0e, 0x52, 0x7d, 0xb3 } +}; + +static const MbimUuid uuid_intel_firmware_update = { + .a = { 0x0e, 0xd3, 0x74, 0xcb }, + .b = { 0xf8, 0x35 }, + .c = { 0x44, 0x74 }, + .d = { 0xbc, 0x11 }, + .e = { 0x3b, 0x3f, 0xd7, 0x6f, 0x56, 0x41 } +}; + +static const MbimUuid uuid_ms_basic_connect_extensions = { + .a = { 0x3d, 0x01, 0xdc, 0xc5 }, + .b = { 0xfe, 0xf5 }, + .c = { 0x4d, 0x05 }, + .d = { 0x0d, 0x3a }, + .e = { 0xbe, 0xf7, 0x05, 0x8e, 0x9a, 0xaf } +}; + static GList *mbim_custom_service_list = NULL; typedef struct { @@ -403,6 +427,12 @@ return &uuid_proxy_control; case MBIM_SERVICE_QMI: return &uuid_qmi; + case MBIM_SERVICE_ATDS: + return &uuid_atds; + case MBIM_SERVICE_INTEL_FIRMWARE_UPDATE: + return &uuid_intel_firmware_update; + case MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS: + return &uuid_ms_basic_connect_extensions; default: for (l = mbim_custom_service_list; l != NULL; l = l->next) { if (service == ((MbimCustomService *)l->data)->service_id) @@ -458,6 +488,15 @@ if (mbim_uuid_cmp (uuid, &uuid_qmi)) return MBIM_SERVICE_QMI; + if (mbim_uuid_cmp (uuid, &uuid_atds)) + return MBIM_SERVICE_ATDS; + + if (mbim_uuid_cmp (uuid, &uuid_intel_firmware_update)) + return MBIM_SERVICE_INTEL_FIRMWARE_UPDATE; + + if (mbim_uuid_cmp (uuid, &uuid_ms_basic_connect_extensions)) + return MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS; + for (l = mbim_custom_service_list; l != NULL; l = l->next) { if (mbim_uuid_cmp (&((MbimCustomService *)l->data)->uuid, uuid)) return ((MbimCustomService *)l->data)->service_id; diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-uuid.h libmbim-1.18.0/src/libmbim-glib/mbim-uuid.h --- libmbim-1.14.2/src/libmbim-glib/mbim-uuid.h 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-uuid.h 2019-01-08 13:16:16.000000000 +0100 @@ -72,22 +72,29 @@ * @MBIM_SERVICE_MS_HOST_SHUTDOWN: Microsoft Host Shutdown service. * @MBIM_SERVICE_PROXY_CONTROL: Proxy Control service. * @MBIM_SERVICE_QMI: QMI-over-MBIM service. + * @MBIM_SERVICE_ATDS: ATT Device service. + * @MBIM_SERVICE_INTEL_FIRMWARE_UPDATE: Intel firmware update service. + * @MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS: Microsoft basic connectivity extensions service. + * @MBIM_SERVICE_LAST: Internal value. * * Enumeration of the generic MBIM services. */ typedef enum { - MBIM_SERVICE_INVALID = 0, - MBIM_SERVICE_BASIC_CONNECT = 1, - MBIM_SERVICE_SMS = 2, - MBIM_SERVICE_USSD = 3, - MBIM_SERVICE_PHONEBOOK = 4, - MBIM_SERVICE_STK = 5, - MBIM_SERVICE_AUTH = 6, - MBIM_SERVICE_DSS = 7, - MBIM_SERVICE_MS_FIRMWARE_ID = 8, - MBIM_SERVICE_MS_HOST_SHUTDOWN = 9, - MBIM_SERVICE_PROXY_CONTROL = 10, - MBIM_SERVICE_QMI = 11, + MBIM_SERVICE_INVALID = 0, + MBIM_SERVICE_BASIC_CONNECT = 1, + MBIM_SERVICE_SMS = 2, + MBIM_SERVICE_USSD = 3, + MBIM_SERVICE_PHONEBOOK = 4, + MBIM_SERVICE_STK = 5, + MBIM_SERVICE_AUTH = 6, + MBIM_SERVICE_DSS = 7, + MBIM_SERVICE_MS_FIRMWARE_ID = 8, + MBIM_SERVICE_MS_HOST_SHUTDOWN = 9, + MBIM_SERVICE_PROXY_CONTROL = 10, + MBIM_SERVICE_QMI = 11, + MBIM_SERVICE_ATDS = 12, + MBIM_SERVICE_INTEL_FIRMWARE_UPDATE = 13, + MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS = 14, #if defined LIBMBIM_GLIB_COMPILATION MBIM_SERVICE_LAST /*< skip >*/ #endif @@ -201,6 +208,33 @@ */ #define MBIM_UUID_QMI mbim_uuid_from_service (MBIM_SERVICE_QMI) +/** + * MBIM_UUID_ATDS: + * + * Get the UUID of the %MBIM_SERVICE_ATDS service. + * + * Returns: (transfer none): a #MbimUuid. + */ +#define MBIM_UUID_ATDS mbim_uuid_from_service (MBIM_SERVICE_ATDS) + +/** + * MBIM_UUID_INTEL_FIRMWARE_UPDATE: + * + * Get the UUID of the %MBIM_SERVICE_INTEL_FIRMWARE_UPDATE service. + * + * Returns: (transfer none): a #MbimUuid. + */ +#define MBIM_UUID_INTEL_FIRMWARE_UPDATE mbim_uuid_from_service (MBIM_SERVICE_INTEL_FIRMWARE_UPDATE) + +/** + * MBIM_UUID_MS_BASIC_CONNECT_EXTENSIONS: + * + * Get the UUID of the %MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS service. + * + * Returns: (transfer none): a #MbimUuid. + */ +#define MBIM_UUID_MS_BASIC_CONNECT_EXTENSIONS mbim_uuid_from_service (MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS) + const gchar *mbim_service_lookup_name (guint service); guint mbim_register_custom_service (const MbimUuid *uuid, diff -Nru libmbim-1.14.2/src/libmbim-glib/mbim-version.h libmbim-1.18.0/src/libmbim-glib/mbim-version.h --- libmbim-1.14.2/src/libmbim-glib/mbim-version.h 2017-08-08 13:43:31.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/mbim-version.h 2019-01-08 13:52:24.000000000 +0100 @@ -43,7 +43,7 @@ * Evaluates to the minor version number of libmbim-glib which this source * is compiled against. */ -#define MBIM_MINOR_VERSION (14) +#define MBIM_MINOR_VERSION (18) /** * MBIM_MICRO_VERSION: @@ -51,7 +51,7 @@ * Evaluates to the micro version number of libmbim-glib which this source * compiled against. */ -#define MBIM_MICRO_VERSION (2) +#define MBIM_MICRO_VERSION (0) /** * MBIM_CHECK_VERSION: diff -Nru libmbim-1.14.2/src/libmbim-glib/test/Makefile.am libmbim-1.18.0/src/libmbim-glib/test/Makefile.am --- libmbim-1.14.2/src/libmbim-glib/test/Makefile.am 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/test/Makefile.am 2018-03-20 21:33:15.000000000 +0100 @@ -69,11 +69,13 @@ test_message_parser_CPPFLAGS = \ $(LIBMBIM_GLIB_CFLAGS) \ -I$(top_srcdir) \ + -I$(top_srcdir)/src/common \ -I$(top_srcdir)/src/libmbim-glib \ -I$(top_builddir)/src/libmbim-glib \ -I$(top_builddir)/src/libmbim-glib/generated \ -DLIBMBIM_GLIB_COMPILATION test_message_parser_LDADD = \ + $(top_builddir)/src/common/libmbim-common.la \ $(top_builddir)/src/libmbim-glib/libmbim-glib-core.la \ $(top_builddir)/src/libmbim-glib/generated/libmbim-glib-generated.la \ $(LIBMBIM_GLIB_LIBS) @@ -83,19 +85,19 @@ test_message_builder_CPPFLAGS = \ $(LIBMBIM_GLIB_CFLAGS) \ -I$(top_srcdir) \ + -I$(top_srcdir)/src/common \ -I$(top_srcdir)/src/libmbim-glib \ -I$(top_builddir)/src/libmbim-glib \ -I$(top_builddir)/src/libmbim-glib/generated \ -DLIBMBIM_GLIB_COMPILATION test_message_builder_LDADD = \ + $(top_builddir)/src/common/libmbim-common.la \ $(top_builddir)/src/libmbim-glib/libmbim-glib-core.la \ $(top_builddir)/src/libmbim-glib/generated/libmbim-glib-generated.la \ $(LIBMBIM_GLIB_LIBS) test_proxy_helpers_SOURCES = \ - test-proxy-helpers.c \ - $(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.h \ - $(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c + test-proxy-helpers.c test_proxy_helpers_CPPFLAGS = \ $(LIBMBIM_GLIB_CFLAGS) \ -I$(top_srcdir) \ diff -Nru libmbim-1.14.2/src/libmbim-glib/test/Makefile.in libmbim-1.18.0/src/libmbim-glib/test/Makefile.in --- libmbim-1.14.2/src/libmbim-glib/test/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/test/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -134,6 +134,7 @@ test_message_builder-test-message-builder.$(OBJEXT) test_message_builder_OBJECTS = $(am_test_message_builder_OBJECTS) test_message_builder_DEPENDENCIES = \ + $(top_builddir)/src/common/libmbim-common.la \ $(top_builddir)/src/libmbim-glib/libmbim-glib-core.la \ $(top_builddir)/src/libmbim-glib/generated/libmbim-glib-generated.la \ $(am__DEPENDENCIES_1) @@ -141,12 +142,12 @@ test_message_parser-test-message-parser.$(OBJEXT) test_message_parser_OBJECTS = $(am_test_message_parser_OBJECTS) test_message_parser_DEPENDENCIES = \ + $(top_builddir)/src/common/libmbim-common.la \ $(top_builddir)/src/libmbim-glib/libmbim-glib-core.la \ $(top_builddir)/src/libmbim-glib/generated/libmbim-glib-generated.la \ $(am__DEPENDENCIES_1) am_test_proxy_helpers_OBJECTS = \ - test_proxy_helpers-test-proxy-helpers.$(OBJEXT) \ - test_proxy_helpers-mbim-proxy-helpers.$(OBJEXT) + test_proxy_helpers-test-proxy-helpers.$(OBJEXT) test_proxy_helpers_OBJECTS = $(am_test_proxy_helpers_OBJECTS) test_proxy_helpers_DEPENDENCIES = \ $(top_builddir)/src/libmbim-glib/libmbim-glib-core.la \ @@ -172,7 +173,14 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/test_cid-test-cid.Po \ + ./$(DEPDIR)/test_fragment-test-fragment.Po \ + ./$(DEPDIR)/test_message-test-message.Po \ + ./$(DEPDIR)/test_message_builder-test-message-builder.Po \ + ./$(DEPDIR)/test_message_parser-test-message-parser.Po \ + ./$(DEPDIR)/test_proxy_helpers-test-proxy-helpers.Po \ + ./$(DEPDIR)/test_uuid-test-uuid.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -287,6 +295,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -313,6 +323,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -361,9 +376,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -444,12 +463,14 @@ test_message_parser_CPPFLAGS = \ $(LIBMBIM_GLIB_CFLAGS) \ -I$(top_srcdir) \ + -I$(top_srcdir)/src/common \ -I$(top_srcdir)/src/libmbim-glib \ -I$(top_builddir)/src/libmbim-glib \ -I$(top_builddir)/src/libmbim-glib/generated \ -DLIBMBIM_GLIB_COMPILATION test_message_parser_LDADD = \ + $(top_builddir)/src/common/libmbim-common.la \ $(top_builddir)/src/libmbim-glib/libmbim-glib-core.la \ $(top_builddir)/src/libmbim-glib/generated/libmbim-glib-generated.la \ $(LIBMBIM_GLIB_LIBS) @@ -460,20 +481,20 @@ test_message_builder_CPPFLAGS = \ $(LIBMBIM_GLIB_CFLAGS) \ -I$(top_srcdir) \ + -I$(top_srcdir)/src/common \ -I$(top_srcdir)/src/libmbim-glib \ -I$(top_builddir)/src/libmbim-glib \ -I$(top_builddir)/src/libmbim-glib/generated \ -DLIBMBIM_GLIB_COMPILATION test_message_builder_LDADD = \ + $(top_builddir)/src/common/libmbim-common.la \ $(top_builddir)/src/libmbim-glib/libmbim-glib-core.la \ $(top_builddir)/src/libmbim-glib/generated/libmbim-glib-generated.la \ $(LIBMBIM_GLIB_LIBS) test_proxy_helpers_SOURCES = \ - test-proxy-helpers.c \ - $(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.h \ - $(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c + test-proxy-helpers.c test_proxy_helpers_CPPFLAGS = \ $(LIBMBIM_GLIB_CFLAGS) \ @@ -509,8 +530,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_srcdir)/gtester.make $(am__empty): @@ -566,14 +587,19 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cid-test-cid.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_fragment-test-fragment.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_message-test-message.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_message_builder-test-message-builder.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_message_parser-test-message-parser.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_proxy_helpers-mbim-proxy-helpers.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_proxy_helpers-test-proxy-helpers.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_uuid-test-uuid.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cid-test-cid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_fragment-test-fragment.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_message-test-message.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_message_builder-test-message-builder.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_message_parser-test-message-parser.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_proxy_helpers-test-proxy-helpers.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_uuid-test-uuid.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -680,20 +706,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_proxy_helpers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_proxy_helpers-test-proxy-helpers.obj `if test -f 'test-proxy-helpers.c'; then $(CYGPATH_W) 'test-proxy-helpers.c'; else $(CYGPATH_W) '$(srcdir)/test-proxy-helpers.c'; fi` -test_proxy_helpers-mbim-proxy-helpers.o: $(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_proxy_helpers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_proxy_helpers-mbim-proxy-helpers.o -MD -MP -MF $(DEPDIR)/test_proxy_helpers-mbim-proxy-helpers.Tpo -c -o test_proxy_helpers-mbim-proxy-helpers.o `test -f '$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c' || echo '$(srcdir)/'`$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_proxy_helpers-mbim-proxy-helpers.Tpo $(DEPDIR)/test_proxy_helpers-mbim-proxy-helpers.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c' object='test_proxy_helpers-mbim-proxy-helpers.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_proxy_helpers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_proxy_helpers-mbim-proxy-helpers.o `test -f '$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c' || echo '$(srcdir)/'`$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c - -test_proxy_helpers-mbim-proxy-helpers.obj: $(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_proxy_helpers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_proxy_helpers-mbim-proxy-helpers.obj -MD -MP -MF $(DEPDIR)/test_proxy_helpers-mbim-proxy-helpers.Tpo -c -o test_proxy_helpers-mbim-proxy-helpers.obj `if test -f '$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c'; then $(CYGPATH_W) '$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_proxy_helpers-mbim-proxy-helpers.Tpo $(DEPDIR)/test_proxy_helpers-mbim-proxy-helpers.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c' object='test_proxy_helpers-mbim-proxy-helpers.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_proxy_helpers_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_proxy_helpers-mbim-proxy-helpers.obj `if test -f '$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c'; then $(CYGPATH_W) '$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/libmbim-glib/mbim-proxy-helpers.c'; fi` - test_uuid-test-uuid.o: test-uuid.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_uuid_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_uuid-test-uuid.o -MD -MP -MF $(DEPDIR)/test_uuid-test-uuid.Tpo -c -o test_uuid-test-uuid.o `test -f 'test-uuid.c' || echo '$(srcdir)/'`test-uuid.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_uuid-test-uuid.Tpo $(DEPDIR)/test_uuid-test-uuid.Po @@ -766,7 +778,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -837,7 +852,13 @@ mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/test_cid-test-cid.Po + -rm -f ./$(DEPDIR)/test_fragment-test-fragment.Po + -rm -f ./$(DEPDIR)/test_message-test-message.Po + -rm -f ./$(DEPDIR)/test_message_builder-test-message-builder.Po + -rm -f ./$(DEPDIR)/test_message_parser-test-message-parser.Po + -rm -f ./$(DEPDIR)/test_proxy_helpers-test-proxy-helpers.Po + -rm -f ./$(DEPDIR)/test_uuid-test-uuid.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -883,7 +904,13 @@ installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/test_cid-test-cid.Po + -rm -f ./$(DEPDIR)/test_fragment-test-fragment.Po + -rm -f ./$(DEPDIR)/test_message-test-message.Po + -rm -f ./$(DEPDIR)/test_message_builder-test-message-builder.Po + -rm -f ./$(DEPDIR)/test_message_parser-test-message-parser.Po + -rm -f ./$(DEPDIR)/test_proxy_helpers-test-proxy-helpers.Po + -rm -f ./$(DEPDIR)/test_uuid-test-uuid.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -904,19 +931,19 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \ - clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am \ + check-local clean clean-generic clean-libtool \ + clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile diff -Nru libmbim-1.14.2/src/libmbim-glib/test/test-message-builder.c libmbim-1.18.0/src/libmbim-glib/test/test-message-builder.c --- libmbim-1.14.2/src/libmbim-glib/test/test-message-builder.c 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/test/test-message-builder.c 2018-03-20 21:33:15.000000000 +0100 @@ -20,7 +20,7 @@ #include "mbim-message-private.h" #include "mbim-cid.h" #include "mbim-enums.h" -#include "mbim-utils.h" +#include "mbim-common.h" #include "mbim-basic-connect.h" #include "mbim-ussd.h" #include "mbim-auth.h" @@ -38,8 +38,8 @@ gchar *message_str; gchar *expected_str; - message_str = __mbim_utils_str_hex (computed, computed_size, ':'); - expected_str = __mbim_utils_str_hex (expected, expected_size, ':'); + message_str = mbim_common_str_hex (computed, computed_size, ':'); + expected_str = mbim_common_str_hex (expected, expected_size, ':'); /* Dump all message contents */ g_print ("\n" diff -Nru libmbim-1.14.2/src/libmbim-glib/test/test-message-parser.c libmbim-1.18.0/src/libmbim-glib/test/test-message-parser.c --- libmbim-1.14.2/src/libmbim-glib/test/test-message-parser.c 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/test/test-message-parser.c 2018-03-20 21:33:15.000000000 +0100 @@ -24,7 +24,7 @@ #include "mbim-ms-firmware-id.h" #include "mbim-message.h" #include "mbim-cid.h" -#include "mbim-utils.h" +#include "mbim-common.h" #if defined ENABLE_TEST_MESSAGE_TRACES static void @@ -36,8 +36,8 @@ gchar *message_str; gchar *expected_str; - message_str = __mbim_utils_str_hex (computed, computed_size, ':'); - expected_str = __mbim_utils_str_hex (expected, expected_size, ':'); + message_str = mbim_common_str_hex (computed, computed_size, ':'); + expected_str = mbim_common_str_hex (expected, expected_size, ':'); /* Dump all message contents */ g_print ("\n" diff -Nru libmbim-1.14.2/src/libmbim-glib/test/test-proxy-helpers.c libmbim-1.18.0/src/libmbim-glib/test/test-proxy-helpers.c --- libmbim-1.14.2/src/libmbim-glib/test/test-proxy-helpers.c 2017-08-08 12:17:09.000000000 +0200 +++ libmbim-1.18.0/src/libmbim-glib/test/test-proxy-helpers.c 2019-01-08 13:16:16.000000000 +0100 @@ -121,84 +121,29 @@ /*****************************************************************************/ -static MbimEventEntry * -find_service_in_list (MbimEventEntry **list, - gsize list_size, - MbimService service) -{ - gsize i; - - for (i = 0; i < list_size; i++) { - if (mbim_uuid_cmp (&(list[i]->device_service_id), mbim_uuid_from_service (service))) - return list[i]; - } - - return NULL; -} - -static void -check_standard_list (MbimEventEntry **list, - gsize list_size) -{ - MbimEventEntry *tmp; - MbimService s; - gsize i; - - for (i = 0; list[i]; i++); - g_assert_cmpuint (i, ==, list_size); - g_assert_cmpuint (i, ==, (MBIM_SERVICE_DSS - MBIM_SERVICE_BASIC_CONNECT + 1)); - - for (s = MBIM_SERVICE_BASIC_CONNECT; s <= MBIM_SERVICE_DSS; s++) { - tmp = find_service_in_list (list, list_size, s); - g_assert (tmp != NULL); - g_assert_cmpuint (tmp->cids_count, ==, 0); - g_assert (tmp->cids == NULL); - } -} - -static void -test_standard_list (void) -{ - MbimEventEntry **out; - gsize out_size = 0; - - out = _mbim_proxy_helper_service_subscribe_standard_list_new (&out_size); - check_standard_list (out, out_size); - mbim_event_entry_array_free (out); -} - -/*****************************************************************************/ - static void -test_merge_standard_list_full_none (void) +test_merge_none (void) { - MbimEventEntry **list; + MbimEventEntry **list = NULL; gsize list_size = 0; gsize out_size = 0; - /* list with all standard services */ - list = _mbim_proxy_helper_service_subscribe_standard_list_new (&list_size); - /* merge */ list = _mbim_proxy_helper_service_subscribe_list_merge (list, list_size, NULL, 0, &out_size); - check_standard_list (list, out_size); - - mbim_event_entry_array_free (list); + g_assert (list == NULL); + g_assert_cmpuint (out_size, ==, 0); } static void -test_merge_standard_list_full_subset (void) +test_merge_standard_services (void) { - MbimEventEntry **list; + MbimEventEntry **list = NULL; gsize list_size = 0; MbimEventEntry **addition; gsize addition_size; gsize out_size = 0; - /* list with all standard services */ - list = _mbim_proxy_helper_service_subscribe_standard_list_new (&list_size); - /* setup a new list with a subset of standard services */ addition_size = 2; addition = g_new0 (MbimEventEntry *, addition_size + 1); @@ -221,103 +166,52 @@ /* merge */ list = _mbim_proxy_helper_service_subscribe_list_merge (list, list_size, addition, addition_size, &out_size); - /* Now, as we added a subset of the elements of the standard list to the - * full standard list, we should still get as output the full standard list - */ - check_standard_list (list, out_size); + /* The new list should be empty, as standard services are ignored */ + g_assert (list == NULL); + g_assert_cmpuint (out_size, ==, 0); - mbim_event_entry_array_free (list); mbim_event_entry_array_free (addition); } static void -test_merge_standard_list_full_full (void) +test_merge_other_services (void) { - MbimEventEntry **list; + MbimEventEntry **list = NULL; gsize list_size = 0; MbimEventEntry **addition; - gsize addition_size = 0; - gsize out_size = 0; - - /* list with all standard services */ - list = _mbim_proxy_helper_service_subscribe_standard_list_new (&list_size); - /* again, list with all standard services */ - addition = _mbim_proxy_helper_service_subscribe_standard_list_new (&addition_size); - - /* merge */ - list = _mbim_proxy_helper_service_subscribe_list_merge (list, list_size, addition, addition_size, &out_size); - - /* Now, as we added a subset of the elements of the standard list to the - * full standard list, we should still get as output the full standard list - */ - check_standard_list (list, out_size); - - mbim_event_entry_array_free (list); - mbim_event_entry_array_free (addition); -} - -static void -test_merge_standard_list_subset_full (void) -{ - MbimEventEntry **list; - gsize list_size; - MbimEventEntry **addition; - gsize addition_size = 0; + gsize addition_size; gsize out_size = 0; - /* setup a new list with a subset of standard services */ - list_size = 2; - list = g_new0 (MbimEventEntry *, list_size + 1); - list[0] = g_new0 (MbimEventEntry, 1); - memcpy (&list[0]->device_service_id, MBIM_UUID_BASIC_CONNECT, sizeof (MbimUuid)); - list[0]->cids_count = 5; - list[0]->cids = g_new0 (guint32, list[0]->cids_count); - list[0]->cids[0] = MBIM_CID_BASIC_CONNECT_SUBSCRIBER_READY_STATUS; - list[0]->cids[1] = MBIM_CID_BASIC_CONNECT_RADIO_STATE; - list[0]->cids[2] = MBIM_CID_BASIC_CONNECT_SIGNAL_STATE; - list[0]->cids[3] = MBIM_CID_BASIC_CONNECT_IP_CONFIGURATION; - list[0]->cids[4] = MBIM_CID_BASIC_CONNECT_NETWORK_IDLE_HINT; - list[1] = g_new0 (MbimEventEntry, 1); - memcpy (&list[1]->device_service_id, MBIM_UUID_SMS, sizeof (MbimUuid)); - list[1]->cids_count = 2; - list[1]->cids = g_new0 (guint32, list[1]->cids_count); - list[1]->cids[0] = MBIM_CID_SMS_READ; - list[1]->cids[1] = MBIM_CID_SMS_SEND; - - /* list with all standard services */ - addition = _mbim_proxy_helper_service_subscribe_standard_list_new (&addition_size); + /* setup a new list with a subset of other services */ + addition_size = 2; + addition = g_new0 (MbimEventEntry *, addition_size + 1); + addition[0] = g_new0 (MbimEventEntry, 1); + memcpy (&addition[0]->device_service_id, MBIM_UUID_ATDS, sizeof (MbimUuid)); + addition[0]->cids_count = 5; + addition[0]->cids = g_new0 (guint32, addition[0]->cids_count); + addition[0]->cids[0] = MBIM_CID_ATDS_SIGNAL; + addition[0]->cids[1] = MBIM_CID_ATDS_LOCATION; + addition[0]->cids[2] = MBIM_CID_ATDS_OPERATORS; + addition[0]->cids[3] = MBIM_CID_ATDS_RAT; + addition[0]->cids[4] = MBIM_CID_ATDS_REGISTER_STATE; + addition[1] = g_new0 (MbimEventEntry, 1); + memcpy (&addition[1]->device_service_id, MBIM_UUID_QMI, sizeof (MbimUuid)); + addition[1]->cids_count = 1; + addition[1]->cids = g_new0 (guint32, addition[1]->cids_count); + addition[1]->cids[0] = MBIM_CID_QMI_MSG; /* merge */ list = _mbim_proxy_helper_service_subscribe_list_merge (list, list_size, addition, addition_size, &out_size); - /* Now, as we added the full standard list to a subset, we should still get - * as output the full standard list */ - check_standard_list (list, out_size); + /* The new list should be totally equal to the addition, as the original list was empty. */ + g_assert (_mbim_proxy_helper_service_subscribe_list_cmp ((const MbimEventEntry * const *)list, out_size, + (const MbimEventEntry * const *)addition, addition_size)); mbim_event_entry_array_free (list); mbim_event_entry_array_free (addition); } static void -test_merge_standard_list_none_full (void) -{ - MbimEventEntry **list, **merged_list; - gsize addition_size = 0; - gsize out_size = 0; - - /* list with all standard services */ - list = _mbim_proxy_helper_service_subscribe_standard_list_new (&addition_size); - - /* merge */ - merged_list = _mbim_proxy_helper_service_subscribe_list_merge (NULL, 0, list, addition_size, &out_size); - - check_standard_list (merged_list, out_size); - - mbim_event_entry_array_free (list); - mbim_event_entry_array_free (merged_list); -} - -static void test_merge_list_same_service (void) { MbimEventEntry **list; @@ -328,26 +222,26 @@ gsize expected_size; gsize out_size = 0; - /* setup a new list with a subset of standard services */ + /* setup a new list with a subset of non-standard services */ list_size = 1; list = g_new0 (MbimEventEntry *, list_size + 1); list[0] = g_new0 (MbimEventEntry, 1); - memcpy (&list[0]->device_service_id, MBIM_UUID_BASIC_CONNECT, sizeof (MbimUuid)); + memcpy (&list[0]->device_service_id, MBIM_UUID_ATDS, sizeof (MbimUuid)); list[0]->cids_count = 2; list[0]->cids = g_new0 (guint32, list[0]->cids_count); - list[0]->cids[0] = MBIM_CID_BASIC_CONNECT_IP_CONFIGURATION; - list[0]->cids[1] = MBIM_CID_BASIC_CONNECT_NETWORK_IDLE_HINT; + list[0]->cids[0] = MBIM_CID_ATDS_SIGNAL; + list[0]->cids[1] = MBIM_CID_ATDS_LOCATION; - /* setup a new list with a subset of standard services */ + /* setup a new list with a subset of non-standard services */ addition_size = 1; addition = g_new0 (MbimEventEntry *, addition_size + 1); addition[0] = g_new0 (MbimEventEntry, 1); - memcpy (&addition[0]->device_service_id, MBIM_UUID_BASIC_CONNECT, sizeof (MbimUuid)); + memcpy (&addition[0]->device_service_id, MBIM_UUID_ATDS, sizeof (MbimUuid)); addition[0]->cids_count = 3; addition[0]->cids = g_new0 (guint32, addition[0]->cids_count); - addition[0]->cids[0] = MBIM_CID_BASIC_CONNECT_SUBSCRIBER_READY_STATUS; - addition[0]->cids[1] = MBIM_CID_BASIC_CONNECT_RADIO_STATE; - addition[0]->cids[2] = MBIM_CID_BASIC_CONNECT_SIGNAL_STATE; + addition[0]->cids[0] = MBIM_CID_ATDS_OPERATORS; + addition[0]->cids[1] = MBIM_CID_ATDS_RAT; + addition[0]->cids[2] = MBIM_CID_ATDS_REGISTER_STATE; /* merge */ list = _mbim_proxy_helper_service_subscribe_list_merge (list, list_size, addition, addition_size, &out_size); @@ -356,14 +250,14 @@ expected_size = 1; expected = g_new0 (MbimEventEntry *, expected_size + 1); expected[0] = g_new0 (MbimEventEntry, 1); - memcpy (&expected[0]->device_service_id, MBIM_UUID_BASIC_CONNECT, sizeof (MbimUuid)); + memcpy (&expected[0]->device_service_id, MBIM_UUID_ATDS, sizeof (MbimUuid)); expected[0]->cids_count = 5; expected[0]->cids = g_new0 (guint32, expected[0]->cids_count); - expected[0]->cids[0] = MBIM_CID_BASIC_CONNECT_SUBSCRIBER_READY_STATUS; - expected[0]->cids[1] = MBIM_CID_BASIC_CONNECT_RADIO_STATE; - expected[0]->cids[2] = MBIM_CID_BASIC_CONNECT_SIGNAL_STATE; - expected[0]->cids[3] = MBIM_CID_BASIC_CONNECT_IP_CONFIGURATION; - expected[0]->cids[4] = MBIM_CID_BASIC_CONNECT_NETWORK_IDLE_HINT; + expected[0]->cids[0] = MBIM_CID_ATDS_SIGNAL; + expected[0]->cids[1] = MBIM_CID_ATDS_LOCATION; + expected[0]->cids[2] = MBIM_CID_ATDS_OPERATORS; + expected[0]->cids[3] = MBIM_CID_ATDS_RAT; + expected[0]->cids[4] = MBIM_CID_ATDS_REGISTER_STATE; /* Compare */ g_assert (_mbim_proxy_helper_service_subscribe_list_cmp ((const MbimEventEntry * const *)list, out_size, @@ -385,28 +279,24 @@ gsize expected_size; gsize out_size = 0; - /* setup a new list with a subset of standard services */ + /* setup a new list with a subset of non-standard services */ list_size = 1; list = g_new0 (MbimEventEntry *, list_size + 1); list[0] = g_new0 (MbimEventEntry, 1); - memcpy (&list[0]->device_service_id, MBIM_UUID_BASIC_CONNECT, sizeof (MbimUuid)); - list[0]->cids_count = 5; + memcpy (&list[0]->device_service_id, MBIM_UUID_ATDS, sizeof (MbimUuid)); + list[0]->cids_count = 2; list[0]->cids = g_new0 (guint32, list[0]->cids_count); - list[0]->cids[0] = MBIM_CID_BASIC_CONNECT_IP_CONFIGURATION; - list[0]->cids[1] = MBIM_CID_BASIC_CONNECT_NETWORK_IDLE_HINT; - list[0]->cids[2] = MBIM_CID_BASIC_CONNECT_SUBSCRIBER_READY_STATUS; - list[0]->cids[3] = MBIM_CID_BASIC_CONNECT_RADIO_STATE; - list[0]->cids[4] = MBIM_CID_BASIC_CONNECT_SIGNAL_STATE; + list[0]->cids[0] = MBIM_CID_ATDS_SIGNAL; + list[0]->cids[1] = MBIM_CID_ATDS_LOCATION; - /* setup a new list with a subset of standard services */ + /* setup a new list with a subset of non-standard services */ addition_size = 1; addition = g_new0 (MbimEventEntry *, addition_size + 1); addition[0] = g_new0 (MbimEventEntry, 1); - memcpy (&addition[0]->device_service_id, MBIM_UUID_SMS, sizeof (MbimUuid)); - addition[0]->cids_count = 2; + memcpy (&addition[0]->device_service_id, MBIM_UUID_QMI, sizeof (MbimUuid)); + addition[0]->cids_count = 1; addition[0]->cids = g_new0 (guint32, addition[0]->cids_count); - addition[0]->cids[0] = MBIM_CID_SMS_READ; - addition[0]->cids[1] = MBIM_CID_SMS_SEND; + addition[0]->cids[0] = MBIM_CID_QMI_MSG; /* merge */ list = _mbim_proxy_helper_service_subscribe_list_merge (list, list_size, addition, addition_size, &out_size); @@ -415,20 +305,16 @@ expected_size = 2; expected = g_new0 (MbimEventEntry *, expected_size + 1); expected[0] = g_new0 (MbimEventEntry, 1); - memcpy (&expected[0]->device_service_id, MBIM_UUID_BASIC_CONNECT, sizeof (MbimUuid)); - expected[0]->cids_count = 5; + memcpy (&expected[0]->device_service_id, MBIM_UUID_ATDS, sizeof (MbimUuid)); + expected[0]->cids_count = 2; expected[0]->cids = g_new0 (guint32, expected[0]->cids_count); - expected[0]->cids[0] = MBIM_CID_BASIC_CONNECT_SUBSCRIBER_READY_STATUS; - expected[0]->cids[1] = MBIM_CID_BASIC_CONNECT_RADIO_STATE; - expected[0]->cids[2] = MBIM_CID_BASIC_CONNECT_SIGNAL_STATE; - expected[0]->cids[3] = MBIM_CID_BASIC_CONNECT_IP_CONFIGURATION; - expected[0]->cids[4] = MBIM_CID_BASIC_CONNECT_NETWORK_IDLE_HINT; + expected[0]->cids[0] = MBIM_CID_ATDS_SIGNAL; + expected[0]->cids[1] = MBIM_CID_ATDS_LOCATION; expected[1] = g_new0 (MbimEventEntry, 1); - memcpy (&expected[1]->device_service_id, MBIM_UUID_SMS, sizeof (MbimUuid)); - expected[1]->cids_count = 2; + memcpy (&expected[1]->device_service_id, MBIM_UUID_QMI, sizeof (MbimUuid)); + expected[1]->cids_count = 1; expected[1]->cids = g_new0 (guint32, expected[1]->cids_count); - expected[1]->cids[0] = MBIM_CID_SMS_READ; - expected[1]->cids[1] = MBIM_CID_SMS_SEND; + expected[1]->cids[0] = MBIM_CID_QMI_MSG; /* Compare */ g_assert (_mbim_proxy_helper_service_subscribe_list_cmp ((const MbimEventEntry * const *)list, out_size, @@ -450,58 +336,60 @@ gsize expected_size; gsize out_size = 0; - /* setup a new list with a subset of standard services */ + /* setup a new list with a subset of non-standard services */ list_size = 2; list = g_new0 (MbimEventEntry *, list_size + 1); list[0] = g_new0 (MbimEventEntry, 1); - memcpy (&list[0]->device_service_id, MBIM_UUID_BASIC_CONNECT, sizeof (MbimUuid)); + memcpy (&list[0]->device_service_id, MBIM_UUID_ATDS, sizeof (MbimUuid)); list[0]->cids_count = 3; list[0]->cids = g_new0 (guint32, list[0]->cids_count); - list[0]->cids[0] = MBIM_CID_BASIC_CONNECT_SUBSCRIBER_READY_STATUS; - list[0]->cids[1] = MBIM_CID_BASIC_CONNECT_RADIO_STATE; - list[0]->cids[2] = MBIM_CID_BASIC_CONNECT_SIGNAL_STATE; + list[0]->cids[0] = MBIM_CID_ATDS_SIGNAL; + list[0]->cids[1] = MBIM_CID_ATDS_LOCATION; + list[0]->cids[2] = MBIM_CID_ATDS_OPERATORS; list[1] = g_new0 (MbimEventEntry, 1); - memcpy (&list[1]->device_service_id, MBIM_UUID_SMS, sizeof (MbimUuid)); + memcpy (&list[1]->device_service_id, MBIM_UUID_QMI, sizeof (MbimUuid)); list[1]->cids_count = 1; list[1]->cids = g_new0 (guint32, list[1]->cids_count); - list[1]->cids[0] = MBIM_CID_SMS_READ; + list[1]->cids[0] = MBIM_CID_QMI_MSG; - /* setup a new list with a subset of standard services */ + /* setup a new list with a subset of standard and non-standard services */ addition_size = 2; addition = g_new0 (MbimEventEntry *, addition_size + 1); addition[0] = g_new0 (MbimEventEntry, 1); - memcpy (&addition[0]->device_service_id, MBIM_UUID_BASIC_CONNECT, sizeof (MbimUuid)); - addition[0]->cids_count = 2; + memcpy (&addition[0]->device_service_id, MBIM_UUID_ATDS, sizeof (MbimUuid)); + addition[0]->cids_count = 1; addition[0]->cids = g_new0 (guint32, addition[0]->cids_count); - addition[0]->cids[0] = MBIM_CID_BASIC_CONNECT_IP_CONFIGURATION; - addition[0]->cids[1] = MBIM_CID_BASIC_CONNECT_NETWORK_IDLE_HINT; + addition[0]->cids[0] = MBIM_CID_ATDS_RAT; addition[1] = g_new0 (MbimEventEntry, 1); - memcpy (&addition[1]->device_service_id, MBIM_UUID_SMS, sizeof (MbimUuid)); + memcpy (&addition[1]->device_service_id, MBIM_UUID_MS_HOST_SHUTDOWN, sizeof (MbimUuid)); addition[1]->cids_count = 1; addition[1]->cids = g_new0 (guint32, addition[1]->cids_count); - addition[1]->cids[0] = MBIM_CID_SMS_SEND; + addition[1]->cids[0] = MBIM_CID_MS_HOST_SHUTDOWN_NOTIFY; /* merge */ list = _mbim_proxy_helper_service_subscribe_list_merge (list, list_size, addition, addition_size, &out_size); /* setup the expected list */ - expected_size = 2; + expected_size = 3; expected = g_new0 (MbimEventEntry *, expected_size + 1); expected[0] = g_new0 (MbimEventEntry, 1); - memcpy (&expected[0]->device_service_id, MBIM_UUID_BASIC_CONNECT, sizeof (MbimUuid)); - expected[0]->cids_count = 5; + memcpy (&expected[0]->device_service_id, MBIM_UUID_ATDS, sizeof (MbimUuid)); + expected[0]->cids_count = 4; expected[0]->cids = g_new0 (guint32, expected[0]->cids_count); - expected[0]->cids[0] = MBIM_CID_BASIC_CONNECT_SUBSCRIBER_READY_STATUS; - expected[0]->cids[1] = MBIM_CID_BASIC_CONNECT_RADIO_STATE; - expected[0]->cids[2] = MBIM_CID_BASIC_CONNECT_SIGNAL_STATE; - expected[0]->cids[3] = MBIM_CID_BASIC_CONNECT_IP_CONFIGURATION; - expected[0]->cids[4] = MBIM_CID_BASIC_CONNECT_NETWORK_IDLE_HINT; + expected[0]->cids[0] = MBIM_CID_ATDS_SIGNAL; + expected[0]->cids[1] = MBIM_CID_ATDS_LOCATION; + expected[0]->cids[2] = MBIM_CID_ATDS_OPERATORS; + expected[0]->cids[3] = MBIM_CID_ATDS_RAT; expected[1] = g_new0 (MbimEventEntry, 1); - memcpy (&expected[1]->device_service_id, MBIM_UUID_SMS, sizeof (MbimUuid)); - expected[1]->cids_count = 2; + memcpy (&expected[1]->device_service_id, MBIM_UUID_QMI, sizeof (MbimUuid)); + expected[1]->cids_count = 1; expected[1]->cids = g_new0 (guint32, expected[1]->cids_count); - expected[1]->cids[0] = MBIM_CID_SMS_READ; - expected[1]->cids[1] = MBIM_CID_SMS_SEND; + expected[1]->cids[0] = MBIM_CID_QMI_MSG; + expected[2] = g_new0 (MbimEventEntry, 1); + memcpy (&expected[2]->device_service_id, MBIM_UUID_MS_HOST_SHUTDOWN, sizeof (MbimUuid)); + expected[2]->cids_count = 1; + expected[2]->cids = g_new0 (guint32, expected[2]->cids_count); + expected[2]->cids[0] = MBIM_CID_MS_HOST_SHUTDOWN_NOTIFY; /* Compare */ g_assert (_mbim_proxy_helper_service_subscribe_list_cmp ((const MbimEventEntry * const *)list, out_size, @@ -518,15 +406,12 @@ { g_test_init (&argc, &argv, NULL); - g_test_add_func ("/libmbim-glib/proxy/standard-list", test_standard_list); g_test_add_func ("/libmbim-glib/proxy/parse/single-service/0", test_parse_single_service_0_cids); g_test_add_func ("/libmbim-glib/proxy/parse/single-service/1", test_parse_single_service_1_cids); g_test_add_func ("/libmbim-glib/proxy/parse/single-service/5", test_parse_single_service_5_cids); - g_test_add_func ("/libmbim-glib/proxy/merge/standard/full_none", test_merge_standard_list_full_none); - g_test_add_func ("/libmbim-glib/proxy/merge/standard/full_subset", test_merge_standard_list_full_subset); - g_test_add_func ("/libmbim-glib/proxy/merge/standard/full_full", test_merge_standard_list_full_full); - g_test_add_func ("/libmbim-glib/proxy/merge/standard/subset_full", test_merge_standard_list_subset_full); - g_test_add_func ("/libmbim-glib/proxy/merge/standard/none_full", test_merge_standard_list_none_full); + g_test_add_func ("/libmbim-glib/proxy/merge/none", test_merge_none); + g_test_add_func ("/libmbim-glib/proxy/merge/standard", test_merge_standard_services); + g_test_add_func ("/libmbim-glib/proxy/merge/other", test_merge_other_services); g_test_add_func ("/libmbim-glib/proxy/merge/same-service", test_merge_list_same_service); g_test_add_func ("/libmbim-glib/proxy/merge/different-services", test_merge_list_different_services); g_test_add_func ("/libmbim-glib/proxy/merge/merged-services", test_merge_list_merged_services); diff -Nru libmbim-1.14.2/src/libmbim-glib/test/test-uuid.c libmbim-1.18.0/src/libmbim-glib/test/test-uuid.c --- libmbim-1.14.2/src/libmbim-glib/test/test-uuid.c 2015-01-21 00:25:49.000000000 +0100 +++ libmbim-1.18.0/src/libmbim-glib/test/test-uuid.c 2019-01-08 13:16:16.000000000 +0100 @@ -91,6 +91,20 @@ "883b7c26-985f-43fa-9804-27d7fb80959c"); } +static void +test_uuid_intel_firmware_update (void) +{ + compare_uuid_strings (MBIM_UUID_INTEL_FIRMWARE_UPDATE, + "0ed374cb-f835-4474-bc11-3b3fd76f5641"); +} + +static void +test_uuid_ms_basic_connect_extensions (void) +{ + compare_uuid_strings (MBIM_UUID_MS_BASIC_CONNECT_EXTENSIONS, + "3d01dcc5-fef5-4d05-0d3a-bef7058e9aaf"); +} + /*****************************************************************************/ static void @@ -191,15 +205,17 @@ { g_test_init (&argc, &argv, NULL); - g_test_add_func ("/libmbim-glib/uuid/basic-connect", test_uuid_basic_connect); - g_test_add_func ("/libmbim-glib/uuid/sms", test_uuid_sms); - g_test_add_func ("/libmbim-glib/uuid/ussd", test_uuid_ussd); - g_test_add_func ("/libmbim-glib/uuid/phonebook", test_uuid_phonebook); - g_test_add_func ("/libmbim-glib/uuid/stk", test_uuid_stk); - g_test_add_func ("/libmbim-glib/uuid/auth", test_uuid_auth); - g_test_add_func ("/libmbim-glib/uuid/dss", test_uuid_dss); - g_test_add_func ("/libmbim-glib/uuid/ms-firmware-id", test_uuid_ms_firmware_id); - g_test_add_func ("/libmbim-glib/uuid/ms-host-shutdown", test_uuid_ms_host_shutdown); + g_test_add_func ("/libmbim-glib/uuid/basic-connect", test_uuid_basic_connect); + g_test_add_func ("/libmbim-glib/uuid/sms", test_uuid_sms); + g_test_add_func ("/libmbim-glib/uuid/ussd", test_uuid_ussd); + g_test_add_func ("/libmbim-glib/uuid/phonebook", test_uuid_phonebook); + g_test_add_func ("/libmbim-glib/uuid/stk", test_uuid_stk); + g_test_add_func ("/libmbim-glib/uuid/auth", test_uuid_auth); + g_test_add_func ("/libmbim-glib/uuid/dss", test_uuid_dss); + g_test_add_func ("/libmbim-glib/uuid/ms-firmware-id", test_uuid_ms_firmware_id); + g_test_add_func ("/libmbim-glib/uuid/ms-host-shutdown", test_uuid_ms_host_shutdown); + g_test_add_func ("/libmbim-glib/uuid/intel-firmware-update", test_uuid_intel_firmware_update); + g_test_add_func ("/libmbim-glib/uuid/ms-basic-connect-extensions", test_uuid_ms_basic_connect_extensions); g_test_add_func ("/libmbim-glib/uuid/valid", test_uuid_valid); g_test_add_func ("/libmbim-glib/uuid/valid/camelcase", test_uuid_valid_camelcase); diff -Nru libmbim-1.14.2/src/Makefile.am libmbim-1.18.0/src/Makefile.am --- libmbim-1.14.2/src/Makefile.am 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/Makefile.am 2018-03-20 21:33:15.000000000 +0100 @@ -1,2 +1,2 @@ -SUBDIRS = libmbim-glib mbimcli mbim-proxy +SUBDIRS = common libmbim-glib mbimcli mbim-proxy diff -Nru libmbim-1.14.2/src/Makefile.in libmbim-1.18.0/src/Makefile.in --- libmbim-1.14.2/src/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/src/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -135,7 +135,7 @@ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -243,6 +243,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -269,6 +271,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -317,9 +324,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -328,7 +339,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = libmbim-glib mbimcli mbim-proxy +SUBDIRS = common libmbim-glib mbimcli mbim-proxy all: all-recursive .SUFFIXES: @@ -349,8 +360,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -467,7 +478,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libmbim-1.14.2/src/mbimcli/Makefile.am libmbim-1.18.0/src/mbimcli/Makefile.am --- libmbim-1.14.2/src/mbimcli/Makefile.am 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/mbimcli/Makefile.am 2019-01-08 13:16:16.000000000 +0100 @@ -4,6 +4,7 @@ mbimcli_CPPFLAGS = \ $(MBIMCLI_CFLAGS) \ -I$(top_srcdir) \ + -I$(top_srcdir)/src/common \ -I$(top_srcdir)/src/libmbim-glib \ -I$(top_builddir)/src/libmbim-glib \ -I$(top_srcdir)/src/libmbim-glib/generated \ @@ -16,10 +17,14 @@ mbimcli-phonebook.c \ mbimcli-dss.c \ mbimcli-ms-firmware-id.c \ - mbimcli-ms-host-shutdown.c + mbimcli-ms-host-shutdown.c \ + mbimcli-atds.c \ + mbimcli-intel-firmware-update.c \ + mbimcli-ms-basic-connect-extensions.c mbimcli_LDADD = \ $(MBIMCLI_LIBS) \ + $(top_builddir)/src/common/libmbim-common.la \ $(top_builddir)/src/libmbim-glib/libmbim-glib.la diff -Nru libmbim-1.14.2/src/mbimcli/Makefile.in libmbim-1.18.0/src/mbimcli/Makefile.in --- libmbim-1.14.2/src/mbimcli/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/src/mbimcli/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -111,10 +111,14 @@ mbimcli-mbimcli-phonebook.$(OBJEXT) \ mbimcli-mbimcli-dss.$(OBJEXT) \ mbimcli-mbimcli-ms-firmware-id.$(OBJEXT) \ - mbimcli-mbimcli-ms-host-shutdown.$(OBJEXT) + mbimcli-mbimcli-ms-host-shutdown.$(OBJEXT) \ + mbimcli-mbimcli-atds.$(OBJEXT) \ + mbimcli-mbimcli-intel-firmware-update.$(OBJEXT) \ + mbimcli-mbimcli-ms-basic-connect-extensions.$(OBJEXT) mbimcli_OBJECTS = $(am_mbimcli_OBJECTS) am__DEPENDENCIES_1 = mbimcli_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(top_builddir)/src/common/libmbim-common.la \ $(top_builddir)/src/libmbim-glib/libmbim-glib.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -134,7 +138,17 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/mbimcli-mbimcli-atds.Po \ + ./$(DEPDIR)/mbimcli-mbimcli-basic-connect.Po \ + ./$(DEPDIR)/mbimcli-mbimcli-dss.Po \ + ./$(DEPDIR)/mbimcli-mbimcli-helpers.Po \ + ./$(DEPDIR)/mbimcli-mbimcli-intel-firmware-update.Po \ + ./$(DEPDIR)/mbimcli-mbimcli-ms-basic-connect-extensions.Po \ + ./$(DEPDIR)/mbimcli-mbimcli-ms-firmware-id.Po \ + ./$(DEPDIR)/mbimcli-mbimcli-ms-host-shutdown.Po \ + ./$(DEPDIR)/mbimcli-mbimcli-phonebook.Po \ + ./$(DEPDIR)/mbimcli-mbimcli.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -242,6 +256,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -268,6 +284,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -316,9 +337,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -330,6 +355,7 @@ mbimcli_CPPFLAGS = \ $(MBIMCLI_CFLAGS) \ -I$(top_srcdir) \ + -I$(top_srcdir)/src/common \ -I$(top_srcdir)/src/libmbim-glib \ -I$(top_builddir)/src/libmbim-glib \ -I$(top_srcdir)/src/libmbim-glib/generated \ @@ -342,10 +368,14 @@ mbimcli-phonebook.c \ mbimcli-dss.c \ mbimcli-ms-firmware-id.c \ - mbimcli-ms-host-shutdown.c + mbimcli-ms-host-shutdown.c \ + mbimcli-atds.c \ + mbimcli-intel-firmware-update.c \ + mbimcli-ms-basic-connect-extensions.c mbimcli_LDADD = \ $(MBIMCLI_LIBS) \ + $(top_builddir)/src/common/libmbim-common.la \ $(top_builddir)/src/libmbim-glib/libmbim-glib.la completiondir = $(datadir)/bash-completion/completions @@ -371,8 +401,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -443,13 +473,22 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-basic-connect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-dss.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-helpers.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-ms-firmware-id.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-ms-host-shutdown.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-phonebook.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-atds.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-basic-connect.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-dss.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-helpers.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-intel-firmware-update.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-ms-basic-connect-extensions.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-ms-firmware-id.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-ms-host-shutdown.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli-phonebook.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbimcli-mbimcli.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -570,6 +609,48 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbimcli-mbimcli-ms-host-shutdown.obj `if test -f 'mbimcli-ms-host-shutdown.c'; then $(CYGPATH_W) 'mbimcli-ms-host-shutdown.c'; else $(CYGPATH_W) '$(srcdir)/mbimcli-ms-host-shutdown.c'; fi` +mbimcli-mbimcli-atds.o: mbimcli-atds.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbimcli-mbimcli-atds.o -MD -MP -MF $(DEPDIR)/mbimcli-mbimcli-atds.Tpo -c -o mbimcli-mbimcli-atds.o `test -f 'mbimcli-atds.c' || echo '$(srcdir)/'`mbimcli-atds.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbimcli-mbimcli-atds.Tpo $(DEPDIR)/mbimcli-mbimcli-atds.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbimcli-atds.c' object='mbimcli-mbimcli-atds.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbimcli-mbimcli-atds.o `test -f 'mbimcli-atds.c' || echo '$(srcdir)/'`mbimcli-atds.c + +mbimcli-mbimcli-atds.obj: mbimcli-atds.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbimcli-mbimcli-atds.obj -MD -MP -MF $(DEPDIR)/mbimcli-mbimcli-atds.Tpo -c -o mbimcli-mbimcli-atds.obj `if test -f 'mbimcli-atds.c'; then $(CYGPATH_W) 'mbimcli-atds.c'; else $(CYGPATH_W) '$(srcdir)/mbimcli-atds.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbimcli-mbimcli-atds.Tpo $(DEPDIR)/mbimcli-mbimcli-atds.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbimcli-atds.c' object='mbimcli-mbimcli-atds.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbimcli-mbimcli-atds.obj `if test -f 'mbimcli-atds.c'; then $(CYGPATH_W) 'mbimcli-atds.c'; else $(CYGPATH_W) '$(srcdir)/mbimcli-atds.c'; fi` + +mbimcli-mbimcli-intel-firmware-update.o: mbimcli-intel-firmware-update.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbimcli-mbimcli-intel-firmware-update.o -MD -MP -MF $(DEPDIR)/mbimcli-mbimcli-intel-firmware-update.Tpo -c -o mbimcli-mbimcli-intel-firmware-update.o `test -f 'mbimcli-intel-firmware-update.c' || echo '$(srcdir)/'`mbimcli-intel-firmware-update.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbimcli-mbimcli-intel-firmware-update.Tpo $(DEPDIR)/mbimcli-mbimcli-intel-firmware-update.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbimcli-intel-firmware-update.c' object='mbimcli-mbimcli-intel-firmware-update.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbimcli-mbimcli-intel-firmware-update.o `test -f 'mbimcli-intel-firmware-update.c' || echo '$(srcdir)/'`mbimcli-intel-firmware-update.c + +mbimcli-mbimcli-intel-firmware-update.obj: mbimcli-intel-firmware-update.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbimcli-mbimcli-intel-firmware-update.obj -MD -MP -MF $(DEPDIR)/mbimcli-mbimcli-intel-firmware-update.Tpo -c -o mbimcli-mbimcli-intel-firmware-update.obj `if test -f 'mbimcli-intel-firmware-update.c'; then $(CYGPATH_W) 'mbimcli-intel-firmware-update.c'; else $(CYGPATH_W) '$(srcdir)/mbimcli-intel-firmware-update.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbimcli-mbimcli-intel-firmware-update.Tpo $(DEPDIR)/mbimcli-mbimcli-intel-firmware-update.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbimcli-intel-firmware-update.c' object='mbimcli-mbimcli-intel-firmware-update.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbimcli-mbimcli-intel-firmware-update.obj `if test -f 'mbimcli-intel-firmware-update.c'; then $(CYGPATH_W) 'mbimcli-intel-firmware-update.c'; else $(CYGPATH_W) '$(srcdir)/mbimcli-intel-firmware-update.c'; fi` + +mbimcli-mbimcli-ms-basic-connect-extensions.o: mbimcli-ms-basic-connect-extensions.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbimcli-mbimcli-ms-basic-connect-extensions.o -MD -MP -MF $(DEPDIR)/mbimcli-mbimcli-ms-basic-connect-extensions.Tpo -c -o mbimcli-mbimcli-ms-basic-connect-extensions.o `test -f 'mbimcli-ms-basic-connect-extensions.c' || echo '$(srcdir)/'`mbimcli-ms-basic-connect-extensions.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbimcli-mbimcli-ms-basic-connect-extensions.Tpo $(DEPDIR)/mbimcli-mbimcli-ms-basic-connect-extensions.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbimcli-ms-basic-connect-extensions.c' object='mbimcli-mbimcli-ms-basic-connect-extensions.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbimcli-mbimcli-ms-basic-connect-extensions.o `test -f 'mbimcli-ms-basic-connect-extensions.c' || echo '$(srcdir)/'`mbimcli-ms-basic-connect-extensions.c + +mbimcli-mbimcli-ms-basic-connect-extensions.obj: mbimcli-ms-basic-connect-extensions.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbimcli-mbimcli-ms-basic-connect-extensions.obj -MD -MP -MF $(DEPDIR)/mbimcli-mbimcli-ms-basic-connect-extensions.Tpo -c -o mbimcli-mbimcli-ms-basic-connect-extensions.obj `if test -f 'mbimcli-ms-basic-connect-extensions.c'; then $(CYGPATH_W) 'mbimcli-ms-basic-connect-extensions.c'; else $(CYGPATH_W) '$(srcdir)/mbimcli-ms-basic-connect-extensions.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mbimcli-mbimcli-ms-basic-connect-extensions.Tpo $(DEPDIR)/mbimcli-mbimcli-ms-basic-connect-extensions.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbimcli-ms-basic-connect-extensions.c' object='mbimcli-mbimcli-ms-basic-connect-extensions.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mbimcli_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbimcli-mbimcli-ms-basic-connect-extensions.obj `if test -f 'mbimcli-ms-basic-connect-extensions.c'; then $(CYGPATH_W) 'mbimcli-ms-basic-connect-extensions.c'; else $(CYGPATH_W) '$(srcdir)/mbimcli-ms-basic-connect-extensions.c'; fi` + mostlyclean-libtool: -rm -f *.lo @@ -628,7 +709,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -700,7 +784,16 @@ clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-atds.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-basic-connect.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-dss.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-helpers.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-intel-firmware-update.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-ms-basic-connect-extensions.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-ms-firmware-id.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-ms-host-shutdown.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-phonebook.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -747,7 +840,16 @@ installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-atds.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-basic-connect.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-dss.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-helpers.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-intel-firmware-update.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-ms-basic-connect-extensions.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-ms-firmware-id.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-ms-host-shutdown.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli-phonebook.Po + -rm -f ./$(DEPDIR)/mbimcli-mbimcli.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -769,7 +871,7 @@ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ diff -Nru libmbim-1.14.2/src/mbimcli/mbimcli-atds.c libmbim-1.18.0/src/mbimcli/mbimcli-atds.c --- libmbim-1.14.2/src/mbimcli/mbimcli-atds.c 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/src/mbimcli/mbimcli-atds.c 2018-09-25 19:16:21.000000000 +0200 @@ -0,0 +1,337 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * mbimcli -- Command line interface to control MBIM devices + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Copyright (C) 2017 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include +#include +#include + +#include +#include + +#include + +#include "mbimcli.h" + +/* Context */ +typedef struct { + MbimDevice *device; + GCancellable *cancellable; +} Context; +static Context *ctx; + +/* Options */ +static gboolean query_signal_flag; +static gboolean query_location_flag; + +static GOptionEntry entries[] = { + { "atds-query-signal", 0, 0, G_OPTION_ARG_NONE, &query_signal_flag, + "Query signal info", + NULL + }, + { "atds-query-location", 0, 0, G_OPTION_ARG_NONE, &query_location_flag, + "Query cell location", + NULL + }, + { NULL } +}; + +GOptionGroup * +mbimcli_atds_get_option_group (void) +{ + GOptionGroup *group; + + group = g_option_group_new ("atds", + "AT&T Device Service options", + "Show AT&T Device Service options", + NULL, + NULL); + g_option_group_add_entries (group, entries); + + return group; +} + +gboolean +mbimcli_atds_options_enabled (void) +{ + static guint n_actions = 0; + static gboolean checked = FALSE; + + if (checked) + return !!n_actions; + + n_actions = (query_signal_flag + + query_location_flag); + + if (n_actions > 1) { + g_printerr ("error: too many AT&T Device Service actions requested\n"); + exit (EXIT_FAILURE); + } + + checked = TRUE; + return !!n_actions; +} + +static void +context_free (Context *context) +{ + if (!context) + return; + + if (context->cancellable) + g_object_unref (context->cancellable); + if (context->device) + g_object_unref (context->device); + g_slice_free (Context, context); +} + +static void +shutdown (gboolean operation_status) +{ + /* Cleanup context and finish async operation */ + context_free (ctx); + mbimcli_async_operation_done (operation_status); +} + +static void +query_signal_ready (MbimDevice *device, + GAsyncResult *res) +{ + MbimMessage *response; + GError *error = NULL; + guint32 rssi = 0, error_rate = 0, rscp = 0, ecno = 0, rsrq = 0, rsrp = 0, rssnr = 0; + gchar *rssi_str = NULL; + gchar *error_rate_str = NULL; + gchar *rscp_str = NULL; + gchar *ecno_str = NULL; + gchar *rsrq_str = NULL; + gchar *rsrp_str = NULL; + gchar *rssnr_str = NULL; + + response = mbim_device_command_finish (device, res, &error); + if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { + g_printerr ("error: operation failed: %s\n", error->message); + g_error_free (error); + if (response) + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + if (!mbim_message_atds_signal_response_parse ( + response, + &rssi, + &error_rate, + &rscp, + &ecno, + &rsrq, + &rsrp, + &rssnr, + &error)) { + g_printerr ("error: couldn't parse response message: %s\n", error->message); + g_error_free (error); + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + if (rssi <= 31) + rssi_str = g_strdup_printf ("%d dBm", -113 + (2 * rssi)); + + switch (error_rate) { + case 0: + error_rate_str = g_strdup_printf ("< 0.2%%"); + break; + case 1: + error_rate_str = g_strdup_printf ("0.2%% - 0.39%%"); + break; + case 2: + error_rate_str = g_strdup_printf ("0.4%% - 0.79%%"); + break; + case 3: + error_rate_str = g_strdup_printf ("0.8%% - 1.59%%"); + break; + case 4: + error_rate_str = g_strdup_printf ("1.6%% - 3.19%%"); + break; + case 5: + error_rate_str = g_strdup_printf ("3.2%% - 6.39%%"); + break; + case 6: + error_rate_str = g_strdup_printf ("6.4%% - 12.79%%"); + break; + case 7: + error_rate_str = g_strdup_printf ("> 12.8%%"); + break; + } + + if (rscp == 0) + rscp_str = g_strdup_printf ("< -120 dBm"); + else if (rscp < 96) + rscp_str = g_strdup_printf ("%d dBm", -120 + rscp); + else if (rscp == 96) + rscp_str = g_strdup_printf (">= -24 dBm"); + + if (ecno == 0) + ecno_str = g_strdup_printf ("< -24 dBm"); + else if (ecno < 49) + ecno_str = g_strdup_printf ("%.2f dBm", -24.0 + ((float) ecno / 2)); + else if (ecno == 49) + ecno_str = g_strdup_printf (">= 0.5 dBm"); + + if (rsrq == 0) + rsrq_str = g_strdup_printf ("< -19.5 dBm"); + else if (rsrq < 34) + rsrq_str = g_strdup_printf ("%.2f dBm", -19.5 + ((float) rsrq / 2)); + else if (rsrq == 34) + rsrq_str = g_strdup_printf (">= -2.5 dBm"); + + if (rsrp == 0) + rsrp_str = g_strdup_printf ("< -140 dBm"); + else if (rsrp < 97) + rsrp_str = g_strdup_printf ("%d dBm", -140 + rsrp); + else if (rsrp == 97) + rsrp_str = g_strdup_printf (">= -43 dBm"); + + if (rssnr == 0) + rssnr_str = g_strdup_printf ("< -5 dB"); + else if (rssnr < 35) + rssnr_str = g_strdup_printf ("%d dB", -5 + rssnr); + else if (rssnr == 35) + rssnr_str = g_strdup_printf (">= 30 dB"); + + g_print ("[%s] Signal info retrieved:\n" + "\t RSSI: %s\n" + "\t BER: %s\n" + "\t RSCP: %s\n" + "\t Ec/No: %s\n" + "\t RSRQ: %s\n" + "\t RSRP: %s\n" + "\t RSSNR: %s\n", + mbim_device_get_path_display (device), + VALIDATE_UNKNOWN (rssi_str), + VALIDATE_UNKNOWN (error_rate_str), + VALIDATE_UNKNOWN (rscp_str), + VALIDATE_UNKNOWN (ecno_str), + VALIDATE_UNKNOWN (rsrq_str), + VALIDATE_UNKNOWN (rsrp_str), + VALIDATE_UNKNOWN (rssnr_str)); + + g_free (rssi_str); + g_free (error_rate_str); + g_free (rscp_str); + g_free (ecno_str); + g_free (rsrq_str); + g_free (rsrp_str); + g_free (rssnr_str); + + mbim_message_unref (response); + shutdown (TRUE); +} + +static void +query_location_ready (MbimDevice *device, + GAsyncResult *res) +{ + MbimMessage *response; + GError *error = NULL; + guint32 lac = 0, tac = 0, cellid = 0; + + response = mbim_device_command_finish (device, res, &error); + if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { + g_printerr ("error: operation failed: %s\n", error->message); + g_error_free (error); + if (response) + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + if (!mbim_message_atds_location_response_parse ( + response, + &lac, + &tac, + &cellid, + &error)) { + g_printerr ("error: couldn't parse response message: %s\n", error->message); + g_error_free (error); + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + g_print ("[%s] Cell location retrieved:\n" + "\t LAC: %04x\n" + "\t TAC: %04x\n" + "\t Cell ID: %04x\n", + mbim_device_get_path_display (device), + lac, + tac, + cellid); + + mbim_message_unref (response); + shutdown (TRUE); +} + +void +mbimcli_atds_run (MbimDevice *device, + GCancellable *cancellable) +{ + /* Initialize context */ + ctx = g_slice_new (Context); + ctx->device = g_object_ref (device); + ctx->cancellable = cancellable ? g_object_ref (cancellable) : NULL; + + /* Request to get signal info? */ + if (query_signal_flag) { + MbimMessage *request; + + g_debug ("Asynchronously querying signal info..."); + request = (mbim_message_atds_signal_query_new (NULL)); + mbim_device_command (ctx->device, + request, + 10, + ctx->cancellable, + (GAsyncReadyCallback)query_signal_ready, + NULL); + mbim_message_unref (request); + return; + } + + /* Request to get cell location? */ + if (query_location_flag) { + MbimMessage *request; + + g_debug ("Asynchronously querying cell location..."); + request = (mbim_message_atds_location_query_new (NULL)); + mbim_device_command (ctx->device, + request, + 10, + ctx->cancellable, + (GAsyncReadyCallback)query_location_ready, + NULL); + mbim_message_unref (request); + return; + } + + g_warn_if_reached (); +} diff -Nru libmbim-1.14.2/src/mbimcli/mbimcli-basic-connect.c libmbim-1.18.0/src/mbimcli/mbimcli-basic-connect.c --- libmbim-1.14.2/src/mbimcli/mbimcli-basic-connect.c 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/mbimcli/mbimcli-basic-connect.c 2018-09-25 19:16:21.000000000 +0200 @@ -31,6 +31,7 @@ #include +#include "mbim-common.h" #include "mbimcli.h" #include "mbimcli-helpers.h" @@ -53,6 +54,7 @@ static gchar *set_pin_enable_str; static gchar *set_pin_disable_str; static gchar *set_pin_enter_puk_str; +static gboolean query_pin_list_flag; static gboolean query_home_provider_flag; static gboolean query_preferred_providers_flag; static gboolean query_visible_providers_flag; @@ -67,6 +69,7 @@ static gchar *query_ip_configuration_str; static gchar *set_connect_deactivate_str; static gboolean query_packet_statistics_flag; +static gchar *query_ip_packet_filters_str; static gboolean query_connection_state_arg_parse (const char *option_name, const char *value, @@ -83,6 +86,11 @@ gpointer user_data, GError **error); +static gboolean query_ip_packet_filters_arg_parse (const char *option_name, + const char *value, + gpointer user_data, + GError **error); + static GOptionEntry entries[] = { { "query-device-caps", 0, 0, G_OPTION_ARG_NONE, &query_device_caps_flag, "Query device capabilities", @@ -128,6 +136,10 @@ "Enter PUK", "[(PUK),(new PIN)]" }, + { "query-pin-list", 0, 0, G_OPTION_ARG_NONE, &query_pin_list_flag, + "Query PIN list", + NULL + }, { "query-home-provider", 0, 0, G_OPTION_ARG_NONE, &query_home_provider_flag, "Query home provider", NULL @@ -169,7 +181,7 @@ "[SessionID]" }, { "connect", 0, 0, G_OPTION_ARG_STRING, &set_connect_activate_str, - "Connect (allowed keys: session-id, apn, auth (PAP|CHAP|MSCHAPV2), username, password)", + "Connect (allowed keys: session-id, apn, ip-type (ipv4|ipv6|ipv4v6), auth (PAP|CHAP|MSCHAPV2), username, password)", "[\"key=value,...\"]" }, { "query-ip-configuration", 0, G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, G_CALLBACK (query_ip_configuration_arg_parse), @@ -184,6 +196,10 @@ "Query packet statistics", NULL }, + { "query-ip-packet-filters", 0, G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, G_CALLBACK (query_ip_packet_filters_arg_parse), + "Query IP packet filters (SessionID is optional, defaults to 0)", + "[SessionID]" + }, { NULL } }; @@ -232,6 +248,16 @@ return TRUE; } +static gboolean +query_ip_packet_filters_arg_parse (const char *option_name, + const char *value, + gpointer user_data, + GError **error) +{ + query_ip_packet_filters_str = g_strdup (value ? value : "0"); + return TRUE; +} + gboolean mbimcli_basic_connect_options_enabled (void) { @@ -252,6 +278,7 @@ !!set_pin_enable_str + !!set_pin_disable_str + !!set_pin_enter_puk_str + + query_pin_list_flag + query_register_state_flag + query_home_provider_flag + query_preferred_providers_flag + @@ -265,7 +292,8 @@ !!set_connect_activate_str + !!query_ip_configuration_str + !!set_connect_deactivate_str + - query_packet_statistics_flag); + query_packet_statistics_flag + + !!query_ip_packet_filters_str); if (n_actions > 1) { g_printerr ("error: too many Basic Connect actions requested\n"); @@ -367,7 +395,7 @@ "\t Device type: '%s'\n" "\t Cellular class: '%s'\n" "\t Voice class: '%s'\n" - "\t Sim class: '%s'\n" + "\t SIM class: '%s'\n" "\t Data class: '%s'\n" "\t SMS caps: '%s'\n" "\t Ctrl caps: '%s'\n" @@ -510,8 +538,8 @@ software_radio_state_str = mbim_radio_switch_state_get_string (software_radio_state); g_print ("[%s] Radio state retrieved:\n" - "\t Hardware Radio State: '%s'\n" - "\t Software Radio State: '%s'\n", + "\t Hardware radio state: '%s'\n" + "\t Software radio state: '%s'\n", mbim_device_get_path_display (device), VALIDATE_UNKNOWN (hardware_radio_state_str), VALIDATE_UNKNOWN (software_radio_state_str)); @@ -652,15 +680,15 @@ pin_state_str = mbim_pin_state_get_string (pin_state); - g_print ("[%s] Pin Info:\n" - "\t Pin State: '%s'\n", + g_print ("[%s] PIN info:\n" + "\t PIN state: '%s'\n", mbim_device_get_path_display (device), VALIDATE_UNKNOWN (pin_state_str)); if (pin_type != MBIM_PIN_TYPE_UNKNOWN) { const gchar *pin_type_str; pin_type_str = mbim_pin_type_get_string (pin_type); - g_print ("\t PinType: '%s'\n" + g_print ("\t PIN type: '%s'\n" "\tRemaining attempts: '%u'\n", VALIDATE_UNKNOWN (pin_type_str), remaining_attempts); @@ -715,6 +743,100 @@ }; static void +print_pin_desc (const gchar *pin_name, + const MbimPinDesc *pin_desc) +{ + g_print ("\t%s:\n" + "\t\t Mode: '%s'\n" + "\t\t Format: '%s'\n" + "\t\tMin length: '%d'\n" + "\t\tMax length: '%d'\n" + "\n", + pin_name, + VALIDATE_UNKNOWN (mbim_pin_mode_get_string (pin_desc->pin_mode)), + VALIDATE_UNKNOWN (mbim_pin_format_get_string (pin_desc->pin_format)), + pin_desc->pin_length_min, + pin_desc->pin_length_max); +} + +static void +pin_list_ready (MbimDevice *device, + GAsyncResult *res, + gpointer user_data) +{ + MbimMessage *response; + GError *error = NULL; + MbimPinDesc *pin_desc_pin1; + MbimPinDesc *pin_desc_pin2; + MbimPinDesc *pin_desc_device_sim_pin; + MbimPinDesc *pin_desc_device_first_sim_pin; + MbimPinDesc *pin_desc_network_pin; + MbimPinDesc *pin_desc_network_subset_pin; + MbimPinDesc *pin_desc_service_provider_pin; + MbimPinDesc *pin_desc_corporate_pin; + MbimPinDesc *pin_desc_subsidy_lock; + MbimPinDesc *pin_desc_custom; + + response = mbim_device_command_finish (device, res, &error); + if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { + g_printerr ("error: operation failed: %s\n", error->message); + g_error_free (error); + if (response) + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + if (!mbim_message_pin_list_response_parse ( + response, + &pin_desc_pin1, + &pin_desc_pin2, + &pin_desc_device_sim_pin, + &pin_desc_device_first_sim_pin, + &pin_desc_network_pin, + &pin_desc_network_subset_pin, + &pin_desc_service_provider_pin, + &pin_desc_corporate_pin, + &pin_desc_subsidy_lock, + &pin_desc_custom, + &error)) { + g_printerr ("error: couldn't parse response message: %s\n", error->message); + g_error_free (error); + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + g_print ("[%s] PIN list:\n\n", + mbim_device_get_path_display (device)); + + print_pin_desc ("PIN1", pin_desc_pin1); + print_pin_desc ("PIN2", pin_desc_pin2); + print_pin_desc ("Device SIM PIN", pin_desc_device_sim_pin); + print_pin_desc ("Device first SIM PIN", pin_desc_device_first_sim_pin); + print_pin_desc ("Network PIN", pin_desc_network_pin); + print_pin_desc ("Network subset PIN", pin_desc_network_subset_pin); + print_pin_desc ("Service provider PIN", pin_desc_service_provider_pin); + print_pin_desc ("Corporate PIN", pin_desc_corporate_pin); + print_pin_desc ("Subsidy lock", pin_desc_subsidy_lock); + print_pin_desc ("Custom", pin_desc_custom); + + mbim_pin_desc_free (pin_desc_pin1); + mbim_pin_desc_free (pin_desc_pin2); + mbim_pin_desc_free (pin_desc_device_sim_pin); + mbim_pin_desc_free (pin_desc_device_first_sim_pin); + mbim_pin_desc_free (pin_desc_network_pin); + mbim_pin_desc_free (pin_desc_network_subset_pin); + mbim_pin_desc_free (pin_desc_service_provider_pin); + mbim_pin_desc_free (pin_desc_corporate_pin); + mbim_pin_desc_free (pin_desc_subsidy_lock); + mbim_pin_desc_free (pin_desc_custom); + + mbim_message_unref (response); + shutdown (TRUE); +} + +static void ip_configuration_query_ready (MbimDevice *device, GAsyncResult *res, gpointer unused) @@ -857,6 +979,63 @@ shutdown (TRUE); } +static void +ip_packet_filters_ready (MbimDevice *device, + GAsyncResult *res, + gpointer unused) +{ + MbimMessage *response; + GError *error = NULL; + MbimPacketFilter **filters; + guint32 filters_count, i; + + response = mbim_device_command_finish (device, res, &error); + if (!response || + !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { + g_printerr ("error: operation failed: %s\n", error->message); + g_error_free (error); + if (response) + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + if (!mbim_message_ip_packet_filters_response_parse ( + response, + NULL, /* sessionid */ + &filters_count, + &filters, + &error)) { + g_printerr ("error: couldn't parse response message: %s\n", error->message); + g_error_free (error); + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + g_print ("\n[%s] IP packet filters: (%u)\n", mbim_device_get_path_display (device), filters_count); + + for (i = 0; i < filters_count; i++) { + gchar *bytes; + + g_print ("\n"); + g_print ("\tFilter size: %u\n", filters[i]->filter_size); + + bytes = mbim_common_str_hex (filters[i]->packet_filter, filters[i]->filter_size, ' '); + g_print ("\tPacket filter: %s\n", VALIDATE_UNKNOWN (bytes)); + g_free (bytes); + + bytes = mbim_common_str_hex (filters[i]->packet_mask, filters[i]->filter_size, ' '); + g_print ("\tPacket mask: %s\n", VALIDATE_UNKNOWN (bytes)); + g_free (bytes); + } + + mbim_packet_filter_array_free (filters); + + mbim_message_unref (response); + shutdown (TRUE); +} + static gboolean mbim_auth_protocol_from_string (const gchar *str, MbimAuthProtocol *auth_protocol) @@ -876,6 +1055,24 @@ } static gboolean +mbim_context_ip_type_from_string (const gchar *str, + MbimContextIpType *ip_type) +{ + if (g_ascii_strcasecmp (str, "ipv4") == 0) { + *ip_type = MBIM_CONTEXT_IP_TYPE_IPV4; + return TRUE; + } else if (g_ascii_strcasecmp (str, "ipv6") == 0) { + *ip_type = MBIM_CONTEXT_IP_TYPE_IPV6; + return TRUE; + } else if (g_ascii_strcasecmp (str, "ipv4v6") == 0) { + *ip_type = MBIM_CONTEXT_IP_TYPE_IPV4V6; + return TRUE; + } + + return FALSE; +} + +static gboolean connect_session_id_parse (const gchar *str, gboolean allow_empty, guint32 *session_id, @@ -915,11 +1112,12 @@ } typedef struct { - guint32 session_id; - gchar *apn; - MbimAuthProtocol auth_protocol; - gchar *username; - gchar *password; + guint32 session_id; + gchar *apn; + MbimAuthProtocol auth_protocol; + gchar *username; + gchar *password; + MbimContextIpType ip_type; } ConnectActivateProperties; static gboolean connect_activate_properties_handle (const gchar *key, @@ -957,6 +1155,15 @@ props->username = g_strdup (value); } else if (g_ascii_strcasecmp (key, "password") == 0 && !props->password) { props->password = g_strdup (value); + } else if (g_ascii_strcasecmp (key, "ip-type") == 0) { + if (!mbim_context_ip_type_from_string (value, &props->ip_type)) { + g_set_error (error, + MBIM_CORE_ERROR, + MBIM_CORE_ERROR_FAILED, + "unknown ip type '%s'", + value); + return FALSE; + } } else { g_set_error (error, MBIM_CORE_ERROR, @@ -970,19 +1177,21 @@ } static gboolean -set_connect_activate_parse (const gchar *str, - guint32 *session_id, - gchar **apn, - MbimAuthProtocol *auth_protocol, - gchar **username, - gchar **password) +set_connect_activate_parse (const gchar *str, + guint32 *session_id, + gchar **apn, + MbimAuthProtocol *auth_protocol, + gchar **username, + gchar **password, + MbimContextIpType *ip_type) { ConnectActivateProperties props = { .session_id = 0, .apn = NULL, .auth_protocol = MBIM_AUTH_PROTOCOL_NONE, .username = NULL, - .password = NULL + .password = NULL, + .ip_type = MBIM_CONTEXT_IP_TYPE_DEFAULT }; gchar **split = NULL; @@ -991,6 +1200,7 @@ g_assert (auth_protocol != NULL); g_assert (username != NULL); g_assert (password != NULL); + g_assert (ip_type != NULL); if (strchr (str, '=')) { GError *error = NULL; @@ -1052,6 +1262,7 @@ *auth_protocol = props.auth_protocol; *username = props.username; *password = props.password; + *ip_type = props.ip_type; if (split) g_strfreev (split); @@ -1103,7 +1314,7 @@ g_print ("[%s] Home provider:\n" "\t Provider ID: '%s'\n" - "\t Provider Name: '%s'\n" + "\t Provider name: '%s'\n" "\t State: '%s'\n" "\tCellular class: '%s'\n" "\t RSSI: '%u'\n" @@ -1173,7 +1384,7 @@ g_print ("\tProvider [%u]:\n" "\t\t Provider ID: '%s'\n" - "\t\t Provider Name: '%s'\n" + "\t\t Provider name: '%s'\n" "\t\t State: '%s'\n" "\t\t Cellular class: '%s'\n" "\t\t RSSI: '%u'\n" @@ -1244,7 +1455,7 @@ g_print ("\tProvider [%u]:\n" "\t\t Provider ID: '%s'\n" - "\t\t Provider Name: '%s'\n" + "\t\t Provider name: '%s'\n" "\t\t State: '%s'\n" "\t\t Cellular class: '%s'\n" "\t\t RSSI: '%u'\n" @@ -1748,6 +1959,22 @@ return; } + /* Query PIN list? */ + if (query_pin_list_flag) { + MbimMessage *request; + + g_debug ("Asynchronously querying PIN list..."); + request = (mbim_message_pin_list_query_new (NULL)); + mbim_device_command (ctx->device, + request, + 10, + ctx->cancellable, + (GAsyncReadyCallback)pin_list_ready, + GUINT_TO_POINTER (FALSE)); + mbim_message_unref (request); + return; + } + /* Query home provider? */ if (query_home_provider_flag) { MbimMessage *request; @@ -1944,13 +2171,15 @@ MbimAuthProtocol auth_protocol; gchar *username = NULL; gchar *password = NULL; + MbimContextIpType ip_type = MBIM_CONTEXT_IP_TYPE_DEFAULT; if (!set_connect_activate_parse (set_connect_activate_str, &session_id, &apn, &auth_protocol, &username, - &password)) { + &password, + &ip_type)) { shutdown (FALSE); return; } @@ -1962,7 +2191,7 @@ password, MBIM_COMPRESSION_NONE, auth_protocol, - MBIM_CONTEXT_IP_TYPE_DEFAULT, + ip_type, mbim_uuid_from_context_type (MBIM_CONTEXT_TYPE_INTERNET), &error); g_free (apn); @@ -2034,7 +2263,7 @@ mbim_device_command (ctx->device, request, - 10, + 60, ctx->cancellable, (GAsyncReadyCallback)connect_ready, GUINT_TO_POINTER (DISCONNECT)); @@ -2055,6 +2284,41 @@ NULL); mbim_message_unref (request); return; + } + + /* Query IP packet filters? */ + if (query_ip_packet_filters_str) { + MbimMessage *request; + GError *error = NULL; + guint32 session_id = 0; + + if (!connect_session_id_parse (query_ip_packet_filters_str, TRUE, &session_id, &error)) { + g_printerr ("error: couldn't parse session ID: %s\n", error->message); + g_error_free (error); + shutdown (FALSE); + return; + } + + request = (mbim_message_ip_packet_filters_query_new ( + session_id, + 0, /* packet_filters_count */ + NULL, /* packet_filters */ + &error)); + if (!request) { + g_printerr ("error: couldn't create IP packet filters request: %s\n", error->message); + g_error_free (error); + shutdown (FALSE); + return; + } + + mbim_device_command (ctx->device, + request, + 10, + ctx->cancellable, + (GAsyncReadyCallback)ip_packet_filters_ready, + NULL); + mbim_message_unref (request); + return; } g_warn_if_reached (); diff -Nru libmbim-1.14.2/src/mbimcli/mbimcli.c libmbim-1.18.0/src/mbimcli/mbimcli.c --- libmbim-1.14.2/src/mbimcli/mbimcli.c 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/mbimcli/mbimcli.c 2019-01-08 13:51:41.000000000 +0100 @@ -29,6 +29,7 @@ #include #include #include +#include #include @@ -91,25 +92,26 @@ { NULL } }; -static void -signals_handler (int signum) +static gboolean +signals_handler (gpointer psignum) { if (cancellable) { /* Ignore consecutive requests of cancellation */ if (!g_cancellable_is_cancelled (cancellable)) { - g_printerr ("%s\n", - "cancelling the operation...\n"); + g_printerr ("cancelling the operation...\n"); g_cancellable_cancel (cancellable); - return; + /* Re-set the signal handler to allow main loop cancellation on + * second signal */ + g_unix_signal_add (GPOINTER_TO_INT (psignum), (GSourceFunc) signals_handler, psignum); + return FALSE; } } - if (loop && - g_main_loop_is_running (loop)) { - g_printerr ("%s\n", - "cancelling the main loop...\n"); - g_main_loop_quit (loop); + if (loop && g_main_loop_is_running (loop)) { + g_printerr ("cancelling the main loop...\n"); + g_idle_add ((GSourceFunc) g_main_loop_quit, loop); } + return FALSE; } static void @@ -170,7 +172,7 @@ { g_print ("\n" PROGRAM_NAME " " PROGRAM_VERSION "\n" - "Copyright (2013-2014) Aleksander Morgado\n" + "Copyright (C) 2013-2019 Aleksander Morgado\n" "License GPLv2+: GNU GPL version 2 or later \n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" @@ -216,10 +218,8 @@ /* Keep the result of the operation */ operation_status = reported_operation_status; - if (cancellable) { - g_object_unref (cancellable); - cancellable = NULL; - } + /* Cleanup cancellation */ + g_clear_object (&cancellable); /* Set the in-session setup */ g_object_set (device, @@ -272,6 +272,15 @@ case MBIM_SERVICE_MS_HOST_SHUTDOWN: mbimcli_ms_host_shutdown_run (dev, cancellable); return; + case MBIM_SERVICE_ATDS: + mbimcli_atds_run (dev, cancellable); + return; + case MBIM_SERVICE_INTEL_FIRMWARE_UPDATE: + mbimcli_intel_firmware_update_run (dev, cancellable); + return; + case MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS: + mbimcli_ms_basic_connect_extensions_run (dev, cancellable); + return; default: g_assert_not_reached (); } @@ -343,6 +352,15 @@ } else if (mbimcli_ms_host_shutdown_options_enabled ()) { service = MBIM_SERVICE_MS_HOST_SHUTDOWN; actions_enabled++; + } else if (mbimcli_atds_options_enabled ()) { + service = MBIM_SERVICE_ATDS; + actions_enabled++; + } else if (mbimcli_intel_firmware_update_options_enabled ()) { + service = MBIM_SERVICE_INTEL_FIRMWARE_UPDATE; + actions_enabled++; + } else if (mbimcli_ms_basic_connect_extensions_options_enabled ()) { + service = MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS; + actions_enabled++; } /* Noop */ @@ -372,10 +390,6 @@ setlocale (LC_ALL, ""); -#if !GLIB_CHECK_VERSION (2, 36, 0) - g_type_init (); -#endif - /* Setup option context, process it and destroy it */ context = g_option_context_new ("- Control MBIM devices"); g_option_context_add_group (context, @@ -388,6 +402,12 @@ mbimcli_ms_firmware_id_get_option_group ()); g_option_context_add_group (context, mbimcli_ms_host_shutdown_get_option_group ()); + g_option_context_add_group (context, + mbimcli_atds_get_option_group ()); + g_option_context_add_group (context, + mbimcli_intel_firmware_update_get_option_group ()); + g_option_context_add_group (context, + mbimcli_ms_basic_connect_extensions_get_option_group ()); g_option_context_add_main_entries (context, main_entries, NULL); if (!g_option_context_parse (context, &argc, &argv, &error)) { g_printerr ("error: %s\n", @@ -413,16 +433,16 @@ /* Build new GFile from the commandline arg */ file = g_file_new_for_commandline_arg (device_str); - /* Setup signals */ - signal (SIGINT, signals_handler); - signal (SIGHUP, signals_handler); - signal (SIGTERM, signals_handler); + parse_actions (); /* Create requirements for async options */ cancellable = g_cancellable_new (); loop = g_main_loop_new (NULL, FALSE); - parse_actions (); + /* Setup signals */ + g_unix_signal_add (SIGINT, (GSourceFunc)signals_handler, GUINT_TO_POINTER (SIGINT)); + g_unix_signal_add (SIGHUP, (GSourceFunc)signals_handler, GUINT_TO_POINTER (SIGHUP)); + g_unix_signal_add (SIGTERM, (GSourceFunc)signals_handler, GUINT_TO_POINTER (SIGTERM)); /* Launch MbimDevice creation */ mbim_device_new (file, diff -Nru libmbim-1.14.2/src/mbimcli/mbimcli.h libmbim-1.18.0/src/mbimcli/mbimcli.h --- libmbim-1.14.2/src/mbimcli/mbimcli.h 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/mbimcli/mbimcli.h 2019-01-08 13:16:16.000000000 +0100 @@ -34,12 +34,18 @@ GOptionGroup *mbimcli_dss_get_option_group (void); GOptionGroup *mbimcli_ms_firmware_id_get_option_group (void); GOptionGroup *mbimcli_ms_host_shutdown_get_option_group (void); +GOptionGroup *mbimcli_atds_get_option_group (void); +GOptionGroup *mbimcli_intel_firmware_update_get_option_group (void); +GOptionGroup *mbimcli_ms_basic_connect_extensions_get_option_group (void); gboolean mbimcli_basic_connect_options_enabled (void); gboolean mbimcli_phonebook_options_enabled (void); gboolean mbimcli_dss_options_enabled (void); gboolean mbimcli_ms_firmware_id_options_enabled (void); gboolean mbimcli_ms_host_shutdown_options_enabled (void); +gboolean mbimcli_atds_options_enabled (void); +gboolean mbimcli_intel_firmware_update_options_enabled (void); +gboolean mbimcli_ms_basic_connect_extensions_options_enabled (void); void mbimcli_basic_connect_run (MbimDevice *device, GCancellable *cancellable); @@ -51,5 +57,11 @@ GCancellable *cancellable); void mbimcli_ms_host_shutdown_run (MbimDevice *device, GCancellable *cancellable); +void mbimcli_atds_run (MbimDevice *device, + GCancellable *cancellable); +void mbimcli_intel_firmware_update_run (MbimDevice *device, + GCancellable *cancellable); +void mbimcli_ms_basic_connect_extensions_run (MbimDevice *device, + GCancellable *cancellable); #endif /* __MBIMCLI_H__ */ diff -Nru libmbim-1.14.2/src/mbimcli/mbimcli-intel-firmware-update.c libmbim-1.18.0/src/mbimcli/mbimcli-intel-firmware-update.c --- libmbim-1.14.2/src/mbimcli/mbimcli-intel-firmware-update.c 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/src/mbimcli/mbimcli-intel-firmware-update.c 2018-03-20 21:33:15.000000000 +0100 @@ -0,0 +1,159 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * mbimcli -- Command line interface to control MBIM devices + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Copyright 2018 Google LLC + */ + +#include "config.h" + +#include +#include +#include +#include + +#include +#include + +#include + +#include "mbimcli.h" + +/* Context */ +typedef struct { + MbimDevice *device; + GCancellable *cancellable; +} Context; +static Context *ctx; + +/* Options */ +static gboolean modem_reboot_flag; + +static GOptionEntry entries[] = { + { "intel-modem-reboot", 0, 0, G_OPTION_ARG_NONE, &modem_reboot_flag, + "Reboot modem", + NULL + }, + { NULL } +}; + +GOptionGroup * +mbimcli_intel_firmware_update_get_option_group (void) +{ + GOptionGroup *group; + + group = g_option_group_new ("intel-firmware-update", + "Intel Firmware Update Service options", + "Show Intel Firmware Update Service options", + NULL, + NULL); + g_option_group_add_entries (group, entries); + + return group; +} + +gboolean +mbimcli_intel_firmware_update_options_enabled (void) +{ + static guint n_actions = 0; + static gboolean checked = FALSE; + + if (checked) + return !!n_actions; + + n_actions = modem_reboot_flag; + + if (n_actions > 1) { + g_printerr ("error: too many Intel Firmware Update Service actions requested\n"); + exit (EXIT_FAILURE); + } + + checked = TRUE; + return !!n_actions; +} + +static void +context_free (Context *context) +{ + if (!context) + return; + + if (context->cancellable) + g_object_unref (context->cancellable); + if (context->device) + g_object_unref (context->device); + g_slice_free (Context, context); +} + +static void +shutdown (gboolean operation_status) +{ + /* Cleanup context and finish async operation */ + context_free (ctx); + mbimcli_async_operation_done (operation_status); +} + +static void +modem_reboot_ready (MbimDevice *device, + GAsyncResult *res) +{ + MbimMessage *response; + GError *error = NULL; + + response = mbim_device_command_finish (device, res, &error); + if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { + g_printerr ("error: operation failed: %s\n", error->message); + g_error_free (error); + if (response) + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + g_print ("[%s] Successfully requested modem to reboot for firmware update\n\n", + mbim_device_get_path_display (device)); + + mbim_message_unref (response); + shutdown (TRUE); +} + +void +mbimcli_intel_firmware_update_run (MbimDevice *device, + GCancellable *cancellable) +{ + /* Initialize context */ + ctx = g_slice_new (Context); + ctx->device = g_object_ref (device); + ctx->cancellable = cancellable ? g_object_ref (cancellable) : NULL; + + /* Request to reboot modem? */ + if (modem_reboot_flag) { + MbimMessage *request; + + g_debug ("Asynchronously rebooting modem..."); + request = (mbim_message_intel_firmware_update_modem_reboot_set_new (NULL)); + mbim_device_command (ctx->device, + request, + 10, + ctx->cancellable, + (GAsyncReadyCallback)modem_reboot_ready, + NULL); + mbim_message_unref (request); + return; + } + + g_warn_if_reached (); +} diff -Nru libmbim-1.14.2/src/mbimcli/mbimcli-ms-basic-connect-extensions.c libmbim-1.18.0/src/mbimcli/mbimcli-ms-basic-connect-extensions.c --- libmbim-1.14.2/src/mbimcli/mbimcli-ms-basic-connect-extensions.c 1970-01-01 01:00:00.000000000 +0100 +++ libmbim-1.18.0/src/mbimcli/mbimcli-ms-basic-connect-extensions.c 2019-01-08 13:16:16.000000000 +0100 @@ -0,0 +1,392 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * mbimcli -- Command line interface to control MBIM devices + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Copyright (C) 2018 Google LLC + * Copyright (C) 2018 Aleksander Morgado + */ + +#include "config.h" + +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include "mbim-common.h" +#include "mbimcli.h" + +/* Context */ +typedef struct { + MbimDevice *device; + GCancellable *cancellable; +} Context; +static Context *ctx; + +/* Options */ +static gchar *query_pco_str; +static gboolean query_lte_attach_configuration_flag; +static gboolean query_lte_attach_status_flag; + +static gboolean query_pco_arg_parse (const char *option_name, + const char *value, + gpointer user_data, + GError **error); + +static GOptionEntry entries[] = { + { "ms-query-pco", 0, G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, G_CALLBACK (query_pco_arg_parse), + "Query PCO value (SessionID is optional, defaults to 0)", + "[SessionID]" + }, + { "ms-query-lte-attach-configuration", 0, 0, G_OPTION_ARG_NONE, &query_lte_attach_configuration_flag, + "Query LTE attach configuration", + NULL + }, + { "ms-query-lte-attach-status", 0, 0, G_OPTION_ARG_NONE, &query_lte_attach_status_flag, + "Query LTE attach status", + NULL + }, + { NULL } +}; + +static gboolean +query_pco_arg_parse (const char *option_name, + const char *value, + gpointer user_data, + GError **error) +{ + query_pco_str = g_strdup (value ? value : "0"); + return TRUE; +} + +GOptionGroup * +mbimcli_ms_basic_connect_extensions_get_option_group (void) +{ + GOptionGroup *group; + + group = g_option_group_new ("ms-basic-connect-extensions", + "Microsoft Basic Connect Extensions options", + "Show Microsoft Basic Connect Extensions Service options", + NULL, + NULL); + g_option_group_add_entries (group, entries); + + return group; +} + +static gboolean +session_id_parse (const gchar *str, + guint32 *session_id, + GError **error) +{ + gchar *endptr = NULL; + gint64 n; + + g_assert (str != NULL); + g_assert (session_id != NULL); + + if (!str[0]) { + *session_id = 0; + return TRUE; + } + + errno = 0; + n = g_ascii_strtoll (str, &endptr, 10); + if (errno || n < 0 || n > 255 || ((endptr - str) < strlen (str))) { + g_set_error (error, + MBIM_CORE_ERROR, + MBIM_CORE_ERROR_FAILED, + "couldn't parse session ID '%s' (must be 0 - 255)", + str); + return FALSE; + } + *session_id = (guint32) n; + + return TRUE; +} + +gboolean +mbimcli_ms_basic_connect_extensions_options_enabled (void) +{ + static guint n_actions = 0; + static gboolean checked = FALSE; + + if (checked) + return !!n_actions; + + n_actions = (!!query_pco_str + + query_lte_attach_configuration_flag + + query_lte_attach_status_flag); + + if (n_actions > 1) { + g_printerr ("error: too many Microsoft Basic Connect Extensions Service actions requested\n"); + exit (EXIT_FAILURE); + } + + checked = TRUE; + return !!n_actions; +} + +static void +context_free (Context *context) +{ + if (!context) + return; + + if (context->cancellable) + g_object_unref (context->cancellable); + if (context->device) + g_object_unref (context->device); + g_slice_free (Context, context); +} + +static void +shutdown (gboolean operation_status) +{ + /* Cleanup context and finish async operation */ + context_free (ctx); + mbimcli_async_operation_done (operation_status); +} + +static void +query_pco_ready (MbimDevice *device, + GAsyncResult *res) +{ + MbimMessage *response; + GError *error = NULL; + MbimPcoValue *pco_value; + gchar *pco_data; + + response = mbim_device_command_finish (device, res, &error); + if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { + g_printerr ("error: operation failed: %s\n", error->message); + g_error_free (error); + if (response) + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + g_print ("[%s] Successfully queried PCO\n\n", + mbim_device_get_path_display (device)); + if (!mbim_message_ms_basic_connect_extensions_pco_response_parse ( + response, + &pco_value, + &error)) { + g_printerr ("error: couldn't parse response message: %s\n", error->message); + g_error_free (error); + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + pco_data = mbim_common_str_hex (pco_value->pco_data_buffer, pco_value->pco_data_size, ' '); + g_print ("[%s] PCO:\n" + "\t Session ID: '%u'\n" + "\tPCO data type: '%s'\n" + "\tPCO data size: '%u'\n" + "\t PCO data: '%s'\n", + mbim_device_get_path_display (device), + pco_value->session_id, + VALIDATE_UNKNOWN (mbim_pco_type_get_string (pco_value->pco_data_type)), + pco_value->pco_data_size, + pco_data); + g_free (pco_data); + mbim_pco_value_free (pco_value); + + mbim_message_unref (response); + shutdown (TRUE); +} + +static void +query_lte_attach_configuration_ready (MbimDevice *device, + GAsyncResult *res) +{ + MbimMessage *response; + GError *error = NULL; + guint32 configuration_count = 0; + MbimLteAttachConfiguration **configurations = NULL; + guint i; + + response = mbim_device_command_finish (device, res, &error); + if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { + g_printerr ("error: operation failed: %s\n", error->message); + g_error_free (error); + if (response) + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + g_print ("[%s] Successfully queried LTE attach configuration\n", + mbim_device_get_path_display (device)); + + if (!mbim_message_ms_basic_connect_extensions_lte_attach_configuration_response_parse ( + response, + &configuration_count, + &configurations, + &error)) { + g_printerr ("error: couldn't parse response message: %s\n", error->message); + g_error_free (error); + mbim_message_unref (response); + shutdown (FALSE); + return; + } + +#define VALIDATE_NA(str) (str ? str : "n/a") + for (i = 0; i < configuration_count; i++) { + g_print ("Configuration %u:\n", i); + g_print (" IP type: %s\n", mbim_context_ip_type_get_string (configurations[i]->ip_type)); + g_print (" Roaming: %s\n", mbim_lte_attach_context_roaming_control_get_string (configurations[i]->roaming)); + g_print (" Source: %s\n", mbim_context_source_get_string (configurations[i]->source)); + g_print (" Access string: %s\n", VALIDATE_NA (configurations[i]->access_string)); + g_print (" Username: %s\n", VALIDATE_NA (configurations[i]->user_name)); + g_print (" Password: %s\n", VALIDATE_NA (configurations[i]->password)); + g_print (" Compression: %s\n", mbim_compression_get_string (configurations[i]->compression)); + g_print (" Auth protocol: %s\n", mbim_auth_protocol_get_string (configurations[i]->auth_protocol)); + } +#undef VALIDATE_NA + + mbim_lte_attach_configuration_array_free (configurations); + mbim_message_unref (response); + shutdown (TRUE); +} + +static void +query_lte_attach_status_ready (MbimDevice *device, + GAsyncResult *res) +{ + MbimMessage *response; + GError *error = NULL; + MbimLteAttachStatus *lte_attach_status = NULL; + + response = mbim_device_command_finish (device, res, &error); + if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { + g_printerr ("error: operation failed: %s\n", error->message); + g_error_free (error); + if (response) + mbim_message_unref (response); + shutdown (FALSE); + return; + } + + g_print ("[%s] Successfully queried LTE attach status\n", + mbim_device_get_path_display (device)); + + if (!mbim_message_ms_basic_connect_extensions_lte_attach_status_response_parse ( + response, + <e_attach_status, + &error)) { + g_printerr ("error: couldn't parse response message: %s\n", error->message); + g_error_free (error); + mbim_message_unref (response); + shutdown (FALSE); + return; + } + +#define VALIDATE_NA(str) (str ? str : "n/a") + g_print (" Attach state: %s\n", mbim_lte_attach_state_get_string (lte_attach_status->lte_attach_state)); + g_print (" IP type: %s\n", mbim_context_ip_type_get_string (lte_attach_status->ip_type)); + g_print (" Access string: %s\n", VALIDATE_NA (lte_attach_status->access_string)); + g_print (" Username: %s\n", VALIDATE_NA (lte_attach_status->user_name)); + g_print (" Password: %s\n", VALIDATE_NA (lte_attach_status->password)); + g_print (" Compression: %s\n", mbim_compression_get_string (lte_attach_status->compression)); + g_print (" Auth protocol: %s\n", mbim_auth_protocol_get_string (lte_attach_status->auth_protocol)); +#undef VALIDATE_NA + + mbim_lte_attach_status_free (lte_attach_status); + mbim_message_unref (response); + shutdown (TRUE); +} + +void +mbimcli_ms_basic_connect_extensions_run (MbimDevice *device, + GCancellable *cancellable) +{ + /* Initialize context */ + ctx = g_slice_new (Context); + ctx->device = g_object_ref (device); + ctx->cancellable = cancellable ? g_object_ref (cancellable) : NULL; + + /* Request to get PCO? */ + if (query_pco_str) { + MbimMessage *request; + MbimPcoValue pco_value; + GError *error = NULL; + + if (!session_id_parse (query_pco_str, &pco_value.session_id, &error)) { + g_printerr ("error: couldn't parse session ID: %s\n", error->message); + g_error_free (error); + shutdown (FALSE); + return; + } + + pco_value.pco_data_size = 0; + pco_value.pco_data_type = MBIM_PCO_TYPE_COMPLETE; + pco_value.pco_data_buffer = NULL; + + g_debug ("Asynchronously querying PCO..."); + request = mbim_message_ms_basic_connect_extensions_pco_query_new (&pco_value, NULL); + mbim_device_command (ctx->device, + request, + 10, + ctx->cancellable, + (GAsyncReadyCallback)query_pco_ready, + NULL); + mbim_message_unref (request); + return; + } + + /* Request to query LTE attach configuration? */ + if (query_lte_attach_configuration_flag) { + MbimMessage *request; + + g_debug ("Asynchronously querying LTE attach configuration..."); + request = mbim_message_ms_basic_connect_extensions_lte_attach_configuration_query_new (NULL); + mbim_device_command (ctx->device, + request, + 10, + ctx->cancellable, + (GAsyncReadyCallback)query_lte_attach_configuration_ready, + NULL); + mbim_message_unref (request); + return; + } + + /* Request to query LTE attach status? */ + if (query_lte_attach_status_flag) { + MbimMessage *request; + + g_debug ("Asynchronously querying LTE attach status..."); + request = mbim_message_ms_basic_connect_extensions_lte_attach_status_query_new (NULL); + mbim_device_command (ctx->device, + request, + 10, + ctx->cancellable, + (GAsyncReadyCallback)query_lte_attach_status_ready, + NULL); + mbim_message_unref (request); + return; + } + + g_warn_if_reached (); +} diff -Nru libmbim-1.14.2/src/mbim-proxy/Makefile.in libmbim-1.18.0/src/mbim-proxy/Makefile.in --- libmbim-1.14.2/src/mbim-proxy/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/src/mbim-proxy/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -130,7 +130,8 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/mbim_proxy-mbim-proxy.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -267,6 +268,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -293,6 +296,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -341,9 +349,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -393,8 +405,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -467,7 +479,13 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbim_proxy-mbim-proxy.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbim_proxy-mbim-proxy.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -583,7 +601,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -656,7 +677,7 @@ mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/mbim_proxy-mbim-proxy.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -702,7 +723,7 @@ installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/mbim_proxy-mbim-proxy.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -723,16 +744,16 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libexecPROGRAMS clean-libtool cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-libexecPROGRAMS install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip install-udevrulesDATA installcheck \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-libexecPROGRAMS clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-libexecPROGRAMS \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip install-udevrulesDATA installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ diff -Nru libmbim-1.14.2/src/mbim-proxy/mbim-proxy.c libmbim-1.18.0/src/mbim-proxy/mbim-proxy.c --- libmbim-1.14.2/src/mbim-proxy/mbim-proxy.c 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/src/mbim-proxy/mbim-proxy.c 2019-01-08 13:51:41.000000000 +0100 @@ -125,8 +125,8 @@ { g_print ("\n" PROGRAM_NAME " " PROGRAM_VERSION "\n" - "Copyright (C) 2013 Aleksander Morgado\n" - "Copyright (C) 2014 Greg Suarez\n" + "Copyright (C) 2013-2019 Aleksander Morgado\n" + "Copyright (C) 2014-2018 Greg Suarez\n" "License GPLv2+: GNU GPL version 2 or later \n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" @@ -196,10 +196,6 @@ setlocale (LC_ALL, ""); -#if !GLIB_CHECK_VERSION (2, 36, 0) - g_type_init (); -#endif - /* Setup option context, process it and destroy it */ context = g_option_context_new ("- Proxy for MBIM devices"); g_option_context_add_main_entries (context, main_entries, NULL); diff -Nru libmbim-1.14.2/utils/Makefile.in libmbim-1.18.0/utils/Makefile.in --- libmbim-1.14.2/utils/Makefile.in 2017-08-08 13:43:26.000000000 +0200 +++ libmbim-1.18.0/utils/Makefile.in 2019-01-08 13:52:19.000000000 +0100 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -213,6 +213,8 @@ MBIMCLI_LIBS = @MBIMCLI_LIBS@ MBIMPROXY_CFLAGS = @MBIMPROXY_CFLAGS@ MBIMPROXY_LIBS = @MBIMPROXY_LIBS@ +MBIM_COMMON_CFLAGS = @MBIM_COMMON_CFLAGS@ +MBIM_COMMON_LIBS = @MBIM_COMMON_LIBS@ MBIM_GLIB_LT_AGE = @MBIM_GLIB_LT_AGE@ MBIM_GLIB_LT_CURRENT = @MBIM_GLIB_LT_CURRENT@ MBIM_GLIB_LT_REVISION = @MBIM_GLIB_LT_REVISION@ @@ -239,6 +241,11 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -287,9 +294,13 @@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -321,8 +332,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -381,7 +392,10 @@ cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff -Nru libmbim-1.14.2/utils/mbim-network.in libmbim-1.18.0/utils/mbim-network.in --- libmbim-1.14.2/utils/mbim-network.in 2017-08-08 13:26:35.000000000 +0200 +++ libmbim-1.18.0/utils/mbim-network.in 2018-03-20 21:33:15.000000000 +0100 @@ -37,8 +37,8 @@ echo echo "Options:" echo " --profile=[PATH] Use the profile in the specified path" - echo " --help Show help options" - echo " --version Show version" + echo " --help, -h Show help options" + echo " --version Show version" echo echo "Notes:" echo @@ -79,7 +79,7 @@ version () { echo "mbim-network @VERSION@" - echo "Copyright (2013-2015) Aleksander Morgado" + echo "Copyright (C) 2013-2018 Aleksander Morgado" echo "License GPLv2+: GNU GPL version 2 or later " echo "This is free software: you are free to change and redistribute it." echo "There is NO WARRANTY, to the extent permitted by law." @@ -88,7 +88,7 @@ # Basic options if [ $# -lt 2 ]; then - if [ "$1" = "--help" ]; then + if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then help exit 0 elif [ "$1" = "--version" ]; then