public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
* [PATCH 01/29] libgudev: New package
@ 2022-12-01 17:22 Michael Tremer
  2022-12-01 17:22 ` [PATCH 02/29] libqmi: " Michael Tremer
                   ` (27 more replies)
  0 siblings, 28 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:22 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 5260 bytes --]

This is required for libqmi.

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 config/rootfiles/common/libgudev | 13 ++++++
 lfs/libgudev                     | 80 ++++++++++++++++++++++++++++++++
 make.sh                          |  3 +-
 3 files changed, 95 insertions(+), 1 deletion(-)
 create mode 100644 config/rootfiles/common/libgudev
 create mode 100644 lfs/libgudev

diff --git a/config/rootfiles/common/libgudev b/config/rootfiles/common/libgudev
new file mode 100644
index 000000000..2caf7f2c8
--- /dev/null
+++ b/config/rootfiles/common/libgudev
@@ -0,0 +1,13 @@
+#usr/include/gudev-1.0
+#usr/include/gudev-1.0/gudev
+#usr/include/gudev-1.0/gudev/gudev.h
+#usr/include/gudev-1.0/gudev/gudevclient.h
+#usr/include/gudev-1.0/gudev/gudevdevice.h
+#usr/include/gudev-1.0/gudev/gudevenumerator.h
+#usr/include/gudev-1.0/gudev/gudevenums.h
+#usr/include/gudev-1.0/gudev/gudevenumtypes.h
+#usr/include/gudev-1.0/gudev/gudevtypes.h
+#usr/lib/libgudev-1.0.so
+usr/lib/libgudev-1.0.so.0
+usr/lib/libgudev-1.0.so.0.3.0
+#usr/lib/pkgconfig/gudev-1.0.pc
diff --git a/lfs/libgudev b/lfs/libgudev
new file mode 100644
index 000000000..bf0fec9b8
--- /dev/null
+++ b/lfs/libgudev
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2021  IPFire Team  <info(a)ipfire.org>                     #
+#                                                                             #
+# 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.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 237
+
+THISAPP    = libgudev-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_BLAKE2 = 5d39d4d26d8c8b3fa877319c294036294dbda96b340d2d04d7a35449d91b58de876b96b5e3d9423cdf3e1d3e2a94f5a861b1ac1e74a610637e0fc66248c68309
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+b2 : $(subst %,%_BLAKE2,$(objects))
+
+###############################################################################
+# Downloading, checking, b2sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+	@$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+	@$(LOAD)
+
+$(subst %,%_BLAKE2,$(objects)) :
+	@$(B2SUM)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+	@$(PREBUILD)
+	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+	cd $(DIR_APP) && meson	--prefix=/usr \
+				--sysconfdir=/etc \
+				--buildtype=release \
+				builddir/
+	cd $(DIR_APP) && ninja -C builddir/ $(MAKETUNING)
+	cd $(DIR_APP) && ninja -C builddir/ install
+	@rm -rf $(DIR_APP)
+	@$(POSTBUILD)
diff --git a/make.sh b/make.sh
index 413d04491..366596fc2 100755
--- a/make.sh
+++ b/make.sh
@@ -1176,6 +1176,8 @@ buildipfire() {
   lfsmake2 xradio		KCFG=""
   lfsmake2 linux-initrd		KCFG=""
 
+  lfsmake2 glib
+  lfsmake2 libgudev
   lfsmake2 libgpg-error
   lfsmake2 libgcrypt
   lfsmake2 libassuan
@@ -1421,7 +1423,6 @@ buildipfire() {
   lfsmake2 python3-inotify
   lfsmake2 python3-docutils
   lfsmake2 python3-daemon
-  lfsmake2 glib
   lfsmake2 ntp
   lfsmake2 openssh
   lfsmake2 fontconfig
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 02/29] libqmi: New package
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
@ 2022-12-01 17:22 ` Michael Tremer
  2022-12-01 17:22 ` [PATCH 03/29] dhcpcd: Log any unhandled client events Michael Tremer
                   ` (26 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:22 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 38210 bytes --]

This library implements the QMI modem protocol.

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 config/rootfiles/common/libqmi | 468 +++++++++++++++++++++++++++++++++
 lfs/libqmi                     |  80 ++++++
 make.sh                        |   1 +
 3 files changed, 549 insertions(+)
 create mode 100644 config/rootfiles/common/libqmi
 create mode 100644 lfs/libqmi

diff --git a/config/rootfiles/common/libqmi b/config/rootfiles/common/libqmi
new file mode 100644
index 000000000..ba26300c3
--- /dev/null
+++ b/config/rootfiles/common/libqmi
@@ -0,0 +1,468 @@
+usr/bin/qmi-firmware-update
+usr/bin/qmi-network
+usr/bin/qmicli
+#usr/include/libqmi-glib
+#usr/include/libqmi-glib/libqmi-glib.h
+#usr/include/libqmi-glib/qmi-client.h
+#usr/include/libqmi-glib/qmi-compat.h
+#usr/include/libqmi-glib/qmi-device.h
+#usr/include/libqmi-glib/qmi-dms.h
+#usr/include/libqmi-glib/qmi-dpm.h
+#usr/include/libqmi-glib/qmi-dsd.h
+#usr/include/libqmi-glib/qmi-enum-types.h
+#usr/include/libqmi-glib/qmi-enums-dms.h
+#usr/include/libqmi-glib/qmi-enums-dsd.h
+#usr/include/libqmi-glib/qmi-enums-gas.h
+#usr/include/libqmi-glib/qmi-enums-loc.h
+#usr/include/libqmi-glib/qmi-enums-nas.h
+#usr/include/libqmi-glib/qmi-enums-oma.h
+#usr/include/libqmi-glib/qmi-enums-pbm.h
+#usr/include/libqmi-glib/qmi-enums-pdc.h
+#usr/include/libqmi-glib/qmi-enums-pds.h
+#usr/include/libqmi-glib/qmi-enums-private.h
+#usr/include/libqmi-glib/qmi-enums-qos.h
+#usr/include/libqmi-glib/qmi-enums-sar.h
+#usr/include/libqmi-glib/qmi-enums-uim.h
+#usr/include/libqmi-glib/qmi-enums-voice.h
+#usr/include/libqmi-glib/qmi-enums-wda.h
+#usr/include/libqmi-glib/qmi-enums-wds.h
+#usr/include/libqmi-glib/qmi-enums-wms.h
+#usr/include/libqmi-glib/qmi-enums.h
+#usr/include/libqmi-glib/qmi-error-types.h
+#usr/include/libqmi-glib/qmi-errors.h
+#usr/include/libqmi-glib/qmi-flags64-dms.h
+#usr/include/libqmi-glib/qmi-flags64-dsd.h
+#usr/include/libqmi-glib/qmi-flags64-loc.h
+#usr/include/libqmi-glib/qmi-flags64-nas.h
+#usr/include/libqmi-glib/qmi-flags64-types.h
+#usr/include/libqmi-glib/qmi-flags64-wds.h
+#usr/include/libqmi-glib/qmi-gas.h
+#usr/include/libqmi-glib/qmi-gms.h
+#usr/include/libqmi-glib/qmi-loc.h
+#usr/include/libqmi-glib/qmi-message-context.h
+#usr/include/libqmi-glib/qmi-message.h
+#usr/include/libqmi-glib/qmi-nas.h
+#usr/include/libqmi-glib/qmi-oma.h
+#usr/include/libqmi-glib/qmi-pbm.h
+#usr/include/libqmi-glib/qmi-pdc.h
+#usr/include/libqmi-glib/qmi-pds.h
+#usr/include/libqmi-glib/qmi-proxy.h
+#usr/include/libqmi-glib/qmi-qos.h
+#usr/include/libqmi-glib/qmi-sar.h
+#usr/include/libqmi-glib/qmi-uim.h
+#usr/include/libqmi-glib/qmi-utils.h
+#usr/include/libqmi-glib/qmi-version.h
+#usr/include/libqmi-glib/qmi-voice.h
+#usr/include/libqmi-glib/qmi-wda.h
+#usr/include/libqmi-glib/qmi-wds.h
+#usr/include/libqmi-glib/qmi-wms.h
+#usr/lib/libqmi-glib.la
+#usr/lib/libqmi-glib.so
+usr/lib/libqmi-glib.so.5
+usr/lib/libqmi-glib.so.5.8.0
+#usr/lib/pkgconfig/qmi-glib.pc
+usr/libexec/qmi-proxy
+#usr/share/bash-completion/completions/qmicli
+#usr/share/gtk-doc/html/libqmi-glib
+#usr/share/gtk-doc/html/libqmi-glib/QmiClient.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientDms.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientDpm.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientDsd.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientGas.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientGms.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientLoc.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientNas.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientOma.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientPbm.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientPdc.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientPds.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientQos.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientSar.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientUim.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientVoice.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientWda.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientWds.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiClientWms.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiDevice.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiMessageContext.html
+#usr/share/gtk-doc/html/libqmi-glib/QmiProxy.html
+#usr/share/gtk-doc/html/libqmi-glib/annotation-glossary.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-0.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-10.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-12.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-14.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-16.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-18.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-20.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-22-4.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-22.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-24-6.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-24.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-26-2.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-26-6.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-26.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-28-6.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-28.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-30-2.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-30-8.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-30.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-4.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-6.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-1-8.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-deprecated.html
+#usr/share/gtk-doc/html/libqmi-glib/api-index-full.html
+#usr/share/gtk-doc/html/libqmi-glib/ch01.html
+#usr/share/gtk-doc/html/libqmi-glib/ch02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch02s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch03.html
+#usr/share/gtk-doc/html/libqmi-glib/ch03s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch04.html
+#usr/share/gtk-doc/html/libqmi-glib/ch04s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch05.html
+#usr/share/gtk-doc/html/libqmi-glib/ch05s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch06.html
+#usr/share/gtk-doc/html/libqmi-glib/ch06s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch07.html
+#usr/share/gtk-doc/html/libqmi-glib/ch07s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch08.html
+#usr/share/gtk-doc/html/libqmi-glib/ch09.html
+#usr/share/gtk-doc/html/libqmi-glib/ch09s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch10.html
+#usr/share/gtk-doc/html/libqmi-glib/ch10s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch11.html
+#usr/share/gtk-doc/html/libqmi-glib/ch12.html
+#usr/share/gtk-doc/html/libqmi-glib/ch12s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch13.html
+#usr/share/gtk-doc/html/libqmi-glib/ch13s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch14.html
+#usr/share/gtk-doc/html/libqmi-glib/ch14s02.html
+#usr/share/gtk-doc/html/libqmi-glib/ch15.html
+#usr/share/gtk-doc/html/libqmi-glib/ch16.html
+#usr/share/gtk-doc/html/libqmi-glib/ch17.html
+#usr/share/gtk-doc/html/libqmi-glib/ch18.html
+#usr/share/gtk-doc/html/libqmi-glib/ch19.html
+#usr/share/gtk-doc/html/libqmi-glib/ch20.html
+#usr/share/gtk-doc/html/libqmi-glib/home.png
+#usr/share/gtk-doc/html/libqmi-glib/index.html
+#usr/share/gtk-doc/html/libqmi-glib/left-insensitive.png
+#usr/share/gtk-doc/html/libqmi-glib/left.png
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Common-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Common-utilities.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Activate-Automatic-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Activate-Manual-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Delete-Stored-Image-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Foxconn-Change-Device-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Foxconn-Get-Firmware-Version-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Foxconn-Set-FCC-Authentication-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Foxconn-Set-FCC-Authentication-v2-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Activation-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Alt-Net-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Band-Capabilities-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Boot-Image-Download-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Capabilities-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Factory-SKU-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Firmware-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Hardware-Revision-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-IDs-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-MAC-Address-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-MSISDN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Manufacturer-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Model-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Operating-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-PRL-Version-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Power-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Revision-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Software-Version-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Stored-Image-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-Time-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Get-User-Lock-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-HP-Change-Device-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-List-Stored-Images-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Read-ERI-File-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Read-User-Data-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Restore-Factory-Defaults-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Alt-Net-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Boot-Image-Download-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-FCC-Authentication-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Firmware-ID-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Firmware-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Operating-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Service-Programming-Code-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-Time-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-User-Lock-Code-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Set-User-Lock-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Swi-Get-Current-Firmware-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Swi-Get-USB-Composition-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Swi-Set-USB-Composition-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Change-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Get-CK-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Get-ICCID-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Get-IMSI-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Get-PIN-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Get-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Set-CK-Protection-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Set-PIN-Protection-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Unblock-CK-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Unblock-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-UIM-Verify-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Validate-Service-Programming-Code-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-Write-User-Data-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DMS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DPM-Close-Port-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DPM-Open-Port-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DSD-Get-APN-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DSD-Set-APN-Type-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-DSD-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Deprecated-Interface.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Errors.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-GAS-DMS-Get-Firmware-List-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-GAS-DMS-Set-Active-Firmware-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-GAS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-GMS-Test-Get-Value-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-GMS-Test-Set-Value-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Delete-Assistance-Data-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Delete-Assistance-Data-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Engine-State-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Fix-Recurrence-Type-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-GNSS-Sv-Info-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Engine-Lock-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Engine-Lock-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-NMEA-Types-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-NMEA-Types-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Operation-Mode-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Operation-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Predicted-Orbits-Data-Source-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Predicted-Orbits-Data-Source-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Server-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Get-Server-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Inject-Predicted-Orbits-Data-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Inject-Predicted-Orbits-Data-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Inject-Xtra-Data-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Inject-Xtra-Data-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-NMEA-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Position-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Register-Events-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Engine-Lock-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Engine-Lock-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-NMEA-Types-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-NMEA-Types-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Operation-Mode-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Operation-Mode-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Server-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Set-Server-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Start-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-Stop-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-LOC-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Attach-Detach-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Config-Signal-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Force-Network-Search-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-CDMA-Position-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Cell-Location-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-DRX-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Home-Network-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-LTE-Cphy-CA-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Operator-Name-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-PLMN-Name-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Preferred-Networks-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-RF-Band-Information-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Serving-System-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Signal-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Signal-Strength-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-System-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-System-Selection-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Technology-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Get-Tx-Rx-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Initiate-Network-Register-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Network-Reject-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Network-Scan-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Network-Time-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Operator-Name-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Register-Indications-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Serving-System-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Set-Preferred-Networks-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Set-System-Selection-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Set-Technology-Preference-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Signal-Info-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-Swi-Get-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-System-Info-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-NAS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Cancel-Session-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Get-Feature-Setting-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Get-Session-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Send-Selection-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Set-Feature-Setting-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-Start-Session-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-OMA-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PBM-Get-All-Capabilities-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PBM-Get-Capabilities-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PBM-Indication-Register-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PBM-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Activate-Config-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Activate-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Config-Change-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Deactivate-Config-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Deactivate-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Delete-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Config-Info-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Config-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Config-Limits-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Default-Config-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Selected-Config-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Get-Selected-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-List-Configs-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-List-Configs-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Load-Config-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Load-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Register-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Set-Selected-Config-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-Set-Selected-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDC-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Get-AGPS-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Get-Auto-Tracking-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Get-Default-Tracking-Session-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Get-GPS-Service-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Set-AGPS-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Set-Auto-Tracking-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Set-Default-Tracking-Session-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-Set-GPS-Service-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-PDS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Flow-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Get-Flow-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Get-Network-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Network-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-Swi-Read-Data-Stats-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QOS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-QmiMessage.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-SAR-RF-Get-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-SAR-RF-Set-State-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-SAR-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Card-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Change-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Change-Provisioning-Session-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Depersonalization-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Get-Card-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Get-Configuration-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Get-File-Attributes-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Get-Slot-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Power-Off-SIM-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Power-On-SIM-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Read-Record-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Read-Transparent-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Refresh-Complete-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Refresh-Register-All-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Refresh-Register-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Refresh-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Register-Events-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Set-PIN-Protection-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Slot-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Switch-Slot-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Unblock-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-Verify-PIN-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-UIM-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-All-Call-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Answer-Call-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Answer-USSD-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Cancel-USSD-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Dial-Call-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-End-Call-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Get-All-Call-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Get-Call-Waiting-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Get-Config-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Indication-Register-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Manage-Calls-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Originate-USSD-No-Wait-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Originate-USSD-No-Wait-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Originate-USSD-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Release-USSD-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Set-Supplementary-Service-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-Supplementary-Service-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-VOICE-USSD-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Version-and-feature-checks.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-Voice-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDA-Get-Data-Format-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDA-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDA-Set-Data-Format-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDA-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Bind-Data-Port-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Bind-Mux-Data-Port-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Create-Profile-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Delete-Profile-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Autoconnect-Settings-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Channel-Rates-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Current-Data-Bearer-Technology-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Current-Settings-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Data-Bearer-Technology-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Default-Profile-Number-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Default-Settings-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Dormancy-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-LTE-Attach-PDN-List-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-LTE-Attach-Parameters-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Max-LTE-Attach-PDN-Number-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-PDN-Throttle-Info-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Packet-Service-Status-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Packet-Statistics-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Profile-List-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Profile-Settings-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Go-Active-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Go-Dormant-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Modify-Profile-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Packet-Service-Status-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-Autoconnect-Settings-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-Default-Profile-Number-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-IP-Family-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-LTE-Attach-PDN-List-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Set-LTE-Attach-PDN-List-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Start-Network-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Stop-Network-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-Swi-Create-Profile-Indexed-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WDS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Delete-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Event-Report-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Get-Message-Protocol-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Get-Routes-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Get-Supported-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-List-Messages-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Modify-Tag-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Raw-Read-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Raw-Send-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Raw-Write-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Reset-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-SMSC-Address-indication.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Send-Ack-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Send-From-Memory-Storage-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Set-Event-Report-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-Set-Routes-request.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib-WMS-enumerations-and-flags.html
+#usr/share/gtk-doc/html/libqmi-glib/libqmi-glib.devhelp2
+#usr/share/gtk-doc/html/libqmi-glib/object-tree.html
+#usr/share/gtk-doc/html/libqmi-glib/right-insensitive.png
+#usr/share/gtk-doc/html/libqmi-glib/right.png
+#usr/share/gtk-doc/html/libqmi-glib/style.css
+#usr/share/gtk-doc/html/libqmi-glib/up-insensitive.png
+#usr/share/gtk-doc/html/libqmi-glib/up.png
+#usr/share/man/man1/qmi-firmware-update.1
+#usr/share/man/man1/qmi-network.1
+#usr/share/man/man1/qmicli.1
diff --git a/lfs/libqmi b/lfs/libqmi
new file mode 100644
index 000000000..146c497aa
--- /dev/null
+++ b/lfs/libqmi
@@ -0,0 +1,80 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2019  IPFire Team  <info(a)ipfire.org>                     #
+#                                                                             #
+# 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.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.30.8
+
+THISAPP    = libqmi-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_BLAKE2 = c8d98106783eb22571ee82c0012e1ce7ed79e94818350134b80853e16fa287c77bafb34d2913690ae593d02112dc5d2b0ff77606a24c4ce63733fd64245961a1
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+b2 : $(subst %,%_BLAKE2,$(objects))
+
+dist:
+	@$(PAK)
+
+###############################################################################
+# Downloading, checking, b2sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+	@$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+	@$(LOAD)
+
+$(subst %,%_BLAKE2,$(objects)) :
+	@$(B2SUM)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+	@$(PREBUILD)
+	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+	cd $(DIR_APP) && ./configure --prefix=/usr --disable-static
+	cd $(DIR_APP) && make $(MAKETUNING)
+	cd $(DIR_APP) && make install
+	@rm -rf $(DIR_APP)
+	@$(POSTBUILD)
diff --git a/make.sh b/make.sh
index 366596fc2..0d1457d99 100755
--- a/make.sh
+++ b/make.sh
@@ -1197,6 +1197,7 @@ buildipfire() {
   lfsmake2 dhcpcd
   lfsmake2 boost
   lfsmake2 linux-atm
+  lfsmake2 libqmi
   lfsmake2 gdbm
   lfsmake2 pam
   lfsmake2 c-ares
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 03/29] dhcpcd: Log any unhandled client events
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
  2022-12-01 17:22 ` [PATCH 02/29] libqmi: " Michael Tremer
@ 2022-12-01 17:22 ` Michael Tremer
  2022-12-01 17:22 ` [PATCH 04/29] dhcpcd.exe: Allow using the DHCP setup scripts when RED is not configured as DHCP Michael Tremer
                   ` (25 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:22 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 659 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index c243ce1a7..38632aa61 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -90,4 +90,7 @@ dhcpcd_down()
 case "$reason" in
 BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC)	dhcpcd_up;;
 PREINIT|EXPIRE|FAIL|IPV4LL|NAK|RELEASE|STOP)		dhcpcd_down;;
+*)
+	logger -p "local0.info" -t "dhcpcd.exe[$$]" "Unhandled DHCP event: ${reason}"
+	;;
 esac
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 04/29] dhcpcd.exe: Allow using the DHCP setup scripts when RED is not configured as DHCP
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
  2022-12-01 17:22 ` [PATCH 02/29] libqmi: " Michael Tremer
  2022-12-01 17:22 ` [PATCH 03/29] dhcpcd: Log any unhandled client events Michael Tremer
@ 2022-12-01 17:22 ` Michael Tremer
  2022-12-01 17:22 ` [PATCH 05/29] network: Allow passing custom options to dhcpcd Michael Tremer
                   ` (24 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:22 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 2267 bytes --]

This is useful for dial-up methods that use DHCP, but when RED_TYPE is
configured as PPP.

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 42 +++++++++++++--------------
 1 file changed, 20 insertions(+), 22 deletions(-)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index 38632aa61..8a409d010 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -34,32 +34,30 @@ dhcpcd_up()
 	fi
 
 	# Only if RED_TYPE=DHCP update /var/ipfire/red
-	if [ "$RED_TYPE" == "DHCP" ]; then
-		# Check if we have to restart the services at update
-		[ ! -e "/var/ipfire/red/active" ] && update=1;
-		if [ "$old_domain_name_service" != "$new_domain_name_service" ]; then
-			update=1;
-		fi
-		if [ "$old_ip_address" != "$new_ip_address" ]; then
-			update=1;
-		fi
-		if [ "$old_routers" != "$new_routers" ]; then
-			update=1;
-		fi
+	# Check if we have to restart the services at update
+	[ ! -e "/var/ipfire/red/active" ] && update=1;
+	if [ "$old_domain_name_service" != "$new_domain_name_service" ]; then
+		update=1;
+	fi
+	if [ "$old_ip_address" != "$new_ip_address" ]; then
+		update=1;
+	fi
+	if [ "$old_routers" != "$new_routers" ]; then
+		update=1;
+	fi
 
-		# Get DNS from dhcp
-		/etc/rc.d/helper/getdnsfromdhcpc.pl 1 > /var/run/dns1
-		/etc/rc.d/helper/getdnsfromdhcpc.pl 2 > /var/run/dns2
+	# Get DNS from dhcp
+	/etc/rc.d/helper/getdnsfromdhcpc.pl 1 > /var/run/dns1
+	/etc/rc.d/helper/getdnsfromdhcpc.pl 2 > /var/run/dns2
 
-		#Get IP Address
-		echo -n "$new_ip_address"  > /var/ipfire/red/local-ipaddress
+	#Get IP Address
+	echo -n "$new_ip_address"  > /var/ipfire/red/local-ipaddress
 
-		#Get default gateway
-		grep -v -E "\<gateway\>" /etc/hosts > /tmp/hosts
-		echo "$new_routers	gateway"  >> /tmp/hosts
-		mv /tmp/hosts /etc/hosts
+	#Get default gateway
+	grep -v -E "\<gateway\>" /etc/hosts > /tmp/hosts
+	echo "$new_routers	gateway"  >> /tmp/hosts
+	mv /tmp/hosts /etc/hosts
 
-	fi
 	if [ $update ]; then
 		[ -e "/var/ipfire/red/active" ] || touch /var/ipfire/red/active
 		echo -n "$new_routers" > /var/ipfire/red/remote-ipaddress
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 05/29] network: Allow passing custom options to dhcpcd
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (2 preceding siblings ...)
  2022-12-01 17:22 ` [PATCH 04/29] dhcpcd.exe: Allow using the DHCP setup scripts when RED is not configured as DHCP Michael Tremer
@ 2022-12-01 17:22 ` Michael Tremer
  2022-12-01 17:22 ` [PATCH 06/29] network: Add support for QMI modems Michael Tremer
                   ` (23 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:22 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 986 bytes --]

