commit 085d967708ee822995e8aebf6f1b9d10229d3bac Author: oxmc7769 Date: Mon Apr 20 09:09:23 2026 -0700 Initial commit diff --git a/Android.bp b/Android.bp new file mode 100644 index 0000000..7c1526d --- /dev/null +++ b/Android.bp @@ -0,0 +1,85 @@ +// vendor/oxmc/vesperprofiled/Android.bp +// ───────────────────────────────────────────────────────────────────────── +// Drop this entire directory at vendor/oxmc/vesperprofiled/ and add +// "vesperprofiled" to PRODUCT_PACKAGES in your device makefile. +// +// m vesperprofiled — build the daemon +// m me.oxmc.vesperos.profile-V1-java — build Java stubs for system apps +// ───────────────────────────────────────────────────────────────────────── + +// ── AIDL interface ──────────────────────────────────────────────────────── + +aidl_interface { + name: "me.oxmc.vesperos.profile", + srcs: ["aidl/me/oxmc/vesperos/profile/IVesperProfileService.aidl"], + stability: "vintf", + vendor_available: false, + backend: { + ndk: { + enabled: true, + }, + java: { + enabled: true, + sdk_version: "system_current", + }, + cpp: { + enabled: false, + }, + }, + versions: ["1"], +} + +// ── Native daemon ───────────────────────────────────────────────────────── + +cc_binary { + name: "vesperprofiled", + + srcs: [ + // Profile daemon core + "src/main.cpp", + "src/VesperProfileService.cpp", + "src/ProfileParser.cpp", + "src/ProfileStore.cpp", + "src/SignatureVerifier.cpp", + "src/payloads/PayloadHandlers.cpp", + + // ZTE client — compiled into the same binary + "src/zte/DeviceIdentity.cpp", + "src/zte/ZTELookupClient.cpp", + "src/zte/ConnectivityWatcher.cpp", + ], + + shared_libs: [ + "libbinder_ndk", + "libbase", + "liblog", + "libcrypto", + "libssl", + "libcurl", + "me.oxmc.vesperos.profile-V1-ndk", + ], + + static_libs: [ + "libyaml", + ], + + cflags: [ + "-Wall", + "-Wextra", + "-Werror", + "-std=c++17", + ], + + init_rc: ["vesperprofiled.rc"], + vintf_fragments: ["vesperprofiled.xml"], + + required: ["vesperprofiled_sepolicy"], +} + +// ── SELinux policy shim ─────────────────────────────────────────────────── + +prebuilt_etc { + name: "vesperprofiled_sepolicy", + src: "sepolicy/vesperprofiled.te", + sub_dir: "selinux", +} diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..a896895 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,87 @@ +cmake_minimum_required(VERSION 3.18) +project(vesperprofiled VERSION 1.0.0 LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif() + +set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") +set(CMAKE_CXX_FLAGS_DEBUG "-g -fsanitize=address") + +# ── Dependencies ─────────────────────────────────────────────────────────── +find_package(PkgConfig REQUIRED) +find_package(CURL REQUIRED) + +pkg_check_modules(OPENSSL REQUIRED openssl) +pkg_check_modules(LIBYAML REQUIRED yaml-0.1) +pkg_check_modules(DBUS REQUIRED dbus-1) +pkg_check_modules(SYSTEMD REQUIRED libsystemd) + +# ── Sources ──────────────────────────────────────────────────────────────── +set(SOURCES + src/main.cpp + src/VesperProfileService.cpp + src/ProfileParser.cpp + src/ProfileStore.cpp + src/SignatureVerifier.cpp + src/payloads/PayloadHandlers.cpp + src/zte/DeviceIdentity.cpp + src/zte/ZTELookupClient.cpp + src/zte/ConnectivityWatcher.cpp +) + +add_executable(vesperprofiled ${SOURCES}) + +target_include_directories(vesperprofiled PRIVATE + src/ + ${OPENSSL_INCLUDE_DIRS} + ${LIBYAML_INCLUDE_DIRS} + ${DBUS_INCLUDE_DIRS} + ${SYSTEMD_INCLUDE_DIRS} + ${CURL_INCLUDE_DIRS} +) + +target_link_libraries(vesperprofiled PRIVATE + ${OPENSSL_LIBRARIES} + ${LIBYAML_LIBRARIES} + ${DBUS_LIBRARIES} + ${SYSTEMD_LIBRARIES} + ${CURL_LIBRARIES} + pthread +) + +target_compile_options(vesperprofiled PRIVATE + -Wall -Wextra -Werror + ${OPENSSL_CFLAGS_OTHER} + ${LIBYAML_CFLAGS_OTHER} + ${DBUS_CFLAGS_OTHER} + ${SYSTEMD_CFLAGS_OTHER} + ${CURL_CFLAGS_OTHER} +) + +# ── Install ──────────────────────────────────────────────────────────────── +include(GNUInstallDirs) + +install(TARGETS vesperprofiled + RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR} +) +install(FILES systemd/vesperprofiled.service + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/systemd/system +) +install(FILES dbus/me.oxmc.vesperos.ProfileService.conf + DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/system.d +) +install(FILES apparmor/vesperprofiled + DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/apparmor.d +) +install(FILES zte.conf.example + DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/vesperprofiled + RENAME zte.conf.example +) +# Note: profile.schema.yml is NOT installed here — it is owned by the +# vesperprofiled-config-schema package and installed at +# /usr/share/vesperprofiled/schema/profile.schema.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..9812608 --- /dev/null +++ b/README.md @@ -0,0 +1,255 @@ +# vesperprofiled + +VesperOS unified device management daemon. + +One binary. Two subsystems. Ships on every VesperOS device. + +--- + +## Subsystems + +### Profile Service +D-Bus system service at `me.oxmc.vesperos.ProfileService`. +Parses, verifies, persists, and applies `.vconfig` profiles. +The allowed payload types are controlled by the separately-installed +`vesperprofiled-config-schema` package — OEMs can restrict the +configuration surface without touching the daemon binary. + +### ZTE Client +Zero-Touch Enrollment. Runs as a background thread. +Watches NetworkManager for internet connectivity. +On first connection, queries a ZTE lookup server with the device's +hardware identity. Downloads and installs the enrollment profile +automatically via the local D-Bus service. +Handles the deferred case: if no network at first boot, +enrolls on the first successful connection later. + +--- + +## Package layout + +``` +vesperprofiled/ +├── Android.bp AOSP Soong build +├── CMakeLists.txt Linux CMake build +├── vesperprofiled.rc Android init script +├── vesperprofiled.xml Android VINTF fragment +├── zte.conf.example ZTE client config +│ +├── aidl/me/oxmc/vesperos/profile/ +│ └── IVesperProfileService.aidl Binder interface (Android) +│ +├── src/ +│ ├── main.cpp Entry point +│ ├── VesperProfileService.h/.cpp D-Bus service (Linux) +│ ├── ProfileParser.h/.cpp YAML parser (libyaml) +│ ├── ProfileStore.h/.cpp Disk persistence + password hashing +│ ├── SignatureVerifier.h/.cpp CMS/PKCS#7 verification (OpenSSL) +│ └── payloads/ +│ ├── PayloadHandler.h Base class + handler registry +│ └── PayloadHandlers.cpp All 55 payload implementations +│ +├── src/zte/ +│ ├── DeviceIdentity.h/.cpp Hardware identity collection +│ ├── ZTELookupClient.h/.cpp ZTE server HTTPS client (libcurl) +│ └── ConnectivityWatcher.h/.cpp NM D-Bus connectivity watcher +│ +├── systemd/vesperprofiled.service Systemd unit +├── dbus/me.oxmc.vesperos.ProfileService.conf D-Bus policy +├── apparmor/vesperprofiled AppArmor MAC profile +├── sepolicy/ Android SELinux policy +└── debian/ Debian Trixie packaging +``` + +--- + +## Dependencies + +### Runtime +| Package | Used for | +|---|---| +| `vesperprofiled-config-schema` | Schema defining allowed payload types | +| `libssl3` | CMS signature verification, PBKDF2 | +| `libyaml-0-2` | YAML parsing | +| `libdbus-1-3` | D-Bus system service | +| `libcurl4` | ZTE HTTPS lookups | +| `network-manager` | WiFi/Ethernet/VPN keyfile reload | + +### Recommended (enable specific payload handlers) +| Package | Payload types | +|---|---| +| `cloud-init` | `mdm`, `first-boot` | +| `nftables` | `firewall` | +| `network-manager-strongswan` | `vpn` (IKEv2) | +| `network-manager-l2tp` | `vpn` (L2TP) | +| `libpam-pwquality` | `passcode` (complexity) | +| `libpam-faillock` | `passcode` (lockout) | +| `libnss3-tools` | `pkcs12` (NSSDB import) | +| `unattended-upgrades` | `software-update` | +| `dconf-cli` | `desktop`, `screensaver`, `first-boot` | +| `tpm2-tools` | ZTE TPM EK detection | + +--- + +## Building — Linux (Debian Trixie) + +```bash +# Build dependencies +sudo apt install -y \ + cmake libssl-dev libyaml-dev libdbus-1-dev \ + libsystemd-dev libcurl4-openssl-dev pkg-config + +# Build .deb (includes vesperprofiled-config-schema as a dep) +dpkg-buildpackage -us -uc -b +sudo apt install \ + ../vesperprofiled-config-schema_1.0.0-1_all.deb \ + ../vesperprofiled_1.0.0-1_amd64.deb + +# Or build without packaging +cmake -B build -DCMAKE_BUILD_TYPE=Release +cmake --build build -j$(nproc) +sudo cmake --install build +``` + +--- + +## Building — Android (AOSP) + +```bash +cp -r vesperprofiled/ $AOSP_ROOT/vendor/oxmc/vesperprofiled/ + +# Add to device makefile +echo 'PRODUCT_PACKAGES += vesperprofiled' \ + >> device/oxmc/vesperos/vesperos.mk +echo 'BOARD_SEPOLICY_DIRS += vendor/oxmc/vesperprofiled/sepolicy' \ + >> device/oxmc/vesperos/BoardConfig.mk + +source build/envsetup.sh && lunch vesperos_arm64-userdebug +m vesperprofiled +``` + +--- + +## Verifying the installation + +```bash +# Service status +systemctl status vesperprofiled + +# D-Bus connectivity +dbus-send --system --print-reply \ + --dest=me.oxmc.vesperos.ProfileService \ + /me/oxmc/vesperos/ProfileService \ + me.oxmc.vesperos.IProfileService.IsDeviceManaged + +# List installed profiles +dbus-send --system --print-reply \ + --dest=me.oxmc.vesperos.ProfileService \ + /me/oxmc/vesperos/ProfileService \ + me.oxmc.vesperos.IProfileService.ListProfiles + +# ZTE enrollment state +cat /var/lib/vesperprofiled/zte_state.json + +# Live logs +journalctl -u vesperprofiled -f +``` + +--- + +## Installing a profile from the command line + +```python +#!/usr/bin/env python3 +import dbus, sys + +with open(sys.argv[1], 'rb') as f: + data = f.read() + +bus = dbus.SystemBus() +obj = bus.get_object('me.oxmc.vesperos.ProfileService', + '/me/oxmc/vesperos/ProfileService') +svc = dbus.Interface(obj, 'me.oxmc.vesperos.IProfileService') +uuid = svc.InstallProfile(dbus.ByteArray(data)) +print('Installed profile UUID:', uuid) +``` + +--- + +## Signing profiles + +Profiles containing `mdm`, `kiosk`, `asam`, or `removal-password` payloads +must be CMS/PKCS#7 signed. Unsigned profiles install with a trust warning. + +```bash +# Generate a development signing key and CA +openssl req -x509 -newkey rsa:4096 -days 3650 -nodes \ + -keyout /etc/vesperprofiled/signing_key.pem \ + -out /etc/vesperprofiled/profile_ca.pem \ + -subj "/CN=VesperOS Profile Signing/O=oxmc" + +# Sign a profile +openssl cms -sign \ + -in my.vconfig \ + -out my.signed.vconfig \ + -signer /etc/vesperprofiled/profile_ca.pem \ + -inkey /etc/vesperprofiled/signing_key.pem \ + -outform DER -nodetach +``` + +The CA at `/etc/vesperprofiled/profile_ca.pem` is trusted automatically. +For a system-wide trusted badge, also install it as a system CA: + +```bash +cp /etc/vesperprofiled/profile_ca.pem \ + /usr/local/share/ca-certificates/vesperos-profile-ca.crt +update-ca-certificates +``` + +--- + +## Preinstalled profiles + +Drop signed `.vconfig` files into `/etc/vesperprofiled/preinstalled/` +before first boot. The daemon applies them at startup, +**before** `cloud-init-local.service` starts (enforced via +`Before=cloud-init-local.service` in the systemd unit). + +This lets image builders bake in WiFi credentials, first-boot GNOME +setup suppression, and MDM enrollment — all applied before cloud-init +tries to reach its datasource. + +--- + +## Zero-Touch Enrollment + +ZTE configuration lives at `/etc/vesperprofiled/zte.conf` (copy from +`zte.conf.example`). The key setting is `server_url`, which points to +your `vesper-zte-server` instance. + +```ini +server_url=https://zte.yourdomain.com +``` + +Hardware identity priority used for the ZTE lookup: + +| Priority | Source | Path | +|---|---|---| +| 1 | DMI system UUID | `/sys/class/dmi/id/product_uuid` | +| 2 | Board serial | `/sys/class/dmi/id/board_serial` | +| 3 | System serial | `/sys/class/dmi/id/product_serial` | +| 4 | machine-id | `/etc/machine-id` | +| 5 | Permanent MAC | `/sys/class/net//perm_address` | + +--- + +## Bugs fixed vs. previous iterations + +| Bug | Fix | +|---|---| +| `ProfileParser.cpp` used `android-base/logging.h` and `LOG()` | Replaced with `syslog()` throughout | +| `debian/rules` had postinst `install -d` lines leaked after `override_dh_installsystemd` | Removed stray lines | +| `sepolicy/vesperprofiled.te` had typo `vesperprofrofiled` | Fixed | +| `apparmor/vesperprofiled` used `abstractions/openssl` (doesn't exist on Debian) | Replaced with explicit `/etc/ssl/certs/` and network socket rules | +| `ZTELookupClient` called `curl_global_init` but never `curl_global_cleanup` | Added to destructor | +| `debian/control` missing `Depends: vesperprofiled-config-schema` | Added | diff --git a/aidl/me/oxmc/vesperos/profile/IVesperProfileService.aidl b/aidl/me/oxmc/vesperos/profile/IVesperProfileService.aidl new file mode 100644 index 0000000..565a38c --- /dev/null +++ b/aidl/me/oxmc/vesperos/profile/IVesperProfileService.aidl @@ -0,0 +1,45 @@ +package me.oxmc.vesperos.profile; + +// IVesperProfileService — Binder interface exposed by vesperprofiled. +// Clients (system apps, Settings, installer UI) talk to the daemon via this. +// NDK backend; link against libvesperprofiled-ndk. +@VintfStability +interface IVesperProfileService { + + // ── Profile lifecycle ───────────────────────────────────────────────── + + // Install a profile from raw YAML bytes (unsigned) or a CMS/PKCS#7 + // blob (signed). Returns the installed profile's UUID on success. + // Throws ServiceSpecificException on validation or signature failure. + String installProfile(in byte[] profileData); + + // Remove an installed profile by UUID. + // Throws if the profile is MDM-locked or removal-password protected + // and no password is supplied. + void removeProfile(in String uuid, in String removalPassword); + + // List all installed profile UUIDs. + String[] listProfiles(); + + // Return JSON-encoded metadata for a single profile. + String getProfileInfo(in String uuid); + + // ── MDM state ───────────────────────────────────────────────────────── + + // True if a valid MDM payload is enrolled. + boolean isDeviceManaged(); + + // Return the enrolled MDM server URL, or empty string if not managed. + String getMdmServerUrl(); + + // ── Supervised / kiosk state ────────────────────────────────────────── + + // True if a kiosk or ASAM payload is active. + boolean isSupervised(); + + // ── Payload query helpers ───────────────────────────────────────────── + + // Return JSON array of payloads of the given type across all profiles. + // e.g. getPayloadsOfType("wifi") → [{ssid:..., uuid:...}, ...] + String getPayloadsOfType(in String payloadType); +} diff --git a/apparmor/vesperprofiled b/apparmor/vesperprofiled new file mode 100644 index 0000000..0067c49 --- /dev/null +++ b/apparmor/vesperprofiled @@ -0,0 +1,130 @@ +# /etc/apparmor.d/vesperprofiled +# AppArmor MAC profile for the vesperprofiled daemon. +# Installed by the vesperprofiled Debian package. + +#include + +/usr/sbin/vesperprofiled { + #include + #include + + # D-Bus (system bus access) + #include + + # Own binary + /usr/sbin/vesperprofiled mr, + + # ── Profile store ───────────────────────────────────────────────────────── + /var/lib/vesperprofiled/ rw, + /var/lib/vesperprofiled/** rw, + + # ── Config directories (profile drop-ins written here) ─────────────────── + /etc/vesperprofiled/ rw, + /etc/vesperprofiled/** rw, + /etc/NetworkManager/conf.d/ rw, + /etc/NetworkManager/conf.d/** rw, + /etc/NetworkManager/system-connections/ rw, + /etc/NetworkManager/system-connections/** rw, + /etc/apt/apt.conf.d/ rw, + /etc/apt/apt.conf.d/** rw, + /etc/cloud/cloud.cfg.d/ rw, + /etc/cloud/cloud.cfg.d/** rw, + /etc/systemd/timesyncd.conf.d/ rw, + /etc/systemd/timesyncd.conf.d/** rw, + /etc/systemd/resolved.conf.d/ rw, + /etc/systemd/resolved.conf.d/** rw, + /etc/security/pwquality.conf.d/ rw, + /etc/security/pwquality.conf.d/** rw, + /etc/security/faillock.conf.d/ rw, + /etc/security/faillock.conf.d/** rw, + /etc/nftables.d/ rw, + /etc/nftables.d/** rw, + /etc/ldap/ rw, + /etc/ldap/** rw, + /etc/nslcd.conf rw, + /etc/profile.d/ rw, + /etc/profile.d/** rw, + /etc/dconf/db/local.d/ rw, + /etc/dconf/db/local.d/** rw, + /etc/ssl/private/vesperos/ rw, + /etc/ssl/private/vesperos/** rw, + /usr/local/share/ca-certificates/vesperos/ rw, + /usr/local/share/ca-certificates/vesperos/** rw, + /var/lib/gnome-initial-setup/ rw, + /var/lib/gnome-initial-setup/** rw, + + # ── Schema (read only — owned by vesperprofiled-config-schema) ──────────── + /usr/share/vesperprofiled/schema/ r, + /usr/share/vesperprofiled/schema/* r, + + # ── TLS / certificate paths (explicit — no abstractions/openssl on Debian) ─ + /etc/ssl/certs/ r, + /etc/ssl/certs/** r, + /etc/ssl/openssl.cnf r, + /usr/lib/ssl/openssl.cnf r, + /usr/share/ca-certificates/ r, + /usr/share/ca-certificates/** r, + /etc/vesperprofiled/profile_ca.pem r, + + # ── D-Bus service registration ──────────────────────────────────────────── + dbus (send, receive, bind) + bus=system + name="me.oxmc.vesperos.ProfileService", + dbus (send) + bus=system + interface="org.freedesktop.DBus" + member="RequestName", + dbus (send) + bus=system + interface="org.freedesktop.NetworkManager", + dbus (receive) + bus=system + interface="org.freedesktop.NetworkManager", + + # ── Executables called by payload handlers ──────────────────────────────── + /usr/sbin/update-ca-certificates Px, + /usr/bin/dconf Px, + /usr/bin/gsettings Px, + /sbin/nft Px, + /usr/sbin/nslcd Px, + /usr/bin/pk12util Px, + /bin/systemctl Px, + /usr/bin/cloud-init Px, + # nmcli is no longer used (WiFi/Ethernet use keyfiles directly), + # but keep read access for diagnostics + /usr/bin/nmcli ix, + + # ── Network (ZTE HTTPS lookups via libcurl) ─────────────────────────────── + network inet stream, + network inet6 stream, + network inet dgram, # DNS resolution + + # ── /proc and system info ───────────────────────────────────────────────── + @{PROC}/@{pid}/status r, + @{PROC}/sys/kernel/hostname r, + /sys/class/dmi/id/ r, + /sys/class/dmi/id/* r, + /sys/class/net/ r, + /sys/class/net/** r, + /sys/firmware/efi/ r, + /sys/firmware/efi/** r, + /sys/class/tpm/ r, + /etc/machine-id r, + /var/lib/dbus/machine-id r, + + # ── Logging ─────────────────────────────────────────────────────────────── + /run/systemd/journal/socket w, + /run/systemd/notify w, + /dev/log w, + + # ── Lock file (ZTE enrollment serialisation) ────────────────────────────── + /run/vesperprofiled/ rw, + /run/vesperprofiled/** rw, + + # ── Deny sensitive paths ────────────────────────────────────────────────── + deny /home/** rw, + deny /root/** rw, + deny /boot/** rw, + deny network raw, + deny network packet, +} diff --git a/dbus/me.oxmc.vesperos.ProfileService.conf b/dbus/me.oxmc.vesperos.ProfileService.conf new file mode 100644 index 0000000..567b3c1 --- /dev/null +++ b/dbus/me.oxmc.vesperos.ProfileService.conf @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/debian/.debhelper/generated/vesperprofiled/dh_installchangelogs.dch.trimmed b/debian/.debhelper/generated/vesperprofiled/dh_installchangelogs.dch.trimmed new file mode 100644 index 0000000..16a8e2c --- /dev/null +++ b/debian/.debhelper/generated/vesperprofiled/dh_installchangelogs.dch.trimmed @@ -0,0 +1,22 @@ +vesperprofiled (1.0.0-1) trixie; urgency=medium + + * Initial release for VesperOS 10.0 "Rainier". + * Unified binary: profile daemon + ZTE client in one process. + * Profile service: 55 payload types, CMS/PKCS#7 signature verification, + PBKDF2-SHA256 removal password hashing, D-Bus system service. + * WiFi/Ethernet: NetworkManager keyfile-based (no nmcli exec), full + 802.1X EAP support (TLS/PEAP/TTLS/EAP-FAST), WPA3-SAE, proxy. + * ZTE client: DMI UUID/serial, board serial, machine-id, permanent MACs, + EFI GUID, TPM detection. Priority-ordered primary serial derivation. + SHA-256 hardware fingerprint for fuzzy server-side matching. + * ZTE deferred enrollment: watches NetworkManager StateChanged and + PropertiesChanged D-Bus signals; checks current state at startup. + * Preinstalled profile support: applies profiles from + /etc/vesperprofiled/preinstalled/ before cloud-init runs. + * first-boot payload: suppresses GNOME Initial Setup and cloud-init + wizard modules; writes cloud-init drop-in before cloud-init starts. + * systemd ordering: Before=cloud-init-local.service ensures preinstalled + profiles and ZTE drops are in place before cloud-init runs. + * AppArmor profile included. + + -- oxmc Sun, 19 Apr 2026 00:00:00 +0000 diff --git a/debian/.debhelper/generated/vesperprofiled/installed-by-dh_installdocs b/debian/.debhelper/generated/vesperprofiled/installed-by-dh_installdocs new file mode 100644 index 0000000..e69de29 diff --git a/debian/.debhelper/generated/vesperprofiled/postinst.service b/debian/.debhelper/generated/vesperprofiled/postinst.service new file mode 100644 index 0000000..b26ec7b --- /dev/null +++ b/debian/.debhelper/generated/vesperprofiled/postinst.service @@ -0,0 +1,17 @@ +# Automatically added by dh_installsystemd/13.14.1ubuntu5 +if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then + # The following line should be removed in trixie or trixie+1 + deb-systemd-helper unmask 'vesperprofiled.service' >/dev/null || true + + # was-enabled defaults to true, so new installations run enable. + if deb-systemd-helper --quiet was-enabled 'vesperprofiled.service'; then + # Enables the unit on first installation, creates new + # symlinks on upgrades if the unit file has changed. + deb-systemd-helper enable 'vesperprofiled.service' >/dev/null || true + else + # Update the statefile to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state 'vesperprofiled.service' >/dev/null || true + fi +fi +# End automatically added section diff --git a/debian/.debhelper/generated/vesperprofiled/preinst.service b/debian/.debhelper/generated/vesperprofiled/preinst.service new file mode 100644 index 0000000..2d21979 --- /dev/null +++ b/debian/.debhelper/generated/vesperprofiled/preinst.service @@ -0,0 +1,5 @@ +# Automatically added by dh_installsystemd/13.14.1ubuntu5 +if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = upgrade ] && [ -d /run/systemd/system ] ; then + deb-systemd-invoke stop 'vesperprofiled.service' >/dev/null || true +fi +# End automatically added section diff --git a/debian/.debhelper/vesperprofiled/dbgsym-build-ids b/debian/.debhelper/vesperprofiled/dbgsym-build-ids new file mode 100644 index 0000000..d511517 --- /dev/null +++ b/debian/.debhelper/vesperprofiled/dbgsym-build-ids @@ -0,0 +1 @@ +3a272b0b159fbe1f2432ddef9ebc077884e5069b \ No newline at end of file diff --git a/debian/.debhelper/vesperprofiled/dbgsym-root/DEBIAN/control b/debian/.debhelper/vesperprofiled/dbgsym-root/DEBIAN/control new file mode 100644 index 0000000..817d81c --- /dev/null +++ b/debian/.debhelper/vesperprofiled/dbgsym-root/DEBIAN/control @@ -0,0 +1,13 @@ +Package: vesperprofiled-dbgsym +Package-Type: ddeb +Source: vesperprofiled +Version: 1.0.0-1 +Auto-Built-Package: debug-symbols +Architecture: amd64 +Maintainer: oxmc +Installed-Size: 955 +Depends: vesperprofiled (= 1.0.0-1) +Section: debug +Priority: optional +Description: debug symbols for vesperprofiled +Build-Ids: 3a272b0b159fbe1f2432ddef9ebc077884e5069b diff --git a/debian/.debhelper/vesperprofiled/dbgsym-root/DEBIAN/md5sums b/debian/.debhelper/vesperprofiled/dbgsym-root/DEBIAN/md5sums new file mode 100644 index 0000000..fce6c33 --- /dev/null +++ b/debian/.debhelper/vesperprofiled/dbgsym-root/DEBIAN/md5sums @@ -0,0 +1 @@ +5ef0e80bb06ea08211fa57c6228a7a02 usr/lib/debug/.build-id/3a/272b0b159fbe1f2432ddef9ebc077884e5069b.debug diff --git a/debian/.debhelper/vesperprofiled/dbgsym-root/usr/lib/debug/.build-id/3a/272b0b159fbe1f2432ddef9ebc077884e5069b.debug b/debian/.debhelper/vesperprofiled/dbgsym-root/usr/lib/debug/.build-id/3a/272b0b159fbe1f2432ddef9ebc077884e5069b.debug new file mode 100644 index 0000000..35b5f75 Binary files /dev/null and b/debian/.debhelper/vesperprofiled/dbgsym-root/usr/lib/debug/.build-id/3a/272b0b159fbe1f2432ddef9ebc077884e5069b.debug differ diff --git a/debian/.debhelper/vesperprofiled/dbgsym-root/usr/share/doc/vesperprofiled-dbgsym b/debian/.debhelper/vesperprofiled/dbgsym-root/usr/share/doc/vesperprofiled-dbgsym new file mode 120000 index 0000000..df01152 --- /dev/null +++ b/debian/.debhelper/vesperprofiled/dbgsym-root/usr/share/doc/vesperprofiled-dbgsym @@ -0,0 +1 @@ +vesperprofiled \ No newline at end of file diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..16a8e2c --- /dev/null +++ b/debian/changelog @@ -0,0 +1,22 @@ +vesperprofiled (1.0.0-1) trixie; urgency=medium + + * Initial release for VesperOS 10.0 "Rainier". + * Unified binary: profile daemon + ZTE client in one process. + * Profile service: 55 payload types, CMS/PKCS#7 signature verification, + PBKDF2-SHA256 removal password hashing, D-Bus system service. + * WiFi/Ethernet: NetworkManager keyfile-based (no nmcli exec), full + 802.1X EAP support (TLS/PEAP/TTLS/EAP-FAST), WPA3-SAE, proxy. + * ZTE client: DMI UUID/serial, board serial, machine-id, permanent MACs, + EFI GUID, TPM detection. Priority-ordered primary serial derivation. + SHA-256 hardware fingerprint for fuzzy server-side matching. + * ZTE deferred enrollment: watches NetworkManager StateChanged and + PropertiesChanged D-Bus signals; checks current state at startup. + * Preinstalled profile support: applies profiles from + /etc/vesperprofiled/preinstalled/ before cloud-init runs. + * first-boot payload: suppresses GNOME Initial Setup and cloud-init + wizard modules; writes cloud-init drop-in before cloud-init starts. + * systemd ordering: Before=cloud-init-local.service ensures preinstalled + profiles and ZTE drops are in place before cloud-init runs. + * AppArmor profile included. + + -- oxmc Sun, 19 Apr 2026 00:00:00 +0000 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..3a1ec01 --- /dev/null +++ b/debian/control @@ -0,0 +1,65 @@ +Source: vesperprofiled +Section: admin +Priority: optional +Maintainer: oxmc +Build-Depends: + debhelper-compat (= 13), + cmake (>= 3.18), + libssl-dev (>= 3.0), + libyaml-dev, + libdbus-1-dev, + libsystemd-dev, + libcurl4-openssl-dev, + pkg-config +Standards-Version: 4.7.0 +Homepage: https://vesperos.oxmc.me +Vcs-Git: https://git.oxmc.me/vesperos/vesperprofiled.git + +Package: vesperprofiled +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + vesperprofiled-config-schema (>= 1.0.0), + libssl3 (>= 3.0), + libyaml-0-2, + libdbus-1-3, + libsystemd0, + libcurl4, + dbus, + network-manager, + ca-certificates +Recommends: + cloud-init, + nftables, + network-manager-strongswan, + network-manager-l2tp, + libnss3-tools, + libpam-pwquality, + libpam-faillock, + unattended-upgrades, + dconf-cli, + tpm2-tools +Suggests: + vesper-zte-server, + vesperos-ca +Description: VesperOS configuration profile daemon with Zero-Touch Enrollment + vesperprofiled is the unified device management daemon for VesperOS. + It ships as a single binary containing two subsystems: + . + Profile Service — parses, verifies, and applies .vconfig configuration + profiles. Profiles are YAML files optionally wrapped in a CMS/PKCS#7 + signed envelope. Which payload types are accepted is controlled by the + installed vesperprofiled-config-schema package, allowing OEMs to restrict + the available configuration surface for their platform. + . + ZTE Client — Zero-Touch Enrollment. Collects hardware identity (DMI UUID, + system/board serial, machine-id, permanent MAC addresses, EFI GUID) and + queries a ZTE lookup server on first internet connection. If the device is + registered, the signed MDM enrollment profile is downloaded and installed + automatically. Deferred enrollment is fully supported: if no network is + available at first boot, the ZTE client enrolls on first connectivity. + . + The profile service is exposed as a D-Bus system service at + me.oxmc.vesperos.ProfileService. The ZTE client runs as a background + thread in the same process. diff --git a/debian/debhelper-build-stamp b/debian/debhelper-build-stamp new file mode 100644 index 0000000..5bd3b06 --- /dev/null +++ b/debian/debhelper-build-stamp @@ -0,0 +1 @@ +vesperprofiled diff --git a/debian/files b/debian/files new file mode 100644 index 0000000..556a4a9 --- /dev/null +++ b/debian/files @@ -0,0 +1,3 @@ +vesperprofiled-dbgsym_1.0.0-1_amd64.ddeb debug optional automatic=yes +vesperprofiled_1.0.0-1_amd64.buildinfo admin optional +vesperprofiled_1.0.0-1_amd64.deb admin optional diff --git a/debian/postinst b/debian/postinst new file mode 100755 index 0000000..62096e5 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,39 @@ +#!/bin/sh +set -e + +case "$1" in + configure) + # Data directories + install -d -m 0700 /var/lib/vesperprofiled + install -d -m 0700 /var/lib/vesperprofiled/profiles + install -d -m 0755 /etc/vesperprofiled + install -d -m 0755 /etc/vesperprofiled/preinstalled + + # AppArmor + if command -v aa-enabled >/dev/null 2>&1 && aa-enabled >/dev/null 2>&1; then + if command -v apparmor_parser >/dev/null 2>&1; then + apparmor_parser -r /etc/apparmor.d/vesperprofiled || true + fi + fi + + # D-Bus reload + if [ -d /run/dbus ] && command -v dbus-send >/dev/null 2>&1; then + dbus-send --system \ + --dest=org.freedesktop.DBus \ + --type=method_call \ + /org/freedesktop/DBus \ + org.freedesktop.DBus.ReloadConfig 2>/dev/null || true + fi + + # systemd + if command -v systemctl >/dev/null 2>&1 && \ + systemctl is-system-running --quiet 2>/dev/null; then + systemctl daemon-reload + systemctl enable vesperprofiled.service + systemctl start vesperprofiled.service || true + fi + ;; +esac + +#DEBHELPER# +exit 0 diff --git a/debian/postrm b/debian/postrm new file mode 100755 index 0000000..c4629f5 --- /dev/null +++ b/debian/postrm @@ -0,0 +1,46 @@ +#!/bin/sh +set -e + +case "$1" in + purge) + rm -rf /var/lib/vesperprofiled + rm -rf /etc/vesperprofiled + # Remove all managed config drops + rm -f /etc/apt/apt.conf.d/99-vesperos-update + rm -f /etc/apt/apt.conf.d/99-vesperos-proxy + rm -f /etc/NetworkManager/conf.d/vesperos-proxy.conf + rm -f /etc/systemd/timesyncd.conf.d/vesperos.conf + rm -f /etc/systemd/resolved.conf.d/vesperos-dns.conf + rm -f /etc/security/pwquality.conf.d/vesperos.conf + rm -f /etc/security/faillock.conf.d/vesperos.conf + rm -f /etc/nftables.d/vesperos.nft + rm -f /etc/profile.d/vesperos-proxy.sh + rm -f /etc/cloud/cloud.cfg.d/99-vesperos-mdm.cfg + rm -f /etc/cloud/cloud.cfg.d/99-vesperos-firstboot.cfg + rm -f /etc/dconf/db/local.d/00-vesperos-wallpaper + rm -f /etc/dconf/db/local.d/00-vesperos-screensaver + rm -f /etc/dconf/db/local.d/00-vesperos-firstboot + rm -f /etc/dconf/db/local.d/locks/vesperos-wallpaper + rm -f /etc/dconf/db/local.d/locks/vesperos-screensaver + rm -rf /usr/local/share/ca-certificates/vesperos + rm -rf /etc/ssl/private/vesperos + command -v update-ca-certificates >/dev/null 2>&1 && \ + update-ca-certificates --fresh 2>/dev/null || true + command -v dconf >/dev/null 2>&1 && \ + dconf update 2>/dev/null || true + dbus-send --system --dest=org.freedesktop.DBus \ + --type=method_call /org/freedesktop/DBus \ + org.freedesktop.DBus.ReloadConfig 2>/dev/null || true + if command -v systemctl >/dev/null 2>&1; then + systemctl daemon-reload || true + fi + ;; + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + if command -v systemctl >/dev/null 2>&1; then + systemctl daemon-reload || true + fi + ;; +esac + +#DEBHELPER# +exit 0 diff --git a/debian/prerm b/debian/prerm new file mode 100755 index 0000000..0fb1e13 --- /dev/null +++ b/debian/prerm @@ -0,0 +1,18 @@ +#!/bin/sh +set -e + +case "$1" in + remove|upgrade|deconfigure) + if command -v systemctl >/dev/null 2>&1; then + systemctl stop vesperprofiled.service 2>/dev/null || true + systemctl disable vesperprofiled.service 2>/dev/null || true + fi + if command -v apparmor_parser >/dev/null 2>&1 && \ + [ -f /etc/apparmor.d/vesperprofiled ]; then + apparmor_parser -R /etc/apparmor.d/vesperprofiled 2>/dev/null || true + fi + ;; +esac + +#DEBHELPER# +exit 0 diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..339cf34 --- /dev/null +++ b/debian/rules @@ -0,0 +1,28 @@ +#!/usr/bin/make -f +export DH_VERBOSE = 1 +export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +%: + dh $@ --buildsystem=cmake --builddirectory=obj-$(DEB_HOST_GNU_TYPE) + +override_dh_auto_configure: + dh_auto_configure -- \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_SYSCONFDIR=/etc \ + -DCMAKE_INSTALL_LOCALSTATEDIR=/var + +override_dh_auto_install: + dh_auto_install + install -Dm 0644 dbus/me.oxmc.vesperos.ProfileService.conf \ + debian/vesperprofiled/etc/dbus-1/system.d/me.oxmc.vesperos.ProfileService.conf + install -Dm 0644 apparmor/vesperprofiled \ + debian/vesperprofiled/etc/apparmor.d/vesperprofiled + install -d -m 0755 debian/vesperprofiled/etc/vesperprofiled + install -d -m 0755 debian/vesperprofiled/etc/vesperprofiled/preinstalled + install -d -m 0700 debian/vesperprofiled/var/lib/vesperprofiled/profiles + install -Dm 0640 zte.conf.example \ + debian/vesperprofiled/etc/vesperprofiled/zte.conf.example + +override_dh_installsystemd: + dh_installsystemd --name=vesperprofiled --no-start diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/debian/vesperprofiled.debhelper.log b/debian/vesperprofiled.debhelper.log new file mode 100644 index 0000000..e15a197 --- /dev/null +++ b/debian/vesperprofiled.debhelper.log @@ -0,0 +1 @@ +dh_installsystemd diff --git a/debian/vesperprofiled.postrm.debhelper b/debian/vesperprofiled.postrm.debhelper new file mode 100644 index 0000000..857e215 --- /dev/null +++ b/debian/vesperprofiled.postrm.debhelper @@ -0,0 +1,12 @@ +# Automatically added by dh_installsystemd/13.14.1ubuntu5 +if [ "$1" = remove ] && [ -d /run/systemd/system ] ; then + systemctl --system daemon-reload >/dev/null || true +fi +# End automatically added section +# Automatically added by dh_installsystemd/13.14.1ubuntu5 +if [ "$1" = "purge" ]; then + if [ -x "/usr/bin/deb-systemd-helper" ]; then + deb-systemd-helper purge 'vesperprofiled.service' >/dev/null || true + fi +fi +# End automatically added section diff --git a/debian/vesperprofiled.substvars b/debian/vesperprofiled.substvars new file mode 100644 index 0000000..8a7e1b0 --- /dev/null +++ b/debian/vesperprofiled.substvars @@ -0,0 +1,3 @@ +shlibs:Depends=libc6 (>= 2.38), libcurl4t64 (>= 7.16.2), libdbus-1-3 (>= 1.9.14), libgcc-s1 (>= 3.3.1), libssl3t64 (>= 3.0.0), libstdc++6 (>= 11), libsystemd0, libyaml-0-2 +misc:Depends= +misc:Pre-Depends= diff --git a/debian/vesperprofiled/DEBIAN/conffiles b/debian/vesperprofiled/DEBIAN/conffiles new file mode 100644 index 0000000..abbd6f2 --- /dev/null +++ b/debian/vesperprofiled/DEBIAN/conffiles @@ -0,0 +1,3 @@ +/etc/apparmor.d/vesperprofiled +/etc/dbus-1/system.d/me.oxmc.vesperos.ProfileService.conf +/etc/vesperprofiled/zte.conf.example diff --git a/debian/vesperprofiled/DEBIAN/control b/debian/vesperprofiled/DEBIAN/control new file mode 100644 index 0000000..48b5f3a --- /dev/null +++ b/debian/vesperprofiled/DEBIAN/control @@ -0,0 +1,31 @@ +Package: vesperprofiled +Version: 1.0.0-1 +Architecture: amd64 +Maintainer: oxmc +Installed-Size: 245 +Depends: libc6 (>= 2.38), libcurl4t64 (>= 7.16.2), libdbus-1-3 (>= 1.9.14), libgcc-s1 (>= 3.3.1), libssl3t64 (>= 3.0.0), libstdc++6 (>= 11), libsystemd0, libyaml-0-2, vesperprofiled-config-schema (>= 1.0.0), libssl3 (>= 3.0), libcurl4, dbus, network-manager, ca-certificates +Recommends: cloud-init, nftables, network-manager-strongswan, network-manager-l2tp, libnss3-tools, libpam-pwquality, libpam-faillock, unattended-upgrades, dconf-cli, tpm2-tools +Suggests: vesper-zte-server, vesperos-ca +Section: admin +Priority: optional +Homepage: https://vesperos.oxmc.me +Description: VesperOS configuration profile daemon with Zero-Touch Enrollment + vesperprofiled is the unified device management daemon for VesperOS. + It ships as a single binary containing two subsystems: + . + Profile Service — parses, verifies, and applies .vconfig configuration + profiles. Profiles are YAML files optionally wrapped in a CMS/PKCS#7 + signed envelope. Which payload types are accepted is controlled by the + installed vesperprofiled-config-schema package, allowing OEMs to restrict + the available configuration surface for their platform. + . + ZTE Client — Zero-Touch Enrollment. Collects hardware identity (DMI UUID, + system/board serial, machine-id, permanent MAC addresses, EFI GUID) and + queries a ZTE lookup server on first internet connection. If the device is + registered, the signed MDM enrollment profile is downloaded and installed + automatically. Deferred enrollment is fully supported: if no network is + available at first boot, the ZTE client enrolls on first connectivity. + . + The profile service is exposed as a D-Bus system service at + me.oxmc.vesperos.ProfileService. The ZTE client runs as a background + thread in the same process. diff --git a/debian/vesperprofiled/DEBIAN/md5sums b/debian/vesperprofiled/DEBIAN/md5sums new file mode 100644 index 0000000..3904eab --- /dev/null +++ b/debian/vesperprofiled/DEBIAN/md5sums @@ -0,0 +1,3 @@ +af865abb638806188b22085ca4d5fe77 usr/lib/systemd/system/vesperprofiled.service +f1b630bbe5f876dbba858c4b3fd38d5e usr/sbin/vesperprofiled +5af38dfb23cecbc388fed5881748e63b usr/share/doc/vesperprofiled/changelog.Debian.gz diff --git a/debian/vesperprofiled/DEBIAN/postinst b/debian/vesperprofiled/DEBIAN/postinst new file mode 100755 index 0000000..5a10a8d --- /dev/null +++ b/debian/vesperprofiled/DEBIAN/postinst @@ -0,0 +1,56 @@ +#!/bin/sh +set -e + +case "$1" in + configure) + # Data directories + install -d -m 0700 /var/lib/vesperprofiled + install -d -m 0700 /var/lib/vesperprofiled/profiles + install -d -m 0755 /etc/vesperprofiled + install -d -m 0755 /etc/vesperprofiled/preinstalled + + # AppArmor + if command -v aa-enabled >/dev/null 2>&1 && aa-enabled >/dev/null 2>&1; then + if command -v apparmor_parser >/dev/null 2>&1; then + apparmor_parser -r /etc/apparmor.d/vesperprofiled || true + fi + fi + + # D-Bus reload + if [ -d /run/dbus ] && command -v dbus-send >/dev/null 2>&1; then + dbus-send --system \ + --dest=org.freedesktop.DBus \ + --type=method_call \ + /org/freedesktop/DBus \ + org.freedesktop.DBus.ReloadConfig 2>/dev/null || true + fi + + # systemd + if command -v systemctl >/dev/null 2>&1 && \ + systemctl is-system-running --quiet 2>/dev/null; then + systemctl daemon-reload + systemctl enable vesperprofiled.service + systemctl start vesperprofiled.service || true + fi + ;; +esac + +# Automatically added by dh_installsystemd/13.14.1ubuntu5 +if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then + # The following line should be removed in trixie or trixie+1 + deb-systemd-helper unmask 'vesperprofiled.service' >/dev/null || true + + # was-enabled defaults to true, so new installations run enable. + if deb-systemd-helper --quiet was-enabled 'vesperprofiled.service'; then + # Enables the unit on first installation, creates new + # symlinks on upgrades if the unit file has changed. + deb-systemd-helper enable 'vesperprofiled.service' >/dev/null || true + else + # Update the statefile to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state 'vesperprofiled.service' >/dev/null || true + fi +fi +# End automatically added section + +exit 0 diff --git a/debian/vesperprofiled/DEBIAN/postrm b/debian/vesperprofiled/DEBIAN/postrm new file mode 100755 index 0000000..fb1512d --- /dev/null +++ b/debian/vesperprofiled/DEBIAN/postrm @@ -0,0 +1,58 @@ +#!/bin/sh +set -e + +case "$1" in + purge) + rm -rf /var/lib/vesperprofiled + rm -rf /etc/vesperprofiled + # Remove all managed config drops + rm -f /etc/apt/apt.conf.d/99-vesperos-update + rm -f /etc/apt/apt.conf.d/99-vesperos-proxy + rm -f /etc/NetworkManager/conf.d/vesperos-proxy.conf + rm -f /etc/systemd/timesyncd.conf.d/vesperos.conf + rm -f /etc/systemd/resolved.conf.d/vesperos-dns.conf + rm -f /etc/security/pwquality.conf.d/vesperos.conf + rm -f /etc/security/faillock.conf.d/vesperos.conf + rm -f /etc/nftables.d/vesperos.nft + rm -f /etc/profile.d/vesperos-proxy.sh + rm -f /etc/cloud/cloud.cfg.d/99-vesperos-mdm.cfg + rm -f /etc/cloud/cloud.cfg.d/99-vesperos-firstboot.cfg + rm -f /etc/dconf/db/local.d/00-vesperos-wallpaper + rm -f /etc/dconf/db/local.d/00-vesperos-screensaver + rm -f /etc/dconf/db/local.d/00-vesperos-firstboot + rm -f /etc/dconf/db/local.d/locks/vesperos-wallpaper + rm -f /etc/dconf/db/local.d/locks/vesperos-screensaver + rm -rf /usr/local/share/ca-certificates/vesperos + rm -rf /etc/ssl/private/vesperos + command -v update-ca-certificates >/dev/null 2>&1 && \ + update-ca-certificates --fresh 2>/dev/null || true + command -v dconf >/dev/null 2>&1 && \ + dconf update 2>/dev/null || true + dbus-send --system --dest=org.freedesktop.DBus \ + --type=method_call /org/freedesktop/DBus \ + org.freedesktop.DBus.ReloadConfig 2>/dev/null || true + if command -v systemctl >/dev/null 2>&1; then + systemctl daemon-reload || true + fi + ;; + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + if command -v systemctl >/dev/null 2>&1; then + systemctl daemon-reload || true + fi + ;; +esac + +# Automatically added by dh_installsystemd/13.14.1ubuntu5 +if [ "$1" = remove ] && [ -d /run/systemd/system ] ; then + systemctl --system daemon-reload >/dev/null || true +fi +# End automatically added section +# Automatically added by dh_installsystemd/13.14.1ubuntu5 +if [ "$1" = "purge" ]; then + if [ -x "/usr/bin/deb-systemd-helper" ]; then + deb-systemd-helper purge 'vesperprofiled.service' >/dev/null || true + fi +fi +# End automatically added section + +exit 0 diff --git a/debian/vesperprofiled/DEBIAN/preinst b/debian/vesperprofiled/DEBIAN/preinst new file mode 100755 index 0000000..8ed4db9 --- /dev/null +++ b/debian/vesperprofiled/DEBIAN/preinst @@ -0,0 +1,7 @@ +#!/bin/sh +set -e +# Automatically added by dh_installsystemd/13.14.1ubuntu5 +if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = upgrade ] && [ -d /run/systemd/system ] ; then + deb-systemd-invoke stop 'vesperprofiled.service' >/dev/null || true +fi +# End automatically added section diff --git a/debian/vesperprofiled/DEBIAN/prerm b/debian/vesperprofiled/DEBIAN/prerm new file mode 100755 index 0000000..2b10e7a --- /dev/null +++ b/debian/vesperprofiled/DEBIAN/prerm @@ -0,0 +1,18 @@ +#!/bin/sh +set -e + +case "$1" in + remove|upgrade|deconfigure) + if command -v systemctl >/dev/null 2>&1; then + systemctl stop vesperprofiled.service 2>/dev/null || true + systemctl disable vesperprofiled.service 2>/dev/null || true + fi + if command -v apparmor_parser >/dev/null 2>&1 && \ + [ -f /etc/apparmor.d/vesperprofiled ]; then + apparmor_parser -R /etc/apparmor.d/vesperprofiled 2>/dev/null || true + fi + ;; +esac + + +exit 0 diff --git a/debian/vesperprofiled/etc/apparmor.d/vesperprofiled b/debian/vesperprofiled/etc/apparmor.d/vesperprofiled new file mode 100644 index 0000000..0067c49 --- /dev/null +++ b/debian/vesperprofiled/etc/apparmor.d/vesperprofiled @@ -0,0 +1,130 @@ +# /etc/apparmor.d/vesperprofiled +# AppArmor MAC profile for the vesperprofiled daemon. +# Installed by the vesperprofiled Debian package. + +#include + +/usr/sbin/vesperprofiled { + #include + #include + + # D-Bus (system bus access) + #include + + # Own binary + /usr/sbin/vesperprofiled mr, + + # ── Profile store ───────────────────────────────────────────────────────── + /var/lib/vesperprofiled/ rw, + /var/lib/vesperprofiled/** rw, + + # ── Config directories (profile drop-ins written here) ─────────────────── + /etc/vesperprofiled/ rw, + /etc/vesperprofiled/** rw, + /etc/NetworkManager/conf.d/ rw, + /etc/NetworkManager/conf.d/** rw, + /etc/NetworkManager/system-connections/ rw, + /etc/NetworkManager/system-connections/** rw, + /etc/apt/apt.conf.d/ rw, + /etc/apt/apt.conf.d/** rw, + /etc/cloud/cloud.cfg.d/ rw, + /etc/cloud/cloud.cfg.d/** rw, + /etc/systemd/timesyncd.conf.d/ rw, + /etc/systemd/timesyncd.conf.d/** rw, + /etc/systemd/resolved.conf.d/ rw, + /etc/systemd/resolved.conf.d/** rw, + /etc/security/pwquality.conf.d/ rw, + /etc/security/pwquality.conf.d/** rw, + /etc/security/faillock.conf.d/ rw, + /etc/security/faillock.conf.d/** rw, + /etc/nftables.d/ rw, + /etc/nftables.d/** rw, + /etc/ldap/ rw, + /etc/ldap/** rw, + /etc/nslcd.conf rw, + /etc/profile.d/ rw, + /etc/profile.d/** rw, + /etc/dconf/db/local.d/ rw, + /etc/dconf/db/local.d/** rw, + /etc/ssl/private/vesperos/ rw, + /etc/ssl/private/vesperos/** rw, + /usr/local/share/ca-certificates/vesperos/ rw, + /usr/local/share/ca-certificates/vesperos/** rw, + /var/lib/gnome-initial-setup/ rw, + /var/lib/gnome-initial-setup/** rw, + + # ── Schema (read only — owned by vesperprofiled-config-schema) ──────────── + /usr/share/vesperprofiled/schema/ r, + /usr/share/vesperprofiled/schema/* r, + + # ── TLS / certificate paths (explicit — no abstractions/openssl on Debian) ─ + /etc/ssl/certs/ r, + /etc/ssl/certs/** r, + /etc/ssl/openssl.cnf r, + /usr/lib/ssl/openssl.cnf r, + /usr/share/ca-certificates/ r, + /usr/share/ca-certificates/** r, + /etc/vesperprofiled/profile_ca.pem r, + + # ── D-Bus service registration ──────────────────────────────────────────── + dbus (send, receive, bind) + bus=system + name="me.oxmc.vesperos.ProfileService", + dbus (send) + bus=system + interface="org.freedesktop.DBus" + member="RequestName", + dbus (send) + bus=system + interface="org.freedesktop.NetworkManager", + dbus (receive) + bus=system + interface="org.freedesktop.NetworkManager", + + # ── Executables called by payload handlers ──────────────────────────────── + /usr/sbin/update-ca-certificates Px, + /usr/bin/dconf Px, + /usr/bin/gsettings Px, + /sbin/nft Px, + /usr/sbin/nslcd Px, + /usr/bin/pk12util Px, + /bin/systemctl Px, + /usr/bin/cloud-init Px, + # nmcli is no longer used (WiFi/Ethernet use keyfiles directly), + # but keep read access for diagnostics + /usr/bin/nmcli ix, + + # ── Network (ZTE HTTPS lookups via libcurl) ─────────────────────────────── + network inet stream, + network inet6 stream, + network inet dgram, # DNS resolution + + # ── /proc and system info ───────────────────────────────────────────────── + @{PROC}/@{pid}/status r, + @{PROC}/sys/kernel/hostname r, + /sys/class/dmi/id/ r, + /sys/class/dmi/id/* r, + /sys/class/net/ r, + /sys/class/net/** r, + /sys/firmware/efi/ r, + /sys/firmware/efi/** r, + /sys/class/tpm/ r, + /etc/machine-id r, + /var/lib/dbus/machine-id r, + + # ── Logging ─────────────────────────────────────────────────────────────── + /run/systemd/journal/socket w, + /run/systemd/notify w, + /dev/log w, + + # ── Lock file (ZTE enrollment serialisation) ────────────────────────────── + /run/vesperprofiled/ rw, + /run/vesperprofiled/** rw, + + # ── Deny sensitive paths ────────────────────────────────────────────────── + deny /home/** rw, + deny /root/** rw, + deny /boot/** rw, + deny network raw, + deny network packet, +} diff --git a/debian/vesperprofiled/etc/dbus-1/system.d/me.oxmc.vesperos.ProfileService.conf b/debian/vesperprofiled/etc/dbus-1/system.d/me.oxmc.vesperos.ProfileService.conf new file mode 100644 index 0000000..567b3c1 --- /dev/null +++ b/debian/vesperprofiled/etc/dbus-1/system.d/me.oxmc.vesperos.ProfileService.conf @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/debian/vesperprofiled/etc/vesperprofiled/zte.conf.example b/debian/vesperprofiled/etc/vesperprofiled/zte.conf.example new file mode 100644 index 0000000..9b4bc47 --- /dev/null +++ b/debian/vesperprofiled/etc/vesperprofiled/zte.conf.example @@ -0,0 +1,34 @@ +# /etc/vesperprofiled/zte.conf +# VesperOS Zero-Touch Enrollment configuration +# ───────────────────────────────────────────────────────────────────────── +# This file is read by vesper-zte on startup. +# Lines beginning with # are comments. +# All settings are optional — defaults are shown. + +# ZTE lookup server URL. +# Default: https://zte.vesperos.oxmc.me (oxmc hosted, public) +# Set this to your own server for self-hosted ZTE. +# +# server_url=https://zte.vesperos.oxmc.me + +# Disable ZTE entirely on this device. +# Set to "1" to prevent automatic enrollment. +# Can also be set by writing "disabled" to /var/lib/vesperprofiled/zte_state.json +# +# disabled=0 + +# Maximum number of enrollment retry attempts before giving up. +# 0 = retry indefinitely on every connectivity event. +# +# max_retries=0 + +# Delay between enrollment retries in seconds. +# The actual delay uses exponential backoff up to this maximum. +# +# retry_max_delay=300 + +# TLS CA bundle for verifying the ZTE server certificate. +# Override if you use a private CA for your self-hosted ZTE server. +# The server certificate must chain to this CA. +# +# ca_bundle=/etc/ssl/certs/ca-certificates.crt diff --git a/debian/vesperprofiled/usr/lib/systemd/system/vesperprofiled.service b/debian/vesperprofiled/usr/lib/systemd/system/vesperprofiled.service new file mode 100644 index 0000000..3be8cd3 --- /dev/null +++ b/debian/vesperprofiled/usr/lib/systemd/system/vesperprofiled.service @@ -0,0 +1,55 @@ +[Unit] +Description=VesperOS Profile Daemon (profiles + Zero-Touch Enrollment) +Documentation=https://vesperos.oxmc.me/docs/vesperprofiled + +# Must run before cloud-init so preinstalled profiles (WiFi, MDM drop-ins, +# first-boot config) are on disk when cloud-init starts. +Before=cloud-init-local.service cloud-init.service +After=local-fs.target dbus.service systemd-udev-settle.service + +# Start after NetworkManager so ZTE can immediately check current +# connectivity state rather than waiting for a StateChanged signal. +After=NetworkManager.service +# But don't hard-require NM — ZTE degrades gracefully if NM isn't present. +Wants=NetworkManager.service + +[Service] +Type=notify +NotifyAccess=main + +ExecStart=/usr/sbin/vesperprofiled +ExecReload=/bin/kill -HUP $MAINPID + +User=root +Group=root + +# Restart the whole daemon (profile service + ZTE watcher) on crash. +Restart=on-failure +RestartSec=5s +TimeoutStartSec=60 + +RuntimeDirectory=vesperprofiled +RuntimeDirectoryMode=0750 +StateDirectory=vesperprofiled +StateDirectoryMode=0700 + +# Writable paths — profile daemon writes config drops, ZTE writes state +ReadWritePaths=/etc /var/lib/vesperprofiled /run/vesperprofiled \ + /var/lib/gnome-initial-setup + +SystemCallFilter=@system-service @file-system @network-io @process +SystemCallErrorNumber=EPERM + +NoNewPrivileges=false +PrivateTmp=true +ProtectKernelLogs=true +ProtectKernelModules=true +ProtectControlGroups=true + +StandardOutput=journal +StandardError=journal +SyslogIdentifier=vesperprofiled + +[Install] +WantedBy=multi-user.target +WantedBy=cloud-init.target diff --git a/debian/vesperprofiled/usr/sbin/vesperprofiled b/debian/vesperprofiled/usr/sbin/vesperprofiled new file mode 100755 index 0000000..46a3e1c Binary files /dev/null and b/debian/vesperprofiled/usr/sbin/vesperprofiled differ diff --git a/debian/vesperprofiled/usr/share/doc/vesperprofiled/changelog.Debian.gz b/debian/vesperprofiled/usr/share/doc/vesperprofiled/changelog.Debian.gz new file mode 100644 index 0000000..57a8b1b Binary files /dev/null and b/debian/vesperprofiled/usr/share/doc/vesperprofiled/changelog.Debian.gz differ diff --git a/obj-x86_64-linux-gnu/CMakeCache.txt b/obj-x86_64-linux-gnu/CMakeCache.txt new file mode 100644 index 0000000..a86fea7 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeCache.txt @@ -0,0 +1,699 @@ +# This is the CMakeCache file. +# For build in directory: /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Release + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING=-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -Wdate-time -D_FORTIFY_SOURCE=3 + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING=-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//No help, variable specified on the command line. +CMAKE_EXPORT_NO_PACKAGE_REGISTRY:UNINITIALIZED=ON + +//No help, variable specified on the command line. +CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY:UNINITIALIZED=ON + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/pkgRedirects + +//No help, variable specified on the command line. +CMAKE_FIND_USE_PACKAGE_REGISTRY:UNINITIALIZED=OFF + +//User executables (bin) +CMAKE_INSTALL_BINDIR:PATH=bin + +//Read-only architecture-independent data (DATAROOTDIR) +CMAKE_INSTALL_DATADIR:PATH= + +//Read-only architecture-independent data root (share) +CMAKE_INSTALL_DATAROOTDIR:PATH=share + +//Documentation root (DATAROOTDIR/doc/PROJECT_NAME) +CMAKE_INSTALL_DOCDIR:PATH= + +//C header files (include) +CMAKE_INSTALL_INCLUDEDIR:PATH=include + +//Info documentation (DATAROOTDIR/info) +CMAKE_INSTALL_INFODIR:PATH= + +//Object code libraries (lib) +CMAKE_INSTALL_LIBDIR:PATH=lib/x86_64-linux-gnu + +//Program executables (libexec) +CMAKE_INSTALL_LIBEXECDIR:PATH=libexec + +//Locale-dependent data (DATAROOTDIR/locale) +CMAKE_INSTALL_LOCALEDIR:PATH= + +//Modifiable single-machine data (var) +CMAKE_INSTALL_LOCALSTATEDIR:PATH=/var + +//Man documentation (DATAROOTDIR/man) +CMAKE_INSTALL_MANDIR:PATH= + +//C header files for non-gcc (/usr/include) +CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr + +//Run-time variable data (LOCALSTATEDIR/run) +CMAKE_INSTALL_RUNSTATEDIR:PATH=/run + +//System admin executables (sbin) +CMAKE_INSTALL_SBINDIR:PATH=sbin + +//Modifiable architecture-independent data (com) +CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com + +//Read-only single-machine data (etc) +CMAKE_INSTALL_SYSCONFDIR:PATH=/etc + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING=-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=vesperprofiled + +//Value Computed by CMake +CMAKE_PROJECT_VERSION:STATIC=1.0.0 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_MAJOR:STATIC=1 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_MINOR:STATIC=0 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_PATCH:STATIC=0 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_TWEAK:STATIC= + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING=-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//No help, variable specified on the command line. +CMAKE_SKIP_INSTALL_ALL_DEPENDENCY:UNINITIALIZED=ON + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//Path to a program. +CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=ON + +//The directory containing a CMake configuration file for CURL. +CURL_DIR:PATH=CURL_DIR-NOTFOUND + +//Path to a file. +CURL_INCLUDE_DIR:PATH=/usr/include/x86_64-linux-gnu + +//Path to a library. +CURL_LIBRARY_DEBUG:FILEPATH=CURL_LIBRARY_DEBUG-NOTFOUND + +//Path to a library. +CURL_LIBRARY_RELEASE:FILEPATH=/usr/lib/x86_64-linux-gnu/libcurl.so + +//No help, variable specified on the command line. +FETCHCONTENT_FULLY_DISCONNECTED:UNINITIALIZED=ON + +//Arguments to supply to pkg-config +PKG_CONFIG_ARGN:STRING= + +//pkg-config executable +PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/pkg-config + +//Path to a library. +pkgcfg_lib_DBUS_dbus-1:FILEPATH=/usr/lib/x86_64-linux-gnu/libdbus-1.so + +//Path to a library. +pkgcfg_lib_LIBYAML_yaml:FILEPATH=/usr/lib/x86_64-linux-gnu/libyaml.so + +//Path to a library. +pkgcfg_lib_OPENSSL_crypto:FILEPATH=/usr/lib/x86_64-linux-gnu/libcrypto.so + +//Path to a library. +pkgcfg_lib_OPENSSL_ssl:FILEPATH=/usr/lib/x86_64-linux-gnu/libssl.so + +//Path to a library. +pkgcfg_lib_PC_CURL_curl:FILEPATH=/usr/lib/x86_64-linux-gnu/libcurl.so + +//Path to a library. +pkgcfg_lib_SYSTEMD_systemd:FILEPATH=/usr/lib/x86_64-linux-gnu/libsystemd.so + +//Value Computed by CMake +vesperprofiled_BINARY_DIR:STATIC=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu + +//Value Computed by CMake +vesperprofiled_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +vesperprofiled_SOURCE_DIR:STATIC=/home/oxmc/VesperOS/packages/vesperprofiled + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=28 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=3 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/oxmc/VesperOS/packages/vesperprofiled +//ADVANCED property for variable: CMAKE_INSTALL_BINDIR +CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATADIR +CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR +CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR +CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR +CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INFODIR +CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR +CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR +CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR +CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR +CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_MANDIR +CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR +CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR +CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR +CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR +CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR +CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.28 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_TAPI +CMAKE_TAPI-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURL_DIR +CURL_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURL_INCLUDE_DIR +CURL_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURL_LIBRARY_DEBUG +CURL_LIBRARY_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURL_LIBRARY_RELEASE +CURL_LIBRARY_RELEASE-ADVANCED:INTERNAL=1 +DBUS_CFLAGS:INTERNAL=-I/usr/include/dbus-1.0;-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include +DBUS_CFLAGS_I:INTERNAL= +DBUS_CFLAGS_OTHER:INTERNAL= +DBUS_FOUND:INTERNAL=1 +DBUS_INCLUDEDIR:INTERNAL=/usr/include +DBUS_INCLUDE_DIRS:INTERNAL=/usr/include/dbus-1.0;/usr/lib/x86_64-linux-gnu/dbus-1.0/include +DBUS_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-ldbus-1 +DBUS_LDFLAGS_OTHER:INTERNAL= +DBUS_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +DBUS_LIBRARIES:INTERNAL=dbus-1 +DBUS_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu +DBUS_LIBS:INTERNAL= +DBUS_LIBS_L:INTERNAL= +DBUS_LIBS_OTHER:INTERNAL= +DBUS_LIBS_PATHS:INTERNAL= +DBUS_MODULE_NAME:INTERNAL=dbus-1 +DBUS_PREFIX:INTERNAL=/usr +DBUS_STATIC_CFLAGS:INTERNAL=-I/usr/include/dbus-1.0;-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include +DBUS_STATIC_CFLAGS_I:INTERNAL= +DBUS_STATIC_CFLAGS_OTHER:INTERNAL= +DBUS_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include/dbus-1.0;/usr/lib/x86_64-linux-gnu/dbus-1.0/include +DBUS_STATIC_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-ldbus-1;-lsystemd +DBUS_STATIC_LDFLAGS_OTHER:INTERNAL= +DBUS_STATIC_LIBDIR:INTERNAL= +DBUS_STATIC_LIBRARIES:INTERNAL=dbus-1;systemd +DBUS_STATIC_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu +DBUS_STATIC_LIBS:INTERNAL= +DBUS_STATIC_LIBS_L:INTERNAL= +DBUS_STATIC_LIBS_OTHER:INTERNAL= +DBUS_STATIC_LIBS_PATHS:INTERNAL= +DBUS_VERSION:INTERNAL=1.14.10 +DBUS_dbus-1_INCLUDEDIR:INTERNAL= +DBUS_dbus-1_LIBDIR:INTERNAL= +DBUS_dbus-1_PREFIX:INTERNAL= +DBUS_dbus-1_VERSION:INTERNAL= +//Details about finding CURL +FIND_PACKAGE_MESSAGE_DETAILS_CURL:INTERNAL=[/usr/lib/x86_64-linux-gnu/libcurl.so][/usr/include/x86_64-linux-gnu][c ][v8.5.0()] +//Details about finding PkgConfig +FIND_PACKAGE_MESSAGE_DETAILS_PkgConfig:INTERNAL=[/usr/bin/pkg-config][v1.8.1()] +LIBYAML_CFLAGS:INTERNAL=-I/usr/include +LIBYAML_CFLAGS_I:INTERNAL= +LIBYAML_CFLAGS_OTHER:INTERNAL= +LIBYAML_FOUND:INTERNAL=1 +LIBYAML_INCLUDEDIR:INTERNAL=/usr/include +LIBYAML_INCLUDE_DIRS:INTERNAL=/usr/include +LIBYAML_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-lyaml +LIBYAML_LDFLAGS_OTHER:INTERNAL= +LIBYAML_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +LIBYAML_LIBRARIES:INTERNAL=yaml +LIBYAML_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu +LIBYAML_LIBS:INTERNAL= +LIBYAML_LIBS_L:INTERNAL= +LIBYAML_LIBS_OTHER:INTERNAL= +LIBYAML_LIBS_PATHS:INTERNAL= +LIBYAML_MODULE_NAME:INTERNAL=yaml-0.1 +LIBYAML_PREFIX:INTERNAL=/usr +LIBYAML_STATIC_CFLAGS:INTERNAL=-I/usr/include +LIBYAML_STATIC_CFLAGS_I:INTERNAL= +LIBYAML_STATIC_CFLAGS_OTHER:INTERNAL= +LIBYAML_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include +LIBYAML_STATIC_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-lyaml +LIBYAML_STATIC_LDFLAGS_OTHER:INTERNAL= +LIBYAML_STATIC_LIBDIR:INTERNAL= +LIBYAML_STATIC_LIBRARIES:INTERNAL=yaml +LIBYAML_STATIC_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu +LIBYAML_STATIC_LIBS:INTERNAL= +LIBYAML_STATIC_LIBS_L:INTERNAL= +LIBYAML_STATIC_LIBS_OTHER:INTERNAL= +LIBYAML_STATIC_LIBS_PATHS:INTERNAL= +LIBYAML_VERSION:INTERNAL=0.2.5 +LIBYAML_yaml-0.1_INCLUDEDIR:INTERNAL= +LIBYAML_yaml-0.1_LIBDIR:INTERNAL= +LIBYAML_yaml-0.1_PREFIX:INTERNAL= +LIBYAML_yaml-0.1_VERSION:INTERNAL= +OPENSSL_CFLAGS:INTERNAL=-I/usr/include +OPENSSL_CFLAGS_I:INTERNAL= +OPENSSL_CFLAGS_OTHER:INTERNAL= +OPENSSL_FOUND:INTERNAL=1 +OPENSSL_INCLUDEDIR:INTERNAL=/usr/include +OPENSSL_INCLUDE_DIRS:INTERNAL=/usr/include +OPENSSL_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-lssl;-lcrypto +OPENSSL_LDFLAGS_OTHER:INTERNAL= +OPENSSL_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +OPENSSL_LIBRARIES:INTERNAL=ssl;crypto +OPENSSL_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu +OPENSSL_LIBS:INTERNAL= +OPENSSL_LIBS_L:INTERNAL= +OPENSSL_LIBS_OTHER:INTERNAL= +OPENSSL_LIBS_PATHS:INTERNAL= +OPENSSL_MODULE_NAME:INTERNAL=openssl +OPENSSL_PREFIX:INTERNAL=/usr +OPENSSL_STATIC_CFLAGS:INTERNAL=-I/usr/include +OPENSSL_STATIC_CFLAGS_I:INTERNAL= +OPENSSL_STATIC_CFLAGS_OTHER:INTERNAL= +OPENSSL_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include +OPENSSL_STATIC_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-lssl;-L/usr/lib/x86_64-linux-gnu;-ldl;-pthread;-lcrypto;-ldl;-pthread +OPENSSL_STATIC_LDFLAGS_OTHER:INTERNAL=-pthread;-pthread +OPENSSL_STATIC_LIBDIR:INTERNAL= +OPENSSL_STATIC_LIBRARIES:INTERNAL=ssl;dl;crypto;dl +OPENSSL_STATIC_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu;/usr/lib/x86_64-linux-gnu +OPENSSL_STATIC_LIBS:INTERNAL= +OPENSSL_STATIC_LIBS_L:INTERNAL= +OPENSSL_STATIC_LIBS_OTHER:INTERNAL= +OPENSSL_STATIC_LIBS_PATHS:INTERNAL= +OPENSSL_VERSION:INTERNAL=3.0.13 +OPENSSL_openssl_INCLUDEDIR:INTERNAL= +OPENSSL_openssl_LIBDIR:INTERNAL= +OPENSSL_openssl_PREFIX:INTERNAL= +OPENSSL_openssl_VERSION:INTERNAL= +PC_CURL_CFLAGS:INTERNAL=-I/usr/include/x86_64-linux-gnu +PC_CURL_CFLAGS_I:INTERNAL= +PC_CURL_CFLAGS_OTHER:INTERNAL= +PC_CURL_FOUND:INTERNAL=1 +PC_CURL_INCLUDEDIR:INTERNAL=/usr/include/x86_64-linux-gnu +PC_CURL_INCLUDE_DIRS:INTERNAL=/usr/include/x86_64-linux-gnu +PC_CURL_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-lcurl +PC_CURL_LDFLAGS_OTHER:INTERNAL= +PC_CURL_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +PC_CURL_LIBRARIES:INTERNAL=curl +PC_CURL_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu +PC_CURL_LIBS:INTERNAL= +PC_CURL_LIBS_L:INTERNAL= +PC_CURL_LIBS_OTHER:INTERNAL= +PC_CURL_LIBS_PATHS:INTERNAL= +PC_CURL_MODULE_NAME:INTERNAL=libcurl +PC_CURL_PREFIX:INTERNAL=/usr +PC_CURL_STATIC_CFLAGS:INTERNAL=-I/usr/include/x86_64-linux-gnu +PC_CURL_STATIC_CFLAGS_I:INTERNAL= +PC_CURL_STATIC_CFLAGS_OTHER:INTERNAL= +PC_CURL_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include/x86_64-linux-gnu +PC_CURL_STATIC_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-lcurl;-lnghttp2;-lidn2;-lrtmp;-lssh;-lssh;-lpsl;-lssl;-lcrypto;-lssl;-lcrypto;-lgssapi_krb5;-llber;-lldap;-llber;-lzstd;-lbrotlidec;-lz +PC_CURL_STATIC_LDFLAGS_OTHER:INTERNAL= +PC_CURL_STATIC_LIBDIR:INTERNAL= +PC_CURL_STATIC_LIBRARIES:INTERNAL=curl;nghttp2;idn2;rtmp;ssh;ssh;psl;ssl;crypto;ssl;crypto;gssapi_krb5;lber;ldap;lber;zstd;brotlidec;z +PC_CURL_STATIC_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu +PC_CURL_STATIC_LIBS:INTERNAL= +PC_CURL_STATIC_LIBS_L:INTERNAL= +PC_CURL_STATIC_LIBS_OTHER:INTERNAL= +PC_CURL_STATIC_LIBS_PATHS:INTERNAL= +PC_CURL_VERSION:INTERNAL=8.5.0 +PC_CURL_libcurl_INCLUDEDIR:INTERNAL= +PC_CURL_libcurl_LIBDIR:INTERNAL= +PC_CURL_libcurl_PREFIX:INTERNAL= +PC_CURL_libcurl_VERSION:INTERNAL= +//ADVANCED property for variable: PKG_CONFIG_ARGN +PKG_CONFIG_ARGN-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE +PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1 +SYSTEMD_CFLAGS:INTERNAL=-I/usr/include +SYSTEMD_CFLAGS_I:INTERNAL= +SYSTEMD_CFLAGS_OTHER:INTERNAL= +SYSTEMD_FOUND:INTERNAL=1 +SYSTEMD_INCLUDEDIR:INTERNAL=/usr/include +SYSTEMD_INCLUDE_DIRS:INTERNAL=/usr/include +SYSTEMD_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-lsystemd +SYSTEMD_LDFLAGS_OTHER:INTERNAL= +SYSTEMD_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +SYSTEMD_LIBRARIES:INTERNAL=systemd +SYSTEMD_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu +SYSTEMD_LIBS:INTERNAL= +SYSTEMD_LIBS_L:INTERNAL= +SYSTEMD_LIBS_OTHER:INTERNAL= +SYSTEMD_LIBS_PATHS:INTERNAL= +SYSTEMD_MODULE_NAME:INTERNAL=libsystemd +SYSTEMD_PREFIX:INTERNAL=/usr +SYSTEMD_STATIC_CFLAGS:INTERNAL=-I/usr/include +SYSTEMD_STATIC_CFLAGS_I:INTERNAL= +SYSTEMD_STATIC_CFLAGS_OTHER:INTERNAL= +SYSTEMD_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include +SYSTEMD_STATIC_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-lsystemd +SYSTEMD_STATIC_LDFLAGS_OTHER:INTERNAL= +SYSTEMD_STATIC_LIBDIR:INTERNAL= +SYSTEMD_STATIC_LIBRARIES:INTERNAL=systemd +SYSTEMD_STATIC_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu +SYSTEMD_STATIC_LIBS:INTERNAL= +SYSTEMD_STATIC_LIBS_L:INTERNAL= +SYSTEMD_STATIC_LIBS_OTHER:INTERNAL= +SYSTEMD_STATIC_LIBS_PATHS:INTERNAL= +SYSTEMD_VERSION:INTERNAL=255 +SYSTEMD_libsystemd_INCLUDEDIR:INTERNAL= +SYSTEMD_libsystemd_LIBDIR:INTERNAL= +SYSTEMD_libsystemd_PREFIX:INTERNAL= +SYSTEMD_libsystemd_VERSION:INTERNAL= +//linker supports push/pop state +_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE +//CMAKE_INSTALL_PREFIX during last run +_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr +__pkg_config_arguments_DBUS:INTERNAL=REQUIRED;dbus-1 +__pkg_config_arguments_LIBYAML:INTERNAL=REQUIRED;yaml-0.1 +__pkg_config_arguments_OPENSSL:INTERNAL=REQUIRED;openssl +__pkg_config_arguments_PC_CURL:INTERNAL=QUIET;libcurl +__pkg_config_arguments_SYSTEMD:INTERNAL=REQUIRED;libsystemd +__pkg_config_checked_DBUS:INTERNAL=1 +__pkg_config_checked_LIBYAML:INTERNAL=1 +__pkg_config_checked_OPENSSL:INTERNAL=1 +__pkg_config_checked_PC_CURL:INTERNAL=1 +__pkg_config_checked_SYSTEMD:INTERNAL=1 +//ADVANCED property for variable: pkgcfg_lib_DBUS_dbus-1 +pkgcfg_lib_DBUS_dbus-1-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: pkgcfg_lib_LIBYAML_yaml +pkgcfg_lib_LIBYAML_yaml-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: pkgcfg_lib_OPENSSL_crypto +pkgcfg_lib_OPENSSL_crypto-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: pkgcfg_lib_OPENSSL_ssl +pkgcfg_lib_OPENSSL_ssl-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: pkgcfg_lib_PC_CURL_curl +pkgcfg_lib_PC_CURL_curl-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: pkgcfg_lib_SYSTEMD_systemd +pkgcfg_lib_SYSTEMD_systemd-ADVANCED:INTERNAL=1 +prefix_result:INTERNAL=/usr/lib/x86_64-linux-gnu + diff --git a/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake b/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..8dbc9d3 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake @@ -0,0 +1,85 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "13.3.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-13") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) +set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED TRUE) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CMakeDetermineCompilerABI_CXX.bin b/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000..082e91a Binary files /dev/null and b/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CMakeSystem.cmake b/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CMakeSystem.cmake new file mode 100644 index 0000000..714b76e --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-6.8.0-110-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "6.8.0-110-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-6.8.0-110-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "6.8.0-110-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..9c9c90e --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,869 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define COMPILER_ID "CrayClang" +# define COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define COMPILER_ID "OrangeC" +# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CompilerIdCXX/a.out b/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CompilerIdCXX/a.out new file mode 100755 index 0000000..e771f02 Binary files /dev/null and b/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CompilerIdCXX/a.out differ diff --git a/obj-x86_64-linux-gnu/CMakeFiles/CMakeConfigureLog.yaml b/obj-x86_64-linux-gnu/CMakeFiles/CMakeConfigureLog.yaml new file mode 100644 index 0000000..fca9987 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/CMakeConfigureLog.yaml @@ -0,0 +1,329 @@ + +--- +events: + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake:233 (message)" + - "CMakeLists.txt:2 (project)" + message: | + The system is: Linux - 6.8.0-110-generic - x86_64 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:2 (project)" + message: | + Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. + Compiler: /usr/bin/c++ + Build flags: -g;-O2;-fno-omit-frame-pointer;-mno-omit-leaf-frame-pointer;-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.;-flto=auto;-ffat-lto-objects;-fstack-protector-strong;-fstack-clash-protection;-Wformat;-Werror=format-security;-fcf-protection;-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1;-Wdate-time;-D_FORTIFY_SOURCE=3 + Id flags: + + The output was: + 0 + + + Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + + The CXX compiler identification is GNU, found in: + /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/3.28.3/CompilerIdCXX/a.out + + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)" + - "/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + checks: + - "Detecting CXX compiler ABI info" + directories: + source: "/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/CMakeScratch/TryCompile-CThoO6" + binary: "/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/CMakeScratch/TryCompile-CThoO6" + cmakeVariables: + CMAKE_CXX_FLAGS: "-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -fcf-protection -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -Wdate-time -D_FORTIFY_SOURCE=3" + CMAKE_CXX_FLAGS_DEBUG: "-g" + CMAKE_EXE_LINKER_FLAGS: "-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now" + buildResult: + variable: "CMAKE_CXX_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/CMakeScratch/TryCompile-CThoO6' + + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_85847/fast + gmake[2]: Entering directory '/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/CMakeScratch/TryCompile-CThoO6' + /usr/bin/gmake -f CMakeFiles/cmTC_85847.dir/build.make CMakeFiles/cmTC_85847.dir/build + gmake[3]: Entering directory '/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/CMakeScratch/TryCompile-CThoO6' + Building CXX object CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o + /usr/bin/c++ -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -fcf-protection -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -Wdate-time -D_FORTIFY_SOURCE=3 -v -o CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COLLECT_GCC_OPTIONS='-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-flto=auto' '-ffat-lto-objects' '-fstack-protector-strong' '-fstack-clash-protection' '-Wformat=1' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-Wdate-time' '-D' '_FORTIFY_SOURCE=3' '-v' '-o' 'CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_85847.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D _FORTIFY_SOURCE=3 /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_85847.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mno-omit-leaf-frame-pointer -mtune=generic -march=x86-64 -g -O2 -Wformat=1 -Wdate-time -version -fno-omit-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -fcf-protection=full -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -o /tmp/cc28TbsU.s + GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) + compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/include/c++/13 + /usr/include/x86_64-linux-gnu/c++/13 + /usr/include/c++/13/backward + /usr/lib/gcc/x86_64-linux-gnu/13/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + Compiler executable checksum: 7896445e4990772fdae9dc0659a99266 + COLLECT_GCC_OPTIONS='-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-flto=auto' '-ffat-lto-objects' '-fstack-protector-strong' '-fstack-clash-protection' '-Wformat=1' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-Wdate-time' '-D' '_FORTIFY_SOURCE=3' '-v' '-o' 'CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_85847.dir/' + as -v --gdwarf-5 --64 -o CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc28TbsU.s + GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-flto=auto' '-ffat-lto-objects' '-fstack-protector-strong' '-fstack-clash-protection' '-Wformat=1' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-Wdate-time' '-D' '_FORTIFY_SOURCE=3' '-v' '-o' 'CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.' + Linking CXX executable cmTC_85847 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_85847.dir/link.txt --verbose=1 + /usr/bin/c++ -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -fcf-protection -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -Wdate-time -D_FORTIFY_SOURCE=3 -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -v CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_85847 + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-flto=auto' '-fstack-protector-strong' '-fstack-clash-protection' '-Wformat=1' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-Wdate-time' '-D' '_FORTIFY_SOURCE=3' '-flto=auto' '-ffat-lto-objects' '-v' '-o' 'cmTC_85847' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_85847.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccLftuDB.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -flto=auto -flto=auto --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_85847 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -Bsymbolic-functions -z relro -z now CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + /usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -fresolution=/tmp/ccLftuDB.res -flinker-output=pie CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o + /usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -fresolution=/tmp/ccLftuDB.res -flinker-output=pie CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o + LTO parallelism level set to 4 + /usr/bin/c++ @/tmp/ccmGlKpl + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COLLECT_GCC_OPTIONS='-c' '-fno-openmp' '-fno-openacc' '-fPIC' '-g' '-O2' '-fcf-protection=full' '-fasynchronous-unwind-tables' '-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-fstack-protector-strong' '-fstack-clash-protection' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-ffat-lto-objects' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-fltrans-output-list=/tmp/ccfE6lTw.ltrans.out' '-fwpa=4' '-fresolution=/tmp/ccLftuDB.res' '-flinker-output=pie' '-shared-libgcc' + /usr/libexec/gcc/x86_64-linux-gnu/13/lto1 -quiet -dumpbase ./cmTC_85847.wpa -mno-omit-leaf-frame-pointer -mtune=generic -march=x86-64 -g -g -O2 -O2 -version -fno-openmp -fno-openacc -fPIC -fcf-protection=full -fasynchronous-unwind-tables -fno-omit-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -fstack-protector-strong -fstack-clash-protection -fcf-protection=full -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -ffat-lto-objects -fltrans-output-list=/tmp/ccfE6lTw.ltrans.out -fwpa=4 -fresolution=/tmp/ccLftuDB.res -flinker-output=pie @/tmp/ccsDQWAN + GNU GIMPLE (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) + compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/../lib/:/lib/../lib/x86_64-linux-gnu/:/lib/../lib/../lib/:/usr/lib/../lib/x86_64-linux-gnu/:/usr/lib/../lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-c' '-fno-openmp' '-fno-openacc' '-fPIC' '-g' '-O2' '-fcf-protection=full' '-fasynchronous-unwind-tables' '-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-fstack-protector-strong' '-fstack-clash-protection' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-ffat-lto-objects' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-fltrans-output-list=/tmp/ccfE6lTw.ltrans.out' '-fwpa=4' '-fresolution=/tmp/ccLftuDB.res' '-flinker-output=pie' '-shared-libgcc' '-dumpdir' './cmTC_85847.wpa.' + make -f /tmp/ccgAyZ2A.mk -j4 all + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COLLECT_GCC_OPTIONS='-c' '-fno-openmp' '-fno-openacc' '-fPIC' '-g' '-O2' '-fcf-protection=full' '-fasynchronous-unwind-tables' '-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-fstack-protector-strong' '-fstack-clash-protection' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-ffat-lto-objects' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-fltrans' '-o' '/tmp/ccfE6lTw.ltrans0.ltrans.o' '-shared-libgcc' + /usr/libexec/gcc/x86_64-linux-gnu/13/lto1 -quiet -dumpbase ./cmTC_85847.ltrans0.ltrans -mno-omit-leaf-frame-pointer -mtune=generic -march=x86-64 -g -g -O2 -O2 -version -fno-openmp -fno-openacc -fPIC -fcf-protection=full -fasynchronous-unwind-tables -fno-omit-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -fstack-protector-strong -fstack-clash-protection -fcf-protection=full -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -ffat-lto-objects -fltrans /tmp/ccfE6lTw.ltrans0.o -o /tmp/cclS4XMi.s + GNU GIMPLE (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) + compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + COLLECT_GCC_OPTIONS='-c' '-fno-openmp' '-fno-openacc' '-fPIC' '-g' '-O2' '-fcf-protection=full' '-fasynchronous-unwind-tables' '-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-fstack-protector-strong' '-fstack-clash-protection' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-ffat-lto-objects' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-fltrans' '-o' '/tmp/ccfE6lTw.ltrans0.ltrans.o' '-shared-libgcc' + as -v --gdwarf-5 --64 -o /tmp/ccfE6lTw.ltrans0.ltrans.o /tmp/cclS4XMi.s + GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 + MAKEFLAGS=w -j4 + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/../lib/:/lib/../lib/x86_64-linux-gnu/:/lib/../lib/../lib/:/usr/lib/../lib/x86_64-linux-gnu/:/usr/lib/../lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-c' '-fno-openmp' '-fno-openacc' '-fPIC' '-g' '-O2' '-fcf-protection=full' '-fasynchronous-unwind-tables' '-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-fstack-protector-strong' '-fstack-clash-protection' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-ffat-lto-objects' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-fltrans' '-o' '/tmp/ccfE6lTw.ltrans0.ltrans.o' '-shared-libgcc' '-dumpdir' './cmTC_85847.ltrans0.ltrans.' + COLLECT_GCC_OPTIONS='-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-flto=auto' '-fstack-protector-strong' '-fstack-clash-protection' '-Wformat=1' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-Wdate-time' '-D' '_FORTIFY_SOURCE=3' '-flto=auto' '-ffat-lto-objects' '-v' '-o' 'cmTC_85847' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_85847.' + gmake[3]: Leaving directory '/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/CMakeScratch/TryCompile-CThoO6' + gmake[2]: Leaving directory '/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/CMakeScratch/TryCompile-CThoO6' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:127 (message)" + - "/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CXX implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/13] + add: [/usr/include/x86_64-linux-gnu/c++/13] + add: [/usr/include/c++/13/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/13] ==> [/usr/include/c++/13] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/13] ==> [/usr/include/x86_64-linux-gnu/c++/13] + collapse include dir [/usr/include/c++/13/backward] ==> [/usr/include/c++/13/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:159 (message)" + - "/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CXX implicit link information: + link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + ignore line: [Change Dir: '/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/CMakeScratch/TryCompile-CThoO6'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_85847/fast] + ignore line: [gmake[2]: Entering directory '/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/CMakeScratch/TryCompile-CThoO6'] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_85847.dir/build.make CMakeFiles/cmTC_85847.dir/build] + ignore line: [gmake[3]: Entering directory '/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/CMakeScratch/TryCompile-CThoO6'] + ignore line: [Building CXX object CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -fcf-protection -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -Wdate-time -D_FORTIFY_SOURCE=3 -v -o CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-flto=auto' '-ffat-lto-objects' '-fstack-protector-strong' '-fstack-clash-protection' '-Wformat=1' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-Wdate-time' '-D' '_FORTIFY_SOURCE=3' '-v' '-o' 'CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_85847.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D _FORTIFY_SOURCE=3 /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_85847.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mno-omit-leaf-frame-pointer -mtune=generic -march=x86-64 -g -O2 -Wformat=1 -Wdate-time -version -fno-omit-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -fcf-protection=full -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -o /tmp/cc28TbsU.s] + ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/13] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/13] + ignore line: [ /usr/include/c++/13/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266] + ignore line: [COLLECT_GCC_OPTIONS='-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-flto=auto' '-ffat-lto-objects' '-fstack-protector-strong' '-fstack-clash-protection' '-Wformat=1' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-Wdate-time' '-D' '_FORTIFY_SOURCE=3' '-v' '-o' 'CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_85847.dir/'] + ignore line: [ as -v --gdwarf-5 --64 -o CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc28TbsU.s] + ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-flto=auto' '-ffat-lto-objects' '-fstack-protector-strong' '-fstack-clash-protection' '-Wformat=1' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-Wdate-time' '-D' '_FORTIFY_SOURCE=3' '-v' '-o' 'CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [Linking CXX executable cmTC_85847] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_85847.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -fcf-protection -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -Wdate-time -D_FORTIFY_SOURCE=3 -Wl -Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl -z relro -Wl -z now -v CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_85847 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-g' '-O2' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=.' '-flto=auto' '-fstack-protector-strong' '-fstack-clash-protection' '-Wformat=1' '-fcf-protection=full' '-fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1' '-Wdate-time' '-D' '_FORTIFY_SOURCE=3' '-flto=auto' '-ffat-lto-objects' '-v' '-o' 'cmTC_85847' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_85847.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccLftuDB.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -flto=auto -flto=auto --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_85847 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -Bsymbolic-functions -z relro -z now CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccLftuDB.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-flto=auto] ==> ignore + arg [-flto=auto] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_85847] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] + arg [-Bsymbolic-functions] ==> ignore + arg [-zrelro] ==> ignore + arg [-znow] ==> ignore + arg [CMakeFiles/cmTC_85847.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + +... diff --git a/obj-x86_64-linux-gnu/CMakeFiles/CMakeDirectoryInformation.cmake b/obj-x86_64-linux-gnu/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..54da81a --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/oxmc/VesperOS/packages/vesperprofiled") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/obj-x86_64-linux-gnu/CMakeFiles/Makefile.cmake b/obj-x86_64-linux-gnu/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..ab0f617 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/Makefile.cmake @@ -0,0 +1,112 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "/home/oxmc/VesperOS/packages/vesperprofiled/CMakeLists.txt" + "CMakeFiles/3.28.3/CMakeCXXCompiler.cmake" + "CMakeFiles/3.28.3/CMakeSystem.cmake" + "/usr/share/cmake-3.28/Modules/CMakeCXXCompiler.cmake.in" + "/usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp" + "/usr/share/cmake-3.28/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.28/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.28/Modules/CMakeCompilerIdDetection.cmake" + "/usr/share/cmake-3.28/Modules/CMakeDetermineCXXCompiler.cmake" + "/usr/share/cmake-3.28/Modules/CMakeDetermineCompileFeatures.cmake" + "/usr/share/cmake-3.28/Modules/CMakeDetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake" + "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake" + "/usr/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake" + "/usr/share/cmake-3.28/Modules/CMakeFindBinUtils.cmake" + "/usr/share/cmake-3.28/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.28/Modules/CMakeInitializeConfigs.cmake" + "/usr/share/cmake-3.28/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.28/Modules/CMakeParseImplicitIncludeInfo.cmake" + "/usr/share/cmake-3.28/Modules/CMakeParseImplicitLinkInfo.cmake" + "/usr/share/cmake-3.28/Modules/CMakeParseLibraryArchitecture.cmake" + "/usr/share/cmake-3.28/Modules/CMakeSystem.cmake.in" + "/usr/share/cmake-3.28/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.28/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake" + "/usr/share/cmake-3.28/Modules/CMakeTestCompilerCommon.cmake" + "/usr/share/cmake-3.28/Modules/CMakeUnixFindMake.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/ADSP-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Borland-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Cray-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/CrayClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/GHS-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/GNU-FindBinUtils.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/IAR-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Intel-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/MSVC-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/OrangeC-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/PGI-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/PathScale-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/SCO-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/TI-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Tasking-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Watcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.28/Modules/FindCURL.cmake" + "/usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake" + "/usr/share/cmake-3.28/Modules/FindPackageMessage.cmake" + "/usr/share/cmake-3.28/Modules/FindPkgConfig.cmake" + "/usr/share/cmake-3.28/Modules/GNUInstallDirs.cmake" + "/usr/share/cmake-3.28/Modules/Internal/FeatureTesting.cmake" + "/usr/share/cmake-3.28/Modules/Platform/Linux-Determine-CXX.cmake" + "/usr/share/cmake-3.28/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.28/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake-3.28/Modules/Platform/Linux-Initialize.cmake" + "/usr/share/cmake-3.28/Modules/Platform/Linux.cmake" + "/usr/share/cmake-3.28/Modules/Platform/UnixPaths.cmake" + "/usr/share/cmake-3.28/Modules/SelectLibraryConfigurations.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/3.28.3/CMakeSystem.cmake" + "CMakeFiles/3.28.3/CMakeCXXCompiler.cmake" + "CMakeFiles/3.28.3/CMakeCXXCompiler.cmake" + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/vesperprofiled.dir/DependInfo.cmake" + ) diff --git a/obj-x86_64-linux-gnu/CMakeFiles/Makefile2 b/obj-x86_64-linux-gnu/CMakeFiles/Makefile2 new file mode 100644 index 0000000..a456aa4 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/Makefile2 @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Produce verbose output by default. +VERBOSE = 1 + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/oxmc/VesperOS/packages/vesperprofiled + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: CMakeFiles/vesperprofiled.dir/all +.PHONY : all + +# The main recursive "preinstall" target. +preinstall: +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/vesperprofiled.dir/clean +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/vesperprofiled.dir + +# All Build rule for target. +CMakeFiles/vesperprofiled.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10 "Built target vesperprofiled" +.PHONY : CMakeFiles/vesperprofiled.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/vesperprofiled.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles 10 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/vesperprofiled.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles 0 +.PHONY : CMakeFiles/vesperprofiled.dir/rule + +# Convenience name for target. +vesperprofiled: CMakeFiles/vesperprofiled.dir/rule +.PHONY : vesperprofiled + +# clean rule for target. +CMakeFiles/vesperprofiled.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/clean +.PHONY : CMakeFiles/vesperprofiled.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/obj-x86_64-linux-gnu/CMakeFiles/TargetDirectories.txt b/obj-x86_64-linux-gnu/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..007d7ad --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,7 @@ +/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir +/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/edit_cache.dir +/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/rebuild_cache.dir +/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/list_install_components.dir +/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/install.dir +/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/install/local.dir +/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/install/strip.dir diff --git a/obj-x86_64-linux-gnu/CMakeFiles/cmake.check_cache b/obj-x86_64-linux-gnu/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/obj-x86_64-linux-gnu/CMakeFiles/progress.marks b/obj-x86_64-linux-gnu/CMakeFiles/progress.marks new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/progress.marks @@ -0,0 +1 @@ +10 diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/DependInfo.cmake b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/DependInfo.cmake new file mode 100644 index 0000000..b1bd46c --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/DependInfo.cmake @@ -0,0 +1,31 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileParser.cpp" "CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o" "gcc" "CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o.d" + "/home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileStore.cpp" "CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o" "gcc" "CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o.d" + "/home/oxmc/VesperOS/packages/vesperprofiled/src/SignatureVerifier.cpp" "CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o" "gcc" "CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o.d" + "/home/oxmc/VesperOS/packages/vesperprofiled/src/VesperProfileService.cpp" "CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o" "gcc" "CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o.d" + "/home/oxmc/VesperOS/packages/vesperprofiled/src/main.cpp" "CMakeFiles/vesperprofiled.dir/src/main.cpp.o" "gcc" "CMakeFiles/vesperprofiled.dir/src/main.cpp.o.d" + "/home/oxmc/VesperOS/packages/vesperprofiled/src/payloads/PayloadHandlers.cpp" "CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o" "gcc" "CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o.d" + "/home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ConnectivityWatcher.cpp" "CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o" "gcc" "CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o.d" + "/home/oxmc/VesperOS/packages/vesperprofiled/src/zte/DeviceIdentity.cpp" "CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o" "gcc" "CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o.d" + "/home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ZTELookupClient.cpp" "CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o" "gcc" "CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/build.make b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/build.make new file mode 100644 index 0000000..d13367f --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/build.make @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Produce verbose output by default. +VERBOSE = 1 + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/oxmc/VesperOS/packages/vesperprofiled + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu + +# Include any dependencies generated for this target. +include CMakeFiles/vesperprofiled.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include CMakeFiles/vesperprofiled.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/vesperprofiled.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/vesperprofiled.dir/flags.make + +CMakeFiles/vesperprofiled.dir/src/main.cpp.o: CMakeFiles/vesperprofiled.dir/flags.make +CMakeFiles/vesperprofiled.dir/src/main.cpp.o: /home/oxmc/VesperOS/packages/vesperprofiled/src/main.cpp +CMakeFiles/vesperprofiled.dir/src/main.cpp.o: CMakeFiles/vesperprofiled.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/vesperprofiled.dir/src/main.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/vesperprofiled.dir/src/main.cpp.o -MF CMakeFiles/vesperprofiled.dir/src/main.cpp.o.d -o CMakeFiles/vesperprofiled.dir/src/main.cpp.o -c /home/oxmc/VesperOS/packages/vesperprofiled/src/main.cpp + +CMakeFiles/vesperprofiled.dir/src/main.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/vesperprofiled.dir/src/main.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/oxmc/VesperOS/packages/vesperprofiled/src/main.cpp > CMakeFiles/vesperprofiled.dir/src/main.cpp.i + +CMakeFiles/vesperprofiled.dir/src/main.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/vesperprofiled.dir/src/main.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/oxmc/VesperOS/packages/vesperprofiled/src/main.cpp -o CMakeFiles/vesperprofiled.dir/src/main.cpp.s + +CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o: CMakeFiles/vesperprofiled.dir/flags.make +CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o: /home/oxmc/VesperOS/packages/vesperprofiled/src/VesperProfileService.cpp +CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o: CMakeFiles/vesperprofiled.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o -MF CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o.d -o CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o -c /home/oxmc/VesperOS/packages/vesperprofiled/src/VesperProfileService.cpp + +CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/oxmc/VesperOS/packages/vesperprofiled/src/VesperProfileService.cpp > CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.i + +CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/oxmc/VesperOS/packages/vesperprofiled/src/VesperProfileService.cpp -o CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.s + +CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o: CMakeFiles/vesperprofiled.dir/flags.make +CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o: /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileParser.cpp +CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o: CMakeFiles/vesperprofiled.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o -MF CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o.d -o CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o -c /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileParser.cpp + +CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileParser.cpp > CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.i + +CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileParser.cpp -o CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.s + +CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o: CMakeFiles/vesperprofiled.dir/flags.make +CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o: /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileStore.cpp +CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o: CMakeFiles/vesperprofiled.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o -MF CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o.d -o CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o -c /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileStore.cpp + +CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileStore.cpp > CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.i + +CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileStore.cpp -o CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.s + +CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o: CMakeFiles/vesperprofiled.dir/flags.make +CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o: /home/oxmc/VesperOS/packages/vesperprofiled/src/SignatureVerifier.cpp +CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o: CMakeFiles/vesperprofiled.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o -MF CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o.d -o CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o -c /home/oxmc/VesperOS/packages/vesperprofiled/src/SignatureVerifier.cpp + +CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/oxmc/VesperOS/packages/vesperprofiled/src/SignatureVerifier.cpp > CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.i + +CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/oxmc/VesperOS/packages/vesperprofiled/src/SignatureVerifier.cpp -o CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.s + +CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o: CMakeFiles/vesperprofiled.dir/flags.make +CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o: /home/oxmc/VesperOS/packages/vesperprofiled/src/payloads/PayloadHandlers.cpp +CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o: CMakeFiles/vesperprofiled.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o -MF CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o.d -o CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o -c /home/oxmc/VesperOS/packages/vesperprofiled/src/payloads/PayloadHandlers.cpp + +CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/oxmc/VesperOS/packages/vesperprofiled/src/payloads/PayloadHandlers.cpp > CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.i + +CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/oxmc/VesperOS/packages/vesperprofiled/src/payloads/PayloadHandlers.cpp -o CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.s + +CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o: CMakeFiles/vesperprofiled.dir/flags.make +CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o: /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/DeviceIdentity.cpp +CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o: CMakeFiles/vesperprofiled.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o -MF CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o.d -o CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o -c /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/DeviceIdentity.cpp + +CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/DeviceIdentity.cpp > CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.i + +CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/DeviceIdentity.cpp -o CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.s + +CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o: CMakeFiles/vesperprofiled.dir/flags.make +CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o: /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ZTELookupClient.cpp +CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o: CMakeFiles/vesperprofiled.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o -MF CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o.d -o CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o -c /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ZTELookupClient.cpp + +CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ZTELookupClient.cpp > CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.i + +CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ZTELookupClient.cpp -o CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.s + +CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o: CMakeFiles/vesperprofiled.dir/flags.make +CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o: /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ConnectivityWatcher.cpp +CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o: CMakeFiles/vesperprofiled.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building CXX object CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o -MF CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o.d -o CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o -c /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ConnectivityWatcher.cpp + +CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ConnectivityWatcher.cpp > CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.i + +CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ConnectivityWatcher.cpp -o CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.s + +# Object files for target vesperprofiled +vesperprofiled_OBJECTS = \ +"CMakeFiles/vesperprofiled.dir/src/main.cpp.o" \ +"CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o" \ +"CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o" \ +"CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o" \ +"CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o" \ +"CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o" \ +"CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o" \ +"CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o" \ +"CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o" + +# External object files for target vesperprofiled +vesperprofiled_EXTERNAL_OBJECTS = + +vesperprofiled: CMakeFiles/vesperprofiled.dir/src/main.cpp.o +vesperprofiled: CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o +vesperprofiled: CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o +vesperprofiled: CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o +vesperprofiled: CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o +vesperprofiled: CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o +vesperprofiled: CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o +vesperprofiled: CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o +vesperprofiled: CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o +vesperprofiled: CMakeFiles/vesperprofiled.dir/build.make +vesperprofiled: /usr/lib/x86_64-linux-gnu/libcurl.so +vesperprofiled: CMakeFiles/vesperprofiled.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Linking CXX executable vesperprofiled" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/vesperprofiled.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/vesperprofiled.dir/build: vesperprofiled +.PHONY : CMakeFiles/vesperprofiled.dir/build + +CMakeFiles/vesperprofiled.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/vesperprofiled.dir/cmake_clean.cmake +.PHONY : CMakeFiles/vesperprofiled.dir/clean + +CMakeFiles/vesperprofiled.dir/depend: + cd /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/oxmc/VesperOS/packages/vesperprofiled /home/oxmc/VesperOS/packages/vesperprofiled /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/DependInfo.cmake "--color=$(COLOR)" +.PHONY : CMakeFiles/vesperprofiled.dir/depend + diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/cmake_clean.cmake b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/cmake_clean.cmake new file mode 100644 index 0000000..f17703b --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/cmake_clean.cmake @@ -0,0 +1,27 @@ +file(REMOVE_RECURSE + "CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o" + "CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o.d" + "CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o" + "CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o.d" + "CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o" + "CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o.d" + "CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o" + "CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o.d" + "CMakeFiles/vesperprofiled.dir/src/main.cpp.o" + "CMakeFiles/vesperprofiled.dir/src/main.cpp.o.d" + "CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o" + "CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o.d" + "CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o" + "CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o.d" + "CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o" + "CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o.d" + "CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o" + "CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o.d" + "vesperprofiled" + "vesperprofiled.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/vesperprofiled.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/compiler_depend.make b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/compiler_depend.make new file mode 100644 index 0000000..d027a49 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for vesperprofiled. +# This may be replaced when dependencies are built. diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/compiler_depend.ts b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/compiler_depend.ts new file mode 100644 index 0000000..f5937e1 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for vesperprofiled. diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/depend.make b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/depend.make new file mode 100644 index 0000000..48dabe8 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for vesperprofiled. +# This may be replaced when dependencies are built. diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/flags.make b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/flags.make new file mode 100644 index 0000000..d6f02d6 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = + +CXX_INCLUDES = -I/home/oxmc/VesperOS/packages/vesperprofiled/src -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include + +CXX_FLAGS = -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -Wdate-time -D_FORTIFY_SOURCE=3 -O2 -DNDEBUG -std=c++17 -Wall -Wextra -Werror + diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/link.txt b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/link.txt new file mode 100644 index 0000000..08dec5a --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/home/oxmc/VesperOS/packages/vesperprofiled=/usr/src/vesperprofiled-1.0.0-1 -Wdate-time -D_FORTIFY_SOURCE=3 -O2 -DNDEBUG -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now CMakeFiles/vesperprofiled.dir/src/main.cpp.o CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o -o vesperprofiled -lssl -lcrypto -lyaml -ldbus-1 -lsystemd /usr/lib/x86_64-linux-gnu/libcurl.so -lpthread diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/progress.make b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/progress.make new file mode 100644 index 0000000..6c587e2 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/progress.make @@ -0,0 +1,11 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 +CMAKE_PROGRESS_4 = 4 +CMAKE_PROGRESS_5 = 5 +CMAKE_PROGRESS_6 = 6 +CMAKE_PROGRESS_7 = 7 +CMAKE_PROGRESS_8 = 8 +CMAKE_PROGRESS_9 = 9 +CMAKE_PROGRESS_10 = 10 + diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o new file mode 100644 index 0000000..11654ec Binary files /dev/null and b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o differ diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o.d b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o.d new file mode 100644 index 0000000..210fa75 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o.d @@ -0,0 +1,186 @@ +CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o: \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileParser.cpp \ + /usr/include/stdc-predef.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileParser.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/SignatureVerifier.h \ + /usr/include/c++/13/cstdint \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ + /usr/include/c++/13/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/c++/13/string /usr/include/c++/13/bits/requires_hosted.h \ + /usr/include/c++/13/bits/stringfwd.h \ + /usr/include/c++/13/bits/memoryfwd.h \ + /usr/include/c++/13/bits/char_traits.h \ + /usr/include/c++/13/bits/postypes.h /usr/include/c++/13/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/13/type_traits /usr/include/c++/13/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ + /usr/include/c++/13/bits/new_allocator.h /usr/include/c++/13/new \ + /usr/include/c++/13/bits/exception.h \ + /usr/include/c++/13/bits/functexcept.h \ + /usr/include/c++/13/bits/exception_defines.h \ + /usr/include/c++/13/bits/move.h \ + /usr/include/c++/13/bits/cpp_type_traits.h \ + /usr/include/c++/13/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ + /usr/include/c++/13/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/iosfwd \ + /usr/include/c++/13/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/13/bits/ostream_insert.h \ + /usr/include/c++/13/bits/cxxabi_forced.h \ + /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/13/bits/concept_check.h \ + /usr/include/c++/13/debug/assertions.h \ + /usr/include/c++/13/bits/stl_iterator_base_types.h \ + /usr/include/c++/13/bits/stl_iterator.h \ + /usr/include/c++/13/ext/type_traits.h \ + /usr/include/c++/13/bits/ptr_traits.h \ + /usr/include/c++/13/bits/stl_function.h \ + /usr/include/c++/13/backward/binders.h \ + /usr/include/c++/13/ext/numeric_traits.h \ + /usr/include/c++/13/bits/stl_algobase.h \ + /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/bits/utility.h \ + /usr/include/c++/13/debug/debug.h \ + /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ + /usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \ + /usr/include/c++/13/bits/range_access.h \ + /usr/include/c++/13/initializer_list \ + /usr/include/c++/13/bits/basic_string.h \ + /usr/include/c++/13/ext/alloc_traits.h \ + /usr/include/c++/13/bits/alloc_traits.h \ + /usr/include/c++/13/bits/stl_construct.h /usr/include/c++/13/string_view \ + /usr/include/c++/13/bits/functional_hash.h \ + /usr/include/c++/13/bits/hash_bytes.h \ + /usr/include/c++/13/bits/string_view.tcc \ + /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/select-decl.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/13/bits/std_abs.h /usr/include/c++/13/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/13/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/13/bits/charconv.h \ + /usr/include/c++/13/bits/basic_string.tcc \ + /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ + /usr/include/c++/13/bits/uses_allocator.h \ + /usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \ + /usr/include/c++/13/vector /usr/include/c++/13/bits/stl_uninitialized.h \ + /usr/include/c++/13/bits/stl_vector.h \ + /usr/include/c++/13/bits/stl_bvector.h \ + /usr/include/c++/13/bits/vector.tcc /usr/include/c++/13/map \ + /usr/include/c++/13/bits/stl_tree.h \ + /usr/include/c++/13/ext/aligned_buffer.h \ + /usr/include/c++/13/bits/node_handle.h \ + /usr/include/c++/13/bits/stl_map.h \ + /usr/include/c++/13/bits/stl_multimap.h \ + /usr/include/c++/13/bits/erase_if.h /usr/include/yaml.h \ + /usr/include/c++/13/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/syslog.h /usr/include/x86_64-linux-gnu/sys/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-path.h \ + /usr/include/x86_64-linux-gnu/bits/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-decl.h \ + /usr/include/c++/13/cstring /usr/include/c++/13/sstream \ + /usr/include/c++/13/istream /usr/include/c++/13/ios \ + /usr/include/c++/13/exception /usr/include/c++/13/bits/exception_ptr.h \ + /usr/include/c++/13/bits/cxxabi_init_exception.h \ + /usr/include/c++/13/typeinfo /usr/include/c++/13/bits/nested_exception.h \ + /usr/include/c++/13/bits/ios_base.h /usr/include/c++/13/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/13/bits/locale_classes.h \ + /usr/include/c++/13/bits/locale_classes.tcc \ + /usr/include/c++/13/system_error \ + /usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h \ + /usr/include/c++/13/stdexcept /usr/include/c++/13/streambuf \ + /usr/include/c++/13/bits/streambuf.tcc \ + /usr/include/c++/13/bits/basic_ios.h \ + /usr/include/c++/13/bits/locale_facets.h /usr/include/c++/13/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h \ + /usr/include/c++/13/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h \ + /usr/include/c++/13/bits/locale_facets.tcc \ + /usr/include/c++/13/bits/basic_ios.tcc /usr/include/c++/13/ostream \ + /usr/include/c++/13/bits/ostream.tcc \ + /usr/include/c++/13/bits/istream.tcc \ + /usr/include/c++/13/bits/sstream.tcc diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o new file mode 100644 index 0000000..522fb31 Binary files /dev/null and b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o differ diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o.d b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o.d new file mode 100644 index 0000000..69e36f9 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o.d @@ -0,0 +1,247 @@ +CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o: \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileStore.cpp \ + /usr/include/stdc-predef.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileStore.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileParser.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/SignatureVerifier.h \ + /usr/include/c++/13/cstdint \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ + /usr/include/c++/13/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/c++/13/string /usr/include/c++/13/bits/requires_hosted.h \ + /usr/include/c++/13/bits/stringfwd.h \ + /usr/include/c++/13/bits/memoryfwd.h \ + /usr/include/c++/13/bits/char_traits.h \ + /usr/include/c++/13/bits/postypes.h /usr/include/c++/13/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/13/type_traits /usr/include/c++/13/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ + /usr/include/c++/13/bits/new_allocator.h /usr/include/c++/13/new \ + /usr/include/c++/13/bits/exception.h \ + /usr/include/c++/13/bits/functexcept.h \ + /usr/include/c++/13/bits/exception_defines.h \ + /usr/include/c++/13/bits/move.h \ + /usr/include/c++/13/bits/cpp_type_traits.h \ + /usr/include/c++/13/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ + /usr/include/c++/13/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/iosfwd \ + /usr/include/c++/13/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/13/bits/ostream_insert.h \ + /usr/include/c++/13/bits/cxxabi_forced.h \ + /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/13/bits/concept_check.h \ + /usr/include/c++/13/debug/assertions.h \ + /usr/include/c++/13/bits/stl_iterator_base_types.h \ + /usr/include/c++/13/bits/stl_iterator.h \ + /usr/include/c++/13/ext/type_traits.h \ + /usr/include/c++/13/bits/ptr_traits.h \ + /usr/include/c++/13/bits/stl_function.h \ + /usr/include/c++/13/backward/binders.h \ + /usr/include/c++/13/ext/numeric_traits.h \ + /usr/include/c++/13/bits/stl_algobase.h \ + /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/bits/utility.h \ + /usr/include/c++/13/debug/debug.h \ + /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ + /usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \ + /usr/include/c++/13/bits/range_access.h \ + /usr/include/c++/13/initializer_list \ + /usr/include/c++/13/bits/basic_string.h \ + /usr/include/c++/13/ext/alloc_traits.h \ + /usr/include/c++/13/bits/alloc_traits.h \ + /usr/include/c++/13/bits/stl_construct.h /usr/include/c++/13/string_view \ + /usr/include/c++/13/bits/functional_hash.h \ + /usr/include/c++/13/bits/hash_bytes.h \ + /usr/include/c++/13/bits/string_view.tcc \ + /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/select-decl.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/13/bits/std_abs.h /usr/include/c++/13/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/13/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/13/bits/charconv.h \ + /usr/include/c++/13/bits/basic_string.tcc \ + /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ + /usr/include/c++/13/bits/uses_allocator.h \ + /usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \ + /usr/include/c++/13/vector /usr/include/c++/13/bits/stl_uninitialized.h \ + /usr/include/c++/13/bits/stl_vector.h \ + /usr/include/c++/13/bits/stl_bvector.h \ + /usr/include/c++/13/bits/vector.tcc /usr/include/c++/13/map \ + /usr/include/c++/13/bits/stl_tree.h \ + /usr/include/c++/13/ext/aligned_buffer.h \ + /usr/include/c++/13/bits/node_handle.h \ + /usr/include/c++/13/bits/stl_map.h \ + /usr/include/c++/13/bits/stl_multimap.h \ + /usr/include/c++/13/bits/erase_if.h /usr/include/openssl/evp.h \ + /usr/include/openssl/macros.h \ + /usr/include/x86_64-linux-gnu/openssl/opensslconf.h \ + /usr/include/x86_64-linux-gnu/openssl/configuration.h \ + /usr/include/openssl/opensslv.h /usr/include/openssl/types.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/include/openssl/e_os2.h /usr/include/openssl/safestack.h \ + /usr/include/openssl/stack.h /usr/include/openssl/core.h \ + /usr/include/openssl/core_dispatch.h /usr/include/openssl/symhacks.h \ + /usr/include/openssl/bio.h /usr/include/openssl/crypto.h \ + /usr/include/c++/13/stdlib.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/openssl/cryptoerr.h /usr/include/openssl/cryptoerr_legacy.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/openssl/bioerr.h /usr/include/openssl/evperr.h \ + /usr/include/openssl/params.h /usr/include/openssl/bn.h \ + /usr/include/openssl/bnerr.h /usr/include/openssl/objects.h \ + /usr/include/openssl/obj_mac.h /usr/include/openssl/asn1.h \ + /usr/include/openssl/asn1err.h /usr/include/openssl/objectserr.h \ + /usr/include/openssl/rand.h /usr/include/openssl/randerr.h \ + /usr/include/c++/13/algorithm /usr/include/c++/13/bits/stl_algo.h \ + /usr/include/c++/13/bits/algorithmfwd.h \ + /usr/include/c++/13/bits/stl_heap.h \ + /usr/include/c++/13/bits/uniform_int_dist.h \ + /usr/include/c++/13/bits/stl_tempbuf.h \ + /usr/include/c++/13/pstl/glue_algorithm_defs.h \ + /usr/include/c++/13/pstl/execution_defs.h /usr/include/c++/13/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/13/ctime /usr/include/dirent.h \ + /usr/include/x86_64-linux-gnu/bits/dirent.h \ + /usr/include/x86_64-linux-gnu/bits/dirent_ext.h \ + /usr/include/c++/13/fstream /usr/include/c++/13/istream \ + /usr/include/c++/13/ios /usr/include/c++/13/exception \ + /usr/include/c++/13/bits/exception_ptr.h \ + /usr/include/c++/13/bits/cxxabi_init_exception.h \ + /usr/include/c++/13/typeinfo /usr/include/c++/13/bits/nested_exception.h \ + /usr/include/c++/13/bits/ios_base.h /usr/include/c++/13/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/13/bits/locale_classes.h \ + /usr/include/c++/13/bits/locale_classes.tcc \ + /usr/include/c++/13/system_error \ + /usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h \ + /usr/include/c++/13/stdexcept /usr/include/c++/13/streambuf \ + /usr/include/c++/13/bits/streambuf.tcc \ + /usr/include/c++/13/bits/basic_ios.h \ + /usr/include/c++/13/bits/locale_facets.h /usr/include/c++/13/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h \ + /usr/include/c++/13/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h \ + /usr/include/c++/13/bits/locale_facets.tcc \ + /usr/include/c++/13/bits/basic_ios.tcc /usr/include/c++/13/ostream \ + /usr/include/c++/13/bits/ostream.tcc \ + /usr/include/c++/13/bits/istream.tcc /usr/include/c++/13/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++io.h \ + /usr/include/c++/13/bits/fstream.tcc /usr/include/c++/13/sstream \ + /usr/include/c++/13/bits/sstream.tcc \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \ + /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \ + /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/bits/statx-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h \ + /usr/include/syslog.h /usr/include/x86_64-linux-gnu/sys/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-path.h \ + /usr/include/x86_64-linux-gnu/bits/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-decl.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd-decl.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o new file mode 100644 index 0000000..37fb7cc Binary files /dev/null and b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o differ diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o.d b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o.d new file mode 100644 index 0000000..a322c3b --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o.d @@ -0,0 +1,224 @@ +CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o: \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/SignatureVerifier.cpp \ + /usr/include/stdc-predef.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/SignatureVerifier.h \ + /usr/include/c++/13/cstdint \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ + /usr/include/c++/13/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/c++/13/string /usr/include/c++/13/bits/requires_hosted.h \ + /usr/include/c++/13/bits/stringfwd.h \ + /usr/include/c++/13/bits/memoryfwd.h \ + /usr/include/c++/13/bits/char_traits.h \ + /usr/include/c++/13/bits/postypes.h /usr/include/c++/13/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/13/type_traits /usr/include/c++/13/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ + /usr/include/c++/13/bits/new_allocator.h /usr/include/c++/13/new \ + /usr/include/c++/13/bits/exception.h \ + /usr/include/c++/13/bits/functexcept.h \ + /usr/include/c++/13/bits/exception_defines.h \ + /usr/include/c++/13/bits/move.h \ + /usr/include/c++/13/bits/cpp_type_traits.h \ + /usr/include/c++/13/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ + /usr/include/c++/13/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/iosfwd \ + /usr/include/c++/13/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/13/bits/ostream_insert.h \ + /usr/include/c++/13/bits/cxxabi_forced.h \ + /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/13/bits/concept_check.h \ + /usr/include/c++/13/debug/assertions.h \ + /usr/include/c++/13/bits/stl_iterator_base_types.h \ + /usr/include/c++/13/bits/stl_iterator.h \ + /usr/include/c++/13/ext/type_traits.h \ + /usr/include/c++/13/bits/ptr_traits.h \ + /usr/include/c++/13/bits/stl_function.h \ + /usr/include/c++/13/backward/binders.h \ + /usr/include/c++/13/ext/numeric_traits.h \ + /usr/include/c++/13/bits/stl_algobase.h \ + /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/bits/utility.h \ + /usr/include/c++/13/debug/debug.h \ + /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ + /usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \ + /usr/include/c++/13/bits/range_access.h \ + /usr/include/c++/13/initializer_list \ + /usr/include/c++/13/bits/basic_string.h \ + /usr/include/c++/13/ext/alloc_traits.h \ + /usr/include/c++/13/bits/alloc_traits.h \ + /usr/include/c++/13/bits/stl_construct.h /usr/include/c++/13/string_view \ + /usr/include/c++/13/bits/functional_hash.h \ + /usr/include/c++/13/bits/hash_bytes.h \ + /usr/include/c++/13/bits/string_view.tcc \ + /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/select-decl.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/13/bits/std_abs.h /usr/include/c++/13/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/13/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/13/bits/charconv.h \ + /usr/include/c++/13/bits/basic_string.tcc \ + /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ + /usr/include/c++/13/bits/uses_allocator.h \ + /usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \ + /usr/include/c++/13/vector /usr/include/c++/13/bits/stl_uninitialized.h \ + /usr/include/c++/13/bits/stl_vector.h \ + /usr/include/c++/13/bits/stl_bvector.h \ + /usr/include/c++/13/bits/vector.tcc /usr/include/openssl/cms.h \ + /usr/include/openssl/macros.h \ + /usr/include/x86_64-linux-gnu/openssl/opensslconf.h \ + /usr/include/x86_64-linux-gnu/openssl/configuration.h \ + /usr/include/openssl/opensslv.h /usr/include/openssl/x509.h \ + /usr/include/openssl/e_os2.h /usr/include/openssl/types.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/include/openssl/safestack.h /usr/include/openssl/stack.h \ + /usr/include/openssl/symhacks.h /usr/include/openssl/buffer.h \ + /usr/include/openssl/crypto.h /usr/include/c++/13/stdlib.h \ + /usr/include/time.h /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/openssl/cryptoerr.h /usr/include/openssl/cryptoerr_legacy.h \ + /usr/include/openssl/core.h /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/openssl/buffererr.h /usr/include/openssl/evp.h \ + /usr/include/openssl/core_dispatch.h /usr/include/openssl/bio.h \ + /usr/include/openssl/bioerr.h /usr/include/openssl/evperr.h \ + /usr/include/openssl/params.h /usr/include/openssl/bn.h \ + /usr/include/openssl/bnerr.h /usr/include/openssl/objects.h \ + /usr/include/openssl/obj_mac.h /usr/include/openssl/asn1.h \ + /usr/include/openssl/asn1err.h /usr/include/openssl/objectserr.h \ + /usr/include/openssl/ec.h /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/openssl/ecerr.h /usr/include/openssl/rsa.h \ + /usr/include/openssl/rsaerr.h /usr/include/openssl/dsa.h \ + /usr/include/openssl/dh.h /usr/include/openssl/dherr.h \ + /usr/include/openssl/dsaerr.h /usr/include/openssl/sha.h \ + /usr/include/openssl/x509err.h /usr/include/openssl/x509_vfy.h \ + /usr/include/openssl/lhash.h /usr/include/openssl/pkcs7.h \ + /usr/include/openssl/pkcs7err.h /usr/include/openssl/http.h \ + /usr/include/openssl/conf.h /usr/include/openssl/conferr.h \ + /usr/include/openssl/conftypes.h /usr/include/openssl/x509v3.h \ + /usr/include/openssl/x509v3err.h /usr/include/openssl/cmserr.h \ + /usr/include/openssl/err.h /usr/include/openssl/pem.h \ + /usr/include/openssl/pemerr.h /usr/include/c++/13/cstring \ + /usr/include/c++/13/memory /usr/include/c++/13/bits/stl_tempbuf.h \ + /usr/include/c++/13/bits/stl_raw_storage_iter.h \ + /usr/include/c++/13/bits/align.h /usr/include/c++/13/bits/unique_ptr.h \ + /usr/include/c++/13/bits/shared_ptr.h \ + /usr/include/c++/13/bits/shared_ptr_base.h /usr/include/c++/13/typeinfo \ + /usr/include/c++/13/bits/allocated_ptr.h \ + /usr/include/c++/13/ext/aligned_buffer.h \ + /usr/include/c++/13/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/13/ext/concurrence.h /usr/include/c++/13/exception \ + /usr/include/c++/13/bits/exception_ptr.h \ + /usr/include/c++/13/bits/cxxabi_init_exception.h \ + /usr/include/c++/13/bits/nested_exception.h \ + /usr/include/c++/13/bits/shared_ptr_atomic.h \ + /usr/include/c++/13/bits/atomic_base.h \ + /usr/include/c++/13/bits/atomic_lockfree_defines.h \ + /usr/include/c++/13/backward/auto_ptr.h \ + /usr/include/c++/13/pstl/glue_memory_defs.h \ + /usr/include/c++/13/pstl/execution_defs.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \ + /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \ + /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/bits/statx-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h \ + /usr/include/syslog.h /usr/include/x86_64-linux-gnu/sys/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-path.h \ + /usr/include/x86_64-linux-gnu/bits/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-decl.h diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o new file mode 100644 index 0000000..015fb2a Binary files /dev/null and b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o differ diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o.d b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o.d new file mode 100644 index 0000000..fb95e9d --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o.d @@ -0,0 +1,254 @@ +CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o: \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/VesperProfileService.cpp \ + /usr/include/stdc-predef.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/VesperProfileService.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileParser.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/SignatureVerifier.h \ + /usr/include/c++/13/cstdint \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ + /usr/include/c++/13/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/c++/13/string /usr/include/c++/13/bits/requires_hosted.h \ + /usr/include/c++/13/bits/stringfwd.h \ + /usr/include/c++/13/bits/memoryfwd.h \ + /usr/include/c++/13/bits/char_traits.h \ + /usr/include/c++/13/bits/postypes.h /usr/include/c++/13/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/13/type_traits /usr/include/c++/13/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ + /usr/include/c++/13/bits/new_allocator.h /usr/include/c++/13/new \ + /usr/include/c++/13/bits/exception.h \ + /usr/include/c++/13/bits/functexcept.h \ + /usr/include/c++/13/bits/exception_defines.h \ + /usr/include/c++/13/bits/move.h \ + /usr/include/c++/13/bits/cpp_type_traits.h \ + /usr/include/c++/13/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ + /usr/include/c++/13/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/iosfwd \ + /usr/include/c++/13/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/13/bits/ostream_insert.h \ + /usr/include/c++/13/bits/cxxabi_forced.h \ + /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/13/bits/concept_check.h \ + /usr/include/c++/13/debug/assertions.h \ + /usr/include/c++/13/bits/stl_iterator_base_types.h \ + /usr/include/c++/13/bits/stl_iterator.h \ + /usr/include/c++/13/ext/type_traits.h \ + /usr/include/c++/13/bits/ptr_traits.h \ + /usr/include/c++/13/bits/stl_function.h \ + /usr/include/c++/13/backward/binders.h \ + /usr/include/c++/13/ext/numeric_traits.h \ + /usr/include/c++/13/bits/stl_algobase.h \ + /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/bits/utility.h \ + /usr/include/c++/13/debug/debug.h \ + /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ + /usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \ + /usr/include/c++/13/bits/range_access.h \ + /usr/include/c++/13/initializer_list \ + /usr/include/c++/13/bits/basic_string.h \ + /usr/include/c++/13/ext/alloc_traits.h \ + /usr/include/c++/13/bits/alloc_traits.h \ + /usr/include/c++/13/bits/stl_construct.h /usr/include/c++/13/string_view \ + /usr/include/c++/13/bits/functional_hash.h \ + /usr/include/c++/13/bits/hash_bytes.h \ + /usr/include/c++/13/bits/string_view.tcc \ + /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/select-decl.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/13/bits/std_abs.h /usr/include/c++/13/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/13/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/13/bits/charconv.h \ + /usr/include/c++/13/bits/basic_string.tcc \ + /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ + /usr/include/c++/13/bits/uses_allocator.h \ + /usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \ + /usr/include/c++/13/vector /usr/include/c++/13/bits/stl_uninitialized.h \ + /usr/include/c++/13/bits/stl_vector.h \ + /usr/include/c++/13/bits/stl_bvector.h \ + /usr/include/c++/13/bits/vector.tcc /usr/include/c++/13/map \ + /usr/include/c++/13/bits/stl_tree.h \ + /usr/include/c++/13/ext/aligned_buffer.h \ + /usr/include/c++/13/bits/node_handle.h \ + /usr/include/c++/13/bits/stl_map.h \ + /usr/include/c++/13/bits/stl_multimap.h \ + /usr/include/c++/13/bits/erase_if.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileStore.h \ + /usr/include/dbus-1.0/dbus/dbus.h \ + /usr/lib/x86_64-linux-gnu/dbus-1.0/include/dbus/dbus-arch-deps.h \ + /usr/include/dbus-1.0/dbus/dbus-macros.h \ + /usr/include/dbus-1.0/dbus/dbus-address.h \ + /usr/include/dbus-1.0/dbus/dbus-types.h \ + /usr/include/dbus-1.0/dbus/dbus-errors.h \ + /usr/include/dbus-1.0/dbus/dbus-protocol.h \ + /usr/include/dbus-1.0/dbus/dbus-bus.h \ + /usr/include/dbus-1.0/dbus/dbus-connection.h \ + /usr/include/dbus-1.0/dbus/dbus-memory.h \ + /usr/include/dbus-1.0/dbus/dbus-message.h \ + /usr/include/dbus-1.0/dbus/dbus-shared.h \ + /usr/include/dbus-1.0/dbus/dbus-misc.h \ + /usr/include/dbus-1.0/dbus/dbus-pending-call.h \ + /usr/include/dbus-1.0/dbus/dbus-server.h \ + /usr/include/dbus-1.0/dbus/dbus-signature.h \ + /usr/include/dbus-1.0/dbus/dbus-syntax.h \ + /usr/include/dbus-1.0/dbus/dbus-threads.h /usr/include/c++/13/mutex \ + /usr/include/c++/13/exception /usr/include/c++/13/bits/exception_ptr.h \ + /usr/include/c++/13/bits/cxxabi_init_exception.h \ + /usr/include/c++/13/typeinfo /usr/include/c++/13/bits/nested_exception.h \ + /usr/include/c++/13/bits/chrono.h /usr/include/c++/13/ratio \ + /usr/include/c++/13/limits /usr/include/c++/13/ctime /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/13/bits/parse_numbers.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h \ + /usr/include/c++/13/bits/std_mutex.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/c++/13/bits/unique_lock.h \ + /usr/include/c++/13/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/13/functional /usr/include/c++/13/bits/std_function.h \ + /usr/include/c++/13/unordered_map \ + /usr/include/c++/13/bits/unordered_map.h \ + /usr/include/c++/13/bits/hashtable.h \ + /usr/include/c++/13/bits/hashtable_policy.h \ + /usr/include/c++/13/bits/enable_special_members.h \ + /usr/include/c++/13/array /usr/include/c++/13/compare \ + /usr/include/c++/13/bits/stl_algo.h \ + /usr/include/c++/13/bits/algorithmfwd.h \ + /usr/include/c++/13/bits/stl_heap.h \ + /usr/include/c++/13/bits/uniform_int_dist.h \ + /usr/include/c++/13/bits/stl_tempbuf.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/payloads/PayloadHandler.h \ + /usr/include/c++/13/memory \ + /usr/include/c++/13/bits/stl_raw_storage_iter.h \ + /usr/include/c++/13/bits/align.h /usr/include/c++/13/bits/unique_ptr.h \ + /usr/include/c++/13/bits/shared_ptr.h \ + /usr/include/c++/13/bits/shared_ptr_base.h \ + /usr/include/c++/13/bits/allocated_ptr.h \ + /usr/include/c++/13/ext/concurrence.h \ + /usr/include/c++/13/bits/shared_ptr_atomic.h \ + /usr/include/c++/13/bits/atomic_base.h \ + /usr/include/c++/13/bits/atomic_lockfree_defines.h \ + /usr/include/c++/13/backward/auto_ptr.h \ + /usr/include/c++/13/pstl/glue_memory_defs.h \ + /usr/include/c++/13/pstl/execution_defs.h \ + /usr/include/systemd/sd-daemon.h /usr/include/inttypes.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/systemd/_sd-common.h /usr/include/syslog.h \ + /usr/include/x86_64-linux-gnu/sys/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-path.h \ + /usr/include/x86_64-linux-gnu/bits/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-decl.h \ + /usr/include/c++/13/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/13/sstream /usr/include/c++/13/istream \ + /usr/include/c++/13/ios /usr/include/c++/13/bits/ios_base.h \ + /usr/include/c++/13/bits/locale_classes.h \ + /usr/include/c++/13/bits/locale_classes.tcc \ + /usr/include/c++/13/system_error /usr/include/c++/13/stdexcept \ + /usr/include/c++/13/streambuf /usr/include/c++/13/bits/streambuf.tcc \ + /usr/include/c++/13/bits/basic_ios.h \ + /usr/include/c++/13/bits/locale_facets.h /usr/include/c++/13/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h \ + /usr/include/c++/13/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h \ + /usr/include/c++/13/bits/locale_facets.tcc \ + /usr/include/c++/13/bits/basic_ios.tcc /usr/include/c++/13/ostream \ + /usr/include/c++/13/bits/ostream.tcc \ + /usr/include/c++/13/bits/istream.tcc \ + /usr/include/c++/13/bits/sstream.tcc diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/main.cpp.o b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/main.cpp.o new file mode 100644 index 0000000..4cd442e Binary files /dev/null and b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/main.cpp.o differ diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/main.cpp.o.d b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/main.cpp.o.d new file mode 100644 index 0000000..d3273a5 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/main.cpp.o.d @@ -0,0 +1,304 @@ +CMakeFiles/vesperprofiled.dir/src/main.cpp.o: \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/main.cpp \ + /usr/include/stdc-predef.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/VesperProfileService.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileParser.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/SignatureVerifier.h \ + /usr/include/c++/13/cstdint \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ + /usr/include/c++/13/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/c++/13/string /usr/include/c++/13/bits/requires_hosted.h \ + /usr/include/c++/13/bits/stringfwd.h \ + /usr/include/c++/13/bits/memoryfwd.h \ + /usr/include/c++/13/bits/char_traits.h \ + /usr/include/c++/13/bits/postypes.h /usr/include/c++/13/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/13/type_traits /usr/include/c++/13/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ + /usr/include/c++/13/bits/new_allocator.h /usr/include/c++/13/new \ + /usr/include/c++/13/bits/exception.h \ + /usr/include/c++/13/bits/functexcept.h \ + /usr/include/c++/13/bits/exception_defines.h \ + /usr/include/c++/13/bits/move.h \ + /usr/include/c++/13/bits/cpp_type_traits.h \ + /usr/include/c++/13/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ + /usr/include/c++/13/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/iosfwd \ + /usr/include/c++/13/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/13/bits/ostream_insert.h \ + /usr/include/c++/13/bits/cxxabi_forced.h \ + /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/13/bits/concept_check.h \ + /usr/include/c++/13/debug/assertions.h \ + /usr/include/c++/13/bits/stl_iterator_base_types.h \ + /usr/include/c++/13/bits/stl_iterator.h \ + /usr/include/c++/13/ext/type_traits.h \ + /usr/include/c++/13/bits/ptr_traits.h \ + /usr/include/c++/13/bits/stl_function.h \ + /usr/include/c++/13/backward/binders.h \ + /usr/include/c++/13/ext/numeric_traits.h \ + /usr/include/c++/13/bits/stl_algobase.h \ + /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/bits/utility.h \ + /usr/include/c++/13/debug/debug.h \ + /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ + /usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \ + /usr/include/c++/13/bits/range_access.h \ + /usr/include/c++/13/initializer_list \ + /usr/include/c++/13/bits/basic_string.h \ + /usr/include/c++/13/ext/alloc_traits.h \ + /usr/include/c++/13/bits/alloc_traits.h \ + /usr/include/c++/13/bits/stl_construct.h /usr/include/c++/13/string_view \ + /usr/include/c++/13/bits/functional_hash.h \ + /usr/include/c++/13/bits/hash_bytes.h \ + /usr/include/c++/13/bits/string_view.tcc \ + /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/select-decl.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/13/bits/std_abs.h /usr/include/c++/13/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/13/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/13/bits/charconv.h \ + /usr/include/c++/13/bits/basic_string.tcc \ + /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ + /usr/include/c++/13/bits/uses_allocator.h \ + /usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \ + /usr/include/c++/13/vector /usr/include/c++/13/bits/stl_uninitialized.h \ + /usr/include/c++/13/bits/stl_vector.h \ + /usr/include/c++/13/bits/stl_bvector.h \ + /usr/include/c++/13/bits/vector.tcc /usr/include/c++/13/map \ + /usr/include/c++/13/bits/stl_tree.h \ + /usr/include/c++/13/ext/aligned_buffer.h \ + /usr/include/c++/13/bits/node_handle.h \ + /usr/include/c++/13/bits/stl_map.h \ + /usr/include/c++/13/bits/stl_multimap.h \ + /usr/include/c++/13/bits/erase_if.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/ProfileStore.h \ + /usr/include/dbus-1.0/dbus/dbus.h \ + /usr/lib/x86_64-linux-gnu/dbus-1.0/include/dbus/dbus-arch-deps.h \ + /usr/include/dbus-1.0/dbus/dbus-macros.h \ + /usr/include/dbus-1.0/dbus/dbus-address.h \ + /usr/include/dbus-1.0/dbus/dbus-types.h \ + /usr/include/dbus-1.0/dbus/dbus-errors.h \ + /usr/include/dbus-1.0/dbus/dbus-protocol.h \ + /usr/include/dbus-1.0/dbus/dbus-bus.h \ + /usr/include/dbus-1.0/dbus/dbus-connection.h \ + /usr/include/dbus-1.0/dbus/dbus-memory.h \ + /usr/include/dbus-1.0/dbus/dbus-message.h \ + /usr/include/dbus-1.0/dbus/dbus-shared.h \ + /usr/include/dbus-1.0/dbus/dbus-misc.h \ + /usr/include/dbus-1.0/dbus/dbus-pending-call.h \ + /usr/include/dbus-1.0/dbus/dbus-server.h \ + /usr/include/dbus-1.0/dbus/dbus-signature.h \ + /usr/include/dbus-1.0/dbus/dbus-syntax.h \ + /usr/include/dbus-1.0/dbus/dbus-threads.h /usr/include/c++/13/mutex \ + /usr/include/c++/13/exception /usr/include/c++/13/bits/exception_ptr.h \ + /usr/include/c++/13/bits/cxxabi_init_exception.h \ + /usr/include/c++/13/typeinfo /usr/include/c++/13/bits/nested_exception.h \ + /usr/include/c++/13/bits/chrono.h /usr/include/c++/13/ratio \ + /usr/include/c++/13/limits /usr/include/c++/13/ctime /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/13/bits/parse_numbers.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h \ + /usr/include/c++/13/bits/std_mutex.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/c++/13/bits/unique_lock.h \ + /usr/include/c++/13/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/13/functional /usr/include/c++/13/bits/std_function.h \ + /usr/include/c++/13/unordered_map \ + /usr/include/c++/13/bits/unordered_map.h \ + /usr/include/c++/13/bits/hashtable.h \ + /usr/include/c++/13/bits/hashtable_policy.h \ + /usr/include/c++/13/bits/enable_special_members.h \ + /usr/include/c++/13/array /usr/include/c++/13/compare \ + /usr/include/c++/13/bits/stl_algo.h \ + /usr/include/c++/13/bits/algorithmfwd.h \ + /usr/include/c++/13/bits/stl_heap.h \ + /usr/include/c++/13/bits/uniform_int_dist.h \ + /usr/include/c++/13/bits/stl_tempbuf.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/payloads/PayloadHandler.h \ + /usr/include/c++/13/memory \ + /usr/include/c++/13/bits/stl_raw_storage_iter.h \ + /usr/include/c++/13/bits/align.h /usr/include/c++/13/bits/unique_ptr.h \ + /usr/include/c++/13/bits/shared_ptr.h \ + /usr/include/c++/13/bits/shared_ptr_base.h \ + /usr/include/c++/13/bits/allocated_ptr.h \ + /usr/include/c++/13/ext/concurrence.h \ + /usr/include/c++/13/bits/shared_ptr_atomic.h \ + /usr/include/c++/13/bits/atomic_base.h \ + /usr/include/c++/13/bits/atomic_lockfree_defines.h \ + /usr/include/c++/13/backward/auto_ptr.h \ + /usr/include/c++/13/pstl/glue_memory_defs.h \ + /usr/include/c++/13/pstl/execution_defs.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ConnectivityWatcher.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ZTELookupClient.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/DeviceIdentity.h \ + /usr/include/systemd/sd-daemon.h /usr/include/inttypes.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/systemd/_sd-common.h /usr/include/c++/13/atomic \ + /usr/include/c++/13/csignal /usr/include/signal.h \ + /usr/include/x86_64-linux-gnu/bits/signum-generic.h \ + /usr/include/x86_64-linux-gnu/bits/signum-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-arch.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h \ + /usr/include/x86_64-linux-gnu/bits/sigevent-consts.h \ + /usr/include/x86_64-linux-gnu/bits/sigaction.h \ + /usr/include/x86_64-linux-gnu/bits/sigcontext.h \ + /usr/include/x86_64-linux-gnu/bits/types/stack_t.h \ + /usr/include/x86_64-linux-gnu/sys/ucontext.h \ + /usr/include/x86_64-linux-gnu/bits/sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigstksz.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd-decl.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h \ + /usr/include/x86_64-linux-gnu/bits/ss_flags.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigthread.h \ + /usr/include/x86_64-linux-gnu/bits/signal_ext.h /usr/include/dirent.h \ + /usr/include/x86_64-linux-gnu/bits/dirent.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/dirent_ext.h \ + /usr/include/c++/13/fstream /usr/include/c++/13/istream \ + /usr/include/c++/13/ios /usr/include/c++/13/bits/ios_base.h \ + /usr/include/c++/13/bits/locale_classes.h \ + /usr/include/c++/13/bits/locale_classes.tcc \ + /usr/include/c++/13/system_error /usr/include/c++/13/stdexcept \ + /usr/include/c++/13/streambuf /usr/include/c++/13/bits/streambuf.tcc \ + /usr/include/c++/13/bits/basic_ios.h \ + /usr/include/c++/13/bits/locale_facets.h /usr/include/c++/13/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h \ + /usr/include/c++/13/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h \ + /usr/include/c++/13/bits/locale_facets.tcc \ + /usr/include/c++/13/bits/basic_ios.tcc /usr/include/c++/13/ostream \ + /usr/include/c++/13/bits/ostream.tcc \ + /usr/include/c++/13/bits/istream.tcc /usr/include/c++/13/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++io.h \ + /usr/include/c++/13/bits/fstream.tcc /usr/include/c++/13/sstream \ + /usr/include/c++/13/bits/sstream.tcc /usr/include/syslog.h \ + /usr/include/x86_64-linux-gnu/sys/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-path.h \ + /usr/include/x86_64-linux-gnu/bits/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-decl.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \ + /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \ + /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ + /usr/include/x86_64-linux-gnu/bits/statx-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h \ + /usr/include/c++/13/thread /usr/include/c++/13/bits/std_thread.h \ + /usr/include/c++/13/bits/this_thread_sleep.h diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o new file mode 100644 index 0000000..2dc89f4 Binary files /dev/null and b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o differ diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o.d b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o.d new file mode 100644 index 0000000..37898ef --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o.d @@ -0,0 +1,277 @@ +CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o: \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/payloads/PayloadHandlers.cpp \ + /usr/include/stdc-predef.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/payloads/PayloadHandler.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/payloads/../ProfileParser.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/payloads/../SignatureVerifier.h \ + /usr/include/c++/13/cstdint \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ + /usr/include/c++/13/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/c++/13/string /usr/include/c++/13/bits/requires_hosted.h \ + /usr/include/c++/13/bits/stringfwd.h \ + /usr/include/c++/13/bits/memoryfwd.h \ + /usr/include/c++/13/bits/char_traits.h \ + /usr/include/c++/13/bits/postypes.h /usr/include/c++/13/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/13/type_traits /usr/include/c++/13/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ + /usr/include/c++/13/bits/new_allocator.h /usr/include/c++/13/new \ + /usr/include/c++/13/bits/exception.h \ + /usr/include/c++/13/bits/functexcept.h \ + /usr/include/c++/13/bits/exception_defines.h \ + /usr/include/c++/13/bits/move.h \ + /usr/include/c++/13/bits/cpp_type_traits.h \ + /usr/include/c++/13/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ + /usr/include/c++/13/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/iosfwd \ + /usr/include/c++/13/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/13/bits/ostream_insert.h \ + /usr/include/c++/13/bits/cxxabi_forced.h \ + /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/13/bits/concept_check.h \ + /usr/include/c++/13/debug/assertions.h \ + /usr/include/c++/13/bits/stl_iterator_base_types.h \ + /usr/include/c++/13/bits/stl_iterator.h \ + /usr/include/c++/13/ext/type_traits.h \ + /usr/include/c++/13/bits/ptr_traits.h \ + /usr/include/c++/13/bits/stl_function.h \ + /usr/include/c++/13/backward/binders.h \ + /usr/include/c++/13/ext/numeric_traits.h \ + /usr/include/c++/13/bits/stl_algobase.h \ + /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/bits/utility.h \ + /usr/include/c++/13/debug/debug.h \ + /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ + /usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \ + /usr/include/c++/13/bits/range_access.h \ + /usr/include/c++/13/initializer_list \ + /usr/include/c++/13/bits/basic_string.h \ + /usr/include/c++/13/ext/alloc_traits.h \ + /usr/include/c++/13/bits/alloc_traits.h \ + /usr/include/c++/13/bits/stl_construct.h /usr/include/c++/13/string_view \ + /usr/include/c++/13/bits/functional_hash.h \ + /usr/include/c++/13/bits/hash_bytes.h \ + /usr/include/c++/13/bits/string_view.tcc \ + /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/select-decl.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/13/bits/std_abs.h /usr/include/c++/13/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/13/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/13/bits/charconv.h \ + /usr/include/c++/13/bits/basic_string.tcc \ + /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ + /usr/include/c++/13/bits/uses_allocator.h \ + /usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \ + /usr/include/c++/13/vector /usr/include/c++/13/bits/stl_uninitialized.h \ + /usr/include/c++/13/bits/stl_vector.h \ + /usr/include/c++/13/bits/stl_bvector.h \ + /usr/include/c++/13/bits/vector.tcc /usr/include/c++/13/map \ + /usr/include/c++/13/bits/stl_tree.h \ + /usr/include/c++/13/ext/aligned_buffer.h \ + /usr/include/c++/13/bits/node_handle.h \ + /usr/include/c++/13/bits/stl_map.h \ + /usr/include/c++/13/bits/stl_multimap.h \ + /usr/include/c++/13/bits/erase_if.h /usr/include/c++/13/functional \ + /usr/include/c++/13/bits/std_function.h /usr/include/c++/13/typeinfo \ + /usr/include/c++/13/unordered_map \ + /usr/include/c++/13/bits/unordered_map.h \ + /usr/include/c++/13/bits/hashtable.h \ + /usr/include/c++/13/bits/hashtable_policy.h \ + /usr/include/c++/13/bits/enable_special_members.h \ + /usr/include/c++/13/array /usr/include/c++/13/compare \ + /usr/include/c++/13/bits/stl_algo.h \ + /usr/include/c++/13/bits/algorithmfwd.h \ + /usr/include/c++/13/bits/stl_heap.h \ + /usr/include/c++/13/bits/uniform_int_dist.h \ + /usr/include/c++/13/bits/stl_tempbuf.h /usr/include/c++/13/memory \ + /usr/include/c++/13/bits/stl_raw_storage_iter.h \ + /usr/include/c++/13/bits/align.h /usr/include/c++/13/bits/unique_ptr.h \ + /usr/include/c++/13/bits/shared_ptr.h \ + /usr/include/c++/13/bits/shared_ptr_base.h \ + /usr/include/c++/13/bits/allocated_ptr.h \ + /usr/include/c++/13/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/13/ext/concurrence.h /usr/include/c++/13/exception \ + /usr/include/c++/13/bits/exception_ptr.h \ + /usr/include/c++/13/bits/cxxabi_init_exception.h \ + /usr/include/c++/13/bits/nested_exception.h \ + /usr/include/c++/13/bits/shared_ptr_atomic.h \ + /usr/include/c++/13/bits/atomic_base.h \ + /usr/include/c++/13/bits/atomic_lockfree_defines.h \ + /usr/include/c++/13/backward/auto_ptr.h \ + /usr/include/c++/13/pstl/glue_memory_defs.h \ + /usr/include/c++/13/pstl/execution_defs.h /usr/include/openssl/evp.h \ + /usr/include/openssl/macros.h \ + /usr/include/x86_64-linux-gnu/openssl/opensslconf.h \ + /usr/include/x86_64-linux-gnu/openssl/configuration.h \ + /usr/include/openssl/opensslv.h /usr/include/openssl/types.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/include/openssl/e_os2.h /usr/include/openssl/safestack.h \ + /usr/include/openssl/stack.h /usr/include/openssl/core.h \ + /usr/include/openssl/core_dispatch.h /usr/include/openssl/symhacks.h \ + /usr/include/openssl/bio.h /usr/include/openssl/crypto.h \ + /usr/include/c++/13/stdlib.h /usr/include/openssl/cryptoerr.h \ + /usr/include/openssl/cryptoerr_legacy.h /usr/include/openssl/bioerr.h \ + /usr/include/openssl/evperr.h /usr/include/openssl/params.h \ + /usr/include/openssl/bn.h /usr/include/openssl/bnerr.h \ + /usr/include/openssl/objects.h /usr/include/openssl/obj_mac.h \ + /usr/include/openssl/asn1.h /usr/include/openssl/asn1err.h \ + /usr/include/openssl/objectserr.h /usr/include/dbus-1.0/dbus/dbus.h \ + /usr/lib/x86_64-linux-gnu/dbus-1.0/include/dbus/dbus-arch-deps.h \ + /usr/include/dbus-1.0/dbus/dbus-macros.h \ + /usr/include/dbus-1.0/dbus/dbus-address.h \ + /usr/include/dbus-1.0/dbus/dbus-types.h \ + /usr/include/dbus-1.0/dbus/dbus-errors.h \ + /usr/include/dbus-1.0/dbus/dbus-protocol.h \ + /usr/include/dbus-1.0/dbus/dbus-bus.h \ + /usr/include/dbus-1.0/dbus/dbus-connection.h \ + /usr/include/dbus-1.0/dbus/dbus-memory.h \ + /usr/include/dbus-1.0/dbus/dbus-message.h \ + /usr/include/dbus-1.0/dbus/dbus-shared.h \ + /usr/include/dbus-1.0/dbus/dbus-misc.h \ + /usr/include/dbus-1.0/dbus/dbus-pending-call.h \ + /usr/include/dbus-1.0/dbus/dbus-server.h \ + /usr/include/dbus-1.0/dbus/dbus-signature.h \ + /usr/include/dbus-1.0/dbus/dbus-syntax.h \ + /usr/include/dbus-1.0/dbus/dbus-threads.h /usr/include/syslog.h \ + /usr/include/x86_64-linux-gnu/sys/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-path.h \ + /usr/include/x86_64-linux-gnu/bits/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-decl.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \ + /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \ + /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/bits/statx-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd-decl.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h /usr/include/c++/13/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/13/fstream /usr/include/c++/13/istream \ + /usr/include/c++/13/ios /usr/include/c++/13/bits/ios_base.h \ + /usr/include/c++/13/bits/locale_classes.h \ + /usr/include/c++/13/bits/locale_classes.tcc \ + /usr/include/c++/13/system_error \ + /usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h \ + /usr/include/c++/13/stdexcept /usr/include/c++/13/streambuf \ + /usr/include/c++/13/bits/streambuf.tcc \ + /usr/include/c++/13/bits/basic_ios.h \ + /usr/include/c++/13/bits/locale_facets.h /usr/include/c++/13/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h \ + /usr/include/c++/13/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h \ + /usr/include/c++/13/bits/locale_facets.tcc \ + /usr/include/c++/13/bits/basic_ios.tcc /usr/include/c++/13/ostream \ + /usr/include/c++/13/bits/ostream.tcc \ + /usr/include/c++/13/bits/istream.tcc /usr/include/c++/13/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++io.h \ + /usr/include/c++/13/bits/fstream.tcc /usr/include/c++/13/sstream \ + /usr/include/c++/13/bits/sstream.tcc diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o new file mode 100644 index 0000000..e29e33d Binary files /dev/null and b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o differ diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o.d b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o.d new file mode 100644 index 0000000..50954f2 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o.d @@ -0,0 +1,176 @@ +CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o: \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ConnectivityWatcher.cpp \ + /usr/include/stdc-predef.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ConnectivityWatcher.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ZTELookupClient.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/DeviceIdentity.h \ + /usr/include/c++/13/string /usr/include/c++/13/bits/requires_hosted.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ + /usr/include/c++/13/pstl/pstl_config.h \ + /usr/include/c++/13/bits/stringfwd.h \ + /usr/include/c++/13/bits/memoryfwd.h \ + /usr/include/c++/13/bits/char_traits.h \ + /usr/include/c++/13/bits/postypes.h /usr/include/c++/13/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/13/type_traits /usr/include/c++/13/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ + /usr/include/c++/13/bits/new_allocator.h /usr/include/c++/13/new \ + /usr/include/c++/13/bits/exception.h \ + /usr/include/c++/13/bits/functexcept.h \ + /usr/include/c++/13/bits/exception_defines.h \ + /usr/include/c++/13/bits/move.h \ + /usr/include/c++/13/bits/cpp_type_traits.h \ + /usr/include/c++/13/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ + /usr/include/c++/13/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/iosfwd \ + /usr/include/c++/13/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/13/bits/ostream_insert.h \ + /usr/include/c++/13/bits/cxxabi_forced.h \ + /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/13/bits/concept_check.h \ + /usr/include/c++/13/debug/assertions.h \ + /usr/include/c++/13/bits/stl_iterator_base_types.h \ + /usr/include/c++/13/bits/stl_iterator.h \ + /usr/include/c++/13/ext/type_traits.h \ + /usr/include/c++/13/bits/ptr_traits.h \ + /usr/include/c++/13/bits/stl_function.h \ + /usr/include/c++/13/backward/binders.h \ + /usr/include/c++/13/ext/numeric_traits.h \ + /usr/include/c++/13/bits/stl_algobase.h \ + /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/bits/utility.h \ + /usr/include/c++/13/debug/debug.h \ + /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ + /usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \ + /usr/include/c++/13/bits/range_access.h \ + /usr/include/c++/13/initializer_list \ + /usr/include/c++/13/bits/basic_string.h \ + /usr/include/c++/13/ext/alloc_traits.h \ + /usr/include/c++/13/bits/alloc_traits.h \ + /usr/include/c++/13/bits/stl_construct.h /usr/include/c++/13/string_view \ + /usr/include/c++/13/bits/functional_hash.h \ + /usr/include/c++/13/bits/hash_bytes.h \ + /usr/include/c++/13/bits/string_view.tcc \ + /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/select-decl.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/13/bits/std_abs.h /usr/include/c++/13/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/13/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/13/bits/charconv.h \ + /usr/include/c++/13/bits/basic_string.tcc \ + /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ + /usr/include/c++/13/bits/uses_allocator.h \ + /usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \ + /usr/include/c++/13/map /usr/include/c++/13/bits/stl_tree.h \ + /usr/include/c++/13/ext/aligned_buffer.h \ + /usr/include/c++/13/bits/node_handle.h \ + /usr/include/c++/13/bits/stl_map.h \ + /usr/include/c++/13/bits/stl_multimap.h \ + /usr/include/c++/13/bits/erase_if.h /usr/include/c++/13/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/c++/13/functional /usr/include/c++/13/bits/std_function.h \ + /usr/include/c++/13/typeinfo /usr/include/c++/13/unordered_map \ + /usr/include/c++/13/bits/unordered_map.h \ + /usr/include/c++/13/bits/hashtable.h \ + /usr/include/c++/13/bits/hashtable_policy.h \ + /usr/include/c++/13/bits/enable_special_members.h \ + /usr/include/c++/13/vector /usr/include/c++/13/bits/stl_uninitialized.h \ + /usr/include/c++/13/bits/stl_vector.h \ + /usr/include/c++/13/bits/stl_bvector.h \ + /usr/include/c++/13/bits/vector.tcc /usr/include/c++/13/array \ + /usr/include/c++/13/compare /usr/include/c++/13/bits/stl_algo.h \ + /usr/include/c++/13/bits/algorithmfwd.h \ + /usr/include/c++/13/bits/stl_heap.h \ + /usr/include/c++/13/bits/uniform_int_dist.h \ + /usr/include/c++/13/bits/stl_tempbuf.h /usr/include/dbus-1.0/dbus/dbus.h \ + /usr/lib/x86_64-linux-gnu/dbus-1.0/include/dbus/dbus-arch-deps.h \ + /usr/include/dbus-1.0/dbus/dbus-macros.h \ + /usr/include/dbus-1.0/dbus/dbus-address.h \ + /usr/include/dbus-1.0/dbus/dbus-types.h \ + /usr/include/dbus-1.0/dbus/dbus-errors.h \ + /usr/include/dbus-1.0/dbus/dbus-protocol.h \ + /usr/include/dbus-1.0/dbus/dbus-bus.h \ + /usr/include/dbus-1.0/dbus/dbus-connection.h \ + /usr/include/dbus-1.0/dbus/dbus-memory.h \ + /usr/include/dbus-1.0/dbus/dbus-message.h \ + /usr/include/dbus-1.0/dbus/dbus-shared.h \ + /usr/include/dbus-1.0/dbus/dbus-misc.h \ + /usr/include/dbus-1.0/dbus/dbus-pending-call.h \ + /usr/include/dbus-1.0/dbus/dbus-server.h \ + /usr/include/dbus-1.0/dbus/dbus-signature.h \ + /usr/include/dbus-1.0/dbus/dbus-syntax.h \ + /usr/include/dbus-1.0/dbus/dbus-threads.h /usr/include/c++/13/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/syslog.h /usr/include/x86_64-linux-gnu/sys/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-path.h \ + /usr/include/x86_64-linux-gnu/bits/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-decl.h diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o new file mode 100644 index 0000000..dfc3c3d Binary files /dev/null and b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o differ diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o.d b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o.d new file mode 100644 index 0000000..86c65ef --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o.d @@ -0,0 +1,264 @@ +CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o: \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/DeviceIdentity.cpp \ + /usr/include/stdc-predef.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/DeviceIdentity.h \ + /usr/include/c++/13/string /usr/include/c++/13/bits/requires_hosted.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ + /usr/include/c++/13/pstl/pstl_config.h \ + /usr/include/c++/13/bits/stringfwd.h \ + /usr/include/c++/13/bits/memoryfwd.h \ + /usr/include/c++/13/bits/char_traits.h \ + /usr/include/c++/13/bits/postypes.h /usr/include/c++/13/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/13/type_traits /usr/include/c++/13/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ + /usr/include/c++/13/bits/new_allocator.h /usr/include/c++/13/new \ + /usr/include/c++/13/bits/exception.h \ + /usr/include/c++/13/bits/functexcept.h \ + /usr/include/c++/13/bits/exception_defines.h \ + /usr/include/c++/13/bits/move.h \ + /usr/include/c++/13/bits/cpp_type_traits.h \ + /usr/include/c++/13/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ + /usr/include/c++/13/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/iosfwd \ + /usr/include/c++/13/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/13/bits/ostream_insert.h \ + /usr/include/c++/13/bits/cxxabi_forced.h \ + /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/13/bits/concept_check.h \ + /usr/include/c++/13/debug/assertions.h \ + /usr/include/c++/13/bits/stl_iterator_base_types.h \ + /usr/include/c++/13/bits/stl_iterator.h \ + /usr/include/c++/13/ext/type_traits.h \ + /usr/include/c++/13/bits/ptr_traits.h \ + /usr/include/c++/13/bits/stl_function.h \ + /usr/include/c++/13/backward/binders.h \ + /usr/include/c++/13/ext/numeric_traits.h \ + /usr/include/c++/13/bits/stl_algobase.h \ + /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/bits/utility.h \ + /usr/include/c++/13/debug/debug.h \ + /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ + /usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \ + /usr/include/c++/13/bits/range_access.h \ + /usr/include/c++/13/initializer_list \ + /usr/include/c++/13/bits/basic_string.h \ + /usr/include/c++/13/ext/alloc_traits.h \ + /usr/include/c++/13/bits/alloc_traits.h \ + /usr/include/c++/13/bits/stl_construct.h /usr/include/c++/13/string_view \ + /usr/include/c++/13/bits/functional_hash.h \ + /usr/include/c++/13/bits/hash_bytes.h \ + /usr/include/c++/13/bits/string_view.tcc \ + /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/select-decl.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/13/bits/std_abs.h /usr/include/c++/13/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/13/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/13/bits/charconv.h \ + /usr/include/c++/13/bits/basic_string.tcc \ + /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ + /usr/include/c++/13/bits/uses_allocator.h \ + /usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \ + /usr/include/c++/13/map /usr/include/c++/13/bits/stl_tree.h \ + /usr/include/c++/13/ext/aligned_buffer.h \ + /usr/include/c++/13/bits/node_handle.h \ + /usr/include/c++/13/bits/stl_map.h \ + /usr/include/c++/13/bits/stl_multimap.h \ + /usr/include/c++/13/bits/erase_if.h /usr/include/openssl/evp.h \ + /usr/include/openssl/macros.h \ + /usr/include/x86_64-linux-gnu/openssl/opensslconf.h \ + /usr/include/x86_64-linux-gnu/openssl/configuration.h \ + /usr/include/openssl/opensslv.h /usr/include/openssl/types.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/include/openssl/e_os2.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/openssl/safestack.h /usr/include/openssl/stack.h \ + /usr/include/openssl/core.h /usr/include/openssl/core_dispatch.h \ + /usr/include/openssl/symhacks.h /usr/include/openssl/bio.h \ + /usr/include/openssl/crypto.h /usr/include/c++/13/stdlib.h \ + /usr/include/time.h /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/openssl/cryptoerr.h /usr/include/openssl/cryptoerr_legacy.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/openssl/bioerr.h /usr/include/openssl/evperr.h \ + /usr/include/openssl/params.h /usr/include/openssl/bn.h \ + /usr/include/openssl/bnerr.h /usr/include/openssl/objects.h \ + /usr/include/openssl/obj_mac.h /usr/include/openssl/asn1.h \ + /usr/include/openssl/asn1err.h /usr/include/openssl/objectserr.h \ + /usr/include/openssl/sha.h /usr/include/c++/13/algorithm \ + /usr/include/c++/13/bits/stl_algo.h \ + /usr/include/c++/13/bits/algorithmfwd.h \ + /usr/include/c++/13/bits/stl_heap.h \ + /usr/include/c++/13/bits/uniform_int_dist.h \ + /usr/include/c++/13/bits/stl_tempbuf.h \ + /usr/include/c++/13/pstl/glue_algorithm_defs.h \ + /usr/include/c++/13/pstl/execution_defs.h /usr/include/c++/13/ctime \ + /usr/include/dirent.h /usr/include/x86_64-linux-gnu/bits/dirent.h \ + /usr/include/x86_64-linux-gnu/bits/dirent_ext.h \ + /usr/include/c++/13/fstream /usr/include/c++/13/istream \ + /usr/include/c++/13/ios /usr/include/c++/13/exception \ + /usr/include/c++/13/bits/exception_ptr.h \ + /usr/include/c++/13/bits/cxxabi_init_exception.h \ + /usr/include/c++/13/typeinfo /usr/include/c++/13/bits/nested_exception.h \ + /usr/include/c++/13/bits/ios_base.h /usr/include/c++/13/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/13/bits/locale_classes.h \ + /usr/include/c++/13/bits/locale_classes.tcc \ + /usr/include/c++/13/system_error \ + /usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h \ + /usr/include/c++/13/stdexcept /usr/include/c++/13/streambuf \ + /usr/include/c++/13/bits/streambuf.tcc \ + /usr/include/c++/13/bits/basic_ios.h \ + /usr/include/c++/13/bits/locale_facets.h /usr/include/c++/13/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h \ + /usr/include/c++/13/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h \ + /usr/include/c++/13/bits/locale_facets.tcc \ + /usr/include/c++/13/bits/basic_ios.tcc /usr/include/c++/13/ostream \ + /usr/include/c++/13/bits/ostream.tcc \ + /usr/include/c++/13/bits/istream.tcc /usr/include/c++/13/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++io.h \ + /usr/include/c++/13/bits/fstream.tcc /usr/include/c++/13/iomanip \ + /usr/include/c++/13/locale \ + /usr/include/c++/13/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/13/bits/locale_facets_nonio.tcc \ + /usr/include/c++/13/bits/locale_conv.h \ + /usr/include/c++/13/bits/quoted_string.h /usr/include/c++/13/sstream \ + /usr/include/c++/13/bits/sstream.tcc /usr/include/net/if.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/bits/in.h \ + /usr/include/x86_64-linux-gnu/sys/ioctl.h \ + /usr/include/x86_64-linux-gnu/bits/ioctls.h \ + /usr/include/x86_64-linux-gnu/asm/ioctls.h \ + /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \ + /usr/include/x86_64-linux-gnu/asm/ioctl.h \ + /usr/include/asm-generic/ioctl.h \ + /usr/include/x86_64-linux-gnu/bits/ioctl-types.h \ + /usr/include/x86_64-linux-gnu/sys/ttydefaults.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \ + /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \ + /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ + /usr/include/x86_64-linux-gnu/bits/statx-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h \ + /usr/include/syslog.h /usr/include/x86_64-linux-gnu/sys/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-path.h \ + /usr/include/x86_64-linux-gnu/bits/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-decl.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd-decl.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o new file mode 100644 index 0000000..f4ae493 Binary files /dev/null and b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o differ diff --git a/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o.d b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o.d new file mode 100644 index 0000000..badfba3 --- /dev/null +++ b/obj-x86_64-linux-gnu/CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o.d @@ -0,0 +1,310 @@ +CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o: \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ZTELookupClient.cpp \ + /usr/include/stdc-predef.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/ZTELookupClient.h \ + /home/oxmc/VesperOS/packages/vesperprofiled/src/zte/DeviceIdentity.h \ + /usr/include/c++/13/string /usr/include/c++/13/bits/requires_hosted.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ + /usr/include/c++/13/pstl/pstl_config.h \ + /usr/include/c++/13/bits/stringfwd.h \ + /usr/include/c++/13/bits/memoryfwd.h \ + /usr/include/c++/13/bits/char_traits.h \ + /usr/include/c++/13/bits/postypes.h /usr/include/c++/13/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/13/type_traits /usr/include/c++/13/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ + /usr/include/c++/13/bits/new_allocator.h /usr/include/c++/13/new \ + /usr/include/c++/13/bits/exception.h \ + /usr/include/c++/13/bits/functexcept.h \ + /usr/include/c++/13/bits/exception_defines.h \ + /usr/include/c++/13/bits/move.h \ + /usr/include/c++/13/bits/cpp_type_traits.h \ + /usr/include/c++/13/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ + /usr/include/c++/13/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/iosfwd \ + /usr/include/c++/13/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/13/bits/ostream_insert.h \ + /usr/include/c++/13/bits/cxxabi_forced.h \ + /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/13/bits/concept_check.h \ + /usr/include/c++/13/debug/assertions.h \ + /usr/include/c++/13/bits/stl_iterator_base_types.h \ + /usr/include/c++/13/bits/stl_iterator.h \ + /usr/include/c++/13/ext/type_traits.h \ + /usr/include/c++/13/bits/ptr_traits.h \ + /usr/include/c++/13/bits/stl_function.h \ + /usr/include/c++/13/backward/binders.h \ + /usr/include/c++/13/ext/numeric_traits.h \ + /usr/include/c++/13/bits/stl_algobase.h \ + /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/bits/utility.h \ + /usr/include/c++/13/debug/debug.h \ + /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ + /usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \ + /usr/include/c++/13/bits/range_access.h \ + /usr/include/c++/13/initializer_list \ + /usr/include/c++/13/bits/basic_string.h \ + /usr/include/c++/13/ext/alloc_traits.h \ + /usr/include/c++/13/bits/alloc_traits.h \ + /usr/include/c++/13/bits/stl_construct.h /usr/include/c++/13/string_view \ + /usr/include/c++/13/bits/functional_hash.h \ + /usr/include/c++/13/bits/hash_bytes.h \ + /usr/include/c++/13/bits/string_view.tcc \ + /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/select-decl.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/13/bits/std_abs.h /usr/include/c++/13/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/13/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/13/bits/charconv.h \ + /usr/include/c++/13/bits/basic_string.tcc \ + /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ + /usr/include/c++/13/bits/uses_allocator.h \ + /usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \ + /usr/include/c++/13/map /usr/include/c++/13/bits/stl_tree.h \ + /usr/include/c++/13/ext/aligned_buffer.h \ + /usr/include/c++/13/bits/node_handle.h \ + /usr/include/c++/13/bits/stl_map.h \ + /usr/include/c++/13/bits/stl_multimap.h \ + /usr/include/c++/13/bits/erase_if.h /usr/include/c++/13/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/c++/13/functional /usr/include/c++/13/bits/std_function.h \ + /usr/include/c++/13/typeinfo /usr/include/c++/13/unordered_map \ + /usr/include/c++/13/bits/unordered_map.h \ + /usr/include/c++/13/bits/hashtable.h \ + /usr/include/c++/13/bits/hashtable_policy.h \ + /usr/include/c++/13/bits/enable_special_members.h \ + /usr/include/c++/13/vector /usr/include/c++/13/bits/stl_uninitialized.h \ + /usr/include/c++/13/bits/stl_vector.h \ + /usr/include/c++/13/bits/stl_bvector.h \ + /usr/include/c++/13/bits/vector.tcc /usr/include/c++/13/array \ + /usr/include/c++/13/compare /usr/include/c++/13/bits/stl_algo.h \ + /usr/include/c++/13/bits/algorithmfwd.h \ + /usr/include/c++/13/bits/stl_heap.h \ + /usr/include/c++/13/bits/uniform_int_dist.h \ + /usr/include/c++/13/bits/stl_tempbuf.h /usr/include/openssl/ssl.h \ + /usr/include/openssl/macros.h \ + /usr/include/x86_64-linux-gnu/openssl/opensslconf.h \ + /usr/include/x86_64-linux-gnu/openssl/configuration.h \ + /usr/include/openssl/opensslv.h /usr/include/openssl/e_os2.h \ + /usr/include/openssl/comp.h /usr/include/openssl/crypto.h \ + /usr/include/c++/13/stdlib.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/openssl/safestack.h /usr/include/openssl/stack.h \ + /usr/include/openssl/types.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/include/openssl/cryptoerr.h /usr/include/openssl/symhacks.h \ + /usr/include/openssl/cryptoerr_legacy.h /usr/include/openssl/core.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/openssl/comperr.h /usr/include/openssl/bio.h \ + /usr/include/openssl/bioerr.h /usr/include/openssl/x509.h \ + /usr/include/openssl/buffer.h /usr/include/openssl/buffererr.h \ + /usr/include/openssl/evp.h /usr/include/openssl/core_dispatch.h \ + /usr/include/openssl/evperr.h /usr/include/openssl/params.h \ + /usr/include/openssl/bn.h /usr/include/openssl/bnerr.h \ + /usr/include/openssl/objects.h /usr/include/openssl/obj_mac.h \ + /usr/include/openssl/asn1.h /usr/include/openssl/asn1err.h \ + /usr/include/openssl/objectserr.h /usr/include/openssl/ec.h \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/openssl/ecerr.h /usr/include/openssl/rsa.h \ + /usr/include/openssl/rsaerr.h /usr/include/openssl/dsa.h \ + /usr/include/openssl/dh.h /usr/include/openssl/dherr.h \ + /usr/include/openssl/dsaerr.h /usr/include/openssl/sha.h \ + /usr/include/openssl/x509err.h /usr/include/openssl/x509_vfy.h \ + /usr/include/openssl/lhash.h /usr/include/openssl/pkcs7.h \ + /usr/include/openssl/pkcs7err.h /usr/include/openssl/http.h \ + /usr/include/openssl/conf.h /usr/include/openssl/conferr.h \ + /usr/include/openssl/conftypes.h /usr/include/openssl/pem.h \ + /usr/include/openssl/pemerr.h /usr/include/openssl/hmac.h \ + /usr/include/openssl/async.h /usr/include/openssl/asyncerr.h \ + /usr/include/openssl/ct.h /usr/include/openssl/cterr.h \ + /usr/include/openssl/sslerr.h /usr/include/openssl/sslerr_legacy.h \ + /usr/include/openssl/prov_ssl.h /usr/include/openssl/ssl2.h \ + /usr/include/openssl/ssl3.h /usr/include/openssl/tls1.h \ + /usr/include/openssl/dtls1.h /usr/include/openssl/srtp.h \ + /usr/include/openssl/err.h /usr/include/dbus-1.0/dbus/dbus.h \ + /usr/lib/x86_64-linux-gnu/dbus-1.0/include/dbus/dbus-arch-deps.h \ + /usr/include/dbus-1.0/dbus/dbus-macros.h \ + /usr/include/dbus-1.0/dbus/dbus-address.h \ + /usr/include/dbus-1.0/dbus/dbus-types.h \ + /usr/include/dbus-1.0/dbus/dbus-errors.h \ + /usr/include/dbus-1.0/dbus/dbus-protocol.h \ + /usr/include/dbus-1.0/dbus/dbus-bus.h \ + /usr/include/dbus-1.0/dbus/dbus-connection.h \ + /usr/include/dbus-1.0/dbus/dbus-memory.h \ + /usr/include/dbus-1.0/dbus/dbus-message.h \ + /usr/include/dbus-1.0/dbus/dbus-shared.h \ + /usr/include/dbus-1.0/dbus/dbus-misc.h \ + /usr/include/dbus-1.0/dbus/dbus-pending-call.h \ + /usr/include/dbus-1.0/dbus/dbus-server.h \ + /usr/include/dbus-1.0/dbus/dbus-signature.h \ + /usr/include/dbus-1.0/dbus/dbus-syntax.h \ + /usr/include/dbus-1.0/dbus/dbus-threads.h \ + /usr/include/x86_64-linux-gnu/curl/curl.h \ + /usr/include/x86_64-linux-gnu/curl/curlver.h \ + /usr/include/x86_64-linux-gnu/curl/system.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/sys/time.h \ + /usr/include/x86_64-linux-gnu/curl/easy.h \ + /usr/include/x86_64-linux-gnu/curl/multi.h \ + /usr/include/x86_64-linux-gnu/curl/curl.h \ + /usr/include/x86_64-linux-gnu/curl/urlapi.h \ + /usr/include/x86_64-linux-gnu/curl/options.h \ + /usr/include/x86_64-linux-gnu/curl/header.h \ + /usr/include/x86_64-linux-gnu/curl/websockets.h \ + /usr/include/x86_64-linux-gnu/curl/mprintf.h /usr/include/c++/13/ctime \ + /usr/include/fcntl.h /usr/include/x86_64-linux-gnu/bits/fcntl.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \ + /usr/include/linux/falloc.h /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl2.h /usr/include/c++/13/fstream \ + /usr/include/c++/13/istream /usr/include/c++/13/ios \ + /usr/include/c++/13/exception /usr/include/c++/13/bits/exception_ptr.h \ + /usr/include/c++/13/bits/cxxabi_init_exception.h \ + /usr/include/c++/13/bits/nested_exception.h \ + /usr/include/c++/13/bits/ios_base.h /usr/include/c++/13/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/13/bits/locale_classes.h \ + /usr/include/c++/13/bits/locale_classes.tcc \ + /usr/include/c++/13/system_error \ + /usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h \ + /usr/include/c++/13/stdexcept /usr/include/c++/13/streambuf \ + /usr/include/c++/13/bits/streambuf.tcc \ + /usr/include/c++/13/bits/basic_ios.h \ + /usr/include/c++/13/bits/locale_facets.h /usr/include/c++/13/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h \ + /usr/include/c++/13/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h \ + /usr/include/c++/13/bits/locale_facets.tcc \ + /usr/include/c++/13/bits/basic_ios.tcc /usr/include/c++/13/ostream \ + /usr/include/c++/13/bits/ostream.tcc \ + /usr/include/c++/13/bits/istream.tcc /usr/include/c++/13/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++io.h \ + /usr/include/c++/13/bits/fstream.tcc /usr/include/c++/13/sstream \ + /usr/include/c++/13/bits/sstream.tcc \ + /usr/include/x86_64-linux-gnu/sys/file.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \ + /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \ + /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ + /usr/include/x86_64-linux-gnu/bits/statx-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h \ + /usr/include/syslog.h /usr/include/x86_64-linux-gnu/sys/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-path.h \ + /usr/include/x86_64-linux-gnu/bits/syslog.h \ + /usr/include/x86_64-linux-gnu/bits/syslog-decl.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd-decl.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h diff --git a/obj-x86_64-linux-gnu/Makefile b/obj-x86_64-linux-gnu/Makefile new file mode 100644 index 0000000..82fac1e --- /dev/null +++ b/obj-x86_64-linux-gnu/Makefile @@ -0,0 +1,449 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Produce verbose output by default. +VERBOSE = 1 + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/oxmc/VesperOS/packages/vesperprofiled + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named vesperprofiled + +# Build rule for target. +vesperprofiled: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 vesperprofiled +.PHONY : vesperprofiled + +# fast build rule for target. +vesperprofiled/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/build +.PHONY : vesperprofiled/fast + +src/ProfileParser.o: src/ProfileParser.cpp.o +.PHONY : src/ProfileParser.o + +# target to build an object file +src/ProfileParser.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.o +.PHONY : src/ProfileParser.cpp.o + +src/ProfileParser.i: src/ProfileParser.cpp.i +.PHONY : src/ProfileParser.i + +# target to preprocess a source file +src/ProfileParser.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.i +.PHONY : src/ProfileParser.cpp.i + +src/ProfileParser.s: src/ProfileParser.cpp.s +.PHONY : src/ProfileParser.s + +# target to generate assembly for a file +src/ProfileParser.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/ProfileParser.cpp.s +.PHONY : src/ProfileParser.cpp.s + +src/ProfileStore.o: src/ProfileStore.cpp.o +.PHONY : src/ProfileStore.o + +# target to build an object file +src/ProfileStore.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.o +.PHONY : src/ProfileStore.cpp.o + +src/ProfileStore.i: src/ProfileStore.cpp.i +.PHONY : src/ProfileStore.i + +# target to preprocess a source file +src/ProfileStore.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.i +.PHONY : src/ProfileStore.cpp.i + +src/ProfileStore.s: src/ProfileStore.cpp.s +.PHONY : src/ProfileStore.s + +# target to generate assembly for a file +src/ProfileStore.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/ProfileStore.cpp.s +.PHONY : src/ProfileStore.cpp.s + +src/SignatureVerifier.o: src/SignatureVerifier.cpp.o +.PHONY : src/SignatureVerifier.o + +# target to build an object file +src/SignatureVerifier.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.o +.PHONY : src/SignatureVerifier.cpp.o + +src/SignatureVerifier.i: src/SignatureVerifier.cpp.i +.PHONY : src/SignatureVerifier.i + +# target to preprocess a source file +src/SignatureVerifier.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.i +.PHONY : src/SignatureVerifier.cpp.i + +src/SignatureVerifier.s: src/SignatureVerifier.cpp.s +.PHONY : src/SignatureVerifier.s + +# target to generate assembly for a file +src/SignatureVerifier.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/SignatureVerifier.cpp.s +.PHONY : src/SignatureVerifier.cpp.s + +src/VesperProfileService.o: src/VesperProfileService.cpp.o +.PHONY : src/VesperProfileService.o + +# target to build an object file +src/VesperProfileService.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.o +.PHONY : src/VesperProfileService.cpp.o + +src/VesperProfileService.i: src/VesperProfileService.cpp.i +.PHONY : src/VesperProfileService.i + +# target to preprocess a source file +src/VesperProfileService.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.i +.PHONY : src/VesperProfileService.cpp.i + +src/VesperProfileService.s: src/VesperProfileService.cpp.s +.PHONY : src/VesperProfileService.s + +# target to generate assembly for a file +src/VesperProfileService.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/VesperProfileService.cpp.s +.PHONY : src/VesperProfileService.cpp.s + +src/main.o: src/main.cpp.o +.PHONY : src/main.o + +# target to build an object file +src/main.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/main.cpp.o +.PHONY : src/main.cpp.o + +src/main.i: src/main.cpp.i +.PHONY : src/main.i + +# target to preprocess a source file +src/main.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/main.cpp.i +.PHONY : src/main.cpp.i + +src/main.s: src/main.cpp.s +.PHONY : src/main.s + +# target to generate assembly for a file +src/main.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/main.cpp.s +.PHONY : src/main.cpp.s + +src/payloads/PayloadHandlers.o: src/payloads/PayloadHandlers.cpp.o +.PHONY : src/payloads/PayloadHandlers.o + +# target to build an object file +src/payloads/PayloadHandlers.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.o +.PHONY : src/payloads/PayloadHandlers.cpp.o + +src/payloads/PayloadHandlers.i: src/payloads/PayloadHandlers.cpp.i +.PHONY : src/payloads/PayloadHandlers.i + +# target to preprocess a source file +src/payloads/PayloadHandlers.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.i +.PHONY : src/payloads/PayloadHandlers.cpp.i + +src/payloads/PayloadHandlers.s: src/payloads/PayloadHandlers.cpp.s +.PHONY : src/payloads/PayloadHandlers.s + +# target to generate assembly for a file +src/payloads/PayloadHandlers.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/payloads/PayloadHandlers.cpp.s +.PHONY : src/payloads/PayloadHandlers.cpp.s + +src/zte/ConnectivityWatcher.o: src/zte/ConnectivityWatcher.cpp.o +.PHONY : src/zte/ConnectivityWatcher.o + +# target to build an object file +src/zte/ConnectivityWatcher.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.o +.PHONY : src/zte/ConnectivityWatcher.cpp.o + +src/zte/ConnectivityWatcher.i: src/zte/ConnectivityWatcher.cpp.i +.PHONY : src/zte/ConnectivityWatcher.i + +# target to preprocess a source file +src/zte/ConnectivityWatcher.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.i +.PHONY : src/zte/ConnectivityWatcher.cpp.i + +src/zte/ConnectivityWatcher.s: src/zte/ConnectivityWatcher.cpp.s +.PHONY : src/zte/ConnectivityWatcher.s + +# target to generate assembly for a file +src/zte/ConnectivityWatcher.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/zte/ConnectivityWatcher.cpp.s +.PHONY : src/zte/ConnectivityWatcher.cpp.s + +src/zte/DeviceIdentity.o: src/zte/DeviceIdentity.cpp.o +.PHONY : src/zte/DeviceIdentity.o + +# target to build an object file +src/zte/DeviceIdentity.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.o +.PHONY : src/zte/DeviceIdentity.cpp.o + +src/zte/DeviceIdentity.i: src/zte/DeviceIdentity.cpp.i +.PHONY : src/zte/DeviceIdentity.i + +# target to preprocess a source file +src/zte/DeviceIdentity.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.i +.PHONY : src/zte/DeviceIdentity.cpp.i + +src/zte/DeviceIdentity.s: src/zte/DeviceIdentity.cpp.s +.PHONY : src/zte/DeviceIdentity.s + +# target to generate assembly for a file +src/zte/DeviceIdentity.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/zte/DeviceIdentity.cpp.s +.PHONY : src/zte/DeviceIdentity.cpp.s + +src/zte/ZTELookupClient.o: src/zte/ZTELookupClient.cpp.o +.PHONY : src/zte/ZTELookupClient.o + +# target to build an object file +src/zte/ZTELookupClient.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.o +.PHONY : src/zte/ZTELookupClient.cpp.o + +src/zte/ZTELookupClient.i: src/zte/ZTELookupClient.cpp.i +.PHONY : src/zte/ZTELookupClient.i + +# target to preprocess a source file +src/zte/ZTELookupClient.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.i +.PHONY : src/zte/ZTELookupClient.cpp.i + +src/zte/ZTELookupClient.s: src/zte/ZTELookupClient.cpp.s +.PHONY : src/zte/ZTELookupClient.s + +# target to generate assembly for a file +src/zte/ZTELookupClient.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/vesperprofiled.dir/build.make CMakeFiles/vesperprofiled.dir/src/zte/ZTELookupClient.cpp.s +.PHONY : src/zte/ZTELookupClient.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... vesperprofiled" + @echo "... src/ProfileParser.o" + @echo "... src/ProfileParser.i" + @echo "... src/ProfileParser.s" + @echo "... src/ProfileStore.o" + @echo "... src/ProfileStore.i" + @echo "... src/ProfileStore.s" + @echo "... src/SignatureVerifier.o" + @echo "... src/SignatureVerifier.i" + @echo "... src/SignatureVerifier.s" + @echo "... src/VesperProfileService.o" + @echo "... src/VesperProfileService.i" + @echo "... src/VesperProfileService.s" + @echo "... src/main.o" + @echo "... src/main.i" + @echo "... src/main.s" + @echo "... src/payloads/PayloadHandlers.o" + @echo "... src/payloads/PayloadHandlers.i" + @echo "... src/payloads/PayloadHandlers.s" + @echo "... src/zte/ConnectivityWatcher.o" + @echo "... src/zte/ConnectivityWatcher.i" + @echo "... src/zte/ConnectivityWatcher.s" + @echo "... src/zte/DeviceIdentity.o" + @echo "... src/zte/DeviceIdentity.i" + @echo "... src/zte/DeviceIdentity.s" + @echo "... src/zte/ZTELookupClient.o" + @echo "... src/zte/ZTELookupClient.i" + @echo "... src/zte/ZTELookupClient.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/obj-x86_64-linux-gnu/cmake_install.cmake b/obj-x86_64-linux-gnu/cmake_install.cmake new file mode 100644 index 0000000..e9233c7 --- /dev/null +++ b/obj-x86_64-linux-gnu/cmake_install.cmake @@ -0,0 +1,118 @@ +# Install script for directory: /home/oxmc/VesperOS/packages/vesperprofiled + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/sbin/vesperprofiled" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/sbin/vesperprofiled") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/sbin/vesperprofiled" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/sbin" TYPE EXECUTABLE FILES "/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/vesperprofiled") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/sbin/vesperprofiled" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/sbin/vesperprofiled") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/sbin/vesperprofiled") + endif() + endif() +endif() + +if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT) + list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES + "/usr/lib/systemd/system/vesperprofiled.service") + if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION) + message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}") + endif() + if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION) + message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}") + endif() + file(INSTALL DESTINATION "/usr/lib/systemd/system" TYPE FILE FILES "/home/oxmc/VesperOS/packages/vesperprofiled/systemd/vesperprofiled.service") +endif() + +if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT) + list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES + "/etc/dbus-1/system.d/me.oxmc.vesperos.ProfileService.conf") + if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION) + message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}") + endif() + if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION) + message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}") + endif() + file(INSTALL DESTINATION "/etc/dbus-1/system.d" TYPE FILE FILES "/home/oxmc/VesperOS/packages/vesperprofiled/dbus/me.oxmc.vesperos.ProfileService.conf") +endif() + +if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT) + list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES + "/etc/apparmor.d/vesperprofiled") + if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION) + message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}") + endif() + if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION) + message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}") + endif() + file(INSTALL DESTINATION "/etc/apparmor.d" TYPE FILE FILES "/home/oxmc/VesperOS/packages/vesperprofiled/apparmor/vesperprofiled") +endif() + +if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT) + list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES + "/etc/vesperprofiled/zte.conf.example") + if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION) + message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}") + endif() + if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION) + message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}") + endif() + file(INSTALL DESTINATION "/etc/vesperprofiled" TYPE FILE RENAME "zte.conf.example" FILES "/home/oxmc/VesperOS/packages/vesperprofiled/zte.conf.example") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/oxmc/VesperOS/packages/vesperprofiled/obj-x86_64-linux-gnu/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/obj-x86_64-linux-gnu/install_manifest.txt b/obj-x86_64-linux-gnu/install_manifest.txt new file mode 100644 index 0000000..99c4c06 --- /dev/null +++ b/obj-x86_64-linux-gnu/install_manifest.txt @@ -0,0 +1,5 @@ +/usr/sbin/vesperprofiled +/usr/lib/systemd/system/vesperprofiled.service +/etc/dbus-1/system.d/me.oxmc.vesperos.ProfileService.conf +/etc/apparmor.d/vesperprofiled +/etc/vesperprofiled/zte.conf.example \ No newline at end of file diff --git a/obj-x86_64-linux-gnu/vesperprofiled b/obj-x86_64-linux-gnu/vesperprofiled new file mode 100755 index 0000000..8e1d724 Binary files /dev/null and b/obj-x86_64-linux-gnu/vesperprofiled differ diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts new file mode 100644 index 0000000..a78016d --- /dev/null +++ b/sepolicy/file_contexts @@ -0,0 +1,11 @@ +# vendor/oxmc/vesperprofiled/sepolicy/file_contexts +# ───────────────────────────────────────────────────────────────────────── +# Maps filesystem paths to SELinux security contexts. +# Included automatically when BOARD_SEPOLICY_DIRS points here. +# ───────────────────────────────────────────────────────────────────────── + +# Daemon binary +/system/bin/vesperprofiled u:object_r:vesperprofiled_exec:s0 + +# Profile data directory and all contents +/data/system/vesperos(/.*)? u:object_r:vesperprofiled_data_file:s0 diff --git a/sepolicy/property_contexts b/sepolicy/property_contexts new file mode 100644 index 0000000..3ebe93d --- /dev/null +++ b/sepolicy/property_contexts @@ -0,0 +1,4 @@ +# vendor/oxmc/vesperprofiled/sepolicy/property_contexts +# Declares the persist.vesperos.* property namespace. + +persist.vesperos. u:object_r:vesperos_prop:s0 diff --git a/sepolicy/service_contexts b/sepolicy/service_contexts new file mode 100644 index 0000000..8612e61 --- /dev/null +++ b/sepolicy/service_contexts @@ -0,0 +1,6 @@ +# vendor/oxmc/vesperprofiled/sepolicy/service_contexts +# Maps the Binder service name to its SELinux type. +# This is what allows AServiceManager_addService / getService to work +# under SELinux enforcement. + +me.oxmc.vesperos.profile.IVesperProfileService/default u:object_r:vesperprofiled_service:s0 diff --git a/sepolicy/vesperprofiled.te b/sepolicy/vesperprofiled.te new file mode 100644 index 0000000..6376611 --- /dev/null +++ b/sepolicy/vesperprofiled.te @@ -0,0 +1,62 @@ +# vendor/oxmc/vesperprofiled/sepolicy/vesperprofiled.te +# SELinux policy for the vesperprofiled system daemon (Android/AOSP). +# +# To activate, add to your device's BoardConfig.mk: +# BOARD_SEPOLICY_DIRS += vendor/oxmc/vesperprofiled/sepolicy + +# ── Type declarations ────────────────────────────────────────────────────── + +type vesperprofiled, domain; +type vesperprofiled_exec, exec_type, file_type, system_file_type; +type vesperprofiled_data_file, file_type, data_file_type; +type vesperprofiled_service, service_manager_type; + +# ── Domain transition ────────────────────────────────────────────────────── + +init_daemon_domain(vesperprofiled) + +# ── Binder IPC ──────────────────────────────────────────────────────────── + +binder_use(vesperprofiled) +add_service(vesperprofiled, vesperprofiled_service) + +# Allow system apps and shell to call into vesperprofiled via Binder +binder_call(system_app, vesperprofiled) +binder_call(shell, vesperprofiled) + +# ── Profile data directory ──────────────────────────────────────────────── + +allow vesperprofiled vesperprofiled_data_file:dir { create search getattr setattr add_name remove_name }; +allow vesperprofiled vesperprofiled_data_file:file { create open read write getattr setattr unlink rename }; + +# ── System file access (CA certs for signature chain validation) ────────── + +allow vesperprofiled system_file:dir { search getattr }; +allow vesperprofiled system_file:file { open read getattr }; + +# ── Network (ZTE HTTPS lookups) ─────────────────────────────────────────── + +allow vesperprofiled self:tcp_socket { create connect read write shutdown }; +allow vesperprofiled self:udp_socket { create connect read write }; +allow vesperprofiled port:tcp_socket name_connect; + +# ── Logging ─────────────────────────────────────────────────────────────── + +allow vesperprofiled log_device:chr_file { open read write }; + +# ── System properties (ZTE state and MDM enrollment state) ─────────────── + +set_prop(vesperprofiled, vesperos_prop) +get_prop(vesperprofiled, vesperos_prop) + +# ── DevicePolicyManager / KeyStore Binder calls ─────────────────────────── + +allow vesperprofiled device_policy_service:service_manager { find }; +allow vesperprofiled keystore_service:service_manager { find }; +binder_call(vesperprofiled, system_server) +binder_call(vesperprofiled, keystore) + +# ── Process self-permissions ────────────────────────────────────────────── + +allow vesperprofiled self:process { fork sigchld }; +allow vesperprofiled self:unix_stream_socket { create connect read write }; diff --git a/src/ProfileParser.cpp b/src/ProfileParser.cpp new file mode 100644 index 0000000..9d9b462 --- /dev/null +++ b/src/ProfileParser.cpp @@ -0,0 +1,263 @@ +#include "ProfileParser.h" + +// libyaml — available as libyaml-dev on Debian Trixie +#include +#include + +#include +#include + +namespace vesperos::profile { + +// ── Internal YAML DOM builder ───────────────────────────────────────────── +// libyaml is SAX/event-based. We walk the event stream and build a simple +// in-memory node tree, then map it to ParsedProfile structs. + +struct YamlNode { + enum class Kind { SCALAR, SEQUENCE, MAPPING }; + Kind kind = Kind::SCALAR; + std::string scalar; + std::vector seq; + std::vector> map; + + const std::string& get(const std::string& key, + const std::string& def = "") const { + for (auto& [k, v] : map) + if (k == key) return v.scalar; + static std::string s; + return def.empty() ? (s = "") : (s = def); + } + + bool has(const std::string& key) const { + for (auto& [k, v] : map) if (k == key) return true; + return false; + } + + const YamlNode* child(const std::string& key) const { + for (auto& [k, v] : map) if (k == key) return &v; + return nullptr; + } +}; + +static YamlNode buildNode(yaml_parser_t* p); + +static YamlNode buildSequence(yaml_parser_t* p) { + YamlNode n; n.kind = YamlNode::Kind::SEQUENCE; + while (true) { + YamlNode child = buildNode(p); + if (child.kind == YamlNode::Kind::SCALAR && child.scalar == "__END_SEQ__") break; + n.seq.push_back(std::move(child)); + } + return n; +} + +static YamlNode buildMapping(yaml_parser_t* p) { + YamlNode n; n.kind = YamlNode::Kind::MAPPING; + while (true) { + YamlNode key = buildNode(p); + if (key.kind == YamlNode::Kind::SCALAR && key.scalar == "__END_MAP__") break; + YamlNode val = buildNode(p); + n.map.emplace_back(key.scalar, std::move(val)); + } + return n; +} + +static YamlNode buildNode(yaml_parser_t* p) { + yaml_event_t ev; + yaml_parser_parse(p, &ev); + switch (ev.type) { + case YAML_SCALAR_EVENT: { + YamlNode n; + n.scalar = reinterpret_cast(ev.data.scalar.value); + yaml_event_delete(&ev); + return n; + } + case YAML_SEQUENCE_START_EVENT: + yaml_event_delete(&ev); + return buildSequence(p); + case YAML_SEQUENCE_END_EVENT: { + yaml_event_delete(&ev); + YamlNode s; s.scalar = "__END_SEQ__"; return s; + } + case YAML_MAPPING_START_EVENT: + yaml_event_delete(&ev); + return buildMapping(p); + case YAML_MAPPING_END_EVENT: { + yaml_event_delete(&ev); + YamlNode s; s.scalar = "__END_MAP__"; return s; + } + default: + yaml_event_delete(&ev); + return YamlNode{}; + } +} + +// Serialise a YamlNode to compact JSON for field storage in ParsedPayload. +static std::string nodeToJson(const YamlNode& n) { + if (n.kind == YamlNode::Kind::SCALAR) { + std::ostringstream o; o << '"'; + for (char c : n.scalar) { + if (c == '"') o << "\\\""; + else if (c == '\\') o << "\\\\"; + else if (c == '\n') o << "\\n"; + else o << c; + } + o << '"'; return o.str(); + } + if (n.kind == YamlNode::Kind::SEQUENCE) { + std::ostringstream o; o << '['; + for (size_t i = 0; i < n.seq.size(); ++i) { + if (i) o << ','; + o << nodeToJson(n.seq[i]); + } + o << ']'; return o.str(); + } + std::ostringstream o; o << '{'; + for (size_t i = 0; i < n.map.size(); ++i) { + if (i) o << ','; + o << '"' << n.map[i].first << "\":" << nodeToJson(n.map[i].second); + } + o << '}'; return o.str(); +} + +// ── ProfileParser::parse ────────────────────────────────────────────────── + +bool ProfileParser::parse(const std::vector& yaml, ParsedProfile& out) { + yaml_parser_t parser; + if (!yaml_parser_initialize(&parser)) { + syslog(LOG_ERR, "[ProfileParser] failed to initialise libyaml"); + return false; + } + yaml_parser_set_input_string(&parser, yaml.data(), yaml.size()); + + // Consume STREAM-START and DOCUMENT-START + yaml_event_t ev; + yaml_parser_parse(&parser, &ev); yaml_event_delete(&ev); + yaml_parser_parse(&parser, &ev); yaml_event_delete(&ev); + + YamlNode root = buildNode(&parser); + yaml_parser_delete(&parser); + + if (root.kind != YamlNode::Kind::MAPPING) { + syslog(LOG_ERR, "[ProfileParser] root document is not a YAML mapping"); + return false; + } + + return parseTopLevel(&root, out) && validateProfile(out); +} + +// ── parseTopLevel ───────────────────────────────────────────────────────── + +bool ProfileParser::parseTopLevel(const void* vnode, ParsedProfile& out) { + const auto& root = *static_cast(vnode); + + out.version = 1; + out.id = root.get("id"); + out.uuid = root.get("uuid"); + out.scope = root.get("scope", "user"); + + if (auto* m = root.child("meta")) parseMeta(m, out.meta); + if (auto* l = root.child("lifecycle")) parseLifecycle(l, out.lifecycle); + if (auto* c = root.child("consent")) parseConsent(c, out); + + const YamlNode* payloadsNode = root.child("payloads"); + if (payloadsNode && payloadsNode->kind == YamlNode::Kind::SEQUENCE) { + for (const auto& item : payloadsNode->seq) { + ParsedPayload payload; + if (parsePayload(&item, payload)) + out.payloads.push_back(std::move(payload)); + } + } + return true; +} + +bool ProfileParser::parseMeta(const void* vnode, ProfileMeta& out) { + const auto& n = *static_cast(vnode); + out.name = n.get("name"); + out.description = n.get("description"); + out.organization = n.get("organization"); + return true; +} + +bool ProfileParser::parseLifecycle(const void* vnode, ProfileLifecycle& out) { + const auto& n = *static_cast(vnode); + out.removal = n.get("removal", "free"); + out.expiresAt = n.get("expires-at"); + out.otaRefreshAfter = n.get("ota-refresh-after"); + const std::string& ea = n.get("expires-after"); + if (!ea.empty()) { + try { out.expiresAfterSeconds = std::stoll(ea); } + catch (...) { out.expiresAfterSeconds = 0; } + } + return true; +} + +bool ProfileParser::parseConsent(const void* vnode, ParsedProfile& out) { + const auto& n = *static_cast(vnode); + out.consentDefault = n.get("default", "en"); + if (auto* t = n.child("translations")) { + for (auto& [lang, node] : t->map) + out.consentTranslations[lang] = node.scalar; + } + return true; +} + +bool ProfileParser::parsePayload(const void* vnode, ParsedPayload& out) { + const auto& n = *static_cast(vnode); + if (n.kind != YamlNode::Kind::MAPPING) return false; + + out.type = n.get("type"); + out.id = n.get("id"); + out.uuid = n.get("uuid"); + out.name = n.get("name"); + + if (out.type.empty() || out.uuid.empty()) { + syslog(LOG_WARNING, "[ProfileParser] payload missing 'type' or 'uuid' — skipping"); + return false; + } + + for (const auto& [key, val] : n.map) { + if (key == "type" || key == "id" || key == "uuid" || key == "name") continue; + out.fields[key] = nodeToJson(val); + } + + std::string raw = nodeToJson(n); + out.rawYaml.assign(raw.begin(), raw.end()); + return true; +} + +// ── validateProfile ─────────────────────────────────────────────────────── + +bool ProfileParser::validateProfile(const ParsedProfile& profile) { + if (profile.id.empty()) { + syslog(LOG_ERR, "[ProfileParser] profile missing required field 'id'"); + return false; + } + if (profile.uuid.empty()) { + syslog(LOG_ERR, "[ProfileParser] profile missing required field 'uuid'"); + return false; + } + + // Load singleton constraints from the installed schema + // For now use the compiled-in list; the schema-aware validator + // reads /usr/share/vesperprofiled/schema/profile.schema.yml at runtime. + static const std::vector singletons = { + "mdm", "passcode", "restrictions", "kiosk", "asam", + "proxy-http", "web-filter", "global-preferences", + "shared-device", "parental-controls", "removal-password", + "identification", "home-screen", "airplay-security", + "system-policy", "first-boot", "setup-assistant", + }; + for (const auto& type : singletons) { + int count = 0; + for (const auto& p : profile.payloads) if (p.type == type) ++count; + if (count > 1) { + syslog(LOG_ERR, "[ProfileParser] only one '%s' payload allowed per profile", + type.c_str()); + return false; + } + } + return true; +} + +} // namespace vesperos::profile diff --git a/src/ProfileParser.h b/src/ProfileParser.h new file mode 100644 index 0000000..fdaa76f --- /dev/null +++ b/src/ProfileParser.h @@ -0,0 +1,64 @@ +#pragma once + +#include "SignatureVerifier.h" + +#include +#include +#include + +namespace vesperos::profile { + +struct ParsedPayload { + std::string type; + std::string id; + std::string uuid; + std::string name; + std::map fields; // all fields as JSON strings + std::vector rawYaml; // full payload JSON for handlers +}; + +struct ProfileLifecycle { + std::string removal = "free"; // free | locked | password + std::string expiresAt; + int64_t expiresAfterSeconds = 0; + std::string otaRefreshAfter; +}; + +struct ProfileMeta { + std::string name; + std::string description; + std::string organization; +}; + +struct ParsedProfile { + int version = 1; + std::string id; + std::string uuid; + std::string scope = "user"; // system | user + + ProfileMeta meta; + ProfileLifecycle lifecycle; + + std::string consentDefault; + std::map consentTranslations; + + std::vector payloads; + + SignatureVerifier::TrustLevel trustLevel = + SignatureVerifier::TrustLevel::UNSIGNED; +}; + +class ProfileParser { +public: + bool parse(const std::vector& yaml, ParsedProfile& out); + +private: + bool parseTopLevel(const void* node, ParsedProfile& out); + bool parseMeta(const void* node, ProfileMeta& out); + bool parseLifecycle(const void* node, ProfileLifecycle& out); + bool parseConsent(const void* node, ParsedProfile& out); + bool parsePayload(const void* node, ParsedPayload& out); + bool validateProfile(const ParsedProfile& profile); +}; + +} // namespace vesperos::profile diff --git a/src/ProfileStore.cpp b/src/ProfileStore.cpp new file mode 100644 index 0000000..68eccf6 --- /dev/null +++ b/src/ProfileStore.cpp @@ -0,0 +1,208 @@ +#include "ProfileStore.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace vesperos::profile { + +// ── POSIX file helpers ──────────────────────────────────────────────────── + +static bool fileExists(const std::string& path) { + struct stat st{}; + return ::stat(path.c_str(), &st) == 0; +} + +static bool writeFile(const std::string& path, const std::string& content) { + std::ofstream f(path, std::ios::binary | std::ios::trunc); + if (!f) { + syslog(LOG_ERR, "vesperprofiled: cannot write %s: %s", + path.c_str(), strerror(errno)); + return false; + } + f << content; + return f.good(); +} + +static bool readFile(const std::string& path, std::string& out) { + std::ifstream f(path, std::ios::binary); + if (!f) return false; + std::ostringstream ss; + ss << f.rdbuf(); + out = ss.str(); + return true; +} + +// ── Password hashing — PBKDF2-HMAC-SHA256 ──────────────────────────────── +// 16-byte random salt + 32-byte derived key, stored as 96 hex characters. + +static std::string hashPassword(const std::string& password) { + uint8_t salt[16], derived[32]; + RAND_bytes(salt, sizeof(salt)); + PKCS5_PBKDF2_HMAC(password.c_str(), (int)password.size(), + salt, sizeof(salt), 100000, + EVP_sha256(), sizeof(derived), derived); + + static const char* hex = "0123456789abcdef"; + std::string out; + out.reserve(96); + for (uint8_t b : salt) { out += hex[b >> 4]; out += hex[b & 0xf]; } + for (uint8_t b : derived) { out += hex[b >> 4]; out += hex[b & 0xf]; } + return out; +} + +static bool verifyPassword(const std::string& password, const std::string& stored) { + if (stored.size() != 96) return false; + auto fromHex = [](char c) -> uint8_t { + if (c >= '0' && c <= '9') return c - '0'; + if (c >= 'a' && c <= 'f') return c - 'a' + 10; + return 0; + }; + uint8_t salt[16], expected[32], derived[32]; + for (int i = 0; i < 16; ++i) + salt[i] = (fromHex(stored[i*2]) << 4) | fromHex(stored[i*2+1]); + for (int i = 0; i < 32; ++i) + expected[i] = (fromHex(stored[32 + i*2]) << 4) | fromHex(stored[32 + i*2+1]); + PKCS5_PBKDF2_HMAC(password.c_str(), (int)password.size(), + salt, sizeof(salt), 100000, + EVP_sha256(), sizeof(derived), derived); + uint8_t diff = 0; + for (int i = 0; i < 32; ++i) diff |= (expected[i] ^ derived[i]); + return diff == 0; +} + +// ── ProfileStore ────────────────────────────────────────────────────────── + +std::string ProfileStore::profileDir(const std::string& uuid) { + return std::string(kProfilesDir) + "/" + uuid; +} + +void ProfileStore::ensureDir(const std::string& path) { + ::mkdir(path.c_str(), 0700); +} + +void ProfileStore::load() { + ensureDir("/var/lib/vesperprofiled"); + ensureDir(kProfilesDir); + mUuids.clear(); + + DIR* d = opendir(kProfilesDir); + if (!d) return; + struct dirent* ent; + while ((ent = readdir(d)) != nullptr) { + std::string name = ent->d_name; + if (name == "." || name == ".." || name == "index.json") continue; + if (fileExists(profileDir(name) + "/profile.yml")) + mUuids.push_back(name); + } + closedir(d); + syslog(LOG_INFO, "vesperprofiled: loaded %zu profiles", mUuids.size()); +} + +bool ProfileStore::save(const ParsedProfile& profile) { + std::string dir = profileDir(profile.uuid); + ensureDir(dir); + + std::ostringstream yml; + yml << "version: " << profile.version << "\n" + << "id: " << profile.id << "\n" + << "uuid: " << profile.uuid << "\n" + << "scope: " << profile.scope << "\n" + << "meta:\n" + << " name: " << profile.meta.name << "\n" + << " description: " << profile.meta.description << "\n" + << " organization: " << profile.meta.organization << "\n" + << "lifecycle:\n" + << " removal: " << profile.lifecycle.removal << "\n"; + if (!writeFile(dir + "/profile.yml", yml.str())) return false; + + std::time_t now = std::time(nullptr); + std::ostringstream meta; + meta << "{\"installedAt\":" << now + << ",\"trustLevel\":" << static_cast(profile.trustLevel) + << ",\"payloadCount\":" << profile.payloads.size() << "}"; + if (!writeFile(dir + "/meta.json", meta.str())) return false; + + for (const auto& payload : profile.payloads) { + if (payload.type == "removal-password") { + auto it = payload.fields.find("password"); + if (it != payload.fields.end()) { + std::string pw = it->second; + if (!pw.empty() && pw.front() == '"') pw = pw.substr(1, pw.size()-2); + writeFile(dir + "/removal_hash.bin", hashPassword(pw)); + } + } + } + + if (std::find(mUuids.begin(), mUuids.end(), profile.uuid) == mUuids.end()) + mUuids.push_back(profile.uuid); + rebuildIndex(); + return true; +} + +bool ProfileStore::load(const std::string& uuid, ParsedProfile& out) { + std::string ymlPath = profileDir(uuid) + "/profile.yml"; + std::string ymlContent; + if (!readFile(ymlPath, ymlContent)) return false; + + ProfileParser parser; + std::vector bytes(ymlContent.begin(), ymlContent.end()); + if (!parser.parse(bytes, out)) return false; + + std::string metaJson; + if (readFile(profileDir(uuid) + "/meta.json", metaJson)) { + auto pos = metaJson.find("\"trustLevel\":"); + if (pos != std::string::npos) { + int tl = std::stoi(metaJson.substr(pos + 13, 1)); + out.trustLevel = static_cast(tl); + } + } + return true; +} + +void ProfileStore::remove(const std::string& uuid) { + std::string dir = profileDir(uuid); + for (const char* f : {"profile.yml", "meta.json", "removal_hash.bin"}) { + std::string p = dir + "/" + f; + if (fileExists(p)) ::unlink(p.c_str()); + } + ::rmdir(dir.c_str()); + mUuids.erase(std::remove(mUuids.begin(), mUuids.end(), uuid), mUuids.end()); + rebuildIndex(); +} + +std::vector ProfileStore::listUuids() { + return mUuids; +} + +bool ProfileStore::checkRemovalPassword(const std::string& uuid, + const std::string& password) { + std::string stored; + if (!readFile(profileDir(uuid) + "/removal_hash.bin", stored)) return false; + return verifyPassword(password, stored); +} + +void ProfileStore::rebuildIndex() { + std::ostringstream j; + j << "["; + for (size_t i = 0; i < mUuids.size(); ++i) { + if (i) j << ","; + j << "\"" << mUuids[i] << "\""; + } + j << "]"; + writeFile(kIndexFile, j.str()); +} + +} // namespace vesperos::profile diff --git a/src/ProfileStore.h b/src/ProfileStore.h new file mode 100644 index 0000000..08f7c8c --- /dev/null +++ b/src/ProfileStore.h @@ -0,0 +1,42 @@ +#pragma once + +#include "ProfileParser.h" +#include "SignatureVerifier.h" + +#include +#include + +namespace vesperos::profile { + +// Persists installed profiles to /var/lib/vesperprofiled/profiles/ +// +// Layout: +// /var/lib/vesperprofiled/profiles/ +// index.json +// / +// profile.yml raw (unwrapped) YAML +// meta.json install time, trust level, payload count +// removal_hash.bin PBKDF2-SHA256 hash of removal password (if set) + +static constexpr const char* kProfilesDir = + "/var/lib/vesperprofiled/profiles"; +static constexpr const char* kIndexFile = + "/var/lib/vesperprofiled/profiles/index.json"; + +class ProfileStore { +public: + void load(); + bool save(const ParsedProfile& profile); + bool load(const std::string& uuid, ParsedProfile& out); + void remove(const std::string& uuid); + std::vector listUuids(); + bool checkRemovalPassword(const std::string& uuid, const std::string& password); + +private: + std::vector mUuids; + void ensureDir(const std::string& path); + void rebuildIndex(); + std::string profileDir(const std::string& uuid); +}; + +} // namespace vesperos::profile diff --git a/src/SignatureVerifier.cpp b/src/SignatureVerifier.cpp new file mode 100644 index 0000000..9da5359 --- /dev/null +++ b/src/SignatureVerifier.cpp @@ -0,0 +1,100 @@ +#include "SignatureVerifier.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace vesperos::profile { + +struct BioDeleter { void operator()(BIO* p) { BIO_free(p); } }; +struct CmsDeleter { void operator()(CMS_ContentInfo* p) { CMS_ContentInfo_free(p); } }; +struct StoreDeleter { void operator()(X509_STORE* p) { X509_STORE_free(p); } }; + +using BioPtr = std::unique_ptr; +using CmsPtr = std::unique_ptr; +using StorePtr = std::unique_ptr; + +bool SignatureVerifier::isCmsWrapped(const std::vector& data) { + if (data.size() < 12) return false; + if (data[0] != 0x30) return false; + const uint8_t signedDataOid[] = { + 0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x07,0x02 + }; + for (size_t i = 2; i + sizeof(signedDataOid) <= std::min(data.size(), (size_t)32); ++i) + if (memcmp(&data[i], signedDataOid, sizeof(signedDataOid)) == 0) return true; + return false; +} + +static StorePtr buildTrustStore() { + X509_STORE* store = X509_STORE_new(); + if (!store) return nullptr; + + // Load Debian system CA bundle (ca-certificates package) + X509_STORE_load_locations(store, + SignatureVerifier::kTrustStorePath, nullptr); + + // Load VesperOS profile signing CA if installed + struct stat st{}; + if (::stat(SignatureVerifier::kVesperCaPath, &st) == 0) + X509_STORE_load_locations(store, SignatureVerifier::kVesperCaPath, nullptr); + + return StorePtr(store); +} + +SignatureVerifier::VerifyResult SignatureVerifier::verify( + const std::vector& cmsData, + std::vector& outPayload) { + + BioPtr in(BIO_new_mem_buf(cmsData.data(), (int)cmsData.size())); + CmsPtr cms(d2i_CMS_bio(in.get(), nullptr)); + if (!cms) { + syslog(LOG_ERR, "vesperprofiled: failed to parse CMS envelope"); + return VerifyResult::INVALID; + } + + StorePtr store = buildTrustStore(); + if (!store) { + syslog(LOG_ERR, "vesperprofiled: failed to build trust store"); + return VerifyResult::INVALID; + } + + BioPtr out(BIO_new(BIO_s_mem())); + int rc = CMS_verify(cms.get(), nullptr, store.get(), nullptr, out.get(), 0); + + if (rc == 1) { + // Full chain trusted + const uint8_t* p; + long len = BIO_get_mem_data(out.get(), &p); + outPayload.assign(p, p + len); + return VerifyResult::TRUSTED; + } + + // Retry with no chain check — distinguishes bad signature from untrusted cert + ERR_clear_error(); + BioPtr out2(BIO_new(BIO_s_mem())); + rc = CMS_verify(cms.get(), nullptr, nullptr, nullptr, out2.get(), + CMS_NO_SIGNER_CERT_VERIFY | CMS_NO_ATTR_VERIFY); + if (rc != 1) { + unsigned long e; + char buf[256]; + while ((e = ERR_get_error()) != 0) { + ERR_error_string_n(e, buf, sizeof(buf)); + syslog(LOG_ERR, "vesperprofiled: CMS verify: %s", buf); + } + return VerifyResult::INVALID; + } + + const uint8_t* p; + long len = BIO_get_mem_data(out2.get(), &p); + outPayload.assign(p, p + len); + return VerifyResult::UNVERIFIED; +} + +} // namespace vesperos::profile diff --git a/src/SignatureVerifier.h b/src/SignatureVerifier.h new file mode 100644 index 0000000..7a18f7f --- /dev/null +++ b/src/SignatureVerifier.h @@ -0,0 +1,37 @@ +#pragma once + +#include +#include +#include + +namespace vesperos::profile { + +class SignatureVerifier { +public: + enum class TrustLevel { + UNSIGNED = 0, + UNVERIFIED = 1, + TRUSTED = 2, + }; + + enum class VerifyResult { + TRUSTED, + UNVERIFIED, + INVALID, + }; + + bool isCmsWrapped(const std::vector& data); + + VerifyResult verify(const std::vector& cmsData, + std::vector& outPayload); + + // System CA trust bundle + static constexpr const char* kTrustStorePath = + "/etc/ssl/certs/ca-certificates.crt"; + + // VesperOS profile signing CA (optional; installed by the vesperos-ca package) + static constexpr const char* kVesperCaPath = + "/etc/vesperprofiled/profile_ca.pem"; +}; + +} // namespace vesperos::profile diff --git a/src/VesperProfileService.cpp b/src/VesperProfileService.cpp new file mode 100644 index 0000000..770e63d --- /dev/null +++ b/src/VesperProfileService.cpp @@ -0,0 +1,493 @@ +#include "VesperProfileService.h" +#include "payloads/PayloadHandler.h" + +#include +#include + +#include +#include + +namespace vesperos::profile { + +// ── Constructor / Destructor ─────────────────────────────────────────────── + +VesperProfileService::VesperProfileService() { + syslog(LOG_INFO, "vesperprofiled: starting"); + mStore.load(); +} + +VesperProfileService::~VesperProfileService() { + if (mConn) { + dbus_connection_unref(mConn); + mConn = nullptr; + } +} + +// ── run ─────────────────────────────────────────────────────────────────── + +void VesperProfileService::run() { + DBusError err; + dbus_error_init(&err); + + // Connect to the system bus + mConn = dbus_bus_get(DBUS_BUS_SYSTEM, &err); + if (dbus_error_is_set(&err)) { + syslog(LOG_ERR, "vesperprofiled: D-Bus connection error: %s", err.message); + dbus_error_free(&err); + return; + } + + // Request our well-known service name + int ret = dbus_bus_request_name(mConn, kServiceName, + DBUS_NAME_FLAG_REPLACE_EXISTING, &err); + if (dbus_error_is_set(&err)) { + syslog(LOG_ERR, "vesperprofiled: request name error: %s", err.message); + dbus_error_free(&err); + return; + } + if (ret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) { + syslog(LOG_ERR, "vesperprofiled: not primary owner of %s", kServiceName); + return; + } + + // Register our object path handler + static const DBusObjectPathVTable vtable = { + nullptr, + &VesperProfileService::messageHandler, + nullptr, nullptr, nullptr, nullptr + }; + dbus_connection_register_object_path(mConn, kObjectPath, &vtable, this); + + // Notify systemd we're ready + sd_notify(0, "READY=1\nSTATUS=Serving profiles"); + syslog(LOG_INFO, "vesperprofiled: registered as %s", kServiceName); + + mRunning = true; + while (mRunning) { + dbus_connection_read_write_dispatch(mConn, 100 /*ms timeout*/); + } +} + +void VesperProfileService::stop() { + mRunning = false; + sd_notify(0, "STOPPING=1"); +} + +// ── D-Bus message dispatcher ────────────────────────────────────────────── + +DBusHandlerResult VesperProfileService::messageHandler( + DBusConnection* conn, DBusMessage* msg, void* userData) { + return static_cast(userData)->dispatch(conn, msg); +} + +DBusHandlerResult VesperProfileService::dispatch( + DBusConnection* conn, DBusMessage* msg) { + + if (dbus_message_get_type(msg) != DBUS_MESSAGE_TYPE_METHOD_CALL) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (!dbus_message_has_interface(msg, kInterface)) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + const char* method = dbus_message_get_member(msg); + if (!method) return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + // Route to method handler + if (strcmp(method, "InstallProfile") == 0) installProfile(conn, msg); + else if (strcmp(method, "RemoveProfile") == 0) removeProfile(conn, msg); + else if (strcmp(method, "ListProfiles") == 0) listProfiles(conn, msg); + else if (strcmp(method, "GetProfileInfo") == 0) getProfileInfo(conn, msg); + else if (strcmp(method, "IsDeviceManaged") == 0) isDeviceManaged(conn, msg); + else if (strcmp(method, "GetMdmServerUrl") == 0) getMdmServerUrl(conn, msg); + else if (strcmp(method, "IsSupervised") == 0) isSupervised(conn, msg); + else if (strcmp(method, "GetPayloadsOfType") == 0) getPayloadsOfType(conn, msg); + else return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + return DBUS_HANDLER_RESULT_HANDLED; +} + +// ── Error helper ────────────────────────────────────────────────────────── + +void VesperProfileService::sendError(DBusConnection* conn, DBusMessage* msg, + const char* name, const char* message) { + syslog(LOG_WARNING, "vesperprofiled: error %s: %s", name, message); + DBusMessage* reply = dbus_message_new_error(msg, name, message); + if (reply) { + dbus_connection_send(conn, reply, nullptr); + dbus_message_unref(reply); + } +} + +// ── installProfileDirect ────────────────────────────────────────────────── +// Called from main() for preinstalled profiles before D-Bus is open. +// Idempotent: if the profile UUID is already in the store, it skips silently. + +bool VesperProfileService::installProfileDirect( + const std::vector& profileData, + std::string& outUuid) { + + std::lock_guard lock(mLock); + + // Unwrap CMS if signed + std::vector yamlBytes; + bool isSigned = false; + SignatureVerifier::TrustLevel trust = SignatureVerifier::TrustLevel::UNSIGNED; + + if (mVerifier.isCmsWrapped(profileData)) { + auto result = mVerifier.verify(profileData, yamlBytes); + if (result == SignatureVerifier::VerifyResult::INVALID) { + syslog(LOG_ERR, "[installProfileDirect] signature invalid"); + return false; + } + isSigned = true; + trust = (result == SignatureVerifier::VerifyResult::TRUSTED) + ? SignatureVerifier::TrustLevel::TRUSTED + : SignatureVerifier::TrustLevel::UNVERIFIED; + } else { + yamlBytes = profileData; + } + + ParsedProfile profile; + if (!mParser.parse(yamlBytes, profile)) { + syslog(LOG_ERR, "[installProfileDirect] parse failed"); + return false; + } + + // Idempotency: skip if already installed + ParsedProfile existing; + if (mStore.load(profile.uuid, existing)) { + syslog(LOG_INFO, "[installProfileDirect] already installed uuid=%s, skipping", + profile.uuid.c_str()); + outUuid = profile.uuid; + return true; + } + + // Enforce signing requirements + for (const auto& payload : profile.payloads) { + bool sigRequired = + payload.type == "mdm" || + payload.type == "removal-password" || + payload.type == "kiosk" || + payload.type == "asam"; + if (sigRequired && !isSigned) { + syslog(LOG_ERR, "[installProfileDirect] type=%s requires signed profile", + payload.type.c_str()); + return false; + } + } + + profile.trustLevel = trust; + if (!mStore.save(profile)) { + syslog(LOG_ERR, "[installProfileDirect] save failed uuid=%s", + profile.uuid.c_str()); + return false; + } + + applyProfile(profile); + outUuid = profile.uuid; + syslog(LOG_INFO, "[installProfileDirect] installed uuid=%s", profile.uuid.c_str()); + return true; +} + +// ── InstallProfile (D-Bus) ──────────────────────────────────────────────── + +bool VesperProfileService::installProfile(DBusConnection* conn, DBusMessage* msg) { + std::lock_guard lock(mLock); + + // Read the byte array argument (profile data) + DBusMessageIter args; + if (!dbus_message_iter_init(msg, &args)) { + sendError(conn, msg, kErrParse, "Expected profile data argument."); + return false; + } + + const uint8_t* rawData = nullptr; + int rawLen = 0; + dbus_message_iter_get_fixed_array(&args, &rawData, &rawLen); + std::vector profileData(rawData, rawData + rawLen); + + // Detect and unwrap CMS signature + std::vector yamlBytes; + bool isSigned = false; + SignatureVerifier::TrustLevel trust = SignatureVerifier::TrustLevel::UNSIGNED; + + if (mVerifier.isCmsWrapped(profileData)) { + auto result = mVerifier.verify(profileData, yamlBytes); + if (result == SignatureVerifier::VerifyResult::INVALID) { + sendError(conn, msg, kErrSignature, "Profile signature is invalid or tampered."); + return false; + } + isSigned = true; + trust = (result == SignatureVerifier::VerifyResult::TRUSTED) + ? SignatureVerifier::TrustLevel::TRUSTED + : SignatureVerifier::TrustLevel::UNVERIFIED; + } else { + yamlBytes = profileData; + } + + // Parse + ParsedProfile profile; + if (!mParser.parse(yamlBytes, profile)) { + sendError(conn, msg, kErrParse, "Profile YAML is malformed or schema-invalid."); + return false; + } + + // Enforce signing requirements + for (const auto& payload : profile.payloads) { + bool sigRequired = + payload.type == "mdm" || + payload.type == "removal-password" || + payload.type == "kiosk" || + payload.type == "asam"; + if (sigRequired && !isSigned) { + sendError(conn, msg, kErrSigningRequired, + ("Payload type '" + payload.type + "' requires a signed profile.").c_str()); + return false; + } + } + + profile.trustLevel = trust; + if (!mStore.save(profile)) { + sendError(conn, msg, kErrParse, "Failed to persist profile."); + return false; + } + + applyProfile(profile); + + syslog(LOG_INFO, "vesperprofiled: installed profile uuid=%s", profile.uuid.c_str()); + + DBusMessage* reply = dbus_message_new_method_return(msg); + dbus_message_append_args(reply, + DBUS_TYPE_STRING, &profile.uuid, + DBUS_TYPE_INVALID); + dbus_connection_send(conn, reply, nullptr); + dbus_message_unref(reply); + return true; +} + +// ── RemoveProfile ───────────────────────────────────────────────────────── + +bool VesperProfileService::removeProfile(DBusConnection* conn, DBusMessage* msg) { + std::lock_guard lock(mLock); + + const char* uuid = nullptr; + const char* password = nullptr; + dbus_message_get_args(msg, nullptr, + DBUS_TYPE_STRING, &uuid, + DBUS_TYPE_STRING, &password, + DBUS_TYPE_INVALID); + if (!uuid) { + sendError(conn, msg, kErrParse, "Missing uuid argument."); + return false; + } + + ParsedProfile profile; + if (!mStore.load(uuid, profile)) { + sendError(conn, msg, kErrNotFound, ("Profile not found: " + std::string(uuid)).c_str()); + return false; + } + + if (profile.lifecycle.removal == "locked") { + sendError(conn, msg, kErrLocked, "This profile can only be removed by the MDM server."); + return false; + } + if (profile.lifecycle.removal == "password") { + if (!password || !mStore.checkRemovalPassword(uuid, password)) { + sendError(conn, msg, kErrWrongPassword, "Incorrect removal password."); + return false; + } + } + + revertProfile(profile); + mStore.remove(uuid); + + syslog(LOG_INFO, "vesperprofiled: removed profile uuid=%s", uuid); + + DBusMessage* reply = dbus_message_new_method_return(msg); + dbus_connection_send(conn, reply, nullptr); + dbus_message_unref(reply); + return true; +} + +// ── ListProfiles ────────────────────────────────────────────────────────── + +bool VesperProfileService::listProfiles(DBusConnection* conn, DBusMessage* msg) { + std::lock_guard lock(mLock); + auto uuids = mStore.listUuids(); + + // Build a D-Bus array of strings + std::vector ptrs; + for (auto& u : uuids) ptrs.push_back(u.c_str()); + + DBusMessage* reply = dbus_message_new_method_return(msg); + DBusMessageIter iter, arr; + dbus_message_iter_init_append(reply, &iter); + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "s", &arr); + for (auto* p : ptrs) + dbus_message_iter_append_basic(&arr, DBUS_TYPE_STRING, &p); + dbus_message_iter_close_container(&iter, &arr); + + dbus_connection_send(conn, reply, nullptr); + dbus_message_unref(reply); + return true; +} + +// ── GetProfileInfo ──────────────────────────────────────────────────────── + +bool VesperProfileService::getProfileInfo(DBusConnection* conn, DBusMessage* msg) { + std::lock_guard lock(mLock); + const char* uuid = nullptr; + dbus_message_get_args(msg, nullptr, DBUS_TYPE_STRING, &uuid, DBUS_TYPE_INVALID); + if (!uuid) { sendError(conn, msg, kErrParse, "Missing uuid."); return false; } + + ParsedProfile profile; + if (!mStore.load(uuid, profile)) { + sendError(conn, msg, kErrNotFound, ("Not found: " + std::string(uuid)).c_str()); + return false; + } + + std::ostringstream j; + j << "{" + << "\"uuid\":\"" << profile.uuid << "\"," + << "\"id\":\"" << profile.id << "\"," + << "\"name\":\"" << profile.meta.name << "\"," + << "\"organization\":\"" << profile.meta.organization << "\"," + << "\"scope\":\"" << profile.scope << "\"," + << "\"removal\":\"" << profile.lifecycle.removal << "\"," + << "\"trusted\":" << (profile.trustLevel != SignatureVerifier::TrustLevel::UNSIGNED ? "true" : "false") << "," + << "\"payloadCount\":" << profile.payloads.size() + << "}"; + + std::string json = j.str(); + const char* jsonPtr = json.c_str(); + DBusMessage* reply = dbus_message_new_method_return(msg); + dbus_message_append_args(reply, DBUS_TYPE_STRING, &jsonPtr, DBUS_TYPE_INVALID); + dbus_connection_send(conn, reply, nullptr); + dbus_message_unref(reply); + return true; +} + +// ── IsDeviceManaged ─────────────────────────────────────────────────────── + +bool VesperProfileService::isDeviceManaged(DBusConnection* conn, DBusMessage* msg) { + std::lock_guard lock(mLock); + dbus_bool_t managed = FALSE; + for (const auto& uuid : mStore.listUuids()) { + ParsedProfile p; + if (mStore.load(uuid, p)) + for (const auto& pl : p.payloads) + if (pl.type == "mdm") { managed = TRUE; break; } + if (managed) break; + } + DBusMessage* reply = dbus_message_new_method_return(msg); + dbus_message_append_args(reply, DBUS_TYPE_BOOLEAN, &managed, DBUS_TYPE_INVALID); + dbus_connection_send(conn, reply, nullptr); + dbus_message_unref(reply); + return true; +} + +// ── GetMdmServerUrl ─────────────────────────────────────────────────────── + +bool VesperProfileService::getMdmServerUrl(DBusConnection* conn, DBusMessage* msg) { + std::lock_guard lock(mLock); + std::string url; + for (const auto& uuid : mStore.listUuids()) { + ParsedProfile p; + if (!mStore.load(uuid, p)) continue; + for (const auto& pl : p.payloads) { + if (pl.type == "mdm") { + auto it = pl.fields.find("server-url"); + if (it != pl.fields.end()) url = it->second; + // Strip JSON quotes + if (url.size() >= 2 && url.front() == '"') url = url.substr(1, url.size()-2); + break; + } + } + if (!url.empty()) break; + } + const char* urlPtr = url.c_str(); + DBusMessage* reply = dbus_message_new_method_return(msg); + dbus_message_append_args(reply, DBUS_TYPE_STRING, &urlPtr, DBUS_TYPE_INVALID); + dbus_connection_send(conn, reply, nullptr); + dbus_message_unref(reply); + return true; +} + +// ── IsSupervised ────────────────────────────────────────────────────────── + +bool VesperProfileService::isSupervised(DBusConnection* conn, DBusMessage* msg) { + std::lock_guard lock(mLock); + dbus_bool_t supervised = FALSE; + for (const auto& uuid : mStore.listUuids()) { + ParsedProfile p; + if (!mStore.load(uuid, p)) continue; + for (const auto& pl : p.payloads) + if (pl.type == "kiosk" || pl.type == "asam") { supervised = TRUE; break; } + if (supervised) break; + } + DBusMessage* reply = dbus_message_new_method_return(msg); + dbus_message_append_args(reply, DBUS_TYPE_BOOLEAN, &supervised, DBUS_TYPE_INVALID); + dbus_connection_send(conn, reply, nullptr); + dbus_message_unref(reply); + return true; +} + +// ── GetPayloadsOfType ───────────────────────────────────────────────────── + +bool VesperProfileService::getPayloadsOfType(DBusConnection* conn, DBusMessage* msg) { + std::lock_guard lock(mLock); + const char* payloadType = nullptr; + dbus_message_get_args(msg, nullptr, DBUS_TYPE_STRING, &payloadType, DBUS_TYPE_INVALID); + if (!payloadType) { sendError(conn, msg, kErrParse, "Missing payloadType."); return false; } + + std::ostringstream j; + j << "["; + bool first = true; + for (const auto& uuid : mStore.listUuids()) { + ParsedProfile p; + if (!mStore.load(uuid, p)) continue; + for (const auto& pl : p.payloads) { + if (pl.type != payloadType) continue; + if (!first) j << ","; + first = false; + j << "{\"profileUuid\":\"" << p.uuid << "\"," + << "\"payloadUuid\":\"" << pl.uuid << "\""; + for (const auto& [k, v] : pl.fields) + j << ",\"" << k << "\":" << v; + j << "}"; + } + } + j << "]"; + + std::string json = j.str(); + const char* jsonPtr = json.c_str(); + DBusMessage* reply = dbus_message_new_method_return(msg); + dbus_message_append_args(reply, DBUS_TYPE_STRING, &jsonPtr, DBUS_TYPE_INVALID); + dbus_connection_send(conn, reply, nullptr); + dbus_message_unref(reply); + return true; +} + +// ── applyProfile / revertProfile ────────────────────────────────────────── + +void VesperProfileService::applyProfile(const ParsedProfile& profile) { + for (const auto& payload : profile.payloads) { + auto* handler = PayloadHandlerRegistry::get(payload.type); + if (handler) { + if (!handler->apply(payload)) + syslog(LOG_WARNING, "vesperprofiled: handler failed type=%s uuid=%s", + payload.type.c_str(), payload.uuid.c_str()); + } else { + syslog(LOG_WARNING, "vesperprofiled: no handler for type=%s", payload.type.c_str()); + } + } +} + +void VesperProfileService::revertProfile(const ParsedProfile& profile) { + for (auto it = profile.payloads.rbegin(); it != profile.payloads.rend(); ++it) { + auto* handler = PayloadHandlerRegistry::get(it->type); + if (handler) handler->revert(*it); + } +} + +} // namespace vesperos::profile diff --git a/src/VesperProfileService.h b/src/VesperProfileService.h new file mode 100644 index 0000000..e9594aa --- /dev/null +++ b/src/VesperProfileService.h @@ -0,0 +1,82 @@ +#pragma once + +#include "ProfileParser.h" +#include "ProfileStore.h" +#include "SignatureVerifier.h" + +#include +#include +#include +#include +#include + +namespace vesperos::profile { + +// ── D-Bus service constants ─────────────────────────────────────────────── +// Clients connect to this well-known name on the system bus. + +static constexpr const char* kServiceName = "me.oxmc.vesperos.ProfileService"; +static constexpr const char* kObjectPath = "/me/oxmc/vesperos/ProfileService"; +static constexpr const char* kInterface = "me.oxmc.vesperos.IProfileService"; + +// ── Error domain ────────────────────────────────────────────────────────── + +static constexpr const char* kErrNotFound = "me.oxmc.vesperos.Error.NotFound"; +static constexpr const char* kErrSignature = "me.oxmc.vesperos.Error.Signature"; +static constexpr const char* kErrParse = "me.oxmc.vesperos.Error.Parse"; +static constexpr const char* kErrLocked = "me.oxmc.vesperos.Error.Locked"; +static constexpr const char* kErrWrongPassword = "me.oxmc.vesperos.Error.WrongPassword"; +static constexpr const char* kErrSigningRequired = "me.oxmc.vesperos.Error.SigningRequired"; + +// ── Service class ───────────────────────────────────────────────────────── + +class VesperProfileService { +public: + VesperProfileService(); + ~VesperProfileService(); + + // Run the D-Bus main loop. Blocks until Stop() is called. + void run(); + void stop(); + + // Direct install path used by main.cpp for preinstalled profiles. + // Same logic as the D-Bus InstallProfile handler but callable before + // the D-Bus connection is open. Returns true and sets outUuid on success. + bool installProfileDirect(const std::vector& data, std::string& outUuid); + +private: + // D-Bus method implementations + // Each returns true and sets reply on success, + // or sends an error reply and returns false on failure. + + bool installProfile(DBusConnection* conn, DBusMessage* msg); + bool removeProfile(DBusConnection* conn, DBusMessage* msg); + bool listProfiles(DBusConnection* conn, DBusMessage* msg); + bool getProfileInfo(DBusConnection* conn, DBusMessage* msg); + bool isDeviceManaged(DBusConnection* conn, DBusMessage* msg); + bool getMdmServerUrl(DBusConnection* conn, DBusMessage* msg); + bool isSupervised(DBusConnection* conn, DBusMessage* msg); + bool getPayloadsOfType(DBusConnection* conn, DBusMessage* msg); + + // D-Bus dispatch + static DBusHandlerResult messageHandler( + DBusConnection* conn, DBusMessage* msg, void* userData); + DBusHandlerResult dispatch(DBusConnection* conn, DBusMessage* msg); + + // Payload lifecycle + void applyProfile(const ParsedProfile& profile); + void revertProfile(const ParsedProfile& profile); + + // Helpers + void sendError(DBusConnection* conn, DBusMessage* msg, + const char* name, const char* message); + + std::mutex mLock; + ProfileStore mStore; + ProfileParser mParser; + SignatureVerifier mVerifier; + DBusConnection* mConn = nullptr; + bool mRunning = false; +}; + +} // namespace vesperos::profile diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..5ef0c71 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,148 @@ +#include "VesperProfileService.h" +#include "payloads/PayloadHandler.h" +#include "zte/ConnectivityWatcher.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +// ───────────────────────────────────────────────────────────────────────── +// vesperprofiled — unified daemon +// +// Runs two subsystems in one process: +// +// 1. VesperProfileService (main thread) +// D-Bus system service at me.oxmc.vesperos.ProfileService. +// Handles InstallProfile, RemoveProfile, ListProfiles, etc. +// Applies all payload handlers (WiFi, VPN, certs, MDM, …). +// +// 2. ZTE ConnectivityWatcher (background thread) +// Watches NetworkManager D-Bus for internet connectivity. +// On first connect, queries the ZTE lookup server with the device's +// hardware identity. If managed, downloads and installs the MDM +// enrollment profile via the profile service. +// +// Preinstalled profiles in /etc/vesperprofiled/preinstalled/ are applied +// at startup, before cloud-init runs (enforced by systemd ordering). +// ───────────────────────────────────────────────────────────────────────── + +static constexpr const char* kPreinstalledDir = + "/etc/vesperprofiled/preinstalled"; + +static std::atomic gRunning{true}; + +static bool fileExists(const std::string& path) { + struct stat st{}; + return ::stat(path.c_str(), &st) == 0; +} + +// ── Preinstalled profile loader ─────────────────────────────────────────── + +static void applyPreinstalledProfiles(vesperos::profile::VesperProfileService& svc) { + DIR* d = opendir(kPreinstalledDir); + if (!d) return; + + syslog(LOG_INFO, "vesperprofiled: scanning %s for preinstalled profiles", + kPreinstalledDir); + + struct dirent* ent; + while ((ent = readdir(d)) != nullptr) { + std::string name = ent->d_name; + if (name == "." || name == "..") continue; + if (name.find(".vconfig") == std::string::npos) continue; + + std::string path = std::string(kPreinstalledDir) + "/" + name; + std::ifstream f(path, std::ios::binary); + if (!f) { + syslog(LOG_WARNING, "vesperprofiled: cannot read %s", path.c_str()); + continue; + } + std::ostringstream buf; + buf << f.rdbuf(); + std::string content = buf.str(); + std::vector data(content.begin(), content.end()); + + std::string uuid; + bool ok = svc.installProfileDirect(data, uuid); + if (ok) + syslog(LOG_INFO, "vesperprofiled: preinstalled %s → uuid=%s", + name.c_str(), uuid.c_str()); + else + syslog(LOG_WARNING, "vesperprofiled: failed to apply %s", name.c_str()); + } + closedir(d); +} + +// ── Signal handler ──────────────────────────────────────────────────────── + +static vesperos::profile::VesperProfileService* gProfileSvc = nullptr; +static vesperos::zte::ConnectivityWatcher* gZteWatcher = nullptr; + +static void onSignal(int sig) { + syslog(LOG_INFO, "vesperprofiled: signal %d — stopping", sig); + gRunning = false; + if (gProfileSvc) gProfileSvc->stop(); + if (gZteWatcher) gZteWatcher->stop(); +} + +// ── main ────────────────────────────────────────────────────────────────── + +int main() { + openlog("vesperprofiled", LOG_PID | LOG_CONS, LOG_DAEMON); + syslog(LOG_INFO, "vesperprofiled starting"); + + // Register payload handlers first + vesperos::profile::PayloadHandlerRegistry::registerAll(); + + // Signal handling + struct sigaction sa{}; + sa.sa_handler = onSignal; + sigemptyset(&sa.sa_mask); + sigaction(SIGTERM, &sa, nullptr); + sigaction(SIGINT, &sa, nullptr); + + // ── Profile service ──────────────────────────────────────────────────── + vesperos::profile::VesperProfileService profileSvc; + gProfileSvc = &profileSvc; + + // Apply any profiles baked into the image before opening D-Bus. + // This runs before cloud-init (enforced by systemd Before= ordering). + if (fileExists(kPreinstalledDir)) + applyPreinstalledProfiles(profileSvc); + + // ── ZTE watcher (background thread) ─────────────────────────────────── + // Starts watching for NM connectivity after the profile service is up, + // so that if ZTE triggers an enrollment, InstallProfile is available. + vesperos::zte::ConnectivityWatcher zteWatcher; + gZteWatcher = &zteWatcher; + + std::thread zteThread([&]() { + syslog(LOG_INFO, "vesperprofiled: ZTE watcher thread starting"); + zteWatcher.run(); // blocks until stop() + syslog(LOG_INFO, "vesperprofiled: ZTE watcher thread stopped"); + }); + + // ── Open D-Bus service and notify systemd ────────────────────────────── + // run() opens the D-Bus connection, claims the service name, sends + // READY=1, then blocks on the event loop. + profileSvc.run(); + + // Profile service stopped (signal received) — clean up ZTE thread + gRunning = false; + zteWatcher.stop(); + if (zteThread.joinable()) zteThread.join(); + + gProfileSvc = nullptr; + gZteWatcher = nullptr; + + syslog(LOG_INFO, "vesperprofiled stopped"); + closelog(); + return 0; +} diff --git a/src/payloads/PayloadHandler.h b/src/payloads/PayloadHandler.h new file mode 100644 index 0000000..89155de --- /dev/null +++ b/src/payloads/PayloadHandler.h @@ -0,0 +1,62 @@ +#pragma once + +#include "../ProfileParser.h" + +#include +#include +#include +#include + +namespace vesperos::profile { + +// ── PayloadHandler ──────────────────────────────────────────────────────── +// Each payload type has one handler that knows how to apply/revert it +// against the live Android system (via privileged system APIs or /proc /sys). + +class PayloadHandler { +public: + virtual ~PayloadHandler() = default; + + // Apply the payload's settings to the running system. + // Returns true on success; false logs a warning but does not abort install. + virtual bool apply(const ParsedPayload& payload) = 0; + + // Undo the effects of a previously-applied payload. + // Called before profile removal. + virtual void revert(const ParsedPayload& payload) = 0; + +protected: + // Helper: get a string field, stripping JSON quotes if present. + static std::string field(const ParsedPayload& p, const std::string& key, + const std::string& def = "") { + auto it = p.fields.find(key); + if (it == p.fields.end()) return def; + std::string v = it->second; + if (v.size() >= 2 && v.front() == '"' && v.back() == '"') + v = v.substr(1, v.size() - 2); + return v; + } + + static bool fieldBool(const ParsedPayload& p, const std::string& key, + bool def = false) { + std::string v = field(p, key); + if (v.empty()) return def; + return (v == "true" || v == "1"); + } +}; + +// ── PayloadHandlerRegistry ──────────────────────────────────────────────── + +class PayloadHandlerRegistry { +public: + // Look up the handler for a payload type. Returns nullptr if none registered. + static PayloadHandler* get(const std::string& type); + + // Called once at startup to register all built-in handlers. + static void registerAll(); + +private: + static std::map>& handlers(); +}; + +} // namespace vesperos::profile diff --git a/src/payloads/PayloadHandlers.cpp b/src/payloads/PayloadHandlers.cpp new file mode 100644 index 0000000..1d79255 --- /dev/null +++ b/src/payloads/PayloadHandlers.cpp @@ -0,0 +1,1437 @@ +#include "PayloadHandler.h" + +// ───────────────────────────────────────────────────────────────────────── +// Linux payload handler implementations +// +// System integration points: +// WiFi / Ethernet / VPN → NetworkManager via D-Bus +// (org.freedesktop.NetworkManager) +// Certificates → /etc/ssl/certs/ + update-ca-certificates +// user certs → NSSDB via certutil +// Passcode policy → PAM (pam_pwquality / pam_unix) +// /etc/security/pwquality.conf +// MDM / cloud config → cloud-init user-data drop-in +// /etc/cloud/cloud.cfg.d/ +// Software update → /etc/apt/apt.conf.d/ +// Time server → /etc/systemd/timesyncd.conf.d/ +// Firewall → nftables via nft CLI +// Screensaver → /etc/X11/xorg.conf.d/ or gsettings (GNOME) +// Wallpaper → gsettings (GNOME) / gconf +// Hostname / domain → /etc/hostname, /etc/hosts, systemd-hostnamed +// DNS proxy → /etc/systemd/resolved.conf.d/ +// LDAP → /etc/ldap/ldap.conf + libpam-ldap +// Kiosk (restricted UI) → write .desktop autostart + restrict shell +// ───────────────────────────────────────────────────────────────────────── + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace vesperos::profile { + +// ── Utility: run a shell command ────────────────────────────────────────── + +static bool runCmd(const std::string& cmd) { + syslog(LOG_DEBUG, "vesperprofiled: exec: %s", cmd.c_str()); + int ret = ::system(cmd.c_str()); + if (ret != 0) + syslog(LOG_WARNING, "vesperprofiled: command exited %d: %s", ret, cmd.c_str()); + return ret == 0; +} + +// ── Utility: write a file atomically ───────────────────────────────────── + +static bool writeFile(const std::string& path, const std::string& content, + mode_t mode = 0644) { + std::string tmp = path + ".tmp"; + { + std::ofstream f(tmp, std::ios::binary | std::ios::trunc); + if (!f) { syslog(LOG_ERR, "vesperprofiled: cannot write %s", tmp.c_str()); return false; } + f << content; + } + chmod(tmp.c_str(), mode); + if (::rename(tmp.c_str(), path.c_str()) != 0) { + syslog(LOG_ERR, "vesperprofiled: rename failed: %s -> %s", tmp.c_str(), path.c_str()); + ::unlink(tmp.c_str()); + return false; + } + return true; +} + +static void removeFile(const std::string& path) { + ::unlink(path.c_str()); +} + +static void ensureDir(const std::string& path, mode_t mode = 0755) { + ::mkdir(path.c_str(), mode); +} + +// ── Utility: base64 decode (OpenSSL EVP) ───────────────────────────────── + +static std::vector b64decode(const std::string& in) { + std::string s = in; + if (s.size() >= 2 && s.front() == '"') s = s.substr(1, s.size()-2); + std::vector out(s.size()); + int len = EVP_DecodeBlock(out.data(), + reinterpret_cast(s.data()), (int)s.size()); + if (len < 0) return {}; + out.resize(len); + return out; +} + +// ═══════════════════════════════════════════════════════════════════════════ +// WIFI HANDLER +// Uses nmcli to add/modify/delete NetworkManager WiFi connections. +// ═══════════════════════════════════════════════════════════════════════════ + +// ── NM keyfile helpers (shared by WifiHandler and EthernetHandler) ──────── + +// Extract a string value from a flat JSON object stored in fields. +// e.g. extractJson(raw, "password") on {"type":"wpa2","password":"foo"} +// returns "foo". Only handles string values; returns "" on miss. +static std::string extractJson(const std::string& json, const std::string& key) { + auto pos = json.find("\"" + key + "\":"); + if (pos == std::string::npos) return ""; + pos += key.size() + 3; // skip "key": + // skip optional whitespace + while (pos < json.size() && json[pos] == ' ') ++pos; + if (pos >= json.size()) return ""; + if (json[pos] == '"') { + // quoted string value + auto q2 = json.find('"', pos + 1); + if (q2 == std::string::npos) return ""; + return json.substr(pos + 1, q2 - pos - 1); + } + // unquoted (bool / number) — read until , or } + auto end = json.find_first_of(",}", pos); + return json.substr(pos, end - pos); +} + +static const std::string kNMConnDir = "/etc/NetworkManager/system-connections"; + +// Reload NM connections without spawning nmcli — send SIGHUP to NetworkManager +// via D-Bus so NM re-reads its keyfiles without needing the daemon binary. +static void nmReload() { + // org.freedesktop.NetworkManager.ReloadConnections D-Bus call. + // If NM is not running yet (early first-boot), this is a no-op; + // NM will pick up the keyfiles on its own startup. + runCmd("dbus-send --system --print-reply " + "--dest=org.freedesktop.NetworkManager " + "/org/freedesktop/NetworkManager " + "org.freedesktop.NetworkManager.ReloadConnections " + "2>/dev/null || true"); +} + +// ═══════════════════════════════════════════════════════════════════════════ +// WIFI HANDLER +// Writes a NetworkManager keyfile to +// /etc/NetworkManager/system-connections/vesperos-wifi-.nmconnection +// +// Why keyfiles instead of nmcli exec: +// - No subprocess / shell injection risk from SSIDs or passwords that +// contain quotes, spaces, or special characters. +// - Atomic write via rename(); NM only sees the complete file. +// - The full NM keyfile schema is available: EAP-FAST, WPA3-Enterprise, +// per-BSSID settings, MAC randomisation, QoS — all expressible. +// nmcli can't set many of these flags. +// - Works during first-boot before NM is running: NM picks up the file +// on its first start after the profile is applied. +// - Consistent with EthernetHandler — one code path, one format. +// ═══════════════════════════════════════════════════════════════════════════ + +class WifiHandler : public PayloadHandler { + std::string keyfilePath(const ParsedPayload& p) { + return kNMConnDir + "/vesperos-wifi-" + p.uuid + ".nmconnection"; + } + +public: + bool apply(const ParsedPayload& p) override { + std::string ssid = field(p, "ssid"); + bool hidden = fieldBool(p, "hidden", false); + bool autoJoin = fieldBool(p, "auto-join", true); + std::string macMode = field(p, "mac-address-mode", "hardware"); + + if (ssid.empty()) { syslog(LOG_ERR, "[WifiHandler] missing ssid"); return false; } + + // Parse security block + std::string secJson = field(p, "security"); // stored as JSON object + std::string secType = extractJson(secJson, "type"); // wpa2|wpa3|wep|none|any + std::string psk = extractJson(secJson, "password"); + + // Map profile security type → NM key-mgmt value + std::string keyMgmt; + if (secType == "wpa3") keyMgmt = "sae"; + else if (secType == "wpa2" || secType == "wpa") keyMgmt = "wpa-psk"; + else if (secType == "wep") keyMgmt = "none"; // WEP uses no key-mgmt + else if (secType == "none" || secType == "any" || secType.empty()) keyMgmt = ""; + + // Parse EAP block (enterprise WiFi) + std::string eapJson = field(p, "eap"); + bool isEnterprise = !eapJson.empty() && eapJson != "\"\""; + std::string eapMethod; + std::string eapUser, eapPass, eapOuter, eapInnerAuth, ttlsInner; + std::string anchorUuid, serverName; + if (isEnterprise) { + // Determine method from the methods array + if (eapJson.find("tls") != std::string::npos) eapMethod = "tls"; + else if (eapJson.find("ttls") != std::string::npos) eapMethod = "ttls"; + else if (eapJson.find("fast") != std::string::npos) eapMethod = "fast"; + else eapMethod = "peap"; + eapUser = extractJson(eapJson, "username"); + eapPass = extractJson(eapJson, "password"); + eapOuter = extractJson(eapJson, "outer-identity"); + ttlsInner = extractJson(eapJson, "ttls-inner-auth"); + // trust block + auto trustPos = eapJson.find("\"trust\":"); + if (trustPos != std::string::npos) { + serverName = extractJson(eapJson.substr(trustPos), "server-names"); + anchorUuid = extractJson(eapJson.substr(trustPos), "anchor-cert-uuids"); + } + } + + // Parse proxy block + std::string proxyJson = field(p, "proxy"); + std::string proxyType = extractJson(proxyJson, "type"); // manual|auto|none + std::string proxyHost = extractJson(proxyJson, "host"); + std::string proxyPort = extractJson(proxyJson, "port"); + std::string proxyUser = extractJson(proxyJson, "username"); + std::string proxyPass = extractJson(proxyJson, "password"); + std::string pacUrl = extractJson(proxyJson, "pac-url"); + + // ── Build the keyfile ────────────────────────────────────────────── + std::ostringstream kf; + + // [connection] + kf << "[connection]\n" + << "id=vesperos-wifi-" << ssid << "\n" + << "uuid=" << p.uuid << "\n" + << "type=wifi\n" + << "autoconnect=" << (autoJoin ? "true" : "false") << "\n\n"; + + // [wifi] + kf << "[wifi]\n" + << "ssid=" << ssid << "\n" + << "mode=infrastructure\n" + << "hidden=" << (hidden ? "true" : "false") << "\n"; + if (macMode == "random") + kf << "cloned-mac-address=random\n" + << "mac-address-randomization=2\n"; + kf << "\n"; + + // [wifi-security] + if (!keyMgmt.empty() || secType == "wep") { + kf << "[wifi-security]\n"; + if (!keyMgmt.empty()) + kf << "key-mgmt=" << keyMgmt << "\n"; + if (!psk.empty() && secType != "wep") + kf << "psk=" << psk << "\n"; + if (secType == "wep") + kf << "auth-alg=open\n" + << "wep-key0=" << psk << "\n" + << "wep-key-type=1\n"; + kf << "\n"; + } + + // [802-1x] (enterprise) + if (isEnterprise) { + kf << "[802-1x]\n" + << "eap=" << eapMethod << "\n"; + if (!eapUser.empty()) kf << "identity=" << eapUser << "\n"; + if (!eapPass.empty()) kf << "password=" << eapPass << "\n"; + if (!eapOuter.empty()) kf << "anonymous-identity=" << eapOuter << "\n"; + if (eapMethod == "ttls" || eapMethod == "peap") { + std::string phase2 = ttlsInner.empty() ? "mschapv2" : ttlsInner; + kf << "phase2-auth=" << phase2 << "\n"; + } + if (!serverName.empty()) + kf << "altsubject-matches=" << serverName << "\n"; + if (!anchorUuid.empty()) + // NM references a cert stored in the system keyring by uuid-hash; + // for simplicity write the path if the CertHandler already wrote it. + kf << "# ca-cert=/usr/local/share/ca-certificates/vesperos/" + << anchorUuid << ".crt\n"; + kf << "\n"; + } + + // [proxy] + if (proxyType == "manual" && !proxyHost.empty()) { + kf << "[proxy]\n" + << "method=manual\n" + << "http-proxy=" << proxyHost << ":" << proxyPort << "\n" + << "https-proxy=" << proxyHost << ":" << proxyPort << "\n"; + if (!proxyUser.empty()) + kf << "# proxy-auth=" << proxyUser << ":" << proxyPass << "\n"; + kf << "\n"; + } else if (proxyType == "auto" && !pacUrl.empty()) { + kf << "[proxy]\n" + << "method=auto\n" + << "pac-url=" << pacUrl << "\n\n"; + } + + // [ipv4] / [ipv6] + kf << "[ipv4]\nmethod=auto\n\n" + << "[ipv6]\nmethod=auto\naddr-gen-mode=stable-privacy\n"; + + ensureDir(kNMConnDir); + writeFile(keyfilePath(p), kf.str(), 0600); + nmReload(); + + syslog(LOG_INFO, "[WifiHandler] wrote keyfile ssid=%s uuid=%s", + ssid.c_str(), p.uuid.c_str()); + return true; + } + + void revert(const ParsedPayload& p) override { + removeFile(keyfilePath(p)); + nmReload(); + syslog(LOG_INFO, "[WifiHandler] removed keyfile uuid=%s", p.uuid.c_str()); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// ETHERNET HANDLER +// 802.1X wired authentication via NetworkManager keyfile. +// Same approach as WifiHandler — direct keyfile write, no nmcli exec. +// ═══════════════════════════════════════════════════════════════════════════ + +class EthernetHandler : public PayloadHandler { + std::string keyfilePath(const ParsedPayload& p) { + return kNMConnDir + "/vesperos-ethernet-" + p.uuid + ".nmconnection"; + } + +public: + bool apply(const ParsedPayload& p) override { + std::string iface = field(p, "interface", ""); + // Translate VesperOS interface names to Linux names. + // Leave blank to let NM pick the first available wired interface. + if (iface == "first-active" || iface == "first" || iface == "first-ethernet") + iface = ""; + + // Parse EAP block + std::string eapJson = field(p, "eap"); + std::string eapMethod = "peap"; + if (!eapJson.empty()) { + if (eapJson.find("\"tls\"") != std::string::npos) eapMethod = "tls"; + else if (eapJson.find("\"ttls\"") != std::string::npos) eapMethod = "ttls"; + else if (eapJson.find("\"fast\"") != std::string::npos) eapMethod = "fast"; + } + + std::string eapUser = extractJson(eapJson, "username"); + std::string eapPass = extractJson(eapJson, "password"); + std::string eapOuter = extractJson(eapJson, "outer-identity"); + std::string ttlsInner = extractJson(eapJson, "ttls-inner-auth"); + + // trust sub-block + std::string serverName, caCertPath; + auto trustPos = eapJson.find("\"trust\":"); + if (trustPos != std::string::npos) { + serverName = extractJson(eapJson.substr(trustPos), "server-names"); + std::string anchorUuid = extractJson(eapJson.substr(trustPos), "anchor-cert-uuids"); + if (!anchorUuid.empty()) + caCertPath = "/usr/local/share/ca-certificates/vesperos/" + + anchorUuid + ".crt"; + } + + // ── Build the keyfile ────────────────────────────────────────────── + std::ostringstream kf; + + kf << "[connection]\n" + << "id=vesperos-ethernet-" << p.uuid << "\n" + << "uuid=" << p.uuid << "\n" + << "type=ethernet\n" + << "autoconnect=true\n"; + if (!iface.empty()) + kf << "interface-name=" << iface << "\n"; + kf << "\n"; + + kf << "[ethernet]\n\n"; + + // [802-1x] + bool hasEap = !eapJson.empty() && eapJson != "\"\""; + if (hasEap) { + kf << "[802-1x]\n" + << "eap=" << eapMethod << "\n"; + if (!eapUser.empty()) kf << "identity=" << eapUser << "\n"; + if (!eapPass.empty()) kf << "password=" << eapPass << "\n"; + if (!eapOuter.empty()) kf << "anonymous-identity=" << eapOuter << "\n"; + if (eapMethod == "ttls" || eapMethod == "peap") + kf << "phase2-auth=" << (ttlsInner.empty() ? "mschapv2" : ttlsInner) << "\n"; + if (!serverName.empty()) + kf << "altsubject-matches=" << serverName << "\n"; + if (!caCertPath.empty()) + kf << "ca-cert=" << caCertPath << "\n"; + kf << "\n"; + } + + kf << "[ipv4]\nmethod=auto\n\n" + << "[ipv6]\nmethod=auto\naddr-gen-mode=stable-privacy\n"; + + ensureDir(kNMConnDir); + writeFile(keyfilePath(p), kf.str(), 0600); + nmReload(); + + syslog(LOG_INFO, "[EthernetHandler] wrote keyfile iface=%s uuid=%s", + iface.empty() ? "*" : iface.c_str(), p.uuid.c_str()); + return true; + } + + void revert(const ParsedPayload& p) override { + removeFile(keyfilePath(p)); + nmReload(); + syslog(LOG_INFO, "[EthernetHandler] removed keyfile uuid=%s", p.uuid.c_str()); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// VPN HANDLER +// IKEv2 → NetworkManager strongswan plugin (network-manager-strongswan) +// L2TP → NetworkManager l2tp plugin (network-manager-l2tp) +// Custom → write OpenVPN .ovpn or WireGuard .conf +// ═══════════════════════════════════════════════════════════════════════════ + +class VpnHandler : public PayloadHandler { +public: + bool apply(const ParsedPayload& p) override { + std::string displayName = field(p, "display-name", "VesperOS VPN"); + std::string connId = "vesperos-vpn-" + p.uuid; + + // Check which VPN type is configured + bool hasIkev2 = p.fields.count("ikev2"); + bool hasL2tp = p.fields.count("l2tp"); + bool hasCustom = p.fields.count("custom"); + + if (hasIkev2) return applyIkev2(p, connId, displayName); + if (hasL2tp) return applyL2tp(p, connId, displayName); + if (hasCustom) return applyCustom(p, connId); + + syslog(LOG_WARNING, "[VpnHandler] no VPN type block found in payload"); + return false; + } + + void revert(const ParsedPayload& p) override { + std::string connId = "vesperos-vpn-" + p.uuid; + runCmd("nmcli connection delete id '" + connId + "' 2>/dev/null"); + // Also remove any keyfile we wrote + removeFile("/etc/NetworkManager/system-connections/" + connId + ".nmconnection"); + removeFile("/etc/wireguard/vesperos-" + p.uuid + ".conf"); + } + +private: + bool applyIkev2(const ParsedPayload& p, const std::string& connId, + const std::string& /*name*/) { + // Requires: network-manager-strongswan + // Write an NM keyfile for IKEv2/IPsec + auto ikev2Json = p.fields.find("ikev2"); + if (ikev2Json == p.fields.end()) return false; + + // Quick field extraction from stored JSON string + auto extractField = [&](const std::string& key) -> std::string { + auto pos = ikev2Json->second.find("\"" + key + "\":"); + if (pos == std::string::npos) return ""; + pos += key.size() + 3; + auto q1 = ikev2Json->second.find('"', pos); + auto q2 = ikev2Json->second.find('"', q1 + 1); + if (q1 == std::string::npos) return ""; + return ikev2Json->second.substr(q1 + 1, q2 - q1 - 1); + }; + + std::string server = extractField("server"); + std::string remoteId = extractField("remote-id"); + + std::ostringstream kf; + kf << "[connection]\n" + << "id=" << connId << "\n" + << "type=vpn\n" + << "autoconnect=false\n\n" + << "[vpn]\n" + << "service-type=org.freedesktop.NetworkManager.strongswan\n" + << "address=" << server << "\n" + << "remote-identity=" << remoteId << "\n" + << "method=key\n" + << "virtual=yes\n" + << "ipcomp=no\n" + << "encap=no\n" + << "proposal=yes\n\n" + << "[ipv4]\nmethod=auto\n"; + + ensureDir("/etc/NetworkManager/system-connections"); + writeFile("/etc/NetworkManager/system-connections/" + connId + ".nmconnection", + kf.str(), 0600); + return runCmd("nmcli connection reload"); + } + + bool applyL2tp(const ParsedPayload& p, const std::string& connId, + const std::string& /*name*/) { + // Requires: network-manager-l2tp, network-manager-l2tp-gnome + auto l2tpJson = p.fields.find("l2tp"); + if (l2tpJson == p.fields.end()) return false; + + auto extract = [&](const std::string& key) -> std::string { + auto pos = l2tpJson->second.find("\"" + key + "\":"); + if (pos == std::string::npos) return ""; + pos += key.size() + 3; + auto q1 = l2tpJson->second.find('"', pos); + auto q2 = l2tpJson->second.find('"', q1 + 1); + if (q1 == std::string::npos) return ""; + return l2tpJson->second.substr(q1 + 1, q2 - q1 - 1); + }; + + std::ostringstream cmd; + cmd << "nmcli connection add type vpn" + << " con-name '" << connId << "'" + << " vpn-type l2tp" + << " vpn.data 'gateway=" << extract("server") + << ",user=" << extract("username") + << ",password-flags=0" + << ",ipsec-enabled=true" + << ",ipsec-psk=" << extract("shared-secret") << "'"; + return runCmd(cmd.str()); + } + + bool applyCustom(const ParsedPayload& p, const std::string& /*connId*/) { + // Write raw WireGuard config if provider hints at it, + // otherwise log for manual configuration. + syslog(LOG_INFO, "[VpnHandler] custom VPN uuid=%s — write your own config", + p.uuid.c_str()); + return true; + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// CERTIFICATE HANDLER +// Root/intermediate CAs → /usr/local/share/ca-certificates/vesperos/ +// + update-ca-certificates +// User certs (PKCS#12) → user NSS DB or /etc/ssl/private/ +// ═══════════════════════════════════════════════════════════════════════════ + +class CertHandler : public PayloadHandler { + static constexpr const char* kCaDir = + "/usr/local/share/ca-certificates/vesperos"; +public: + bool apply(const ParsedPayload& p) override { + std::string b64 = field(p, "data"); + if (b64.empty()) { syslog(LOG_ERR, "[CertHandler] no data"); return false; } + + auto bytes = b64decode(b64); + if (bytes.empty()) { syslog(LOG_ERR, "[CertHandler] bad base64"); return false; } + + ensureDir(kCaDir); + std::string certPath = std::string(kCaDir) + "/" + p.uuid + ".crt"; + + // Write the PEM/DER data + { + std::ofstream f(certPath, std::ios::binary); + f.write(reinterpret_cast(bytes.data()), bytes.size()); + } + ::chmod(certPath.c_str(), 0644); + + // Rebuild the system trust store + bool ok = runCmd("update-ca-certificates --fresh 2>/dev/null"); + syslog(LOG_INFO, "[CertHandler] installed CA cert uuid=%s", p.uuid.c_str()); + return ok; + } + + void revert(const ParsedPayload& p) override { + removeFile(std::string(kCaDir) + "/" + p.uuid + ".crt"); + runCmd("update-ca-certificates --fresh 2>/dev/null"); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// PKCS#12 HANDLER +// Identity cert + key → /etc/ssl/private/vesperos/ +// Also imports into the system NSS DB (shared NSSDB at /etc/pki/nssdb) +// via certutil/pk12util if available. +// ═══════════════════════════════════════════════════════════════════════════ + +class Pkcs12Handler : public PayloadHandler { + static constexpr const char* kKeyDir = "/etc/ssl/private/vesperos"; +public: + bool apply(const ParsedPayload& p) override { + std::string b64 = field(p, "data"); + std::string pw = field(p, "password"); + if (b64.empty()) { syslog(LOG_ERR, "[Pkcs12Handler] no data"); return false; } + + auto bytes = b64decode(b64); + if (bytes.empty()) return false; + + ensureDir(kKeyDir, 0700); + std::string p12Path = std::string(kKeyDir) + "/" + p.uuid + ".p12"; + { + std::ofstream f(p12Path, std::ios::binary); + f.write(reinterpret_cast(bytes.data()), bytes.size()); + } + ::chmod(p12Path.c_str(), 0600); + + // Import into shared NSSDB if pk12util is available + runCmd("which pk12util >/dev/null 2>&1 && " + "pk12util -i " + p12Path + " -d /etc/pki/nssdb" + " -W '" + pw + "' 2>/dev/null"); + + syslog(LOG_INFO, "[Pkcs12Handler] installed identity cert uuid=%s", p.uuid.c_str()); + return true; + } + + void revert(const ParsedPayload& p) override { + removeFile(std::string(kKeyDir) + "/" + p.uuid + ".p12"); + // Remove from NSSDB — we'd need to track the cert nickname; skip for now. + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// PASSCODE POLICY HANDLER +// Writes /etc/security/pwquality.conf.d/vesperos.conf +// and sets /etc/login.defs values for max age, min age, etc. +// Also writes a PAM faillock config for lockout policy. +// ═══════════════════════════════════════════════════════════════════════════ + +class PasscodeHandler : public PayloadHandler { + static constexpr const char* kPwqualityDir = + "/etc/security/pwquality.conf.d"; + static constexpr const char* kFaillockConf = + "/etc/security/faillock.conf.d/vesperos.conf"; +public: + bool apply(const ParsedPayload& p) override { + int minLen = std::stoi(field(p, "min-length", "6")); + int minComplex = std::stoi(field(p, "min-complex-chars", "0")); + bool reqAlpha = fieldBool(p, "require-alphanumeric", false); + bool allowSimp = fieldBool(p, "allow-simple", true); + int maxAge = std::stoi(field(p, "max-age-days", "0")); + int history = std::stoi(field(p, "history", "0")); + int maxFailed = std::stoi(field(p, "max-failed-attempts", "0")); + int inactivity = std::stoi(field(p, "inactivity-minutes", "0")); + + // ── pam_pwquality ────────────────────────────────────────────── + ensureDir(kPwqualityDir); + std::ostringstream pq; + pq << "# Managed by vesperprofiled — do not edit manually\n"; + pq << "minlen = " << minLen << "\n"; + if (minComplex > 0) pq << "minclass = " << minComplex << "\n"; + if (reqAlpha) pq << "dcredit = -1\n" << "ucredit = -1\n"; + if (!allowSimp) pq << "maxrepeat = 2\nmaxsequence = 2\n"; + if (history > 0) pq << "# remember=" << history + << " set in /etc/pam.d/common-password\n"; + writeFile(std::string(kPwqualityDir) + "/vesperos.conf", pq.str()); + + // ── /etc/login.defs overrides via conf.d drop-in ─────────────── + // Debian reads /etc/login.defs directly; we append a comment-marked + // block. A real implementation patches login.defs via sed or a + // dedicated management file; here we write a separate snippet + // that a PAM module or login wrapper can source. + std::ostringstream ld; + ld << "# vesperprofiled managed\n"; + if (maxAge > 0) ld << "PASS_MAX_DAYS\t" << maxAge << "\n"; + if (history > 0) ld << "# PASS_REUSE_LIMIT=" << history << "\n"; + writeFile("/etc/vesperprofiled/login.defs.snippet", ld.str()); + + // ── pam_faillock ─────────────────────────────────────────────── + if (maxFailed > 0) { + ensureDir("/etc/security/faillock.conf.d"); + std::ostringstream fl; + fl << "# Managed by vesperprofiled\n" + << "deny = " << maxFailed << "\n"; + if (inactivity > 0) + fl << "unlock_time = " << (inactivity * 60) << "\n"; + writeFile(kFaillockConf, fl.str()); + } + + syslog(LOG_INFO, "[PasscodeHandler] applied password policy"); + return true; + } + + void revert(const ParsedPayload& /*p*/) override { + removeFile(std::string(kPwqualityDir) + "/vesperos.conf"); + removeFile(kFaillockConf); + removeFile("/etc/vesperprofiled/login.defs.snippet"); + syslog(LOG_INFO, "[PasscodeHandler] reverted password policy"); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// MDM HANDLER +// Writes a cloud-init user-data drop-in so the MDM server URL and +// enrollment state survive reboots and cloud-init re-runs. +// Also writes a vesperos MDM config to /etc/vesperprofiled/mdm.conf +// which the MDM client agent (future VesperOS package) reads. +// ═══════════════════════════════════════════════════════════════════════════ + +class MdmHandler : public PayloadHandler { + static constexpr const char* kMdmConf = + "/etc/vesperprofiled/mdm.conf"; + static constexpr const char* kCloudInitDrop = + "/etc/cloud/cloud.cfg.d/99-vesperos-mdm.cfg"; +public: + bool apply(const ParsedPayload& p) override { + std::string serverUrl = field(p, "server-url"); + std::string checkinUrl = field(p, "checkin-url"); + std::string pushTopic = field(p, "push-topic"); + std::string certUuid = field(p, "identity-cert-uuid"); + std::string accessStr = field(p, "access-rights", "0"); + int accessRights = std::stoi(accessStr); + + // ── /etc/vesperprofiled/mdm.conf ─────────────────────────────── + ensureDir("/etc/vesperprofiled"); + std::ostringstream conf; + conf << "# VesperOS MDM enrollment — managed by vesperprofiled\n" + << "server_url=" << serverUrl << "\n" + << "checkin_url=" << (checkinUrl.empty() ? serverUrl : checkinUrl) << "\n" + << "push_topic=" << pushTopic << "\n" + << "identity_cert_uuid=" << certUuid << "\n" + << "access_rights=" << accessRights << "\n" + << "enrolled=1\n"; + writeFile(kMdmConf, conf.str(), 0640); + + // ── cloud-init drop-in ───────────────────────────────────────── + // cloud-init YAML format — sets system metadata the MDM agent + // can query via `cloud-init query`. + ensureDir("/etc/cloud/cloud.cfg.d"); + std::ostringstream ci; + ci << "# VesperOS MDM — generated by vesperprofiled\n" + << "# Do not edit manually.\n" + << "system_info:\n" + << " default_user:\n" + << " lock_passwd: false\n" + << "\n" + << "# MDM server endpoints\n" + << "vesperos_mdm:\n" + << " server_url: " << serverUrl << "\n" + << " checkin_url: " << (checkinUrl.empty() ? serverUrl : checkinUrl) << "\n" + << " push_topic: " << pushTopic << "\n" + << " enrolled: true\n" + << "\n" + << "# Disable cloud-init from resetting MDM-managed settings\n" + << "manage_etc_hosts: false\n" + << "manage_resolv_conf: false\n"; + writeFile(kCloudInitDrop, ci.str(), 0644); + + syslog(LOG_INFO, "[MdmHandler] enrolled MDM server=%s", serverUrl.c_str()); + return true; + } + + void revert(const ParsedPayload& p) override { + removeFile(kMdmConf); + removeFile(kCloudInitDrop); + syslog(LOG_INFO, "[MdmHandler] unenrolled MDM uuid=%s", p.uuid.c_str()); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// SOFTWARE UPDATE HANDLER +// Writes /etc/apt/apt.conf.d/99-vesperos for update settings. +// Sets up unattended-upgrades for automatic updates. +// ═══════════════════════════════════════════════════════════════════════════ + +class SoftwareUpdateHandler : public PayloadHandler { + static constexpr const char* kAptConf = + "/etc/apt/apt.conf.d/99-vesperos-update"; + static constexpr const char* kUnattendedConf = + "/etc/apt/apt.conf.d/51-vesperos-unattended"; +public: + bool apply(const ParsedPayload& p) override { + // Extract nested automatic block + bool autoCheck = true; + bool autoDownload = true; + bool autoInstall = false; + int osDeferDays = 0; + + auto autoJson = p.fields.find("automatic"); + if (autoJson != p.fields.end()) { + autoCheck = autoJson->second.find("\"check\":true") != std::string::npos; + autoDownload = autoJson->second.find("\"download\":true") != std::string::npos; + autoInstall = autoJson->second.find("\"install-os-updates\":true") != std::string::npos; + } + + auto deferJson = p.fields.find("deferral"); + if (deferJson != p.fields.end()) { + auto pos = deferJson->second.find("\"os-updates-days\":"); + if (pos != std::string::npos) { + osDeferDays = std::stoi(deferJson->second.substr(pos + 18, 3)); + } + } + + // ── apt.conf.d drop-in ───────────────────────────────────────── + std::ostringstream apt; + apt << "// VesperOS managed — do not edit\n" + << "APT::Periodic::Update-Package-Lists \"" + << (autoCheck ? "1" : "0") << "\";\n" + << "APT::Periodic::Download-Upgradeable-Packages \"" + << (autoDownload ? "1" : "0") << "\";\n" + << "APT::Periodic::Unattended-Upgrade \"" + << (autoInstall ? "1" : "0") << "\";\n"; + writeFile(kAptConf, apt.str()); + + // ── unattended-upgrades deferral ─────────────────────────────── + if (osDeferDays > 0) { + std::ostringstream ua; + ua << "// VesperOS managed\n" + << "Unattended-Upgrade::MinimalSteps \"true\";\n" + << "Unattended-Upgrade::InstallOnShutdown \"false\";\n"; + // Delay upgrades by pinning to a date offset + // (unattended-upgrades doesn't have a native delay knob; + // use a cron-based hold instead) + writeFile(kUnattendedConf, ua.str()); + } + + syslog(LOG_INFO, "[SoftwareUpdateHandler] applied update policy"); + return true; + } + + void revert(const ParsedPayload& /*p*/) override { + removeFile(kAptConf); + removeFile(kUnattendedConf); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// TIME SERVER HANDLER +// Writes /etc/systemd/timesyncd.conf.d/vesperos.conf +// ═══════════════════════════════════════════════════════════════════════════ + +class TimeServerHandler : public PayloadHandler { + static constexpr const char* kTimesyncDir = + "/etc/systemd/timesyncd.conf.d"; + static constexpr const char* kTimesyncConf = + "/etc/systemd/timesyncd.conf.d/vesperos.conf"; +public: + bool apply(const ParsedPayload& p) override { + std::string server = field(p, "server"); + if (server.empty()) return true; + + ensureDir(kTimesyncDir); + std::ostringstream c; + c << "[Time]\n" + << "NTP=" << server << "\n" + << "FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org\n"; + writeFile(kTimesyncConf, c.str()); + runCmd("systemctl restart systemd-timesyncd 2>/dev/null"); + + syslog(LOG_INFO, "[TimeServerHandler] NTP=%s", server.c_str()); + return true; + } + + void revert(const ParsedPayload& /*p*/) override { + removeFile(kTimesyncConf); + runCmd("systemctl restart systemd-timesyncd 2>/dev/null"); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// GLOBAL HTTP PROXY HANDLER +// Writes /etc/environment proxy vars and +// /etc/apt/apt.conf.d/99-vesperos-proxy +// /etc/profile.d/vesperos-proxy.sh +// ═══════════════════════════════════════════════════════════════════════════ + +class ProxyHandler : public PayloadHandler { + static constexpr const char* kAptProxy = + "/etc/apt/apt.conf.d/99-vesperos-proxy"; + static constexpr const char* kProfileProxy = + "/etc/profile.d/vesperos-proxy.sh"; +public: + bool apply(const ParsedPayload& p) override { + // proxy block stored as JSON in fields["proxy"] + auto proxyJson = p.fields.find("proxy"); + if (proxyJson == p.fields.end()) return true; + + bool isManual = proxyJson->second.find("\"type\":\"manual\"") != std::string::npos + || proxyJson->second.find("manual") != std::string::npos; + + auto extract = [&](const std::string& key) -> std::string { + auto pos = proxyJson->second.find("\"" + key + "\":"); + if (pos == std::string::npos) return ""; + pos += key.size() + 3; + auto q1 = proxyJson->second.find('"', pos); + auto q2 = proxyJson->second.find('"', q1 + 1); + if (q1 == std::string::npos) return ""; + return proxyJson->second.substr(q1 + 1, q2 - q1 - 1); + }; + + if (isManual) { + std::string host = extract("host"); + std::string port = extract("port"); + std::string user = extract("username"); + std::string pass = extract("password"); + + std::string auth = user.empty() ? "" : (user + ":" + pass + "@"); + std::string proxyUrl = "http://" + auth + host + ":" + port; + + // /etc/profile.d/vesperos-proxy.sh — sets env vars for all users + std::ostringstream sh; + sh << "# VesperOS managed proxy\n" + << "export http_proxy=" << proxyUrl << "\n" + << "export https_proxy=" << proxyUrl << "\n" + << "export HTTP_PROXY=" << proxyUrl << "\n" + << "export HTTPS_PROXY=" << proxyUrl << "\n" + << "export no_proxy=localhost,127.0.0.1,::1\n"; + writeFile(kProfileProxy, sh.str(), 0644); + + // apt proxy + std::ostringstream apt; + apt << "// VesperOS managed\n" + << "Acquire::http::Proxy \"" << proxyUrl << "\";\n" + << "Acquire::https::Proxy \"" << proxyUrl << "\";\n"; + writeFile(kAptProxy, apt.str()); + + // NetworkManager global proxy + std::ostringstream nmConf; + nmConf << "[connectivity]\n\n" + << "[global-dns-domain-*]\n\n" + << "[main]\n" + << "proxy=http\n" + << "proxy-url=" << proxyUrl << "\n"; + writeFile("/etc/NetworkManager/conf.d/vesperos-proxy.conf", nmConf.str()); + runCmd("nmcli general reload 2>/dev/null"); + } else { + // PAC auto-proxy — write to NM and GNOME + std::string pacUrl = extract("pac-url"); + if (!pacUrl.empty()) { + std::ostringstream nmConf; + nmConf << "[main]\nproxy=auto\nproxy-url=" << pacUrl << "\n"; + writeFile("/etc/NetworkManager/conf.d/vesperos-proxy.conf", nmConf.str()); + runCmd("nmcli general reload 2>/dev/null"); + } + } + + syslog(LOG_INFO, "[ProxyHandler] applied global proxy"); + return true; + } + + void revert(const ParsedPayload& /*p*/) override { + removeFile(kAptProxy); + removeFile(kProfileProxy); + removeFile("/etc/NetworkManager/conf.d/vesperos-proxy.conf"); + runCmd("nmcli general reload 2>/dev/null"); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// DNS PROXY HANDLER +// Writes /etc/systemd/resolved.conf.d/vesperos-dns.conf +// ═══════════════════════════════════════════════════════════════════════════ + +class DnsProxyHandler : public PayloadHandler { + static constexpr const char* kResolvedDir = + "/etc/systemd/resolved.conf.d"; + static constexpr const char* kResolvedConf = + "/etc/systemd/resolved.conf.d/vesperos-dns.conf"; +public: + bool apply(const ParsedPayload& p) override { + auto configJson = p.fields.find("config"); + if (configJson == p.fields.end()) return true; + + auto pos = configJson->second.find("\"ServerURL\":"); + std::string dnsUrl; + if (pos != std::string::npos) { + pos += 12; + auto q1 = configJson->second.find('"', pos); + auto q2 = configJson->second.find('"', q1 + 1); + if (q1 != std::string::npos) + dnsUrl = configJson->second.substr(q1 + 1, q2 - q1 - 1); + } + + ensureDir(kResolvedDir); + std::ostringstream c; + c << "[Resolve]\n"; + if (!dnsUrl.empty()) c << "DNS=" << dnsUrl << "\n"; + c << "DNSStubListener=yes\n" + << "DNSSEC=allow-downgrade\n" + << "DNSOverTLS=opportunistic\n"; + writeFile(kResolvedConf, c.str()); + runCmd("systemctl restart systemd-resolved 2>/dev/null"); + syslog(LOG_INFO, "[DnsProxyHandler] applied DNS config"); + return true; + } + + void revert(const ParsedPayload& /*p*/) override { + removeFile(kResolvedConf); + runCmd("systemctl restart systemd-resolved 2>/dev/null"); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// FIREWALL HANDLER +// Writes nftables rules to /etc/nftables.d/vesperos.nft +// ═══════════════════════════════════════════════════════════════════════════ + +class FirewallHandler : public PayloadHandler { + static constexpr const char* kNftFile = + "/etc/nftables.d/vesperos.nft"; +public: + bool apply(const ParsedPayload& p) override { + bool enabled = fieldBool(p, "enabled", false); + bool blockAll = fieldBool(p, "block-all-incoming", false); + bool stealthMode = fieldBool(p, "stealth-mode", false); + + if (!enabled) return true; + + ensureDir("/etc/nftables.d"); + std::ostringstream nft; + nft << "# VesperOS managed firewall — do not edit\n" + << "table inet vesperos_fw {\n" + << " chain input {\n" + << " type filter hook input priority 0; policy " + << (blockAll ? "drop" : "accept") << ";\n"; + + if (blockAll) { + // Allow established/related + nft << " ct state established,related accept\n" + << " iif lo accept\n"; + // Allow ICMP unless stealth mode + if (!stealthMode) nft << " ip protocol icmp accept\n"; + } + + // Per-app rules: on Linux, app-level filtering is handled by + // AppArmor/seccomp rather than nftables. Skip here. + + nft << " }\n" + << " chain forward {\n" + << " type filter hook forward priority 0; policy accept;\n" + << " }\n" + << " chain output {\n" + << " type filter hook output priority 0; policy accept;\n" + << " }\n" + << "}\n"; + + writeFile(kNftFile, nft.str()); + runCmd("nft -f " + std::string(kNftFile) + " 2>/dev/null"); + runCmd("systemctl enable nftables 2>/dev/null"); + syslog(LOG_INFO, "[FirewallHandler] applied nftables rules"); + return true; + } + + void revert(const ParsedPayload& /*p*/) override { + runCmd("nft delete table inet vesperos_fw 2>/dev/null"); + removeFile(kNftFile); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// LDAP HANDLER +// Writes /etc/ldap/ldap.conf for LDAP client configuration. +// Also configures libpam-ldapd / nss-ldapd if installed. +// ═══════════════════════════════════════════════════════════════════════════ + +class LdapHandler : public PayloadHandler { + static constexpr const char* kLdapConf = "/etc/ldap/ldap.conf"; + static constexpr const char* kNslcdConf = "/etc/nslcd.conf"; +public: + bool apply(const ParsedPayload& p) override { + std::string host = field(p, "host"); + bool ssl = fieldBool(p, "ssl", true); + std::string username = field(p, "username"); + std::string password = field(p, "password"); + + auto searchJson = p.fields.find("search-settings"); + std::string base; + if (searchJson != p.fields.end()) { + auto pos = searchJson->second.find("\"base\":"); + if (pos != std::string::npos) { + pos += 7; + auto q1 = searchJson->second.find('"', pos); + auto q2 = searchJson->second.find('"', q1 + 1); + if (q1 != std::string::npos) + base = searchJson->second.substr(q1 + 1, q2 - q1 - 1); + } + } + + std::string uri = (ssl ? "ldaps://" : "ldap://") + host; + + // /etc/ldap/ldap.conf + std::ostringstream lc; + lc << "# VesperOS managed\n" + << "URI " << uri << "\n"; + if (!base.empty()) lc << "BASE " << base << "\n"; + lc << "TLS_CACERT /etc/ssl/certs/ca-certificates.crt\n"; + writeFile(kLdapConf, lc.str(), 0644); + + // /etc/nslcd.conf (if nslcd / libnss-ldapd is installed) + std::ostringstream nc; + nc << "# VesperOS managed\n" + << "uid nslcd\ngid nslcd\n" + << "uri " << uri << "\n"; + if (!base.empty()) nc << "base " << base << "\n"; + if (!username.empty()) nc << "binddn " << username << "\n" + << "bindpw " << password << "\n"; + nc << "ssl " << (ssl ? "on" : "off") << "\n" + << "tls_cacertfile /etc/ssl/certs/ca-certificates.crt\n"; + writeFile(kNslcdConf, nc.str(), 0600); + + runCmd("systemctl try-restart nslcd 2>/dev/null"); + syslog(LOG_INFO, "[LdapHandler] configured LDAP host=%s", host.c_str()); + return true; + } + + void revert(const ParsedPayload& /*p*/) override { + // Restore defaults (empty ldap.conf) + writeFile(kLdapConf, "# No LDAP configured\n"); + removeFile(kNslcdConf); + runCmd("systemctl try-restart nslcd 2>/dev/null"); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// WALLPAPER HANDLER +// Sets GNOME wallpaper via gsettings (runs as root → sets system default). +// ═══════════════════════════════════════════════════════════════════════════ + +class WallpaperHandler : public PayloadHandler { + static constexpr const char* kGdmDefaults = + "/etc/dconf/db/local.d/00-vesperos-wallpaper"; + static constexpr const char* kGdmLock = + "/etc/dconf/db/local.d/locks/vesperos-wallpaper"; +public: + bool apply(const ParsedPayload& p) override { + // wallpaper is a nested object; find the path field from its JSON + auto wJson = p.fields.find("wallpaper"); + if (wJson == p.fields.end()) return true; + + auto extractStr = [&](const std::string& key) -> std::string { + auto pos = wJson->second.find("\"" + key + "\":"); + if (pos == std::string::npos) return ""; + pos += key.size() + 3; + auto q1 = wJson->second.find('"', pos); + auto q2 = wJson->second.find('"', q1 + 1); + if (q1 == std::string::npos) return ""; + return wJson->second.substr(q1 + 1, q2 - q1 - 1); + }; + + std::string path = extractStr("path"); + bool locked = wJson->second.find("\"locked\":true") != std::string::npos; + + if (path.empty()) return true; + + // dconf system-wide profile + ensureDir("/etc/dconf/db/local.d"); + ensureDir("/etc/dconf/db/local.d/locks"); + + std::ostringstream dconf; + dconf << "[org/gnome/desktop/background]\n" + << "picture-uri='file://" << path << "'\n" + << "picture-uri-dark='file://" << path << "'\n" + << "picture-options='zoom'\n"; + writeFile(kGdmDefaults, dconf.str()); + + if (locked) { + writeFile(kGdmLock, + "/org/gnome/desktop/background/picture-uri\n" + "/org/gnome/desktop/background/picture-uri-dark\n" + "/org/gnome/desktop/background/picture-options\n"); + } + + runCmd("dconf update 2>/dev/null"); + syslog(LOG_INFO, "[WallpaperHandler] set wallpaper path=%s locked=%d", + path.c_str(), locked); + return true; + } + + void revert(const ParsedPayload& /*p*/) override { + removeFile(kGdmDefaults); + removeFile(kGdmLock); + runCmd("dconf update 2>/dev/null"); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// SCREENSAVER HANDLER +// Configures GNOME screensaver/lock via dconf system profile. +// ═══════════════════════════════════════════════════════════════════════════ + +class ScreensaverHandler : public PayloadHandler { + static constexpr const char* kDconfFile = + "/etc/dconf/db/local.d/00-vesperos-screensaver"; +public: + bool apply(const ParsedPayload& p) override { + int idleSecs = std::stoi(field(p, "idle-seconds", "300")); + bool locked = fieldBool(p, "locked", false); + + ensureDir("/etc/dconf/db/local.d"); + std::ostringstream d; + d << "[org/gnome/desktop/session]\n" + << "idle-delay=uint32 " << idleSecs << "\n\n" + << "[org/gnome/desktop/screensaver]\n" + << "lock-enabled=true\n" + << "lock-delay=uint32 0\n"; + writeFile(kDconfFile, d.str()); + + if (locked) { + ensureDir("/etc/dconf/db/local.d/locks"); + writeFile("/etc/dconf/db/local.d/locks/vesperos-screensaver", + "/org/gnome/desktop/session/idle-delay\n" + "/org/gnome/desktop/screensaver/lock-enabled\n"); + } + + runCmd("dconf update 2>/dev/null"); + syslog(LOG_INFO, "[ScreensaverHandler] idle=%ds locked=%d", idleSecs, locked); + return true; + } + + void revert(const ParsedPayload& /*p*/) override { + removeFile(kDconfFile); + removeFile("/etc/dconf/db/local.d/locks/vesperos-screensaver"); + runCmd("dconf update 2>/dev/null"); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// SETUP ASSISTANT HANDLER +// On Linux this maps to cloud-init skip directives. +// Writes a cloud-init drop-in that suppresses first-boot wizard screens. +// ═══════════════════════════════════════════════════════════════════════════ + +// ═══════════════════════════════════════════════════════════════════════════ +// FIRST-BOOT HANDLER (renamed from setup-assistant) +// +// This handler runs BEFORE cloud-init on first boot. The systemd ordering +// in vesperprofiled.service (Before=cloud-init-local.service) ensures that +// when a preinstalled profile baked into the image contains a first-boot +// payload, vesperprofiled applies it first so that: +// +// 1. The cloud-init drop-in is already on disk when cloud-init starts. +// 2. Any WiFi or VPN profile is already written to NM so cloud-init can +// reach its datasource over the managed connection. +// 3. The MDM drop-in is in /etc/cloud/cloud.cfg.d/ before cloud-init +// runs, letting the MDM server inject additional cloud-init config. +// +// What it does: +// - Writes /etc/cloud/cloud.cfg.d/99-vesperos-firstboot.cfg to suppress +// cloud-init wizard modules that are replaced by managed profiles. +// - Writes cloud-init's 'disabled' modules list so it skips anything +// explicitly listed in the profile's skip array. +// - Suppresses the VesperOS first-boot GNOME Initial Setup wizard +// via a GSettings override and a .done semaphore file. +// - Writes a /etc/vesperprofiled/firstboot.done stamp so subsequent +// daemon starts (and cloud-init re-runs) know first-boot is complete. +// ═══════════════════════════════════════════════════════════════════════════ + +class FirstBootHandler : public PayloadHandler { + // cloud-init drop-in — written before cloud-init starts + static constexpr const char* kCloudInitDrop = + "/etc/cloud/cloud.cfg.d/99-vesperos-firstboot.cfg"; + + // GNOME Initial Setup bypass + static constexpr const char* kGnomeSetupDone = + "/var/lib/gnome-initial-setup/.gnome-initial-setup-done"; + + // dconf override disabling GNOME Initial Setup on all accounts + static constexpr const char* kGnomeDconfOverride = + "/etc/dconf/db/local.d/00-vesperos-firstboot"; + + // Semaphore: written last, after all other drops are in place + static constexpr const char* kDoneStamp = + "/etc/vesperprofiled/firstboot.done"; + + // Map of VesperOS skip-pane names to cloud-init module names to disable. + // cloud-init reads cloud_final_modules / cloud_config_modules; we inject + // a disabled_modules list which cloud-init (>=22.1) honours directly. + static const std::pair kSkipMap[]; + static constexpr size_t kSkipMapLen = 10; + +public: + bool apply(const ParsedPayload& p) override { + // ── 1. Build the cloud-init drop-in ─────────────────────────────── + // Collect which panes to skip + std::string skipJson = field(p, "skip"); + std::vector disabledModules; + + for (size_t i = 0; i < kSkipMapLen; ++i) { + if (skipJson.find(kSkipMap[i].first) != std::string::npos) + disabledModules.push_back(kSkipMap[i].second); + } + + ensureDir("/etc/cloud/cloud.cfg.d"); + std::ostringstream ci; + ci << "# VesperOS first-boot configuration — managed by vesperprofiled\n" + << "# Applied before cloud-init runs. Do not edit manually.\n" + << "#\n" + << "# vesperprofiled has already written all managed network,\n" + << "# certificate, and policy configurations. cloud-init only\n" + << "# needs to handle datasource-specific work.\n\n"; + + // Suppress the interactive first-boot wizard entirely + ci << "# Suppress interactive setup\n" + << "resize_rootfs: false\n" + << "ssh_pwauth: false\n" + << "final_message: \"\"\n\n"; + + // Don't let cloud-init clobber NM-managed network config + ci << "# Preserve vesperprofiled-managed network settings\n" + << "network:\n" + << " config: disabled\n\n"; + + // Disable specific cloud-init modules that correspond to skipped panes + if (!disabledModules.empty()) { + ci << "# Modules disabled by first-boot skip list\n" + << "disabled_modules:\n"; + for (const auto& m : disabledModules) + ci << " - " << m << "\n"; + ci << "\n"; + } + + // If software-update is in the skip list, also suppress apt operations + if (skipJson.find("software-update") != std::string::npos) { + ci << "# Software update skipped — apt managed by software-update payload\n" + << "package_update: false\n" + << "package_upgrade: false\n"; + } + + writeFile(kCloudInitDrop, ci.str(), 0644); + syslog(LOG_INFO, "[FirstBootHandler] wrote cloud-init drop-in"); + + // ── 2. Suppress GNOME Initial Setup ─────────────────────────────── + // Create the .done stamp so gnome-initial-setup skips on first login. + ensureDir("/var/lib/gnome-initial-setup"); + { + // Touch the file + std::ofstream f(kGnomeSetupDone); + // content doesn't matter; existence is the signal + } + ::chmod(kGnomeSetupDone, 0644); + + // dconf system default: tell gnome-initial-setup it has already run + ensureDir("/etc/dconf/db/local.d"); + writeFile(kGnomeDconfOverride, + "# VesperOS managed — skip GNOME Initial Setup\n" + "[org/gnome/initial-setup]\n" + "run-on-guest=false\n", + 0644); + runCmd("dconf update 2>/dev/null"); + + syslog(LOG_INFO, "[FirstBootHandler] suppressed GNOME Initial Setup"); + + // ── 3. Write the done stamp last ────────────────────────────────── + // This is the signal to main.cpp that first-boot profiles have been + // fully applied. The stamp is checked on subsequent starts so we + // don't re-apply first-boot payloads on every boot. + ensureDir("/etc/vesperprofiled"); + { + std::ofstream f(kDoneStamp); + // Write the profile UUID so we know which profile ran + f << p.uuid << "\n"; + } + ::chmod(kDoneStamp, 0644); + + syslog(LOG_INFO, "[FirstBootHandler] first-boot complete, stamp written"); + return true; + } + + void revert(const ParsedPayload& p) override { + removeFile(kCloudInitDrop); + removeFile(kGnomeDconfOverride); + removeFile("/etc/dconf/db/local.d/locks/vesperos-firstboot"); + removeFile(kDoneStamp); + runCmd("dconf update 2>/dev/null"); + syslog(LOG_INFO, "[FirstBootHandler] reverted first-boot config uuid=%s", + p.uuid.c_str()); + } +}; + +// Static skip map definition +const std::pair FirstBootHandler::kSkipMap[] = { + // VesperOS pane name → cloud-init module name + {"software-update", "package-update-upgrade-install"}, + {"location", "ntp"}, + {"privacy", "users-groups"}, + {"tos", "final-message"}, + {"passcode", "set-passwords"}, + {"restore", "chef"}, // no exact equiv; suppress restore agent + {"biometric", "mcollective"}, // no exact equiv + {"siri", "puppet"}, // no exact equiv + {"android-migration", "migrator"}, + {"onboarding", "write-files"}, +}; + +// ── Stub handler for unimplemented types ───────────────────────────────── + +class StubHandler : public PayloadHandler { + std::string mType; +public: + explicit StubHandler(std::string t) : mType(std::move(t)) {} + bool apply(const ParsedPayload& p) override { + syslog(LOG_INFO, "[StubHandler] apply type=%s uuid=%s", + mType.c_str(), p.uuid.c_str()); + return true; + } + void revert(const ParsedPayload& p) override { + syslog(LOG_INFO, "[StubHandler] revert type=%s uuid=%s", + mType.c_str(), p.uuid.c_str()); + } +}; + +// ═══════════════════════════════════════════════════════════════════════════ +// REGISTRY +// ═══════════════════════════════════════════════════════════════════════════ + +std::map>& +PayloadHandlerRegistry::handlers() { + static std::map> m; + return m; +} + +PayloadHandler* PayloadHandlerRegistry::get(const std::string& type) { + auto& m = handlers(); + auto it = m.find(type); + return (it != m.end()) ? it->second.get() : nullptr; +} + +void PayloadHandlerRegistry::registerAll() { + auto& m = handlers(); + + // Real handlers + m["wifi"] = std::make_unique(); + m["ethernet"] = std::make_unique(); + m["vpn"] = std::make_unique(); + m["cert"] = std::make_unique(); + m["pkcs12"] = std::make_unique(); + m["passcode"] = std::make_unique(); + m["mdm"] = std::make_unique(); + m["software-update"] = std::make_unique(); + m["time-server"] = std::make_unique(); + m["proxy-http"] = std::make_unique(); + m["dns-proxy"] = std::make_unique(); + m["firewall"] = std::make_unique(); + m["ldap"] = std::make_unique(); + m["desktop"] = std::make_unique(); + m["screensaver"] = std::make_unique(); + // "first-boot" is the Linux rename of the "setup-assistant" payload type. + // Both names are registered so profiles from either platform install cleanly. + m["first-boot"] = std::make_unique(); + m["setup-assistant"] = std::make_unique(); + + // Stubs for types that don't have a direct Linux equivalent or + // are handled elsewhere (companion app / manual config) + for (const char* t : { + "scep", "cert-preference", "cert-transparency", + "vpn-per-app", "email", "exchange", "caldav", + "calendar-subscription", "carddav", "sso", + "active-directory", "ad-certificate", + "network-usage-rules", "cellular", "domains", + "web-filter", "web-clip", "font", "notifications", + "restrictions", "kiosk", "asam", + "global-preferences", "shared-device", "education", + "airprint", "airplay", "airplay-security", + "system-policy", "system-policy-rule", + "smartcard", "kernel-extension-policy", + "media-management", "full-disk-encryption", + "fde-escrow", "parental-controls", + "removal-password", "identification", + "google-account", "home-screen", + }) { + m[t] = std::make_unique(t); + } + + syslog(LOG_INFO, "vesperprofiled: registered %zu payload handlers", m.size()); +} + +} // namespace vesperos::profile diff --git a/src/zte/ConnectivityWatcher.cpp b/src/zte/ConnectivityWatcher.cpp new file mode 100644 index 0000000..8f7a2ba --- /dev/null +++ b/src/zte/ConnectivityWatcher.cpp @@ -0,0 +1,245 @@ +#include "ConnectivityWatcher.h" + +#include +#include +#include + +namespace vesperos::zte { + +// NM connectivity states +static constexpr uint32_t NM_STATE_CONNECTED_GLOBAL = 70; + +ConnectivityWatcher::ConnectivityWatcher() + : mClient(ZTELookupClient::loadConfiguredServerUrl()) { +} + +ConnectivityWatcher::~ConnectivityWatcher() { + if (mConn) { + dbus_connection_unref(mConn); + mConn = nullptr; + } +} + +// ── run ─────────────────────────────────────────────────────────────────── + +void ConnectivityWatcher::run() { + // Collect hardware identity once at startup + if (!DeviceIdentityCollector::collect(mIdentity)) { + syslog(LOG_ERR, "[ZTE watcher] cannot collect device identity — ZTE disabled"); + return; + } + mIdentityCollected = true; + + DBusError err; + dbus_error_init(&err); + + mConn = dbus_bus_get(DBUS_BUS_SYSTEM, &err); + if (dbus_error_is_set(&err)) { + syslog(LOG_ERR, "[ZTE watcher] D-Bus error: %s", err.message); + dbus_error_free(&err); + return; + } + + // Subscribe to NM StateChanged signal + dbus_bus_add_match(mConn, + "type='signal'," + "sender='org.freedesktop.NetworkManager'," + "interface='org.freedesktop.NetworkManager'," + "member='StateChanged'", + &err); + if (dbus_error_is_set(&err)) { + syslog(LOG_ERR, "[ZTE watcher] add_match error: %s", err.message); + dbus_error_free(&err); + } + + // Also subscribe to NM PropertiesChanged for finer-grained connectivity + dbus_bus_add_match(mConn, + "type='signal'," + "sender='org.freedesktop.NetworkManager'," + "interface='org.freedesktop.DBus.Properties'," + "member='PropertiesChanged'," + "path='/org/freedesktop/NetworkManager'", + &err); + dbus_error_free(&err); + + dbus_connection_add_filter(mConn, signalFilter, this, nullptr); + + syslog(LOG_INFO, "[ZTE watcher] listening for NetworkManager connectivity events"); + + // Check current NM state immediately — device may already be connected + // (e.g. if ZTE daemon started after NM was already up) + { + DBusMessage* query = dbus_message_new_method_call( + "org.freedesktop.NetworkManager", + "/org/freedesktop/NetworkManager", + "org.freedesktop.DBus.Properties", + "Get"); + if (query) { + const char* iface = "org.freedesktop.NetworkManager"; + const char* prop = "State"; + dbus_message_append_args(query, + DBUS_TYPE_STRING, &iface, + DBUS_TYPE_STRING, &prop, + DBUS_TYPE_INVALID); + DBusMessage* reply = dbus_connection_send_with_reply_and_block( + mConn, query, 5000, nullptr); + dbus_message_unref(query); + if (reply) { + DBusMessageIter i, v; + if (dbus_message_iter_init(reply, &i) && + dbus_message_iter_get_arg_type(&i) == DBUS_TYPE_VARIANT) { + dbus_message_iter_recurse(&i, &v); + uint32_t state = 0; + dbus_message_iter_get_basic(&v, &state); + if (state >= NM_STATE_CONNECTED_GLOBAL) { + syslog(LOG_INFO, + "[ZTE watcher] already connected (NM state=%u)", state); + onConnected(); + } + } + dbus_message_unref(reply); + } + } + } + + // Main event loop + mRunning = true; + while (mRunning) { + dbus_connection_read_write_dispatch(mConn, 200 /*ms*/); + } +} + +void ConnectivityWatcher::stop() { + mRunning = false; +} + +// ── signalFilter ────────────────────────────────────────────────────────── + +DBusHandlerResult ConnectivityWatcher::signalFilter( + DBusConnection* /*conn*/, DBusMessage* msg, void* userData) { + auto* self = static_cast(userData); + + if (dbus_message_get_type(msg) != DBUS_MESSAGE_TYPE_SIGNAL) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + const char* member = dbus_message_get_member(msg); + if (!member) return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + // org.freedesktop.NetworkManager.StateChanged(u state) + if (strcmp(member, "StateChanged") == 0) { + uint32_t state = 0; + dbus_message_get_args(msg, nullptr, + DBUS_TYPE_UINT32, &state, + DBUS_TYPE_INVALID); + syslog(LOG_DEBUG, "[ZTE watcher] NM state changed: %u", state); + if (state >= NM_STATE_CONNECTED_GLOBAL) { + self->onConnected(); + } + return DBUS_HANDLER_RESULT_HANDLED; + } + + // org.freedesktop.DBus.Properties.PropertiesChanged + // Check for Connectivity property reaching NM_CONNECTIVITY_FULL (4) + if (strcmp(member, "PropertiesChanged") == 0) { + DBusMessageIter iter; + if (!dbus_message_iter_init(msg, &iter)) return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + // Skip interface name (first arg) + dbus_message_iter_next(&iter); + // Iterate the changed properties dict + if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_ARRAY) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + DBusMessageIter dict; + dbus_message_iter_recurse(&iter, &dict); + while (dbus_message_iter_get_arg_type(&dict) == DBUS_TYPE_DICT_ENTRY) { + DBusMessageIter entry, val; + dbus_message_iter_recurse(&dict, &entry); + const char* key = nullptr; + dbus_message_iter_get_basic(&entry, &key); + dbus_message_iter_next(&entry); + dbus_message_iter_recurse(&entry, &val); + + if (key && strcmp(key, "Connectivity") == 0) { + uint32_t connectivity = 0; + dbus_message_iter_get_basic(&val, &connectivity); + if (connectivity == 4 /* NM_CONNECTIVITY_FULL */) { + self->onConnected(); + } + } + dbus_message_iter_next(&dict); + } + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; // let others see it too + } + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +// ── onConnected ─────────────────────────────────────────────────────────── + +void ConnectivityWatcher::onConnected() { + // Check current enrollment state — don't re-enroll if already done + EnrollmentState state = mClient.loadState(); + + switch (state) { + case EnrollmentState::ENROLLED: + syslog(LOG_DEBUG, "[ZTE watcher] already enrolled, ignoring connectivity event"); + return; + + case EnrollmentState::DISABLED: + syslog(LOG_INFO, "[ZTE watcher] ZTE disabled, skipping"); + return; + + case EnrollmentState::NOT_MANAGED: + // Once confirmed not managed, don't re-check on every connect + syslog(LOG_DEBUG, "[ZTE watcher] confirmed not managed, ignoring"); + return; + + case EnrollmentState::UNKNOWN: + case EnrollmentState::PENDING: + case EnrollmentState::ENROLL_FAILED: + // Try enrollment + syslog(LOG_INFO, "[ZTE watcher] connectivity available, attempting enrollment"); + attemptEnrollment(); + break; + } +} + +// ── attemptEnrollment ───────────────────────────────────────────────────── + +void ConnectivityWatcher::attemptEnrollment() { + if (!mIdentityCollected) { + syslog(LOG_ERR, "[ZTE watcher] identity not collected, cannot enroll"); + return; + } + + EnrollmentState result = mClient.enroll(mIdentity); + + switch (result) { + case EnrollmentState::ENROLLED: + syslog(LOG_INFO, "[ZTE watcher] enrollment complete"); + // The profile is now installed in vesperprofiled. + // No further action needed — vesperprofiled applied all payloads. + break; + + case EnrollmentState::NOT_MANAGED: + syslog(LOG_INFO, "[ZTE watcher] device is not managed by any MDM"); + mClient.saveState(EnrollmentState::NOT_MANAGED); + break; + + case EnrollmentState::PENDING: + syslog(LOG_INFO, + "[ZTE watcher] enrollment pending — will retry on next connectivity event"); + break; + + case EnrollmentState::ENROLL_FAILED: + syslog(LOG_WARNING, + "[ZTE watcher] enrollment failed — will retry on next connectivity event"); + break; + + default: + break; + } +} + +} // namespace vesperos::zte diff --git a/src/zte/ConnectivityWatcher.h b/src/zte/ConnectivityWatcher.h new file mode 100644 index 0000000..10f78a5 --- /dev/null +++ b/src/zte/ConnectivityWatcher.h @@ -0,0 +1,56 @@ +#pragma once + +#include "ZTELookupClient.h" +#include "DeviceIdentity.h" + +#include +#include +#include + +namespace vesperos::zte { + +// ── ConnectivityWatcher ─────────────────────────────────────────────────── +// Subscribes to NetworkManager's StateChanged signal on the system D-Bus. +// When the device transitions to NM_STATE_CONNECTED_GLOBAL (70), +// triggers a ZTE enrollment attempt if not already enrolled. +// +// NM connectivity states: +// 0 = UNKNOWN +// 10 = ASLEEP +// 20 = DISCONNECTED +// 30 = DISCONNECTING +// 40 = CONNECTING +// 50 = CONNECTED_LOCAL (link up, no internet) +// 60 = CONNECTED_SITE (can reach LAN but not internet) +// 70 = CONNECTED_GLOBAL (full internet — safe to attempt ZTE) + +class ConnectivityWatcher { +public: + ConnectivityWatcher(); + ~ConnectivityWatcher(); + + // Start watching for connectivity events. + // Also runs an immediate check in case we're already connected. + // Blocks until stop() is called. + void run(); + void stop(); + +private: + // Called when NM reports global connectivity. + void onConnected(); + + // D-Bus signal filter for NM state changes. + static DBusHandlerResult signalFilter( + DBusConnection* conn, DBusMessage* msg, void* userData); + + // Attempt enrollment — called from onConnected(). + void attemptEnrollment(); + + DBusConnection* mConn = nullptr; + bool mRunning = false; + DeviceIdentity mIdentity; + ZTELookupClient mClient; + bool mIdentityCollected = false; +}; + +} // namespace vesperos::zte diff --git a/src/zte/DeviceIdentity.cpp b/src/zte/DeviceIdentity.cpp new file mode 100644 index 0000000..aa99732 --- /dev/null +++ b/src/zte/DeviceIdentity.cpp @@ -0,0 +1,250 @@ +#include "DeviceIdentity.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace vesperos::zte { + +// ── File reader ─────────────────────────────────────────────────────────── + +std::string DeviceIdentityCollector::readFile(const std::string& path) { + std::ifstream f(path); + if (!f) return ""; + std::string s; + std::getline(f, s); + // Trim trailing whitespace and null bytes + while (!s.empty() && (s.back() == '\n' || s.back() == '\r' || + s.back() == ' ' || s.back() == '\0')) + s.pop_back(); + // Skip placeholder values that firmware puts when no serial is set + static const char* placeholders[] = { + "To be filled by O.E.M.", "To Be Filled By O.E.M.", "Default string", + "Not Specified", "System Serial Number", "CHASSIS_SERIAL_NUMBER", + "BOARD_SERIAL_NUMBER", "None", "N/A", "0", "" + }; + for (auto* ph : placeholders) + if (s == ph) return ""; + return s; +} + +// ── DMI / SMBIOS ────────────────────────────────────────────────────────── + +void DeviceIdentityCollector::collectDmi(DeviceIdentity& id) { + const std::string base = "/sys/class/dmi/id/"; + id.dmiSystemUuid = readFile(base + "product_uuid"); + id.dmiSystemSerial = readFile(base + "product_serial"); + id.dmiBoardSerial = readFile(base + "board_serial"); + id.dmiChassisSerial = readFile(base + "chassis_serial"); + id.dmiProductName = readFile(base + "product_name"); + id.dmiManufacturer = readFile(base + "sys_vendor"); + + id.hasOemSerials = !id.dmiSystemUuid.empty() || + !id.dmiSystemSerial.empty() || + !id.dmiBoardSerial.empty() || + !id.dmiChassisSerial.empty(); + + // Detect known VM product names + static const char* vmNames[] = { + "VirtualBox", "VMware", "KVM", "QEMU", "Hyper-V", "Xen", + "innotek GmbH", "Microsoft Corporation", nullptr + }; + for (int i = 0; vmNames[i]; ++i) { + if (id.dmiProductName.find(vmNames[i]) != std::string::npos || + id.dmiManufacturer.find(vmNames[i]) != std::string::npos) { + id.isVirtualMachine = true; + id.hypervisorVendor = vmNames[i]; + break; + } + } +} + +// ── /etc/machine-id ─────────────────────────────────────────────────────── + +void DeviceIdentityCollector::collectMachineId(DeviceIdentity& id) { + id.machineId = readFile("/etc/machine-id"); + // Also try /var/lib/dbus/machine-id as a fallback + if (id.machineId.empty()) + id.machineId = readFile("/var/lib/dbus/machine-id"); + + char buf[256]; + if (gethostname(buf, sizeof(buf)) == 0) + id.hostname = buf; +} + +// ── Permanent MAC addresses ─────────────────────────────────────────────── +// We want the permanent hardware MAC, not the randomised one. +// Read from /sys/class/net//address and compare to +// /sys/class/net//perm_address if the kernel exposes it. + +void DeviceIdentityCollector::collectNetworkMacs(DeviceIdentity& id) { + DIR* d = opendir("/sys/class/net"); + if (!d) return; + + struct dirent* ent; + while ((ent = readdir(d)) != nullptr) { + std::string iface = ent->d_name; + if (iface == "." || iface == ".." || iface == "lo") continue; + + // Skip virtual interfaces (tun, tap, bridge, veth, docker, wg, etc.) + std::string type = readFile("/sys/class/net/" + iface + "/type"); + if (type != "1") continue; // type 1 = Ethernet + + // Check for loopback flag + std::string flags = readFile("/sys/class/net/" + iface + "/flags"); + if (!flags.empty()) { + unsigned long f = std::stoul(flags, nullptr, 16); + if (f & 0x8) continue; // IFF_LOOPBACK + } + + // Prefer perm_address (kernel 5.8+) over address + std::string mac = readFile("/sys/class/net/" + iface + "/perm_address"); + if (mac.empty() || mac == "00:00:00:00:00:00") + mac = readFile("/sys/class/net/" + iface + "/address"); + if (mac.empty() || mac == "00:00:00:00:00:00") continue; + + // Skip multicast / locally-administered (randomised) MACs + // The first byte's LSB=1 means multicast, bit 1 = locally administered + unsigned int firstByte = 0; + sscanf(mac.c_str(), "%02x", &firstByte); + if (firstByte & 0x02) continue; // locally administered = randomised + + id.permanentMacs[iface] = mac; + } + closedir(d); +} + +// ── EFI system GUID ─────────────────────────────────────────────────────── + +void DeviceIdentityCollector::collectEfi(DeviceIdentity& id) { + // EFI variables are under /sys/firmware/efi/efivars/ + // The global EFI variable GUID is in the directory name pattern. + // We read the system GUID from the SMBIOS table exposed via EFI if present. + // Most systems expose it via DMI already; this is a belt-and-suspenders check. + struct stat st{}; + if (::stat("/sys/firmware/efi", &st) != 0) return; // not UEFI + + // Read MachineID EFI variable if set by the OS installer + std::string efiMachineId = readFile( + "/sys/firmware/efi/efivars/MachineID-8be4df61-93ca-11d2-aa0d-00e098032b8c"); + if (!efiMachineId.empty() && efiMachineId.size() > 4) + id.uefiGuid = efiMachineId.substr(4); // skip 4-byte attributes header +} + +// ── TPM Endorsement Key ─────────────────────────────────────────────────── + +void DeviceIdentityCollector::collectTpm(DeviceIdentity& /*id*/) { + // Read the TPM EK public key hash if tpm2-tools or the kernel sysfs exposes it. + // /sys/class/tpm/tpm0/device/ exists on TPM 2.0 systems. + struct stat st{}; + if (::stat("/sys/class/tpm/tpm0", &st) != 0) return; + + // Try reading the EK cert from the TPM NVRAM index via tpm2-tools. + // This requires tpm2-tools to be installed; fail silently if not. + // A real implementation would use the TSS2 library directly. + FILE* pipe = popen("tpm2_getcap handles-nv-index 2>/dev/null | head -1", "r"); + if (!pipe) return; + char buf[64] = {}; + // Assign result to suppress warn_unused_result — we only care about + // TPM presence, not what the handle output contains. + char* result = fgets(buf, sizeof(buf), pipe); + (void)result; + pclose(pipe); + + // TPM integration is deep — log presence only; EK hash collection is TODO + syslog(LOG_DEBUG, "[DeviceIdentity] TPM 2.0 present; EK hash collection TODO"); +} + +// ── Primary serial derivation ───────────────────────────────────────────── + +void DeviceIdentityCollector::derivePrimary(DeviceIdentity& id) { + // Priority: UUID > board serial > system serial > machine-id > MAC-derived + if (!id.dmiSystemUuid.empty()) { + id.primarySerial = id.dmiSystemUuid; + return; + } + if (!id.dmiBoardSerial.empty()) { + id.primarySerial = id.dmiBoardSerial; + return; + } + if (!id.dmiSystemSerial.empty()) { + id.primarySerial = id.dmiSystemSerial; + return; + } + if (!id.machineId.empty()) { + id.primarySerial = id.machineId; + return; + } + // Last resort: use the first permanent MAC + if (!id.permanentMacs.empty()) { + id.primarySerial = id.permanentMacs.begin()->second; + // Normalise: strip colons + id.primarySerial.erase( + std::remove(id.primarySerial.begin(), id.primarySerial.end(), ':'), + id.primarySerial.end()); + } +} + +// ── Hardware fingerprint ────────────────────────────────────────────────── +// SHA-256 of all stable identifiers concatenated with '|' separators. +// Used as a secondary lookup key when the primary serial alone is ambiguous. + +std::string DeviceIdentityCollector::computeFingerprint(const DeviceIdentity& id) { + std::ostringstream data; + data << id.dmiSystemUuid << "|" + << id.dmiSystemSerial << "|" + << id.dmiBoardSerial << "|" + << id.dmiChassisSerial << "|" + << id.machineId << "|"; + for (auto& [iface, mac] : id.permanentMacs) + data << mac << "|"; + + std::string s = data.str(); + unsigned char digest[SHA256_DIGEST_LENGTH]; + SHA256(reinterpret_cast(s.data()), s.size(), digest); + + std::ostringstream hex; + for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) + hex << std::hex << std::setw(2) << std::setfill('0') << (int)digest[i]; + return hex.str(); +} + +// ── Main collect entry point ────────────────────────────────────────────── + +bool DeviceIdentityCollector::collect(DeviceIdentity& out) { + collectDmi(out); + collectMachineId(out); + collectNetworkMacs(out); + collectEfi(out); + collectTpm(out); + derivePrimary(out); + out.hardwareFingerprint = computeFingerprint(out); + + if (out.primarySerial.empty()) { + syslog(LOG_ERR, "[DeviceIdentity] no stable identifier found — cannot enroll"); + return false; + } + + syslog(LOG_INFO, + "[DeviceIdentity] primary=%s fingerprint=%.16s... vm=%d oem=%d", + out.primarySerial.c_str(), + out.hardwareFingerprint.c_str(), + out.isVirtualMachine, + out.hasOemSerials); + return true; +} + +} // namespace vesperos::zte diff --git a/src/zte/DeviceIdentity.h b/src/zte/DeviceIdentity.h new file mode 100644 index 0000000..62994fa --- /dev/null +++ b/src/zte/DeviceIdentity.h @@ -0,0 +1,81 @@ +#pragma once + +#include +#include + +namespace vesperos::zte { + +// ── DeviceIdentity ──────────────────────────────────────────────────────── +// Collects every stable hardware identifier available on the device. +// These are sent to the ZTE lookup server so it can match the device +// against an enrollment record. +// +// Priority order for "the" device serial (what gets displayed and used +// as the primary lookup key): +// 1. DMI system-uuid (most stable, set by OEM/firmware) +// 2. DMI board serial (motherboard serial, OEM-set) +// 3. DMI system serial (chassis serial, OEM-set) +// 4. /etc/machine-id (set at OS install; changes on re-image) +// 5. Derived from MAC (fallback only; changes with NIC swap) + +struct DeviceIdentity { + // ── DMI / SMBIOS (OEM hardware serials) ────────────────────────────── + std::string dmiSystemUuid; // /sys/class/dmi/id/product_uuid + std::string dmiSystemSerial; // /sys/class/dmi/id/product_serial + std::string dmiBoardSerial; // /sys/class/dmi/id/board_serial + std::string dmiChassisSerial; // /sys/class/dmi/id/chassis_serial + std::string dmiProductName; // /sys/class/dmi/id/product_name + std::string dmiManufacturer; // /sys/class/dmi/id/sys_vendor + + // ── OS-level identity ───────────────────────────────────────────────── + std::string machineId; // /etc/machine-id (128-bit hex) + std::string hostname; // current hostname + + // ── Network hardware (stable MACs only — not randomised) ────────────── + // Map of interface name → permanent MAC address + std::map permanentMacs; + + // ── Firmware / TPM ──────────────────────────────────────────────────── + std::string uefiGuid; // EFI System GUID if readable + std::string tpmEkPublicHash; // SHA-256 of TPM EK public key if present + + // ── Derived / composite ─────────────────────────────────────────────── + // The single identifier used as the primary lookup key. + // Chosen from the above in priority order. + std::string primarySerial; + + // SHA-256 fingerprint of all stable identifiers combined. + // Used as a secondary lookup key and for audit logging. + std::string hardwareFingerprint; + + // True if this is a virtual machine (VMware/KVM/VirtualBox/Hyper-V/etc.) + bool isVirtualMachine = false; + std::string hypervisorVendor; + + // True if none of the OEM serials are populated (generic hardware) + bool hasOemSerials = false; +}; + +// ── DeviceIdentityCollector ─────────────────────────────────────────────── + +class DeviceIdentityCollector { +public: + // Collect all available hardware identifiers. + // Reads from /sys/class/dmi/id/, /etc/machine-id, /sys/class/net/, + // EFI vars, and TPM if available. + // Returns false and logs if no stable identifier can be found at all. + static bool collect(DeviceIdentity& out); + +private: + static std::string readFile(const std::string& path); + static void collectDmi(DeviceIdentity& id); + static void collectMachineId(DeviceIdentity& id); + static void collectNetworkMacs(DeviceIdentity& id); + static void collectEfi(DeviceIdentity& id); + static void collectTpm(DeviceIdentity& id); + static void derivePrimary(DeviceIdentity& id); + static std::string computeFingerprint(const DeviceIdentity& id); + static bool looksVirtual(const DeviceIdentity& id); +}; + +} // namespace vesperos::zte diff --git a/src/zte/ZTELookupClient.cpp b/src/zte/ZTELookupClient.cpp new file mode 100644 index 0000000..222a37d --- /dev/null +++ b/src/zte/ZTELookupClient.cpp @@ -0,0 +1,393 @@ +#include "ZTELookupClient.h" + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace vesperos::zte { + +// ── curl write callbacks ────────────────────────────────────────────────── + +static size_t curlWriteString(char* ptr, size_t size, size_t nmemb, void* ud) { + static_cast(ud)->append(ptr, size * nmemb); + return size * nmemb; +} + +// Used as a CURLOPT_WRITEFUNCTION callback — passed by pointer so the +// compiler cannot see the call site and incorrectly warns unused. +static size_t curlWriteBytes(char* ptr, size_t size, size_t nmemb, void* ud) + __attribute__((used)); +static size_t curlWriteBytes(char* ptr, size_t size, size_t nmemb, void* ud) { + auto* v = static_cast*>(ud); + v->insert(v->end(), ptr, ptr + size * nmemb); + return size * nmemb; +} + +// ── Constructor / Destructor ────────────────────────────────────────────── + +ZTELookupClient::ZTELookupClient(const std::string& serverUrl) + : mServerUrl(serverUrl) { + curl_global_init(CURL_GLOBAL_DEFAULT); +} + +ZTELookupClient::~ZTELookupClient() { + curl_global_cleanup(); +} + +// ── buildLookupRequest ──────────────────────────────────────────────────── + +std::string ZTELookupClient::buildLookupRequest(const DeviceIdentity& id) { + auto esc = [](const std::string& s) { + std::string o; + for (char c : s) { + if (c == '"') o += "\\\""; + else if (c == '\\') o += "\\\\"; + else o += c; + } + return o; + }; + + std::ostringstream j; + j << "{\n" + << " \"protocol\": \"vesper-zte/1\",\n" + << " \"identity\": {\n" + << " \"primarySerial\": \"" << esc(id.primarySerial) << "\",\n" + << " \"hardwareFingerprint\": \"" << esc(id.hardwareFingerprint) << "\",\n" + << " \"dmiSystemUuid\": \"" << esc(id.dmiSystemUuid) << "\",\n" + << " \"dmiSystemSerial\": \"" << esc(id.dmiSystemSerial) << "\",\n" + << " \"dmiBoardSerial\": \"" << esc(id.dmiBoardSerial) << "\",\n" + << " \"machineId\": \"" << esc(id.machineId) << "\",\n" + << " \"productName\": \"" << esc(id.dmiProductName) << "\",\n" + << " \"manufacturer\": \"" << esc(id.dmiManufacturer) << "\",\n" + << " \"isVirtualMachine\": " << (id.isVirtualMachine ? "true" : "false") << ",\n" + << " \"macs\": ["; + bool first = true; + for (auto& [iface, mac] : id.permanentMacs) { + if (!first) j << ", "; + j << "\"" << esc(mac) << "\""; + first = false; + } + j << "]\n }\n}\n"; + return j.str(); +} + +// ── parseLookupResponse ─────────────────────────────────────────────────── + +bool ZTELookupClient::parseLookupResponse(const std::string& json, + EnrollmentRecord& record) { + auto extract = [&](const std::string& key) -> std::string { + auto pos = json.find("\"" + key + "\":"); + if (pos == std::string::npos) return ""; + pos += key.size() + 3; + while (pos < json.size() && json[pos] == ' ') ++pos; + if (pos >= json.size()) return ""; + if (json[pos] == '"') { + auto q2 = json.find('"', pos + 1); + return (q2 == std::string::npos) ? "" : json.substr(pos + 1, q2 - pos - 1); + } + auto end = json.find_first_of(",}\n", pos); + std::string v = json.substr(pos, end - pos); + while (!v.empty() && v.back() == ' ') v.pop_back(); + return v; + }; + + std::string status = extract("status"); + if (status == "not_managed") return false; + if (status == "pending") { + syslog(LOG_INFO, "[ZTE] device registered but enrollment profile not ready"); + return false; + } + if (status != "managed") { + syslog(LOG_WARNING, "[ZTE] unexpected lookup status: %s", status.c_str()); + return false; + } + + record.organizationName = extract("name"); + record.organizationDomain = extract("domain"); + record.profileUrl = extract("url"); + record.profileUuid = extract("uuid"); + record.mdmServerUrl = extract("mdmServerUrl"); + record.customMessage = extract("message"); + record.allowSkip = (extract("allowSkip") == "true"); + record.mandatory = (extract("mandatory") != "false"); + + if (record.profileUrl.empty()) { + syslog(LOG_ERR, "[ZTE] server returned 'managed' but no profile URL"); + return false; + } + return true; +} + +// ── httpPost ────────────────────────────────────────────────────────────── + +bool ZTELookupClient::httpPost(const std::string& url, const std::string& body, + std::string& responseOut, long& codeOut) { + CURL* curl = curl_easy_init(); + if (!curl) return false; + + struct curl_slist* headers = nullptr; + headers = curl_slist_append(headers, "Content-Type: application/json"); + headers = curl_slist_append(headers, "Accept: application/json"); + headers = curl_slist_append(headers, "User-Agent: VesperOS-ZTE/1.0"); + + curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, body.c_str()); + curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)body.size()); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curlWriteString); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &responseOut); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L); + curl_easy_setopt(curl, CURLOPT_CAINFO, "/etc/ssl/certs/ca-certificates.crt"); + curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 30L); + curl_easy_setopt(curl, CURLOPT_TIMEOUT, 60L); + curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 3L); + + CURLcode res = curl_easy_perform(curl); + curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &codeOut); + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + + if (res != CURLE_OK) { + syslog(LOG_ERR, "[ZTE] HTTP POST failed: %s", curl_easy_strerror(res)); + return false; + } + return true; +} + +// ── httpDownload ────────────────────────────────────────────────────────── + +bool ZTELookupClient::httpDownload(const std::string& url, + std::vector& bytesOut) { + CURL* curl = curl_easy_init(); + if (!curl) return false; + + struct curl_slist* headers = nullptr; + headers = curl_slist_append(headers, + "Accept: application/x-vesperos-profile, application/pkcs7-mime"); + headers = curl_slist_append(headers, "User-Agent: VesperOS-ZTE/1.0"); + + curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curlWriteBytes); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &bytesOut); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L); + curl_easy_setopt(curl, CURLOPT_CAINFO, "/etc/ssl/certs/ca-certificates.crt"); + curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 30L); + curl_easy_setopt(curl, CURLOPT_TIMEOUT, 120L); + curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 3L); + curl_easy_setopt(curl, CURLOPT_MAXFILESIZE, 50L * 1024 * 1024); + + long code = 0; + CURLcode res = curl_easy_perform(curl); + curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code); + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + + if (res != CURLE_OK) { + syslog(LOG_ERR, "[ZTE] download failed: %s", curl_easy_strerror(res)); + return false; + } + if (code != 200) { + syslog(LOG_ERR, "[ZTE] download HTTP %ld from %s", code, url.c_str()); + return false; + } + if (bytesOut.empty()) { + syslog(LOG_ERR, "[ZTE] downloaded empty profile from %s", url.c_str()); + return false; + } + syslog(LOG_INFO, "[ZTE] downloaded %zu bytes from %s", bytesOut.size(), url.c_str()); + return true; +} + +// ── installViaDbus ──────────────────────────────────────────────────────── + +bool ZTELookupClient::installViaDbus(const std::vector& profileData, + std::string& uuidOut) { + DBusError err; + dbus_error_init(&err); + + DBusConnection* conn = dbus_bus_get(DBUS_BUS_SYSTEM, &err); + if (dbus_error_is_set(&err)) { + syslog(LOG_ERR, "[ZTE] D-Bus connect: %s", err.message); + dbus_error_free(&err); + return false; + } + + DBusMessage* msg = dbus_message_new_method_call( + "me.oxmc.vesperos.ProfileService", + "/me/oxmc/vesperos/ProfileService", + "me.oxmc.vesperos.IProfileService", + "InstallProfile"); + if (!msg) { dbus_connection_unref(conn); return false; } + + DBusMessageIter iter, arr; + dbus_message_iter_init_append(msg, &iter); + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, + DBUS_TYPE_BYTE_AS_STRING, &arr); + for (uint8_t b : profileData) + dbus_message_iter_append_basic(&arr, DBUS_TYPE_BYTE, &b); + dbus_message_iter_close_container(&iter, &arr); + + DBusMessage* reply = dbus_connection_send_with_reply_and_block( + conn, msg, 30000, &err); + dbus_message_unref(msg); + + if (dbus_error_is_set(&err)) { + syslog(LOG_ERR, "[ZTE] InstallProfile D-Bus error: %s: %s", + err.name, err.message); + dbus_error_free(&err); + dbus_connection_unref(conn); + return false; + } + + const char* uuid = nullptr; + dbus_message_get_args(reply, nullptr, + DBUS_TYPE_STRING, &uuid, + DBUS_TYPE_INVALID); + if (uuid) uuidOut = uuid; + + dbus_message_unref(reply); + dbus_connection_unref(conn); + syslog(LOG_INFO, "[ZTE] profile installed uuid=%s", uuidOut.c_str()); + return true; +} + +// ── lookup ──────────────────────────────────────────────────────────────── + +bool ZTELookupClient::lookup(const DeviceIdentity& identity, + EnrollmentRecord& record) { + std::string url = mServerUrl + "/api/v1/lookup"; + std::string body = buildLookupRequest(identity); + std::string response; + long code = 0; + + syslog(LOG_INFO, "[ZTE] querying %s serial=%s", + url.c_str(), identity.primarySerial.c_str()); + + if (!httpPost(url, body, response, code)) return false; + + if (code == 404) { syslog(LOG_INFO, "[ZTE] not_managed (404)"); return false; } + if (code == 202) { + syslog(LOG_INFO, "[ZTE] pending (202)"); + saveState(EnrollmentState::PENDING); + return false; + } + if (code != 200) { + syslog(LOG_WARNING, "[ZTE] lookup HTTP %ld", code); + return false; + } + return parseLookupResponse(response, record); +} + +// ── downloadAndInstall ──────────────────────────────────────────────────── + +bool ZTELookupClient::downloadAndInstall(const EnrollmentRecord& record) { + std::vector data; + if (!httpDownload(record.profileUrl, data)) return false; + + // Quick UUID sanity check before handing to vesperprofiled + if (!record.profileUuid.empty()) { + std::string s(data.begin(), data.end()); + if (s.find(record.profileUuid) == std::string::npos) { + syslog(LOG_ERR, "[ZTE] downloaded profile UUID mismatch"); + return false; + } + } + + std::string installedUuid; + if (!installViaDbus(data, installedUuid)) return false; + + saveState(EnrollmentState::ENROLLED, installedUuid); + return true; +} + +// ── enroll ──────────────────────────────────────────────────────────────── + +EnrollmentState ZTELookupClient::enroll(const DeviceIdentity& identity) { + // Prevent concurrent enrollment (e.g. two rapid NM events) + int lockFd = open(kLockFile, O_CREAT | O_RDWR, 0600); + if (lockFd >= 0 && flock(lockFd, LOCK_EX | LOCK_NB) != 0) { + syslog(LOG_INFO, "[ZTE] enrollment already in progress"); + close(lockFd); + return loadState(); + } + + EnrollmentRecord record; + EnrollmentState result = EnrollmentState::NOT_MANAGED; + + if (lookup(identity, record)) { + syslog(LOG_INFO, "[ZTE] managed by %s", record.organizationName.c_str()); + result = downloadAndInstall(record) + ? EnrollmentState::ENROLLED + : EnrollmentState::ENROLL_FAILED; + if (result == EnrollmentState::ENROLL_FAILED) + saveState(result); + } + + if (lockFd >= 0) { flock(lockFd, LOCK_UN); close(lockFd); } + return result; +} + +// ── State persistence ───────────────────────────────────────────────────── + +EnrollmentState ZTELookupClient::loadState() { + std::ifstream f(kStateFile); + if (!f) return EnrollmentState::UNKNOWN; + std::string line; std::getline(f, line); + if (line.find("\"state\":\"enrolled\"") != std::string::npos) return EnrollmentState::ENROLLED; + if (line.find("\"state\":\"not_managed\"") != std::string::npos) return EnrollmentState::NOT_MANAGED; + if (line.find("\"state\":\"pending\"") != std::string::npos) return EnrollmentState::PENDING; + if (line.find("\"state\":\"failed\"") != std::string::npos) return EnrollmentState::ENROLL_FAILED; + if (line.find("\"state\":\"disabled\"") != std::string::npos) return EnrollmentState::DISABLED; + return EnrollmentState::UNKNOWN; +} + +void ZTELookupClient::saveState(EnrollmentState state, const std::string& uuid) { + const char* s = "unknown"; + switch (state) { + case EnrollmentState::ENROLLED: s = "enrolled"; break; + case EnrollmentState::NOT_MANAGED: s = "not_managed"; break; + case EnrollmentState::PENDING: s = "pending"; break; + case EnrollmentState::ENROLL_FAILED: s = "failed"; break; + case EnrollmentState::DISABLED: s = "disabled"; break; + default: break; + } + std::time_t now = std::time(nullptr); + std::ostringstream j; + j << "{\"state\":\"" << s << "\",\"timestamp\":" << now; + if (!uuid.empty()) j << ",\"profileUuid\":\"" << uuid << "\""; + j << "}\n"; + + std::string tmp = std::string(kStateFile) + ".tmp"; + { std::ofstream f(tmp); f << j.str(); } + ::rename(tmp.c_str(), kStateFile); +} + +std::string ZTELookupClient::loadConfiguredServerUrl() { + std::ifstream f("/etc/vesperprofiled/zte.conf"); + if (!f) return kDefaultServerUrl; + std::string line; + while (std::getline(f, line)) { + if (line.empty() || line[0] == '#') continue; + auto eq = line.find('='); + if (eq == std::string::npos) continue; + if (line.substr(0, eq) == "server_url") return line.substr(eq + 1); + } + return kDefaultServerUrl; +} + +} // namespace vesperos::zte diff --git a/src/zte/ZTELookupClient.h b/src/zte/ZTELookupClient.h new file mode 100644 index 0000000..4841bc8 --- /dev/null +++ b/src/zte/ZTELookupClient.h @@ -0,0 +1,106 @@ +#pragma once + +#include "DeviceIdentity.h" + +#include +#include +#include +#include + +namespace vesperos::zte { + +// ── Enrollment state ────────────────────────────────────────────────────── + +enum class EnrollmentState { + UNKNOWN, // Not yet checked + NOT_MANAGED, // Server confirmed: this device is not in any MDM record + PENDING, // Device is registered but enrollment profile not ready yet + ENROLLED, // vesperprofiled has installed the MDM profile successfully + ENROLL_FAILED, // Download or install failed (will retry) + DISABLED, // ZTE disabled locally (e.g. user opted out in installer) +}; + +struct EnrollmentRecord { + std::string organizationName; + std::string organizationDomain; + std::string profileUrl; // HTTPS URL to download the signed .vconfig + std::string profileUuid; // Expected UUID of the profile (for verification) + std::string mdmServerUrl; // Informational: the MDM server URL + bool allowSkip; // Whether the user can skip enrollment + bool mandatory; // Whether enrollment is required to use the device + std::string customMessage; // Shown to user during enrollment prompt +}; + +// ── ZTELookupClient ─────────────────────────────────────────────────────── + +class ZTELookupClient { +public: + // ZTE server base URL. Overridable via /etc/vesperprofiled/zte.conf. + // Default points to oxmc's hosted ZTE server; organisations self-host this. + static constexpr const char* kDefaultServerUrl = + "https://zte.vesperos.oxmc.me"; + + // Local state file — persists enrollment state across reboots. + static constexpr const char* kStateFile = + "/var/lib/vesperprofiled/zte_state.json"; + + // Lock file — prevents concurrent enrollment attempts. + static constexpr const char* kLockFile = + "/run/vesperprofiled/zte.lock"; + + explicit ZTELookupClient(const std::string& serverUrl = kDefaultServerUrl); + ~ZTELookupClient(); + + // ── Core enrollment flow ────────────────────────────────────────────── + + // Step 1: Query the ZTE server with the device's hardware identity. + // Returns true and populates record if this device is managed. + // Returns false if the device is not in any enrollment record (NOT_MANAGED). + bool lookup(const DeviceIdentity& identity, EnrollmentRecord& record); + + // Step 2: Download the enrollment profile from record.profileUrl. + // Verifies the TLS chain, checks the downloaded profile's UUID matches, + // then hands it to vesperprofiled via D-Bus InstallProfile. + // Returns true if the profile was downloaded and installed successfully. + bool downloadAndInstall(const EnrollmentRecord& record); + + // Combined: lookup + install in one call. + // Returns the resulting EnrollmentState. + EnrollmentState enroll(const DeviceIdentity& identity); + + // ── State persistence ───────────────────────────────────────────────── + + EnrollmentState loadState(); + void saveState(EnrollmentState state, const std::string& profileUuid = ""); + + // ── Configuration ───────────────────────────────────────────────────── + + // Load ZTE server URL from /etc/vesperprofiled/zte.conf if present. + static std::string loadConfiguredServerUrl(); + +private: + std::string mServerUrl; + + // Perform the HTTPS lookup POST request. + // Body: JSON with hardware identity. Response: JSON enrollment record or 404. + bool httpPost(const std::string& url, + const std::string& body, + std::string& responseOut, + long& httpCodeOut); + + // Download the profile over HTTPS with certificate pinning. + bool httpDownload(const std::string& url, + std::vector& bytesOut); + + // Install the profile bytes via vesperprofiled D-Bus. + bool installViaDbus(const std::vector& profileData, + std::string& uuidOut); + + // Build the JSON lookup request body. + std::string buildLookupRequest(const DeviceIdentity& identity); + + // Parse the JSON enrollment record from the server response. + bool parseLookupResponse(const std::string& json, EnrollmentRecord& record); +}; + +} // namespace vesperos::zte diff --git a/systemd/vesperprofiled.service b/systemd/vesperprofiled.service new file mode 100644 index 0000000..3be8cd3 --- /dev/null +++ b/systemd/vesperprofiled.service @@ -0,0 +1,55 @@ +[Unit] +Description=VesperOS Profile Daemon (profiles + Zero-Touch Enrollment) +Documentation=https://vesperos.oxmc.me/docs/vesperprofiled + +# Must run before cloud-init so preinstalled profiles (WiFi, MDM drop-ins, +# first-boot config) are on disk when cloud-init starts. +Before=cloud-init-local.service cloud-init.service +After=local-fs.target dbus.service systemd-udev-settle.service + +# Start after NetworkManager so ZTE can immediately check current +# connectivity state rather than waiting for a StateChanged signal. +After=NetworkManager.service +# But don't hard-require NM — ZTE degrades gracefully if NM isn't present. +Wants=NetworkManager.service + +[Service] +Type=notify +NotifyAccess=main + +ExecStart=/usr/sbin/vesperprofiled +ExecReload=/bin/kill -HUP $MAINPID + +User=root +Group=root + +# Restart the whole daemon (profile service + ZTE watcher) on crash. +Restart=on-failure +RestartSec=5s +TimeoutStartSec=60 + +RuntimeDirectory=vesperprofiled +RuntimeDirectoryMode=0750 +StateDirectory=vesperprofiled +StateDirectoryMode=0700 + +# Writable paths — profile daemon writes config drops, ZTE writes state +ReadWritePaths=/etc /var/lib/vesperprofiled /run/vesperprofiled \ + /var/lib/gnome-initial-setup + +SystemCallFilter=@system-service @file-system @network-io @process +SystemCallErrorNumber=EPERM + +NoNewPrivileges=false +PrivateTmp=true +ProtectKernelLogs=true +ProtectKernelModules=true +ProtectControlGroups=true + +StandardOutput=journal +StandardError=journal +SyslogIdentifier=vesperprofiled + +[Install] +WantedBy=multi-user.target +WantedBy=cloud-init.target diff --git a/vesperprofiled.rc b/vesperprofiled.rc new file mode 100644 index 0000000..19369cf --- /dev/null +++ b/vesperprofiled.rc @@ -0,0 +1,24 @@ +# vendor/oxmc/vesperprofiled/vesperprofiled.rc +# ───────────────────────────────────────────────────────────────────────── +# Android init language script — starts vesperprofiled at boot. +# Placed in /system/etc/init/ by the build system via init_rc in Android.bp. +# ───────────────────────────────────────────────────────────────────────── + +service vesperprofiled /system/bin/vesperprofiled + class main + user system + group system + # Capabilities needed to write to /data/system/vesperos/ and to + # call privileged Binder services (DevicePolicyManager, KeyChain, etc.) + capabilities SETUID SETGID + # Restart automatically if the daemon crashes. + restart_period 5 + # SELinux domain (matches the type defined in vesperprofiled.te) + seclabel u:r:vesperprofiled:s0 + # Only start once the filesystem is decrypted and /data is available. + on_property:vold.decrypt=trigger_restart_framework + +# Create the data directory on first boot. +on post-fs-data + mkdir /data/system/vesperos 0700 system system + mkdir /data/system/vesperos/profiles 0700 system system diff --git a/vesperprofiled.xml b/vesperprofiled.xml new file mode 100644 index 0000000..d947ff9 --- /dev/null +++ b/vesperprofiled.xml @@ -0,0 +1,14 @@ + + + + + me.oxmc.vesperos.profile + 1 + IVesperProfileService/default + + diff --git a/zte.conf.example b/zte.conf.example new file mode 100644 index 0000000..9b4bc47 --- /dev/null +++ b/zte.conf.example @@ -0,0 +1,34 @@ +# /etc/vesperprofiled/zte.conf +# VesperOS Zero-Touch Enrollment configuration +# ───────────────────────────────────────────────────────────────────────── +# This file is read by vesper-zte on startup. +# Lines beginning with # are comments. +# All settings are optional — defaults are shown. + +# ZTE lookup server URL. +# Default: https://zte.vesperos.oxmc.me (oxmc hosted, public) +# Set this to your own server for self-hosted ZTE. +# +# server_url=https://zte.vesperos.oxmc.me + +# Disable ZTE entirely on this device. +# Set to "1" to prevent automatic enrollment. +# Can also be set by writing "disabled" to /var/lib/vesperprofiled/zte_state.json +# +# disabled=0 + +# Maximum number of enrollment retry attempts before giving up. +# 0 = retry indefinitely on every connectivity event. +# +# max_retries=0 + +# Delay between enrollment retries in seconds. +# The actual delay uses exponential backoff up to this maximum. +# +# retry_max_delay=300 + +# TLS CA bundle for verifying the ZTE server certificate. +# Override if you use a private CA for your self-hosted ZTE server. +# The server certificate must chain to this CA. +# +# ca_bundle=/etc/ssl/certs/ca-certificates.crt