This is useful for debugging.

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/functions.network | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/initscripts/networking/functions.network b/src/initscripts/networking/functions.network
index eae4a7b7c..f246919de 100644
--- a/src/initscripts/networking/functions.network
+++ b/src/initscripts/networking/functions.network
@@ -59,8 +59,9 @@ dhcpcd_is_running() {
 
 dhcpcd_start() {
 	# This function will start a dhcpcd on a speciefied device.
-
 	local device="$1"
+	shift
+
 	local dhcp_start=()
 
 	boot_mesg -n "Starting dhcpcd on the ${device} interface..."
@@ -84,6 +85,9 @@ dhcpcd_start() {
 		dhcp_start+=( "--static" "mtu=${RED_DHCP_FORCE_MTU}" )
 	fi
 
+	# Append any further command line options
+	dhcp_start+=( $@ )
+
 	# Start dhcpcd.
 	/sbin/dhcpcd "${dhcp_start[@]}" ${device} >/dev/null 2>&1
 	ret="$?"
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 06/29] network: Add support for QMI modems
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (3 preceding siblings ...)
  2022-12-01 17:22 ` [PATCH 05/29] network: Allow passing custom options to dhcpcd Michael Tremer
@ 2022-12-01 17:22 ` Michael Tremer
  2022-12-01 17:22 ` [PATCH 07/29] network: Drop any traces of ISDN Michael Tremer
                   ` (22 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:22 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 6649 bytes --]

QMI is a proprietary interface from Qualcomm which are absolute pioneers
when it comes to interfacing with modems. I don't think there would be
any way to make this any more complicated and bloated.

So, bascially we will put the modem into a raw IP mode which changes the
interface into Point-to-Point mode.

We then configure the provider settings using qmicli. After that, the
modem will try to connect to the provider and obtain an IP address.

We will then start a DHCP client which does not do any DHCP-ing because
implementing that would be too complicated. Instead we do something even
*more* complicated where we would launch a custom script which asks the
modem for the allocated IP address and will configure it into the
device. The DHCP client then reads that IP address from the device and
pretends it came up with it by itself. Such an easy way to do this.

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe        | 62 ++++++++++++++
 src/initscripts/networking/functions.network | 90 ++++++++++++++++++++
 src/initscripts/networking/red               | 36 ++++++++
 3 files changed, 188 insertions(+)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index 8a409d010..be6d63708 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -20,6 +20,7 @@
 
 . /etc/sysconfig/rc
 . $rc_functions
+. /etc/init.d/networking/functions.network
 
 eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
 
@@ -85,9 +86,70 @@ dhcpcd_down()
 	fi
 }
 
+# Called when dhcpcd relies on a third party to configure an IP address
+dhcpcd_3rdparty() {
+	local qmi_device="$(qmi_find_device "${interface}")"
+
+	if [ -n "${qmi_device}" ]; then
+		setup_qmi "${qmi_device}" || return $?
+	fi
+
+	return 0
+}
+
+setup_qmi() {
+	local device="${1}"
+
+	local address
+	local netmask
+	local gateway
+	local mtu=1500
+
+	local line
+	while read -r line; do
+		# Extract the value
+		value="${line#*: }"
+
+		case "${line}" in
+			*IPv4\ address:*)
+				address="${value}"
+				;;
+			*IPv4\ subnet\ mask:*)
+				netmask="${value}"
+				;;
+			*IPv4\ gateway\ address:*)
+				gateway="${value}"
+				;;
+			*MTU:*)
+				mtu="${value}"
+				;;
+		esac
+	done <<< "$(qmicli --device="${device}" --wds-get-current-settings)"
+
+	if [ -z "${address}" ] || [ -z "${netmask}" ] || [ -z "${gateway}" ]; then
+		logger -p "local0.info" -t "dhcpcd.exe[$$]" \
+			"Could not retrieve all information from the QMI interface"
+		return 1
+	fi
+
+	# Flush any previous configuration
+	ip addr flush dev "${interface}"
+
+	# Configure the IP address
+	ip addr add "${address}/${netmask}" dev "${interface}"
+
+	# Configure the default route
+	ip route add default via "${gateway}" #mtu "${mtu}"
+
+	return 0
+}
+
 case "$reason" in
 BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC)	dhcpcd_up;;
 PREINIT|EXPIRE|FAIL|IPV4LL|NAK|RELEASE|STOP)		dhcpcd_down;;
+3RDPARTY)
+	dhcpcd_3rdparty
+	;;
 *)
 	logger -p "local0.info" -t "dhcpcd.exe[$$]" "Unhandled DHCP event: ${reason}"
 	;;
diff --git a/src/initscripts/networking/functions.network b/src/initscripts/networking/functions.network
index f246919de..9698424fd 100644
--- a/src/initscripts/networking/functions.network
+++ b/src/initscripts/networking/functions.network
@@ -169,3 +169,93 @@ dhcpcd_stop() {
 		echo_failure
 	fi
 }
+
+# QMI stuff
+
+qmi_find_device() {
+	local intf="${1}"
+	local _intf
+
+	local path
+	for path in /dev/cdc-*; do
+		if [ -c "${path}" ]; then
+			_intf="$(qmicli --device="${path}" --device-open-proxy --get-wwan-iface)"
+
+			# Check if the interface matches
+			if [ "${intf}" = "${_intf}" ]; then
+				echo "${path}"
+				return 0
+			fi
+		fi
+	done
+
+	# Nothing found
+	return 1
+}
+
+qmi_enable_rawip_mode() {
+	local intf="${1}"
+
+	# Shut down the device first
+	ip link set "${intf}" down &>/dev/null
+
+	echo "Y" > "/sys/class/net/${intf}/qmi/raw_ip"
+}
+
+qmi_configure_apn() {
+	local device="${1}"
+
+	# APN settings
+	local apn="${2}"
+	local auth="${3}"
+	local username="${4}"
+	local password="${5}"
+
+	local args=(
+		# We only support IPv4 right now
+		"ip-type=4"
+	)
+
+	# Set APN
+	if [ -n "${apn}" ]; then
+		args+=( "apn=${apn}" )
+	fi
+
+	# Set auth
+	case "${auth}" in
+		PAP|CHAP)
+			args+=( "auth=${auth}" )
+			;;
+	esac
+
+	# Set username
+	if [ -n "${username}" ]; then
+		args+=( "username=${username}" )
+	fi
+
+	# Set password
+	if [ -n "${password}" ]; then
+		args+=( "password=${password}" )
+	fi
+
+	local _args
+
+	local arg
+	for arg in ${args[@]}; do
+		if [ -n "${_args}" ]; then
+			_args="${_args},"
+		fi
+		_args="${_args}${arg}"
+	done
+
+	qmicli --device="${device}" --device-open-proxy \
+		--wds-start-network="${_args}" \
+		--client-no-release-cid
+}
+
+qmi_reset() {
+	local device="${1}"
+
+	qmicli --device="${device}" --device-open-proxy \
+		--wds-reset
+}
diff --git a/src/initscripts/networking/red b/src/initscripts/networking/red
index fc10e077a..7df61c1cf 100644
--- a/src/initscripts/networking/red
+++ b/src/initscripts/networking/red
@@ -210,6 +210,27 @@ case "${1}" in
 				if [ "$TYPE" == "pptpatm" ]; then
 					TYPE="pptp"
 				fi
+
+			# QMI
+			elif [ "$TYPE" = "qmi" ]; then
+				DEVICE="$(qmi_find_device "${RED_DEV}")"
+
+				boot_mesg "Bringing up QMI on ${RED_DEV} (${DEVICE})..."
+
+				# Enable RAW-IP mode
+				qmi_enable_rawip_mode "${RED_DEV}"
+
+				# Configure APN
+				qmi_configure_apn "${DEVICE}" "${APN}" "${AUTH}" "${USERNAME}" "${PASSWORD}"
+
+				# Set up the interface
+				ip link set "${RED_DEV}" up &>/dev/null
+
+				# Start the DHCP client
+				dhcpcd_start "${RED_DEV}" --debug
+
+				# Done
+				exit 0
 			fi
 
 			if [ "$TYPE" == "vdsl" ]; then
@@ -477,6 +498,21 @@ case "${1}" in
 			run_subdir ${rc_base}/init.d/networking/red.down/
 
 		elif [ "$TYPE" == "PPPOE" ]; then
+			eval $(/usr/local/bin/readhash /var/ipfire/ppp/settings)
+
+			if [ "${TYPE}" = "qmi" ]; then
+				boot_mesg "Bringing down the QMI interface ${RED_DEV}..."
+				DEVICE="$(qmi_find_device "${RED_DEV}")"
+
+				# Stop the DHCP client on RED
+				dhcpcd_stop "${RED_DEV}"
+
+				# Reset any QMI settings
+				qmi_reset "${DEVICE}"
+
+				exit 0
+			fi
+
 			boot_mesg "Bringing down the PPP interface ..."
 			rm -f /var/ipfire/red/keepconnected
 			killall -w -s TERM /usr/sbin/pppd 2>/dev/null
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 07/29] network: Drop any traces of ISDN
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (4 preceding siblings ...)
  2022-12-01 17:22 ` [PATCH 06/29] network: Add support for QMI modems Michael Tremer
@ 2022-12-01 17:22 ` Michael Tremer
  2022-12-01 17:22 ` [PATCH 08/29] pppsetup.cgi: Add support for QMI profiles Michael Tremer
                   ` (21 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:22 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 25811 bytes --]

This has been removed a long time ago and we should probably spend a
little bit more time on keeping the networking code tidy :)

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 config/rootfiles/common/configroot |  2 --
 doc/language_issues.de             |  5 -----
 doc/language_issues.en             |  2 +-
 doc/language_issues.es             |  1 -
 doc/language_issues.fr             |  5 -----
 doc/language_issues.it             |  5 -----
 doc/language_issues.nl             |  5 -----
 doc/language_issues.pl             |  5 -----
 doc/language_issues.ru             |  5 -----
 doc/language_issues.tr             |  5 -----
 html/cgi-bin/pppsetup.cgi          | 16 +++++-----------
 langs/de/cgi-bin/de.pl             |  5 -----
 langs/en/cgi-bin/en.pl             |  5 -----
 langs/es/cgi-bin/es.pl             |  1 -
 langs/fr/cgi-bin/fr.pl             |  5 -----
 langs/it/cgi-bin/it.pl             |  5 -----
 langs/nl/cgi-bin/nl.pl             |  5 -----
 langs/pl/cgi-bin/pl.pl             |  5 -----
 langs/ru/cgi-bin/ru.pl             |  5 -----
 langs/tr/cgi-bin/tr.pl             |  5 -----
 lfs/configroot                     |  4 ++--
 src/ppp/ip-up                      |  5 -----
 22 files changed, 8 insertions(+), 98 deletions(-)

diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot
index 4d631cea5..bc979cf2c 100644
--- a/config/rootfiles/common/configroot
+++ b/config/rootfiles/common/configroot
@@ -85,8 +85,6 @@ var/ipfire/ipblocklist-functions.pl
 var/ipfire/ipblocklist
 #var/ipfire/ipblocklist/modified
 #var/ipfire/ipblocklist/settings
-var/ipfire/isdn
-#var/ipfire/isdn/settings
 var/ipfire/key
 var/ipfire/lang.pl
 var/ipfire/langs
diff --git a/doc/language_issues.de b/doc/language_issues.de
index 5cbcb1111..6a5f5f108 100644
--- a/doc/language_issues.de
+++ b/doc/language_issues.de
@@ -376,7 +376,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -424,10 +423,6 @@ WARNING: translation string unused: ipblocklist category scanner
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: ipsec no connections
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
diff --git a/doc/language_issues.en b/doc/language_issues.en
index c559c62a7..0a9b66ba0 100644
--- a/doc/language_issues.en
+++ b/doc/language_issues.en
@@ -2118,7 +2118,7 @@ WARNING: untranslated string: volup10 = Increase volume by 10
 WARNING: untranslated string: volup5 = Increase volume by 5
 WARNING: untranslated string: vpi number = VPI number:
 WARNING: untranslated string: vpn = VPN
-WARNING: untranslated string: vpn altname syntax = SubjectAltName is a comma separated list of e-mail, dns, uri, rid and ip objects.<br />email:an email address. Syntax email:copy takes the email field from the cert to be used.<br />DNS:a valid domain name.<br />URI:any valid uri.<br />RID:registered object identifier.<br />IP:an IP address.<br />Note:charset is limited and case is significant.<br />Example:<br /><b>e-mail:</b>ipfire(a)foo.org<b>,email:</b>copy<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/to/something
+WARNING: untranslated string: vpn altname syntax = SubjectAltName is a comma separated list of email, dns, uri, rid and ip objects.<br />email:an email address. Syntax email:copy takes the email field from the cert to be used.<br />DNS:a valid domain name.<br />URI:any valid uri.<br />RID:registered object identifier.<br />IP:an IP address.<br />Note:charset is limited and case is significant.<br />Example:<br /><b>email:</b>ipfire(a)foo.org<b>,email:</b>copy<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/to/something
 WARNING: untranslated string: vpn auth-dn = Peer is identified by either IPV4_ADDR, FQDN, USER_FQDN or DER_ASN1_DN string in remote ID field
 WARNING: untranslated string: vpn broken = Broken
 WARNING: untranslated string: vpn connecting = CONNECTING
diff --git a/doc/language_issues.es b/doc/language_issues.es
index 2254e484f..b1530c655 100644
--- a/doc/language_issues.es
+++ b/doc/language_issues.es
@@ -415,7 +415,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
diff --git a/doc/language_issues.fr b/doc/language_issues.fr
index 1ad14cd34..8d7fd2092 100644
--- a/doc/language_issues.fr
+++ b/doc/language_issues.fr
@@ -404,7 +404,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -454,10 +453,6 @@ WARNING: translation string unused: ipblocklist category scanner
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: ipsec no connections
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
diff --git a/doc/language_issues.it b/doc/language_issues.it
index c7638dbd6..a4fd5ff83 100644
--- a/doc/language_issues.it
+++ b/doc/language_issues.it
@@ -372,7 +372,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -417,10 +416,6 @@ WARNING: translation string unused: ip address in use
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: ipsec no connections
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
diff --git a/doc/language_issues.nl b/doc/language_issues.nl
index 4ef506798..39f546dbb 100644
--- a/doc/language_issues.nl
+++ b/doc/language_issues.nl
@@ -374,7 +374,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -419,10 +418,6 @@ WARNING: translation string unused: ip address in use
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: ipsec no connections
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
diff --git a/doc/language_issues.pl b/doc/language_issues.pl
index ffea51ab3..6cf1299e9 100644
--- a/doc/language_issues.pl
+++ b/doc/language_issues.pl
@@ -315,7 +315,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -359,10 +358,6 @@ WARNING: translation string unused: invert
 WARNING: translation string unused: ip address in use
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
diff --git a/doc/language_issues.ru b/doc/language_issues.ru
index 4257c0291..a1054070c 100644
--- a/doc/language_issues.ru
+++ b/doc/language_issues.ru
@@ -312,7 +312,6 @@ WARNING: translation string unused: host configuration
 WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -356,10 +355,6 @@ WARNING: translation string unused: invert
 WARNING: translation string unused: ip address in use
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
diff --git a/doc/language_issues.tr b/doc/language_issues.tr
index da7241f22..b850312e6 100644
--- a/doc/language_issues.tr
+++ b/doc/language_issues.tr
@@ -398,7 +398,6 @@ WARNING: translation string unused: host deny
 WARNING: translation string unused: hostname and domain already in use
 WARNING: translation string unused: hour-graph
 WARNING: translation string unused: hours2
-WARNING: translation string unused: ibod for dual isdn only
 WARNING: translation string unused: icmp selected but no type
 WARNING: translation string unused: icmp type
 WARNING: translation string unused: id
@@ -443,10 +442,6 @@ WARNING: translation string unused: ip address in use
 WARNING: translation string unused: ipfire side
 WARNING: translation string unused: ipsec no connections
 WARNING: translation string unused: iptable rules
-WARNING: translation string unused: isdn
-WARNING: translation string unused: isdn settings
-WARNING: translation string unused: isdn1
-WARNING: translation string unused: isdn2
 WARNING: translation string unused: javascript menu error1
 WARNING: translation string unused: javascript menu error2
 WARNING: translation string unused: kernel version
diff --git a/html/cgi-bin/pppsetup.cgi b/html/cgi-bin/pppsetup.cgi
index 7fbb46a77..d7e5799ec 100644
--- a/html/cgi-bin/pppsetup.cgi
+++ b/html/cgi-bin/pppsetup.cgi
@@ -32,7 +32,6 @@ require "${General::swroot}/header.pl";
 our %pppsettings=();
 my %temppppsettings=();
 our %modemsettings=();
-our %isdnsettings=();
 our %netsettings=();
 my %selected=();
 my %checked=();
@@ -63,7 +62,7 @@ if ($pppsettings{'ACTION'} ne '' &&
         &General::readhash("${General::swroot}/ppp/settings", \%pppsettings);}
 elsif ($pppsettings{'ACTION'} eq $Lang::tr{'refresh'})
 {
-        unless ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn|pppoe|pptp|vdsl|pppoeatm|pptpatm)$/) {
+        unless ($pppsettings{'TYPE'} =~ /^(modem|serial|pppoe|pptp|vdsl|pppoeatm|pptpatm)$/) {
                 $errormessage = $Lang::tr{'invalid input'};
                 goto ERROR; }
         my $type = $pppsettings{'TYPE'};
@@ -72,10 +71,10 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'refresh'})
 }
 elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})
 {
-        if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'COMPORT'} !~ /^(ttyS0|ttyS1|ttyS2|ttyS3|ttyS4|ttyACM[0-9]|ttyUSB[0-9]|rfcomm0|rfcomm1|isdn1|isdn2)$/) {
+        if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ && $pppsettings{'COMPORT'} !~ /^(ttyS0|ttyS1|ttyS2|ttyS3|ttyS4|ttyACM[0-9]|ttyUSB[0-9]|rfcomm0|rfcomm1)$/) {
                 $errormessage = $Lang::tr{'invalid input'};
                 goto ERROR; }
-        if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'MONPORT'} !~ /^(|ttyACM[0-9]|ttyUSB[0-9]|rfcomm0|rfcomm1)$/) {
+        if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ && $pppsettings{'MONPORT'} !~ /^(|ttyACM[0-9]|ttyUSB[0-9]|rfcomm0|rfcomm1)$/) {
                 $errormessage = $Lang::tr{'invalid input'};
                 goto ERROR; }
         if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ && $pppsettings{'DTERATE'} !~ /^(9600|19200|38400|57600|115200|230400|460800|921600)$/) {
@@ -93,7 +92,7 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})
                 $errormessage = $Lang::tr{'profile name not given'};
                 $pppsettings{'PROFILENAME'} = '';
                 goto ERROR; }
-        if ($pppsettings{'TYPE'} =~ /^(modem|isdn)$/) {
+        if ($pppsettings{'TYPE'} =~ /^(modem)$/) {
                 if ($pppsettings{'TELEPHONE'} eq '') {
                         $errormessage = $Lang::tr{'telephone not set'};
                         goto ERROR; }
@@ -739,7 +738,6 @@ print <<END
  </tr>
 END
 ;
-if ($pppsettings{'TYPE'} ne 'isdn') {
 print <<END
  <tr>
         <td colspan='4' width='100%'><input type='radio' name='RECONNECTION' value='persistent' $checked{'RECONNECTION'}{'persistent'}>$Lang::tr{'persistent'}</td>
@@ -755,11 +753,7 @@ END
         print <<END
         </select></td>
 </tr>
-END
-;
-}
-print <<END
- <tr>
+<tr>
         <td colspan='3' width='75%'>$Lang::tr{'dod for dns'}</td>
   <td width='25%'><input type='checkbox' name='DIALONDEMANDDNS' $checked{'DIALONDEMANDDNS'}{'on'} /></td>
 </tr>
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
index a52d41531..94bb2736b 100644
--- a/langs/de/cgi-bin/de.pl
+++ b/langs/de/cgi-bin/de.pl
@@ -1365,7 +1365,6 @@
 'hour-graph' => 'Stunde',
 'hours' => 'Stunden',
 'hours2' => 'Stunden',
-'ibod for dual isdn only' => 'iBOD kann nur bei ISDN-Kanalbündelung genutzt werden.',
 'icmp selected but no type' => 'ICMP wurde zwar als Protokoll gewählt, es wurde aber kein ICMP-Typ angegeben.',
 'icmp type' => 'ICMP-Typ',
 'id' => 'ID',
@@ -1578,10 +1577,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Address Translation',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Zusätzliche ISDN-Einstellungen:',
-'isdn1' => 'Einfaches ISDN',
-'isdn2' => 'ISDN-Kanalbündelung',
 'itlb multihit' => 'iTLB MultiHit',
 'january' => 'Januar',
 'javascript menu error1' => 'Wenn die Drop-down-Menus nicht funktionieren, deaktivieren Sie Javascript auf der',
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index bcba77aa4..d504c58b6 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -1410,7 +1410,6 @@
 'hour-graph' => 'Hour',
 'hours' => 'Hours',
 'hours2' => 'Hours',
-'ibod for dual isdn only' => 'iBOD can only be used with Dual ISDN.',
 'icmp selected but no type' => 'ICMP selected for protocol, but no ICMP type specified.',
 'icmp type' => 'ICMP Type',
 'id' => 'ID',
@@ -1627,10 +1626,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Address Translation',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Additional ISDN settings:',
-'isdn1' => 'Single ISDN',
-'isdn2' => 'Dual ISDN',
 'itlb multihit' => 'iTLB MultiHit',
 'january' => 'January',
 'javascript menu error1' => 'If the drop down menus aren\'t working, disable javascript on the',
diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl
index 022d390fa..3daca873c 100644
--- a/langs/es/cgi-bin/es.pl
+++ b/langs/es/cgi-bin/es.pl
@@ -1420,7 +1420,6 @@
 'hour-graph' => 'Hora',
 'hours' => 'horas',
 'hours2' => 'Horas',
-'ibod for dual isdn only' => 'iBPD sólo puede usarse con ISDN dual',
 'icmp selected but no type' => 'ICMP seleccionado como protocolo, pero no se ha seleccionado tipo de ICMP.',
 'icmp type' => 'Tipo de  ICMP',
 'id' => 'ID',
diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl
index bfd3f9b5e..aa0697efc 100644
--- a/langs/fr/cgi-bin/fr.pl
+++ b/langs/fr/cgi-bin/fr.pl
@@ -1411,7 +1411,6 @@
 'hour-graph' => 'Heure',
 'hours' => 'heure(s)',
 'hours2' => 'Heures',
-'ibod for dual isdn only' => 'iBOD peut seulement être utilisé avec un double ISDN.',
 'icmp selected but no type' => 'ICMP est le protocole sélectionné, mais il n\'y a aucun type ICMP spécifié.',
 'icmp type' => 'Type ICMP',
 'id' => 'ID',
@@ -1631,10 +1630,6 @@
 'iptmangles' => 'Table IP Mangle ',
 'iptnats' => 'Traduction d\'adresses réseaux table IP ',
 'ipts' => 'Tables IP ',
-'isdn' => 'RNIS',
-'isdn settings' => 'Réglages RNIS supplémentaires :',
-'isdn1' => 'RNIS unique',
-'isdn2' => 'RNIS double',
 'itlb multihit' => 'ITLB - erreur vérification machine',
 'january' => 'Janvier',
 'javascript menu error1' => 'Si les menus déroulants ne fonctionnent pas, désactivez le Javascript sur la',
diff --git a/langs/it/cgi-bin/it.pl b/langs/it/cgi-bin/it.pl
index 40575b404..7526d67ad 100644
--- a/langs/it/cgi-bin/it.pl
+++ b/langs/it/cgi-bin/it.pl
@@ -1204,7 +1204,6 @@
 'hour-graph' => 'Ora',
 'hours' => 'Ore',
 'hours2' => 'Ore',
-'ibod for dual isdn only' => 'iBOD can only be used with Dual ISDN.',
 'icmp selected but no type' => 'ICMP selected for protocol, but no ICMP type specified.',
 'icmp type' => 'ICMP Type',
 'id' => 'ID',
@@ -1339,10 +1338,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Address Translation',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Additional ISDN settings:',
-'isdn1' => 'Single ISDN',
-'isdn2' => 'Dual ISDN',
 'january' => 'Gennaio',
 'javascript menu error1' => 'If the drop down menus aren\'t working, disable javascript on the',
 'javascript menu error2' => 'page.',
diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl
index 865cfc5b3..4da924a74 100644
--- a/langs/nl/cgi-bin/nl.pl
+++ b/langs/nl/cgi-bin/nl.pl
@@ -1200,7 +1200,6 @@
 'hour-graph' => 'Uur',
 'hours' => 'uren',
 'hours2' => 'Uren',
-'ibod for dual isdn only' => 'iBOD kan alleen gebruikt worden met Dual ISDN.',
 'icmp selected but no type' => 'ICMP als protocol geselecteerd, maar er is geen ICMP type gespecificeerd.',
 'icmp type' => 'ICMP Type',
 'id' => 'ID',
@@ -1333,10 +1332,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Adrestranslatie',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Extra ISDN instellingen:',
-'isdn1' => 'Single ISDN',
-'isdn2' => 'Dual ISDN',
 'january' => 'Januari',
 'javascript menu error1' => 'Als de menu\'s niet werken, schakel dan javascript uit op de',
 'javascript menu error2' => 'pagina.',
diff --git a/langs/pl/cgi-bin/pl.pl b/langs/pl/cgi-bin/pl.pl
index eba6fd098..6ff2dab7b 100644
--- a/langs/pl/cgi-bin/pl.pl
+++ b/langs/pl/cgi-bin/pl.pl
@@ -912,7 +912,6 @@
 'hour-graph' => 'Godzina',
 'hours' => 'Godziny',
 'hours2' => 'Godziny',
-'ibod for dual isdn only' => 'iBOD can only be used with Dual ISDN.',
 'icmp selected but no type' => 'Wybrano protokół ICMP, ale nie określono typu ICMP.',
 'icmp type' => 'Typ ICMP',
 'id' => 'ID',
@@ -1038,10 +1037,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Address Translation',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Dodatkowe ustawienia ISDN:',
-'isdn1' => 'Pojedynczy ISDN',
-'isdn2' => 'Podwójny ISDN',
 'january' => 'Styczeń',
 'javascript menu error1' => 'Jeżeli rozwijane menu nie działają poprawnie wyłącz javascript na',
 'javascript menu error2' => 'stronie.',
diff --git a/langs/ru/cgi-bin/ru.pl b/langs/ru/cgi-bin/ru.pl
index 9e2b02d71..78a43c7d6 100644
--- a/langs/ru/cgi-bin/ru.pl
+++ b/langs/ru/cgi-bin/ru.pl
@@ -906,7 +906,6 @@
 'hour' => 'Час',
 'hours' => 'Часы',
 'hours2' => 'Часы',
-'ibod for dual isdn only' => 'iBOD can only be used with Dual ISDN.',
 'icmp selected but no type' => 'ICMP selected for protocol, but no ICMP type specified.',
 'icmp type' => 'ICMP Type',
 'id' => 'ID',
@@ -1031,10 +1030,6 @@
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Address Translation',
 'ipts' => 'iptables',
-'isdn' => 'ISDN',
-'isdn settings' => 'Additional ISDN settings:',
-'isdn1' => 'Single ISDN',
-'isdn2' => 'Dual ISDN',
 'january' => 'Январь',
 'javascript menu error1' => 'If the drop down menus aren\'t working, disable javascript on the',
 'javascript menu error2' => 'page.',
diff --git a/langs/tr/cgi-bin/tr.pl b/langs/tr/cgi-bin/tr.pl
index ad5567ce1..45fc16144 100644
--- a/langs/tr/cgi-bin/tr.pl
+++ b/langs/tr/cgi-bin/tr.pl
@@ -1317,7 +1317,6 @@
 'hour-graph' => 'saat',
 'hours' => 'saat',
 'hours2' => 'saat',
-'ibod for dual isdn only' => 'iBOD yalnızca çift ISDN ile kullanılabilir.',
 'icmp selected but no type' => 'ICMP kuralı için seçildi ancak ICMP türü belirtildi.',
 'icmp type' => 'ICMP Türü',
 'id' => 'Kimlik Numarası (ID)',
@@ -1457,10 +1456,6 @@
 'iptmangles' => 'IPTablo sıkıştırmaları',
 'iptnats' => 'IPTablo ağ adres çevrimi',
 'ipts' => 'IPTablolar',
-'isdn' => 'ISDN',
-'isdn settings' => 'Ek ISDN ayarları:',
-'isdn1' => 'Tek ISDN',
-'isdn2' => 'Çift ISDN',
 'january' => 'Ocak',
 'javascript menu error1' => 'Eğer aşağı açılır listeler çalışmıyorsa javascript seçeneğini devre dışı bırakın',
 'javascript menu error2' => 'sayfa.',
diff --git a/lfs/configroot b/lfs/configroot
index ef92f5f08..2c09ae4a8 100644
--- a/lfs/configroot
+++ b/lfs/configroot
@@ -51,7 +51,7 @@ $(TARGET) :
 
 	# Create all directories
 	for i in addon-lang auth backup ca captive certs connscheduler crls ddns dhcp dhcpc dns dnsforward \
-			ethernet extrahd/bin fwlogs fwhosts firewall ipblocklist isdn key langs logging mac main \
+			ethernet extrahd/bin fwlogs fwhosts firewall ipblocklist key langs logging mac main \
 			menu.d modem optionsfw \
 			ovpn patches pakfire portfw ppp private proxy/advanced/cre \
 			proxy/calamaris/bin qos/bin red remote sensors suricata time \
@@ -66,7 +66,7 @@ $(TARGET) :
 	    dhcp/fixleases dhcp/advoptions dhcp/dhcpd.conf.local dns/settings dns/servers dnsforward/config ethernet/aliases ethernet/settings ethernet/known_nics ethernet/scanned_nics \
 	    ethernet/wireless extrahd/scan extrahd/devices extrahd/partitions extrahd/settings firewall/settings firewall/config firewall/locationblock firewall/input firewall/outgoing \
 	    fwhosts/customnetworks fwhosts/customhosts fwhosts/customgroups fwhosts/customservicegrp fwhosts/customlocationgrp fwlogs/ipsettings fwlogs/portsettings ipblocklist/modified \
-	    ipblocklist/settings isdn/settings mac/settings main/hosts main/routing main/security main/settings optionsfw/settings \
+	    ipblocklist/settings mac/settings main/hosts main/routing main/security main/settings optionsfw/settings \
 	    ovpn/ccd.conf ovpn/ccdroute ovpn/ccdroute2 pakfire/settings portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \
 	    ppp/settings-5 ppp/settings proxy/settings proxy/squid.conf proxy/advanced/settings proxy/advanced/cre/enable remote/settings qos/settings qos/classes qos/subclasses qos/level7config qos/portconfig \
 	    qos/tosconfig suricata/settings vpn/config vpn/settings vpn/ipsec.conf \
diff --git a/src/ppp/ip-up b/src/ppp/ip-up
index ee1683fdd..2e636e72d 100644
--- a/src/ppp/ip-up
+++ b/src/ppp/ip-up
@@ -24,11 +24,6 @@
 
 eval $(/usr/local/bin/readhash /var/ipfire/ppp/settings)
 
-if [ "$TYPE" = "isdn" ]; then
-	DNS1="${MS_DNS1}"
-	DNS2="${MS_DNS2}"
-fi
-
 # Write DNS servers to configuration
 echo "${DNS1}" > /var/run/dns1
 echo "${DNS2}" > /var/run/dns2
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 08/29] pppsetup.cgi: Add support for QMI profiles
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (5 preceding siblings ...)
  2022-12-01 17:22 ` [PATCH 07/29] network: Drop any traces of ISDN Michael Tremer
@ 2022-12-01 17:22 ` Michael Tremer
  2022-12-01 17:22 ` [PATCH 09/29] " Michael Tremer
                   ` (20 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:22 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 12086 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 doc/language_issues.de |  3 +++
 doc/language_issues.en |  3 +++
 doc/language_issues.es |  3 +++
 doc/language_issues.fr |  3 +++
 doc/language_issues.it |  3 +++
 doc/language_issues.nl |  3 +++
 doc/language_issues.pl |  3 +++
 doc/language_issues.ru |  3 +++
 doc/language_issues.tr |  3 +++
 doc/language_missings  | 24 ++++++++++++++++++++++++
 10 files changed, 51 insertions(+)

diff --git a/doc/language_issues.de b/doc/language_issues.de
index 6a5f5f108..ec01aa511 100644
--- a/doc/language_issues.de
+++ b/doc/language_issues.de
@@ -863,6 +863,9 @@ WARNING: translation string unused: zoneconf val vlan amount assignment error
 WARNING: translation string unused: zoneconf val vlan tag assignment error
 WARNING: translation string unused: zoneconf val vlan tag range error
 WARNING: translation string unused: zoneconf val zoneslave amount error
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: aliases default interface = - Default Interface -
 WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
 WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
diff --git a/doc/language_issues.en b/doc/language_issues.en
index 0a9b66ba0..28e2a3dc1 100644
--- a/doc/language_issues.en
+++ b/doc/language_issues.en
@@ -89,6 +89,9 @@ WARNING: untranslated string: a ca certificate with this name already exists = A
 WARNING: untranslated string: a connection with this common name already exists = A connection with this common name already exists.
 WARNING: untranslated string: a connection with this name already exists = A connection with this name already exists.
 WARNING: untranslated string: abort = abort
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: action = Action
 WARNING: untranslated string: activate = Activate
diff --git a/doc/language_issues.es b/doc/language_issues.es
index b1530c655..0bd390d5d 100644
--- a/doc/language_issues.es
+++ b/doc/language_issues.es
@@ -938,6 +938,9 @@ WARNING: translation string unused: zoneconf val zoneslave amount error
 WARNING: untranslated string: Captive ACTIVATE = unknown string
 WARNING: untranslated string: Captive clients = unknown string
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: bytes = unknown string
 WARNING: untranslated string: cpu frequency = CPU frequency
 WARNING: untranslated string: dns servers = DNS Servers
diff --git a/doc/language_issues.fr b/doc/language_issues.fr
index 8d7fd2092..cbc432058 100644
--- a/doc/language_issues.fr
+++ b/doc/language_issues.fr
@@ -905,6 +905,9 @@ WARNING: translation string unused: zoneconf val vlan amount assignment error
 WARNING: translation string unused: zoneconf val vlan tag assignment error
 WARNING: translation string unused: zoneconf val vlan tag range error
 WARNING: translation string unused: zoneconf val zoneslave amount error
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: advproxy errmsg invalid url = Invalid URL
 WARNING: untranslated string: core notice 3 = available.
 WARNING: untranslated string: dh = unknown string
diff --git a/doc/language_issues.it b/doc/language_issues.it
index a4fd5ff83..2170c415f 100644
--- a/doc/language_issues.it
+++ b/doc/language_issues.it
@@ -883,6 +883,9 @@ WARNING: untranslated string: Captive wrong ext = Uploaded file has wrong filety
 WARNING: untranslated string: MTU settings = MTU settings:
 WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: administrator password = Administrator password
 WARNING: untranslated string: administrator username = Administrator username
diff --git a/doc/language_issues.nl b/doc/language_issues.nl
index 39f546dbb..be4e2c13c 100644
--- a/doc/language_issues.nl
+++ b/doc/language_issues.nl
@@ -883,6 +883,9 @@ WARNING: untranslated string: Captive wrong ext = Uploaded file has wrong filety
 WARNING: untranslated string: MTU settings = MTU settings:
 WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: administrator password = Administrator password
 WARNING: untranslated string: administrator username = Administrator username
diff --git a/doc/language_issues.pl b/doc/language_issues.pl
index 6cf1299e9..ebe8ff7e4 100644
--- a/doc/language_issues.pl
+++ b/doc/language_issues.pl
@@ -803,6 +803,9 @@ WARNING: untranslated string: MB written = MB written
 WARNING: untranslated string: MTU settings = MTU settings:
 WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: addons = Add-Ons
 WARNING: untranslated string: administrator password = Administrator password
diff --git a/doc/language_issues.ru b/doc/language_issues.ru
index a1054070c..205557dfc 100644
--- a/doc/language_issues.ru
+++ b/doc/language_issues.ru
@@ -799,6 +799,9 @@ WARNING: untranslated string: MB written = MB written
 WARNING: untranslated string: MTU settings = MTU settings:
 WARNING: untranslated string: Number of Countries for the pie chart = Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: addons = Add-Ons
 WARNING: untranslated string: administrator password = Administrator password
diff --git a/doc/language_issues.tr b/doc/language_issues.tr
index b850312e6..43d59b298 100644
--- a/doc/language_issues.tr
+++ b/doc/language_issues.tr
@@ -877,6 +877,9 @@ WARNING: translation string unused: yearly firewallhits
 WARNING: untranslated string: Captive clients = unknown string
 WARNING: untranslated string: Captive delete logo = Delete Logo
 WARNING: untranslated string: Scan for Songs = unknown string
+WARNING: untranslated string: access point name = Access Point Name
+WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
+WARNING: untranslated string: access point name is required = Access Point Name is required
 WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: advproxy asbased anomaly detection = Anomaly detections based on Autonomous Systems information
 WARNING: untranslated string: advproxy errmsg invalid url = Invalid URL
diff --git a/doc/language_missings b/doc/language_missings
index e5fad0a6a..f43e4e771 100644
--- a/doc/language_missings
+++ b/doc/language_missings
@@ -1,6 +1,9 @@
 ############################################################################
 # Checking cgi-bin translations for language: de                           #
 ############################################################################
+< access point name
+< access point name is invalid
+< access point name is required
 < advproxy update information
 < aliases default interface
 < ansi t1.483
@@ -94,6 +97,9 @@
 ############################################################################
 # Checking cgi-bin translations for language: es                           #
 ############################################################################
+< access point name
+< access point name is invalid
+< access point name is required
 < addon
 < cpu frequency
 < dns servers
@@ -106,6 +112,9 @@
 ############################################################################
 # Checking cgi-bin translations for language: fr                           #
 ############################################################################
+< access point name
+< access point name is invalid
+< access point name is required
 < advproxy errmsg invalid url
 < ansi t1.483
 < bewan adsl pci st
@@ -121,6 +130,9 @@
 # Checking cgi-bin translations for language: it                           #
 ############################################################################
 < 24 hours
+< access point name
+< access point name is invalid
+< access point name is required
 < acpitemp
 < addon
 < administrator password
@@ -618,6 +630,9 @@
 # Checking cgi-bin translations for language: nl                           #
 ############################################################################
 < 24 hours
+< access point name
+< access point name is invalid
+< access point name is required
 < acpitemp
 < administrator password
 < administrator username
@@ -1143,6 +1158,9 @@
 # Checking cgi-bin translations for language: pl                           #
 ############################################################################
 < 24 hours
+< access point name
+< access point name is invalid
+< access point name is required
 < acpitemp
 < addon
 < addons
@@ -2113,6 +2131,9 @@
 # Checking cgi-bin translations for language: ru                           #
 ############################################################################
 < 24 hours
+< access point name
+< access point name is invalid
+< access point name is required
 < acpitemp
 < Add a route
 < addon
@@ -3089,6 +3110,9 @@
 ############################################################################
 # Checking cgi-bin translations for language: tr                           #
 ############################################################################
+< access point name
+< access point name is invalid
+< access point name is required
 < acpitemp
 < addon
 < advproxy asbased anomaly detection
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 09/29] pppsetup.cgi: Add support for QMI profiles
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (6 preceding siblings ...)
  2022-12-01 17:22 ` [PATCH 08/29] pppsetup.cgi: Add support for QMI profiles Michael Tremer
@ 2022-12-01 17:22 ` Michael Tremer
  2022-12-01 17:22 ` [PATCH 10/29] pppsetup.cgi: Move authentication above MTU Michael Tremer
                   ` (19 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:22 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 3456 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 html/cgi-bin/pppsetup.cgi | 37 +++++++++++++++++++++++++++++++++++--
 langs/en/cgi-bin/en.pl    |  3 +++
 2 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/html/cgi-bin/pppsetup.cgi b/html/cgi-bin/pppsetup.cgi
index d7e5799ec..696fa2c96 100644
--- a/html/cgi-bin/pppsetup.cgi
+++ b/html/cgi-bin/pppsetup.cgi
@@ -87,6 +87,16 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})
                 $errormessage = $Lang::tr{'invalid input'};
                 goto ERROR;
         }
+	if ($pppsettings{'TYPE'} eq "qmi") {
+		# APN cannot be empty
+		if ($pppsettings{'APN'} eq "") {
+			$errormessage = $Lang::tr{'access point name is required'};
+			goto ERROR;
+		} elsif (!&General::validdomainname($pppsettings{'APN'})) {
+			$errormessage = $Lang::tr{'access point name is invalid'};
+			goto ERROR;
+		}
+	}
 
         if ($pppsettings{'PROFILENAME'} eq '') {
                 $errormessage = $Lang::tr{'profile name not given'};
@@ -523,6 +533,7 @@ print <<END
 	<option value='pppoe' $selected{'TYPE'}{'pppoe'}>PPPoE</option>
 	<option value='pptp' $selected{'TYPE'}{'pptp'}>PPTP</option>
 	<option value='vdsl' $selected{'TYPE'}{'vdsl'}>VDSL</option>
+	<option value='qmi' $selected{'TYPE'}{'qmi'}>QMI</option>
 END
 ;
 
@@ -719,7 +730,8 @@ END
 ;
 }
 
-print <<END
+if ($pppsettings{'TYPE'} ne "qmi") {
+	print <<END
 <tr>
         <td colspan='3' width='75%'>$Lang::tr{'idle timeout'}&nbsp;<img src='/blob.gif' alt='*' /></td>
         <td width='25%'><input type='text' name='TIMEOUT' value='$pppsettings{'TIMEOUT'}' /></td>
@@ -738,7 +750,7 @@ print <<END
  </tr>
 END
 ;
-print <<END
+	print <<END
  <tr>
         <td colspan='4' width='100%'><input type='radio' name='RECONNECTION' value='persistent' $checked{'RECONNECTION'}{'persistent'}>$Lang::tr{'persistent'}</td>
  </tr>
@@ -767,6 +779,7 @@ END
 </tr>
 END
 ;
+}
 
 if ($pppsettings{'TYPE'} eq 'pptp')
 {
@@ -908,6 +921,26 @@ print <<END
 <tr>
         <td bgcolor='$color{'color20'}' colspan='4' width='100%'><b>$Lang::tr{'authentication'}</b></td>
 </tr>
+END
+;
+
+# Ask for the APN for QMI
+if ($pppsettings{'TYPE'} eq 'qmi') {
+	print <<END;
+		<tr>
+			<td width="25%">
+				$Lang::tr{'access point name'}
+				&nbsp;
+				<img src='/blob.gif' alt='*'/>
+			</td>
+			<td colspan="3" width="75%">
+				<input type="text" name="APN" value="$pppsettings{'APN'}" />
+			</td>
+		</tr>
+END
+}
+
+print <<END
 <tr>
         <td width='25%'>$Lang::tr{'username'}&nbsp;<img src='/blob.gif' alt='*' /></td>
         <td width='25%'><input type='text' name='USERNAME' value='$pppsettings{'USERNAME'}' /></td>
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index d504c58b6..c8fb82586 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -129,6 +129,9 @@
 'a connection with this name already exists' => 'A connection with this name already exists.',
 'abort' => 'abort',
 'access allowed' => 'Access allowed from:',
+'access point name' => 'Access Point Name',
+'access point name is invalid' => 'Access Point Name is invalid',
+'access point name is required' => 'Access Point Name is required',
 'access refused with this oinkcode' => 'Access refused with this Oink Code',
 'accounting' => 'Accounting',
 'accounting user nonpdc' => 'Accounting - none PDC Mode',
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 10/29] pppsetup.cgi: Move authentication above MTU
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (7 preceding siblings ...)
  2022-12-01 17:22 ` [PATCH 09/29] " Michael Tremer
@ 2022-12-01 17:22 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 11/29] network: Remove --debug switch for dhcpcd in QMI mode Michael Tremer
                   ` (18 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:22 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 2051 bytes --]

I feel that authentication is more important.

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 html/cgi-bin/pppsetup.cgi | 33 ++++++++++++++-------------------
 1 file changed, 14 insertions(+), 19 deletions(-)

diff --git a/html/cgi-bin/pppsetup.cgi b/html/cgi-bin/pppsetup.cgi
index 696fa2c96..ef9a4b3f0 100644
--- a/html/cgi-bin/pppsetup.cgi
+++ b/html/cgi-bin/pppsetup.cgi
@@ -899,30 +899,12 @@ END
 ;
 }
 
-print <<END
-<tr><td colspan='4' width='100%'><br></br></td></tr>
-<tr>
-        <td bgcolor='$color{'color20'}' colspan='4' width='100%'><b>MTU/MRU</b></td>
-</tr>
-<tr>
-<tr>
-        <td width='25%'>MTU:</td>
-        <td width='25%'><input type='text' name='MTU' value='$pppsettings{'MTU'}' /></td>
-</tr>
-<tr>
-        <td width='25%'>MRU:</td>
-        <td width='25%'><input type='text' name='MRU' value='$pppsettings{'MRU'}' /></td>
-</tr>
-END
-;
-
-print <<END
+print <<END;
 <tr><td colspan='4' width='100%'><br></br></td></tr>
 <tr>
         <td bgcolor='$color{'color20'}' colspan='4' width='100%'><b>$Lang::tr{'authentication'}</b></td>
 </tr>
 END
-;
 
 # Ask for the APN for QMI
 if ($pppsettings{'TYPE'} eq 'qmi') {
@@ -968,6 +950,19 @@ print <<END
         <td width='25%'>$Lang::tr{'script name'}</td>
         <td width='25%'><input type='text' name='LOGINSCRIPT' value='$pppsettings{'LOGINSCRIPT'}' /></td>
 </tr>
+<tr><td colspan='4' width='100%'><br></br></td></tr>
+<tr>
+        <td bgcolor='$color{'color20'}' colspan='4' width='100%'><b>MTU/MRU</b></td>
+</tr>
+<tr>
+<tr>
+        <td width='25%'>MTU:</td>
+        <td width='25%'><input type='text' name='MTU' value='$pppsettings{'MTU'}' /></td>
+</tr>
+<tr>
+        <td width='25%'>MRU:</td>
+        <td width='25%'><input type='text' name='MRU' value='$pppsettings{'MRU'}' /></td>
+</tr>
 <tr><td colspan='4' width='100%'><br></br><hr></hr><br></br></td></tr>
 <tr>
         <td width='25%'>$Lang::tr{'profile name'}&nbsp;<img src='/blob.gif' alt='*' /></td>
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 11/29] network: Remove --debug switch for dhcpcd in QMI mode
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (8 preceding siblings ...)
  2022-12-01 17:22 ` [PATCH 10/29] pppsetup.cgi: Move authentication above MTU Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 12/29] dhcpcd: Only try to obtain an IP address for IPv4 Michael Tremer
                   ` (17 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 555 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/red | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/initscripts/networking/red b/src/initscripts/networking/red
index 7df61c1cf..053b38405 100644
--- a/src/initscripts/networking/red
+++ b/src/initscripts/networking/red
@@ -227,7 +227,7 @@ case "${1}" in
 				ip link set "${RED_DEV}" up &>/dev/null
 
 				# Start the DHCP client
-				dhcpcd_start "${RED_DEV}" --debug
+				dhcpcd_start "${RED_DEV}"
 
 				# Done
 				exit 0
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 12/29] dhcpcd: Only try to obtain an IP address for IPv4
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (9 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 11/29] network: Remove --debug switch for dhcpcd in QMI mode Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 13/29] dhcpcd.exe: Flush any configured IP addresses on shutdown Michael Tremer
                   ` (16 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 546 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 config/dhcpc/dhcpcd.conf | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/config/dhcpc/dhcpcd.conf b/config/dhcpc/dhcpcd.conf
index 29f10d1c9..062e3c975 100644
--- a/config/dhcpc/dhcpcd.conf
+++ b/config/dhcpc/dhcpcd.conf
@@ -1,6 +1,9 @@
 # A sample configuration for dhcpcd.
 # See dhcpcd.conf(5) for details.
 
+# Only obtain an IP address for IPv4
+ipv4only
+
 # Allow users of this group to interact with dhcpcd via the control socket.
 #controlgroup wheel
 
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 13/29] dhcpcd.exe: Flush any configured IP addresses on shutdown
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (10 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 12/29] dhcpcd: Only try to obtain an IP address for IPv4 Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 14/29] dhcpcd.exe: Actually use the received MTU Michael Tremer
                   ` (15 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 776 bytes --]

This allows us to start with a fresh interface every time dhcpcd is
being restarted.

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index be6d63708..f79d5d16d 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -84,6 +84,11 @@ dhcpcd_down()
 			run_subdir ${rc_base}/init.d/networking/red.down/
 		fi
 	fi
+
+	# Remove any configured IP address from the device
+	ip addr flush dev "${interface}" &>/dev/null
+
+	return 0
 }
 
 # Called when dhcpcd relies on a third party to configure an IP address
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 14/29] dhcpcd.exe: Actually use the received MTU
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (11 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 13/29] dhcpcd.exe: Flush any configured IP addresses on shutdown Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 15/29] dhcpcd.exe: Only set gateway when we have received one Michael Tremer
                   ` (14 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 652 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index f79d5d16d..c083b8d96 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -144,7 +144,7 @@ setup_qmi() {
 	ip addr add "${address}/${netmask}" dev "${interface}"
 
 	# Configure the default route
-	ip route add default via "${gateway}" #mtu "${mtu}"
+	ip route add default via "${gateway}" mtu "${mtu}"
 
 	return 0
 }
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 15/29] dhcpcd.exe: Only set gateway when we have received one
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (12 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 14/29] dhcpcd.exe: Actually use the received MTU Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 16/29] dhcpcd.exe: Store the default gateway when in QMI mode Michael Tremer
                   ` (13 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 966 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index c083b8d96..b557bcb12 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -54,10 +54,12 @@ dhcpcd_up()
 	#Get IP Address
 	echo -n "$new_ip_address"  > /var/ipfire/red/local-ipaddress
 
-	#Get default gateway
-	grep -v -E "\<gateway\>" /etc/hosts > /tmp/hosts
-	echo "$new_routers	gateway"  >> /tmp/hosts
-	mv /tmp/hosts /etc/hosts
+	# Get default gateway
+	if [ -n "${new_routers}" ]; then
+		grep -v -E "\<gateway\>" /etc/hosts > /tmp/hosts
+		echo "$new_routers	gateway"  >> /tmp/hosts
+		mv /tmp/hosts /etc/hosts
+	fi
 
 	if [ $update ]; then
 		[ -e "/var/ipfire/red/active" ] || touch /var/ipfire/red/active
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 16/29] dhcpcd.exe: Store the default gateway when in QMI mode
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (13 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 15/29] dhcpcd.exe: Only set gateway when we have received one Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 17/29] dhcpcd.exe: Use DNS servers from QMI Michael Tremer
                   ` (12 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 827 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index b557bcb12..fe64132c8 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -146,7 +146,13 @@ setup_qmi() {
 	ip addr add "${address}/${netmask}" dev "${interface}"
 
 	# Configure the default route
-	ip route add default via "${gateway}" mtu "${mtu}"
+	if [ -n "${gateway}" ]; then
+		# Store the default gateway
+		echo -n "${gateway}" > /var/ipfire/red/remote-ipaddress
+
+		# Configure the default route
+		ip route add default via "${gateway}" mtu "${mtu}"
+	fi
 
 	return 0
 }
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 17/29] dhcpcd.exe: Use DNS servers from QMI
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (14 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 16/29] dhcpcd.exe: Store the default gateway when in QMI mode Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 18/29] dhcpcd.exe: Do not overwrite the default gateway when empty Michael Tremer
                   ` (11 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 1129 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index fe64132c8..acd083b6f 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -111,6 +111,8 @@ setup_qmi() {
 	local netmask
 	local gateway
 	local mtu=1500
+	local dns1
+	local dns2
 
 	local line
 	while read -r line; do
@@ -127,6 +129,12 @@ setup_qmi() {
 			*IPv4\ gateway\ address:*)
 				gateway="${value}"
 				;;
+			*IPv4\ primary\ DNS:*)
+				dns1="${value}"
+				;;
+			*IPv4\ secondary\ DNS:*)
+				dns2="${value}"
+				;;
 			*MTU:*)
 				mtu="${value}"
 				;;
@@ -154,6 +162,14 @@ setup_qmi() {
 		ip route add default via "${gateway}" mtu "${mtu}"
 	fi
 
+	# Store and DNS servers
+	if [ -n "${dns1}" ]; then
+		echo -n "${dns1}" > /var/ipfire/red/dns1
+	fi
+	if [ -n "${dns2}" ]; then
+		echo n "${dns2}"  > /var/ipfire/red/dns2
+	fi
+
 	return 0
 }
 
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 18/29] dhcpcd.exe: Do not overwrite the default gateway when empty
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (15 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 17/29] dhcpcd.exe: Use DNS servers from QMI Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 19/29] dhcpcd.exe: Only touch /var/ipfire/red/active once Michael Tremer
                   ` (10 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 894 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index acd083b6f..b85a2c598 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -63,7 +63,11 @@ dhcpcd_up()
 
 	if [ $update ]; then
 		[ -e "/var/ipfire/red/active" ] || touch /var/ipfire/red/active
-		echo -n "$new_routers" > /var/ipfire/red/remote-ipaddress
+
+		if [ -n "${new_routers}" ]; then
+			echo -n "${new_routers}" > /var/ipfire/red/remote-ipaddress
+		fi
+
 		logger -p local0.info -t dhcpcd.exe[$$] "$interface has been (re)configured with IP=$new_ip_address"
 		run_subdir ${rc_base}/init.d/networking/red.up/
 		touch /var/ipfire/red/active
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 19/29] dhcpcd.exe: Only touch /var/ipfire/red/active once
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (16 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 18/29] dhcpcd.exe: Do not overwrite the default gateway when empty Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 20/29] dhcpcd.exe: Run everything no matter how RED is configured Michael Tremer
                   ` (9 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 938 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index b85a2c598..440a76693 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -62,7 +62,8 @@ dhcpcd_up()
 	fi
 
 	if [ $update ]; then
-		[ -e "/var/ipfire/red/active" ] || touch /var/ipfire/red/active
+		# Consider RED being active
+		touch /var/ipfire/red/active
 
 		if [ -n "${new_routers}" ]; then
 			echo -n "${new_routers}" > /var/ipfire/red/remote-ipaddress
@@ -70,7 +71,6 @@ dhcpcd_up()
 
 		logger -p local0.info -t dhcpcd.exe[$$] "$interface has been (re)configured with IP=$new_ip_address"
 		run_subdir ${rc_base}/init.d/networking/red.up/
-		touch /var/ipfire/red/active
 	fi
 }
 
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 20/29] dhcpcd.exe: Run everything no matter how RED is configured
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (17 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 19/29] dhcpcd.exe: Only touch /var/ipfire/red/active once Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 21/29] dhcpcd.exe: Fix typo in configuring DNS server Michael Tremer
                   ` (8 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 1678 bytes --]

This could potentially create problems when we abuse these functions to
launch the DHCP client on IPTV interfaces. This would have to be tested
and confirmed or potentially we would need some more changes to keep
supporting that use-case, too.

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index 440a76693..f6e494f96 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -34,7 +34,6 @@ dhcpcd_up()
 		exit 0;
 	fi
 
-	# Only if RED_TYPE=DHCP update /var/ipfire/red
 	# Check if we have to restart the services at update
 	[ ! -e "/var/ipfire/red/active" ] && update=1;
 	if [ "$old_domain_name_service" != "$new_domain_name_service" ]; then
@@ -82,13 +81,12 @@ dhcpcd_down()
 	# Remove DNS servers
 	rm -f /var/run/dns1 /var/run/dns2
 
-	# Only if RED_TYPE=DHCP update /var/ipfire/red
-	if [ "$RED_TYPE" == "DHCP" ]; then
-		rm -f /var/ipfire/red/active
-		if [ ! $reason == "PREINIT" ]; then
-			logger -p local0.info -t dhcpcd.exe[$$] "${interface} has been brought down ($reason)"
-			run_subdir ${rc_base}/init.d/networking/red.down/
-		fi
+	# Consider RED to be no longer active
+	rm -f /var/ipfire/red/active
+
+	if [ ! $reason == "PREINIT" ]; then
+		logger -p local0.info -t dhcpcd.exe[$$] "${interface} has been brought down ($reason)"
+		run_subdir ${rc_base}/init.d/networking/red.down/
 	fi
 
 	# Remove any configured IP address from the device
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 21/29] dhcpcd.exe: Fix typo in configuring DNS server
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (18 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 20/29] dhcpcd.exe: Run everything no matter how RED is configured Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 22/29] network: dhcpcd fails to check link state for QMI interfaces Michael Tremer
                   ` (7 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 621 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index f6e494f96..22ea9aaf7 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -169,7 +169,7 @@ setup_qmi() {
 		echo -n "${dns1}" > /var/ipfire/red/dns1
 	fi
 	if [ -n "${dns2}" ]; then
-		echo n "${dns2}"  > /var/ipfire/red/dns2
+		echo -n "${dns2}" > /var/ipfire/red/dns2
 	fi
 
 	return 0
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 22/29] network: dhcpcd fails to check link state for QMI interfaces
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (19 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 21/29] dhcpcd.exe: Fix typo in configuring DNS server Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 23/29] dhcpcd.exe: Reformat the reason dispatcher Michael Tremer
                   ` (6 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 836 bytes --]

When acquiring an IP address, dhcpcd seems to think that the interface
is down or does not work properly for some reason. It will
subsequentially decide to exit which is not what we want here.

Therefore this patch tells dhcpcd to ignore the link state and keep
happily running.

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/red | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/initscripts/networking/red b/src/initscripts/networking/red
index 053b38405..2d68c1685 100644
--- a/src/initscripts/networking/red
+++ b/src/initscripts/networking/red
@@ -227,7 +227,7 @@ case "${1}" in
 				ip link set "${RED_DEV}" up &>/dev/null
 
 				# Start the DHCP client
-				dhcpcd_start "${RED_DEV}"
+				dhcpcd_start "${RED_DEV}" --nolink
 
 				# Done
 				exit 0
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 23/29] dhcpcd.exe: Reformat the reason dispatcher
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (20 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 22/29] network: dhcpcd fails to check link state for QMI interfaces Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 24/29] dhcpcd.exe: Ignore some events Michael Tremer
                   ` (5 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 1057 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index 22ea9aaf7..ee4b00dbd 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -175,13 +175,17 @@ setup_qmi() {
 	return 0
 }
 
-case "$reason" in
-BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC)	dhcpcd_up;;
-PREINIT|EXPIRE|FAIL|IPV4LL|NAK|RELEASE|STOP)		dhcpcd_down;;
-3RDPARTY)
-	dhcpcd_3rdparty
-	;;
-*)
-	logger -p "local0.info" -t "dhcpcd.exe[$$]" "Unhandled DHCP event: ${reason}"
-	;;
+case "${reason}" in
+	BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC)
+		dhcpcd_up
+		;;
+	PREINIT|EXPIRE|FAIL|IPV4LL|NAK|RELEASE|STOP)
+		dhcpcd_down
+		;;
+	3RDPARTY)
+		dhcpcd_3rdparty
+		;;
+	*)
+		logger -p "local0.info" -t "dhcpcd.exe[$$]" "Unhandled DHCP event: ${reason}"
+		;;
 esac
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 24/29] dhcpcd.exe: Ignore some events
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (21 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 23/29] dhcpcd.exe: Reformat the reason dispatcher Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 25/29] dhcpcd.exe: Add a safety net to make sure we always have a route Michael Tremer
                   ` (4 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 694 bytes --]

We don't want any log messages printed.

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index ee4b00dbd..4ab9fbc43 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -185,6 +185,9 @@ case "${reason}" in
 	3RDPARTY)
 		dhcpcd_3rdparty
 		;;
+	# Ignored events where we do not need to do anything
+	STOPPED|CARRIER|NOCARRIER)
+		;;
 	*)
 		logger -p "local0.info" -t "dhcpcd.exe[$$]" "Unhandled DHCP event: ${reason}"
 		;;
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 25/29] dhcpcd.exe: Add a safety net to make sure we always have a route
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (22 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 24/29] dhcpcd.exe: Ignore some events Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 26/29] network: Force dhcpcd to ask for an IP address Michael Tremer
                   ` (3 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 1108 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index 4ab9fbc43..220f95c83 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -60,6 +60,18 @@ dhcpcd_up()
 		mv /tmp/hosts /etc/hosts
 	fi
 
+	# Try to set the default route if there is none
+	# This can happen when we are using the 3RD party configuration
+	# This should not be necessary, since dhcpcd says it will configure
+	# a default route, but that does not seem to happen:
+	# https://github.com/NetworkConfiguration/dhcpcd/issues/129
+	if ! ip route 2>/dev/null | grep ^default && [ -s "/var/ipfire/red/remote-ipaddress" ]; then
+		gateway=$(</var/ipfire/red/remote-ipaddress)
+
+		# XXX This is ignoring any MTU configuration
+		ip route add default via "${gateway}"
+	fi
+
 	if [ $update ]; then
 		# Consider RED being active
 		touch /var/ipfire/red/active
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 26/29] network: Force dhcpcd to ask for an IP address
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (23 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 25/29] dhcpcd.exe: Add a safety net to make sure we always have a route Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 27/29] network: Assign "static" MAC addresses to QMI interfaces Michael Tremer
                   ` (2 subsequent siblings)
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 3997 bytes --]

So since all this static nonsense wasn't feeling right, I opened a
ticket upstream and got a lead how to actually get some proper DHCP
working.

  https://github.com/NetworkConfiguration/dhcpcd/issues/129

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/dhcpcd.exe | 95 ---------------------------
 src/initscripts/networking/red        |  2 +-
 2 files changed, 1 insertion(+), 96 deletions(-)

diff --git a/src/initscripts/networking/dhcpcd.exe b/src/initscripts/networking/dhcpcd.exe
index 220f95c83..c8a79999d 100644
--- a/src/initscripts/networking/dhcpcd.exe
+++ b/src/initscripts/networking/dhcpcd.exe
@@ -60,18 +60,6 @@ dhcpcd_up()
 		mv /tmp/hosts /etc/hosts
 	fi
 
-	# Try to set the default route if there is none
-	# This can happen when we are using the 3RD party configuration
-	# This should not be necessary, since dhcpcd says it will configure
-	# a default route, but that does not seem to happen:
-	# https://github.com/NetworkConfiguration/dhcpcd/issues/129
-	if ! ip route 2>/dev/null | grep ^default && [ -s "/var/ipfire/red/remote-ipaddress" ]; then
-		gateway=$(</var/ipfire/red/remote-ipaddress)
-
-		# XXX This is ignoring any MTU configuration
-		ip route add default via "${gateway}"
-	fi
-
 	if [ $update ]; then
 		# Consider RED being active
 		touch /var/ipfire/red/active
@@ -107,86 +95,6 @@ dhcpcd_down()
 	return 0
 }
 
-# Called when dhcpcd relies on a third party to configure an IP address
-dhcpcd_3rdparty() {
-	local qmi_device="$(qmi_find_device "${interface}")"
-
-	if [ -n "${qmi_device}" ]; then
-		setup_qmi "${qmi_device}" || return $?
-	fi
-
-	return 0
-}
-
-setup_qmi() {
-	local device="${1}"
-
-	local address
-	local netmask
-	local gateway
-	local mtu=1500
-	local dns1
-	local dns2
-
-	local line
-	while read -r line; do
-		# Extract the value
-		value="${line#*: }"
-
-		case "${line}" in
-			*IPv4\ address:*)
-				address="${value}"
-				;;
-			*IPv4\ subnet\ mask:*)
-				netmask="${value}"
-				;;
-			*IPv4\ gateway\ address:*)
-				gateway="${value}"
-				;;
-			*IPv4\ primary\ DNS:*)
-				dns1="${value}"
-				;;
-			*IPv4\ secondary\ DNS:*)
-				dns2="${value}"
-				;;
-			*MTU:*)
-				mtu="${value}"
-				;;
-		esac
-	done <<< "$(qmicli --device="${device}" --wds-get-current-settings)"
-
-	if [ -z "${address}" ] || [ -z "${netmask}" ] || [ -z "${gateway}" ]; then
-		logger -p "local0.info" -t "dhcpcd.exe[$$]" \
-			"Could not retrieve all information from the QMI interface"
-		return 1
-	fi
-
-	# Flush any previous configuration
-	ip addr flush dev "${interface}"
-
-	# Configure the IP address
-	ip addr add "${address}/${netmask}" dev "${interface}"
-
-	# Configure the default route
-	if [ -n "${gateway}" ]; then
-		# Store the default gateway
-		echo -n "${gateway}" > /var/ipfire/red/remote-ipaddress
-
-		# Configure the default route
-		ip route add default via "${gateway}" mtu "${mtu}"
-	fi
-
-	# Store and DNS servers
-	if [ -n "${dns1}" ]; then
-		echo -n "${dns1}" > /var/ipfire/red/dns1
-	fi
-	if [ -n "${dns2}" ]; then
-		echo -n "${dns2}" > /var/ipfire/red/dns2
-	fi
-
-	return 0
-}
-
 case "${reason}" in
 	BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC)
 		dhcpcd_up
@@ -194,9 +102,6 @@ case "${reason}" in
 	PREINIT|EXPIRE|FAIL|IPV4LL|NAK|RELEASE|STOP)
 		dhcpcd_down
 		;;
-	3RDPARTY)
-		dhcpcd_3rdparty
-		;;
 	# Ignored events where we do not need to do anything
 	STOPPED|CARRIER|NOCARRIER)
 		;;
diff --git a/src/initscripts/networking/red b/src/initscripts/networking/red
index 2d68c1685..f927ddbfb 100644
--- a/src/initscripts/networking/red
+++ b/src/initscripts/networking/red
@@ -227,7 +227,7 @@ case "${1}" in
 				ip link set "${RED_DEV}" up &>/dev/null
 
 				# Start the DHCP client
-				dhcpcd_start "${RED_DEV}" --nolink
+				dhcpcd_start "${RED_DEV}" --dhcp
 
 				# Done
 				exit 0
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 27/29] network: Assign "static" MAC addresses to QMI interfaces
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (24 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 26/29] network: Force dhcpcd to ask for an IP address Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 28/29] network: Silence any output during the QMI setup Michael Tremer
  2022-12-01 17:23 ` [PATCH 29/29] make.sh: Build some dependencies for glib earlier Michael Tremer
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 2742 bytes --]

This is really badly hacky, but I do not know a better way to solve this
with our existing "setup" program which would be a nightmare to extend.

So we are using the device number to generate a static MAC address which
can then be used as usual. I doubt many people will have more than one
device.

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 config/udev/network-hotplug-rename           |  9 ++++++++
 src/initscripts/networking/functions.network | 24 +++++++++++++++++++-
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/config/udev/network-hotplug-rename b/config/udev/network-hotplug-rename
index 73e811e94..7c81bdb78 100644
--- a/config/udev/network-hotplug-rename
+++ b/config/udev/network-hotplug-rename
@@ -19,6 +19,8 @@
 #                                                                             #
 ###############################################################################
 
+. /etc/rc.d/init.d/networking/functions.network
+
 # Check if all appropriate variables are set
 [ -n "${INTERFACE}" ] || exit 2
 
@@ -44,6 +46,13 @@ if [ ! -r "/var/ipfire/ethernet/settings" ]; then
 	exit 1
 fi
 
+# Change MAC addresses of QMI interface
+if [ -d "/sys/class/net/${INTERFACE}/qmi" ]; then
+	if ! qmi_assign_address "${INTERFACE}"; then
+		exit 1
+	fi
+fi
+
 # Read network settings
 eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
 
diff --git a/src/initscripts/networking/functions.network b/src/initscripts/networking/functions.network
index 9698424fd..e8f6c28d8 100644
--- a/src/initscripts/networking/functions.network
+++ b/src/initscripts/networking/functions.network
@@ -179,7 +179,7 @@ qmi_find_device() {
 	local path
 	for path in /dev/cdc-*; do
 		if [ -c "${path}" ]; then
-			_intf="$(qmicli --device="${path}" --device-open-proxy --get-wwan-iface)"
+			_intf="$(qmi_find_interface "${path}")"
 
 			# Check if the interface matches
 			if [ "${intf}" = "${_intf}" ]; then
@@ -193,6 +193,12 @@ qmi_find_device() {
 	return 1
 }
 
+qmi_find_interface() {
+	local device="${1}"
+
+	qmicli --device="${device}" --device-open-proxy --get-wwan-iface
+}
+
 qmi_enable_rawip_mode() {
 	local intf="${1}"
 
@@ -259,3 +265,19 @@ qmi_reset() {
 	qmicli --device="${device}" --device-open-proxy \
 		--wds-reset
 }
+
+# Assigns a "static" MAC address
+qmi_assign_address() {
+	local intf="${1}"
+
+	# Find the device
+	local device="$(qmi_find_device "${intf}")"
+
+	local address
+
+	# Generate a "random" MAC address using the device number
+	printf -v address "02:ff:ff:ff:ff:%02x" "${device:12}"
+
+	# Change the MAC address
+	ip link set "${intf}" address "${address}"
+}
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 28/29] network: Silence any output during the QMI setup
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (25 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 27/29] network: Assign "static" MAC addresses to QMI interfaces Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-01 17:23 ` [PATCH 29/29] make.sh: Build some dependencies for glib earlier Michael Tremer
  27 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 828 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 src/initscripts/networking/functions.network | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/initscripts/networking/functions.network b/src/initscripts/networking/functions.network
index e8f6c28d8..36541eb13 100644
--- a/src/initscripts/networking/functions.network
+++ b/src/initscripts/networking/functions.network
@@ -256,14 +256,14 @@ qmi_configure_apn() {
 
 	qmicli --device="${device}" --device-open-proxy \
 		--wds-start-network="${_args}" \
-		--client-no-release-cid
+		--client-no-release-cid &>/dev/null
 }
 
 qmi_reset() {
 	local device="${1}"
 
 	qmicli --device="${device}" --device-open-proxy \
-		--wds-reset
+		--wds-reset &>/dev/null
 }
 
 # Assigns a "static" MAC address
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 29/29] make.sh: Build some dependencies for glib earlier
  2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
                   ` (26 preceding siblings ...)
  2022-12-01 17:23 ` [PATCH 28/29] network: Silence any output during the QMI setup Michael Tremer
@ 2022-12-01 17:23 ` Michael Tremer
  2022-12-17 21:03   ` Peter Müller
  27 siblings, 1 reply; 33+ messages in thread
From: Michael Tremer @ 2022-12-01 17:23 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 1096 bytes --]

Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
 make.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/make.sh b/make.sh
index 0d1457d99..2cf47e6a9 100755
--- a/make.sh
+++ b/make.sh
@@ -1176,6 +1176,10 @@ buildipfire() {
   lfsmake2 xradio		KCFG=""
   lfsmake2 linux-initrd		KCFG=""
 
+  lfsmake2 python3-setuptools
+  lfsmake2 libffi
+  lfsmake2 ninja
+  lfsmake2 meson
   lfsmake2 glib
   lfsmake2 libgudev
   lfsmake2 libgpg-error
@@ -1204,7 +1208,6 @@ buildipfire() {
   lfsmake2 curl
   lfsmake2 tcl
   lfsmake2 sqlite
-  lfsmake2 libffi
   lfsmake2 python3
   lfsmake2 rust
   lfsmake2 rust-dissimilar
@@ -1324,8 +1327,6 @@ buildipfire() {
   lfsmake2 nasm
   lfsmake2 libarchive
   lfsmake2 cmake
-  lfsmake2 ninja
-  lfsmake2 meson
   lfsmake2 libjpeg
   lfsmake2 openjpeg
   lfsmake2 libexif
@@ -1420,7 +1421,6 @@ buildipfire() {
   lfsmake2 perl-Crypt-PasswdMD5
   lfsmake2 perl-Net-Telnet
   lfsmake2 perl-JSON
-  lfsmake2 python3-setuptools
   lfsmake2 python3-inotify
   lfsmake2 python3-docutils
   lfsmake2 python3-daemon
-- 
2.30.2


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 29/29] make.sh: Build some dependencies for glib earlier
  2022-12-01 17:23 ` [PATCH 29/29] make.sh: Build some dependencies for glib earlier Michael Tremer
@ 2022-12-17 21:03   ` Peter Müller
  2022-12-19 12:49     ` Michael Tremer
  0 siblings, 1 reply; 33+ messages in thread
From: Peter Müller @ 2022-12-17 21:03 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 3616 bytes --]

Hello Michael,

currently working on Core Update 173, this patch seems to break glib (at least
that's what I am assuming, given that glib itself has not been touched in a
while):

> glib (2.71.1)                                                                                                                                                                                                            [        0 ][ FAIL ]
> 
>     'dest/tools_x86_64/bin/meson' -> '/tools_x86_64/bin/meson'
>     Updating linker cache...
>     Install done; saving file list to /usr/src/log/meson-0.64.1 ...
>     Dec 17 19:05:41: Building glib glib-2.71.1.tar.xz checksum OK
>     + cd /usr/src/lfs
>     + make -f glib LFS_BASEDIR=/usr/src install
>     ====================================== Installing glib-2.71.1 ...
>     Install started; saving file list to /usr/src/lsalr ...
>     cd /usr/src/glib-2.71.1 && meson	--prefix=/usr 		\
>     --sysconfdir=/etc	\
>     builddir/
>     Traceback (most recent call last):
>     File "/tools_x86_64/bin/meson", line 33, in <module>
>     sys.exit(load_entry_point('meson==0.64.1', 'console_scripts', 'meson')())
>     File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 287, in main
>     return run(sys.argv[1:], launcher)
>     File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 277, in run
>     set_meson_command(mainfile)
>     File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 235, in set_meson_command
>     from . import mesonlib
>     File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonlib.py", line 24, in <module>
>     from .utils.vsenv import *
>     File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/utils/vsenv.py", line 9, in <module>
>     from .universal import MesonException, is_windows, windows_detect_native_arch
>     File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/utils/universal.py", line 20, in <module>
>     import ctypes
>     File "/tools_x86_64/lib/python3.10/ctypes/__init__.py", line 8, in <module>
>     from _ctypes import Union, Structure, Array
>     ModuleNotFoundError: No module named '_ctypes'
>     make: *** [glib:74: /usr/src/log/glib-2.71.1] Error 1

Am I missing anything? How did you get this to work? :-)

Thanks, and best regards,
Peter Müller


> Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
> ---
>  make.sh | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/make.sh b/make.sh
> index 0d1457d99..2cf47e6a9 100755
> --- a/make.sh
> +++ b/make.sh
> @@ -1176,6 +1176,10 @@ buildipfire() {
>    lfsmake2 xradio		KCFG=""
>    lfsmake2 linux-initrd		KCFG=""
>  
> +  lfsmake2 python3-setuptools
> +  lfsmake2 libffi
> +  lfsmake2 ninja
> +  lfsmake2 meson
>    lfsmake2 glib
>    lfsmake2 libgudev
>    lfsmake2 libgpg-error
> @@ -1204,7 +1208,6 @@ buildipfire() {
>    lfsmake2 curl
>    lfsmake2 tcl
>    lfsmake2 sqlite
> -  lfsmake2 libffi
>    lfsmake2 python3
>    lfsmake2 rust
>    lfsmake2 rust-dissimilar
> @@ -1324,8 +1327,6 @@ buildipfire() {
>    lfsmake2 nasm
>    lfsmake2 libarchive
>    lfsmake2 cmake
> -  lfsmake2 ninja
> -  lfsmake2 meson
>    lfsmake2 libjpeg
>    lfsmake2 openjpeg
>    lfsmake2 libexif
> @@ -1420,7 +1421,6 @@ buildipfire() {
>    lfsmake2 perl-Crypt-PasswdMD5
>    lfsmake2 perl-Net-Telnet
>    lfsmake2 perl-JSON
> -  lfsmake2 python3-setuptools
>    lfsmake2 python3-inotify
>    lfsmake2 python3-docutils
>    lfsmake2 python3-daemon

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 29/29] make.sh: Build some dependencies for glib earlier
  2022-12-17 21:03   ` Peter Müller
@ 2022-12-19 12:49     ` Michael Tremer
  2022-12-20 12:03       ` Peter Müller
  0 siblings, 1 reply; 33+ messages in thread
From: Michael Tremer @ 2022-12-19 12:49 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 3952 bytes --]

Hello,

Errm, it looks like I might have messed up my final clean build.

Obviously Python 3 must be built before python3-setuptools, meson and so on.

Could you try that for me, please?

-Michael

> On 17 Dec 2022, at 21:03, Peter Müller <peter.mueller(a)ipfire.org> wrote:
> 
> Hello Michael,
> 
> currently working on Core Update 173, this patch seems to break glib (at least
> that's what I am assuming, given that glib itself has not been touched in a
> while):
> 
>> glib (2.71.1)                                                                                                                                                                                                            [        0 ][ FAIL ]
>> 
>>    'dest/tools_x86_64/bin/meson' -> '/tools_x86_64/bin/meson'
>>    Updating linker cache...
>>    Install done; saving file list to /usr/src/log/meson-0.64.1 ...
>>    Dec 17 19:05:41: Building glib glib-2.71.1.tar.xz checksum OK
>>    + cd /usr/src/lfs
>>    + make -f glib LFS_BASEDIR=/usr/src install
>>    ====================================== Installing glib-2.71.1 ...
>>    Install started; saving file list to /usr/src/lsalr ...
>>    cd /usr/src/glib-2.71.1 && meson --prefix=/usr \
>>    --sysconfdir=/etc \
>>    builddir/
>>    Traceback (most recent call last):
>>    File "/tools_x86_64/bin/meson", line 33, in <module>
>>    sys.exit(load_entry_point('meson==0.64.1', 'console_scripts', 'meson')())
>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 287, in main
>>    return run(sys.argv[1:], launcher)
>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 277, in run
>>    set_meson_command(mainfile)
>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 235, in set_meson_command
>>    from . import mesonlib
>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonlib.py", line 24, in <module>
>>    from .utils.vsenv import *
>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/utils/vsenv.py", line 9, in <module>
>>    from .universal import MesonException, is_windows, windows_detect_native_arch
>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/utils/universal.py", line 20, in <module>
>>    import ctypes
>>    File "/tools_x86_64/lib/python3.10/ctypes/__init__.py", line 8, in <module>
>>    from _ctypes import Union, Structure, Array
>>    ModuleNotFoundError: No module named '_ctypes'
>>    make: *** [glib:74: /usr/src/log/glib-2.71.1] Error 1
> 
> Am I missing anything? How did you get this to work? :-)
> 
> Thanks, and best regards,
> Peter Müller
> 
> 
>> Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
>> ---
>> make.sh | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>> 
>> diff --git a/make.sh b/make.sh
>> index 0d1457d99..2cf47e6a9 100755
>> --- a/make.sh
>> +++ b/make.sh
>> @@ -1176,6 +1176,10 @@ buildipfire() {
>>   lfsmake2 xradio KCFG=""
>>   lfsmake2 linux-initrd KCFG=""
>> 
>> +  lfsmake2 python3-setuptools
>> +  lfsmake2 libffi
>> +  lfsmake2 ninja
>> +  lfsmake2 meson
>>   lfsmake2 glib
>>   lfsmake2 libgudev
>>   lfsmake2 libgpg-error
>> @@ -1204,7 +1208,6 @@ buildipfire() {
>>   lfsmake2 curl
>>   lfsmake2 tcl
>>   lfsmake2 sqlite
>> -  lfsmake2 libffi
>>   lfsmake2 python3
>>   lfsmake2 rust
>>   lfsmake2 rust-dissimilar
>> @@ -1324,8 +1327,6 @@ buildipfire() {
>>   lfsmake2 nasm
>>   lfsmake2 libarchive
>>   lfsmake2 cmake
>> -  lfsmake2 ninja
>> -  lfsmake2 meson
>>   lfsmake2 libjpeg
>>   lfsmake2 openjpeg
>>   lfsmake2 libexif
>> @@ -1420,7 +1421,6 @@ buildipfire() {
>>   lfsmake2 perl-Crypt-PasswdMD5
>>   lfsmake2 perl-Net-Telnet
>>   lfsmake2 perl-JSON
>> -  lfsmake2 python3-setuptools
>>   lfsmake2 python3-inotify
>>   lfsmake2 python3-docutils
>>   lfsmake2 python3-daemon


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 29/29] make.sh: Build some dependencies for glib earlier
  2022-12-19 12:49     ` Michael Tremer
@ 2022-12-20 12:03       ` Peter Müller
  2022-12-20 16:07         ` Michael Tremer
  0 siblings, 1 reply; 33+ messages in thread
From: Peter Müller @ 2022-12-20 12:03 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 5293 bytes --]

Hello Michael,

thanks for your reply.

> Hello,
> 
> Errm, it looks like I might have messed up my final clean build.
> 
> Obviously Python 3 must be built before python3-setuptools, meson and so on.
> 
> Could you try that for me, please?

I did, but it does not make a difference. Even with some things moved before
python3-setuptools, meson, etc. pp. as well for good measure, glib build still
fails with the same error message.

Current make.sh delta is as follows:

diff --git a/make.sh b/make.sh
index 88048dbf9..bdbcc50b5 100755
--- a/make.sh
+++ b/make.sh
@@ -1176,6 +1176,11 @@ buildipfire() {
   lfsmake2 xradio              KCFG=""
   lfsmake2 linux-initrd                KCFG=""
 
+  lfsmake2 expat
+  lfsmake2 libconfig
+  lfsmake2 json-c
+  lfsmake2 tcl
+  lfsmake2 python3
   lfsmake2 python3-setuptools
   lfsmake2 libffi
   lfsmake2 ninja
@@ -1187,10 +1192,7 @@ buildipfire() {
   lfsmake2 libassuan
   lfsmake2 nettle
   lfsmake2 libsodium
-  lfsmake2 json-c
-  lfsmake2 libconfig
   lfsmake2 libevent2
-  lfsmake2 expat
   lfsmake2 apr
   lfsmake2 aprutil
   lfsmake2 unbound
@@ -1206,9 +1208,7 @@ buildipfire() {
   lfsmake2 pam
   lfsmake2 c-ares
   lfsmake2 curl
-  lfsmake2 tcl
   lfsmake2 sqlite
-  lfsmake2 python3
   lfsmake2 rust
   lfsmake2 rust-dissimilar
   lfsmake2 rust-cfg-if

Anything else I could try? :-)

Thanks, and best regards,
Peter Müller

> 
> -Michael
> 
>> On 17 Dec 2022, at 21:03, Peter Müller <peter.mueller(a)ipfire.org> wrote:
>>
>> Hello Michael,
>>
>> currently working on Core Update 173, this patch seems to break glib (at least
>> that's what I am assuming, given that glib itself has not been touched in a
>> while):
>>
>>> glib (2.71.1)                                                                                                                                                                                                            [        0 ][ FAIL ]
>>>
>>>    'dest/tools_x86_64/bin/meson' -> '/tools_x86_64/bin/meson'
>>>    Updating linker cache...
>>>    Install done; saving file list to /usr/src/log/meson-0.64.1 ...
>>>    Dec 17 19:05:41: Building glib glib-2.71.1.tar.xz checksum OK
>>>    + cd /usr/src/lfs
>>>    + make -f glib LFS_BASEDIR=/usr/src install
>>>    ====================================== Installing glib-2.71.1 ...
>>>    Install started; saving file list to /usr/src/lsalr ...
>>>    cd /usr/src/glib-2.71.1 && meson --prefix=/usr \
>>>    --sysconfdir=/etc \
>>>    builddir/
>>>    Traceback (most recent call last):
>>>    File "/tools_x86_64/bin/meson", line 33, in <module>
>>>    sys.exit(load_entry_point('meson==0.64.1', 'console_scripts', 'meson')())
>>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 287, in main
>>>    return run(sys.argv[1:], launcher)
>>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 277, in run
>>>    set_meson_command(mainfile)
>>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 235, in set_meson_command
>>>    from . import mesonlib
>>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonlib.py", line 24, in <module>
>>>    from .utils.vsenv import *
>>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/utils/vsenv.py", line 9, in <module>
>>>    from .universal import MesonException, is_windows, windows_detect_native_arch
>>>    File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/utils/universal.py", line 20, in <module>
>>>    import ctypes
>>>    File "/tools_x86_64/lib/python3.10/ctypes/__init__.py", line 8, in <module>
>>>    from _ctypes import Union, Structure, Array
>>>    ModuleNotFoundError: No module named '_ctypes'
>>>    make: *** [glib:74: /usr/src/log/glib-2.71.1] Error 1
>>
>> Am I missing anything? How did you get this to work? :-)
>>
>> Thanks, and best regards,
>> Peter Müller
>>
>>
>>> Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
>>> ---
>>> make.sh | 8 ++++----
>>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/make.sh b/make.sh
>>> index 0d1457d99..2cf47e6a9 100755
>>> --- a/make.sh
>>> +++ b/make.sh
>>> @@ -1176,6 +1176,10 @@ buildipfire() {
>>>   lfsmake2 xradio KCFG=""
>>>   lfsmake2 linux-initrd KCFG=""
>>>
>>> +  lfsmake2 python3-setuptools
>>> +  lfsmake2 libffi
>>> +  lfsmake2 ninja
>>> +  lfsmake2 meson
>>>   lfsmake2 glib
>>>   lfsmake2 libgudev
>>>   lfsmake2 libgpg-error
>>> @@ -1204,7 +1208,6 @@ buildipfire() {
>>>   lfsmake2 curl
>>>   lfsmake2 tcl
>>>   lfsmake2 sqlite
>>> -  lfsmake2 libffi
>>>   lfsmake2 python3
>>>   lfsmake2 rust
>>>   lfsmake2 rust-dissimilar
>>> @@ -1324,8 +1327,6 @@ buildipfire() {
>>>   lfsmake2 nasm
>>>   lfsmake2 libarchive
>>>   lfsmake2 cmake
>>> -  lfsmake2 ninja
>>> -  lfsmake2 meson
>>>   lfsmake2 libjpeg
>>>   lfsmake2 openjpeg
>>>   lfsmake2 libexif
>>> @@ -1420,7 +1421,6 @@ buildipfire() {
>>>   lfsmake2 perl-Crypt-PasswdMD5
>>>   lfsmake2 perl-Net-Telnet
>>>   lfsmake2 perl-JSON
>>> -  lfsmake2 python3-setuptools
>>>   lfsmake2 python3-inotify
>>>   lfsmake2 python3-docutils
>>>   lfsmake2 python3-daemon
> 

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 29/29] make.sh: Build some dependencies for glib earlier
  2022-12-20 12:03       ` Peter Müller
@ 2022-12-20 16:07         ` Michael Tremer
  0 siblings, 0 replies; 33+ messages in thread
From: Michael Tremer @ 2022-12-20 16:07 UTC (permalink / raw)
  To: development

[-- Attachment #1: Type: text/plain, Size: 5725 bytes --]

Hello,

Yes, you will need all the other Python dependencies for all modules to be built.

ctypes needs libffi. If there is more stuff missing, the root file will tell you.

Best,
-Michael

> On 20 Dec 2022, at 12:03, Peter Müller <peter.mueller(a)ipfire.org> wrote:
> 
> Hello Michael,
> 
> thanks for your reply.
> 
>> Hello,
>> 
>> Errm, it looks like I might have messed up my final clean build.
>> 
>> Obviously Python 3 must be built before python3-setuptools, meson and so on.
>> 
>> Could you try that for me, please?
> 
> I did, but it does not make a difference. Even with some things moved before
> python3-setuptools, meson, etc. pp. as well for good measure, glib build still
> fails with the same error message.
> 
> Current make.sh delta is as follows:
> 
> diff --git a/make.sh b/make.sh
> index 88048dbf9..bdbcc50b5 100755
> --- a/make.sh
> +++ b/make.sh
> @@ -1176,6 +1176,11 @@ buildipfire() {
>   lfsmake2 xradio              KCFG=""
>   lfsmake2 linux-initrd                KCFG=""
> 
> +  lfsmake2 expat
> +  lfsmake2 libconfig
> +  lfsmake2 json-c
> +  lfsmake2 tcl
> +  lfsmake2 python3
>   lfsmake2 python3-setuptools
>   lfsmake2 libffi
>   lfsmake2 ninja
> @@ -1187,10 +1192,7 @@ buildipfire() {
>   lfsmake2 libassuan
>   lfsmake2 nettle
>   lfsmake2 libsodium
> -  lfsmake2 json-c
> -  lfsmake2 libconfig
>   lfsmake2 libevent2
> -  lfsmake2 expat
>   lfsmake2 apr
>   lfsmake2 aprutil
>   lfsmake2 unbound
> @@ -1206,9 +1208,7 @@ buildipfire() {
>   lfsmake2 pam
>   lfsmake2 c-ares
>   lfsmake2 curl
> -  lfsmake2 tcl
>   lfsmake2 sqlite
> -  lfsmake2 python3
>   lfsmake2 rust
>   lfsmake2 rust-dissimilar
>   lfsmake2 rust-cfg-if
> 
> Anything else I could try? :-)
> 
> Thanks, and best regards,
> Peter Müller
> 
>> 
>> -Michael
>> 
>>> On 17 Dec 2022, at 21:03, Peter Müller <peter.mueller(a)ipfire.org> wrote:
>>> 
>>> Hello Michael,
>>> 
>>> currently working on Core Update 173, this patch seems to break glib (at least
>>> that's what I am assuming, given that glib itself has not been touched in a
>>> while):
>>> 
>>>> glib (2.71.1)                                                                                                                                                                                                            [        0 ][ FAIL ]
>>>> 
>>>>   'dest/tools_x86_64/bin/meson' -> '/tools_x86_64/bin/meson'
>>>>   Updating linker cache...
>>>>   Install done; saving file list to /usr/src/log/meson-0.64.1 ...
>>>>   Dec 17 19:05:41: Building glib glib-2.71.1.tar.xz checksum OK
>>>>   + cd /usr/src/lfs
>>>>   + make -f glib LFS_BASEDIR=/usr/src install
>>>>   ====================================== Installing glib-2.71.1 ...
>>>>   Install started; saving file list to /usr/src/lsalr ...
>>>>   cd /usr/src/glib-2.71.1 && meson --prefix=/usr \
>>>>   --sysconfdir=/etc \
>>>>   builddir/
>>>>   Traceback (most recent call last):
>>>>   File "/tools_x86_64/bin/meson", line 33, in <module>
>>>>   sys.exit(load_entry_point('meson==0.64.1', 'console_scripts', 'meson')())
>>>>   File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 287, in main
>>>>   return run(sys.argv[1:], launcher)
>>>>   File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 277, in run
>>>>   set_meson_command(mainfile)
>>>>   File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonmain.py", line 235, in set_meson_command
>>>>   from . import mesonlib
>>>>   File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/mesonlib.py", line 24, in <module>
>>>>   from .utils.vsenv import *
>>>>   File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/utils/vsenv.py", line 9, in <module>
>>>>   from .universal import MesonException, is_windows, windows_detect_native_arch
>>>>   File "/tools_x86_64/lib/python3.10/site-packages/mesonbuild/utils/universal.py", line 20, in <module>
>>>>   import ctypes
>>>>   File "/tools_x86_64/lib/python3.10/ctypes/__init__.py", line 8, in <module>
>>>>   from _ctypes import Union, Structure, Array
>>>>   ModuleNotFoundError: No module named '_ctypes'
>>>>   make: *** [glib:74: /usr/src/log/glib-2.71.1] Error 1
>>> 
>>> Am I missing anything? How did you get this to work? :-)
>>> 
>>> Thanks, and best regards,
>>> Peter Müller
>>> 
>>> 
>>>> Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
>>>> ---
>>>> make.sh | 8 ++++----
>>>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>>> 
>>>> diff --git a/make.sh b/make.sh
>>>> index 0d1457d99..2cf47e6a9 100755
>>>> --- a/make.sh
>>>> +++ b/make.sh
>>>> @@ -1176,6 +1176,10 @@ buildipfire() {
>>>>  lfsmake2 xradio KCFG=""
>>>>  lfsmake2 linux-initrd KCFG=""
>>>> 
>>>> +  lfsmake2 python3-setuptools
>>>> +  lfsmake2 libffi
>>>> +  lfsmake2 ninja
>>>> +  lfsmake2 meson
>>>>  lfsmake2 glib
>>>>  lfsmake2 libgudev
>>>>  lfsmake2 libgpg-error
>>>> @@ -1204,7 +1208,6 @@ buildipfire() {
>>>>  lfsmake2 curl
>>>>  lfsmake2 tcl
>>>>  lfsmake2 sqlite
>>>> -  lfsmake2 libffi
>>>>  lfsmake2 python3
>>>>  lfsmake2 rust
>>>>  lfsmake2 rust-dissimilar
>>>> @@ -1324,8 +1327,6 @@ buildipfire() {
>>>>  lfsmake2 nasm
>>>>  lfsmake2 libarchive
>>>>  lfsmake2 cmake
>>>> -  lfsmake2 ninja
>>>> -  lfsmake2 meson
>>>>  lfsmake2 libjpeg
>>>>  lfsmake2 openjpeg
>>>>  lfsmake2 libexif
>>>> @@ -1420,7 +1421,6 @@ buildipfire() {
>>>>  lfsmake2 perl-Crypt-PasswdMD5
>>>>  lfsmake2 perl-Net-Telnet
>>>>  lfsmake2 perl-JSON
>>>> -  lfsmake2 python3-setuptools
>>>>  lfsmake2 python3-inotify
>>>>  lfsmake2 python3-docutils
>>>>  lfsmake2 python3-daemon
>> 


^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2022-12-20 16:07 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-01 17:22 [PATCH 01/29] libgudev: New package Michael Tremer
2022-12-01 17:22 ` [PATCH 02/29] libqmi: " Michael Tremer
2022-12-01 17:22 ` [PATCH 03/29] dhcpcd: Log any unhandled client events Michael Tremer
2022-12-01 17:22 ` [PATCH 04/29] dhcpcd.exe: Allow using the DHCP setup scripts when RED is not configured as DHCP Michael Tremer
2022-12-01 17:22 ` [PATCH 05/29] network: Allow passing custom options to dhcpcd Michael Tremer
2022-12-01 17:22 ` [PATCH 06/29] network: Add support for QMI modems Michael Tremer
2022-12-01 17:22 ` [PATCH 07/29] network: Drop any traces of ISDN Michael Tremer
2022-12-01 17:22 ` [PATCH 08/29] pppsetup.cgi: Add support for QMI profiles Michael Tremer
2022-12-01 17:22 ` [PATCH 09/29] " Michael Tremer
2022-12-01 17:22 ` [PATCH 10/29] pppsetup.cgi: Move authentication above MTU Michael Tremer
2022-12-01 17:23 ` [PATCH 11/29] network: Remove --debug switch for dhcpcd in QMI mode Michael Tremer
2022-12-01 17:23 ` [PATCH 12/29] dhcpcd: Only try to obtain an IP address for IPv4 Michael Tremer
2022-12-01 17:23 ` [PATCH 13/29] dhcpcd.exe: Flush any configured IP addresses on shutdown Michael Tremer
2022-12-01 17:23 ` [PATCH 14/29] dhcpcd.exe: Actually use the received MTU Michael Tremer
2022-12-01 17:23 ` [PATCH 15/29] dhcpcd.exe: Only set gateway when we have received one Michael Tremer
2022-12-01 17:23 ` [PATCH 16/29] dhcpcd.exe: Store the default gateway when in QMI mode Michael Tremer
2022-12-01 17:23 ` [PATCH 17/29] dhcpcd.exe: Use DNS servers from QMI Michael Tremer
2022-12-01 17:23 ` [PATCH 18/29] dhcpcd.exe: Do not overwrite the default gateway when empty Michael Tremer
2022-12-01 17:23 ` [PATCH 19/29] dhcpcd.exe: Only touch /var/ipfire/red/active once Michael Tremer
2022-12-01 17:23 ` [PATCH 20/29] dhcpcd.exe: Run everything no matter how RED is configured Michael Tremer
2022-12-01 17:23 ` [PATCH 21/29] dhcpcd.exe: Fix typo in configuring DNS server Michael Tremer
2022-12-01 17:23 ` [PATCH 22/29] network: dhcpcd fails to check link state for QMI interfaces Michael Tremer
2022-12-01 17:23 ` [PATCH 23/29] dhcpcd.exe: Reformat the reason dispatcher Michael Tremer
2022-12-01 17:23 ` [PATCH 24/29] dhcpcd.exe: Ignore some events Michael Tremer
2022-12-01 17:23 ` [PATCH 25/29] dhcpcd.exe: Add a safety net to make sure we always have a route Michael Tremer
2022-12-01 17:23 ` [PATCH 26/29] network: Force dhcpcd to ask for an IP address Michael Tremer
2022-12-01 17:23 ` [PATCH 27/29] network: Assign "static" MAC addresses to QMI interfaces Michael Tremer
2022-12-01 17:23 ` [PATCH 28/29] network: Silence any output during the QMI setup Michael Tremer
2022-12-01 17:23 ` [PATCH 29/29] make.sh: Build some dependencies for glib earlier Michael Tremer
2022-12-17 21:03   ` Peter Müller
2022-12-19 12:49     ` Michael Tremer
2022-12-20 12:03       ` Peter Müller
2022-12-20 16:07         ` Michael Tremer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox