Testers needed: Manjaro Data Donor

Not every data you collect is regulated by the GDPR. The GDPR is about personal data, that is data that may identify a person or be associated with a person through “other means”.

For example an IP address at a certain point in time is personal, because a law enforcement agency can ask an internet provider to associate that IP address with your physical address. And while IP addresses were stored in Matomo to distinguish pings they were hashed and so are not considered personal data.

1 Like

My test (was for view output differences)

[2024-11-02T20:47:26] ERROR calling inxi: Expecting value: line 1 column 1 (char 0)
[2024-11-02T20:47:26] INFO Command 'xrandr' failed with: 'Command 'xrandr' returned non-zero exit status 127.'

first test : not nice. inxi not compatible ?

[Unit]
Description=MMD manjaro service
After=network.target

[Service]
Type=simple
ExecStart=/home/patrick/workspace/manjaro/mdd/mdd.py --dry-run --log DEBUG

[Install]
WantedBy=multi-user.target

run as system and not user
output good witout inxi but not all info, as:

  "meta": {
    "inxi": false
  },
 ...
  "desktop": {
    "cli": "/bin/bash",
    "gui": "KDE",
    "dm": null,
    "wm": "kwin",
    "display": "x11",
    "display_with": null
  }

I would but

error: target not found: mdd

Ok, I installed the package directly from pamac, it installed the dependencies and the package automatically, following the guide, I did not detect any problem, it executed correctly, I think it sent the data correctly, and it executed without needing administrator permissions. But anyway, im send a mdd --log DEBUG just in case of missed something important.


Succesful sent at 2024-11-02 17:11:23

I really like being able to support the project because, as I mentioned in a previous post, I am interested in being able to help since I am not a programmer, nor am I very creative, just barely organized. And at the moment, being able to provide useful information to help improve the project in some way pleases me. I just feel it is somewhat direct because there is no announcement or warning that this will be implemented, for example, in new installations. Personally, I know that they will not misuse the information, but will it really be safe in the future?

1 Like

Refresh mirrors first you must, young Padawan.

3 Likes

I had the same error “target not found” while trying to install mdd from Konsole. I supposed it must be a non updated mirror.

Surprisingly tried to install from Pamac one minute later and installed without problems!!! :astonished:

First tried Dry-run and then send data. :+1:

Nice bit of data. Very informative.

Welcome to MDD - The Manjaro Data Donor
Preparing data submission...

------------------------------------------
 Would send the following data (dry run)
------------------------------------------
{
    "meta": {
        "version": 1,
        "timestamp": "2024-11-02T20:37:40.887462+00:00",
        "device_id": "3c63cd61-4f6e-50aa-878c-7c501fb1a886",
        "distro_id": "manjaro",
        "release": "24.1.1",
        "inxi": true
    },
    "system": {
        "kernel": "6.10.13-3-MANJARO",
        "form_factor": "laptop",
        "install_date": "2024-09-10T10:07:58+00:00",
        "product_name": "W54_W94_W955TU,-T,-C",
        "product_family": "To be filled by O.E.M.",
        "sys_vendor": "Notebook",
        "board_name": "W54_W94_W955TU,-T,-C"
    },
    "boot": {
        "uefi": true,
        "uptime_seconds": 3513
    },
    "cpu": {
        "arch": "x86_64",
        "model": "Intel Pentium N3540",
        "cores": 4,
        "threads": 4
    },
    "memory": {
        "ram_gb": 7.638637542724609,
        "swap_gb": 20.019527435302734
    },
    "graphics": {
        "comp": "kwin_wayland",
        "dri": "crocus",
        "gpus": [
            {
                "vendor": "CLEVO/KAPOK",
                "model": "Intel Atom Processor Z36xxx/Z37xxx Series Graphics & Display",
                "driver": "i915"
            }
        ],
        "outputs": [
            {
                "model": null,
                "res": "1607x904",
                "refresh": 0,
                "dpi": 0,
                "size": "N/A"
            }
        ]
    },
    "audio": {
        "servers": [
            {
                "name": "PipeWire",
                "active": true
            }
        ]
    },
    "disk": {
        "disks": [
            {
                "size_gb": 931.5133895874023,
                "root": {
                    "size_gb": 63.4765625,
                    "fstype": "ext4",
                    "crypt": false
                },
                "home": {
                    "size_gb": 847.7223582267761,
                    "fstype": "ext4",
                    "crypt": false
                }
            }
        ],
        "windows": false
    },
    "locale": {
        "region": "en_AU.UTF-8",
        "language": "en",
        "timezone": "Australia/Brisbane"
    },
    "package": {
        "last_update": "2024-10-31T18:23:09+10:00",
        "branch": "stable",
        "pkgs": 1502,
        "foreign_pkgs": 6,
        "pkgs_update_pending": 0,
        "flatpaks": 9,
        "pacman_mirrors": {
            "total": 8,
            "ok": 8,
            "country_config": ""
        }
    },
    "desktop": {
        "cli": "/bin/bash",
        "gui": "KDE Plasma",
        "dm": "SDDM",
        "wm": "kwin_wayland",
        "display": "wayland",
        "display_with": "Xwayland"
    }
}
------------------------------------------

Note: Skipping data submission because of dry run.

and…

Welcome to MDD - The Manjaro Data Donor
Preparing data submission...

------------------------------------------
 Would send the following data (dry run)
------------------------------------------
{
    "meta": {
        "version": 1,
        "timestamp": "2024-11-02T20:47:25.573753+00:00",
        "device_id": "61dfe8ed-f9e1-5965-bd1e-ab6475515f11",
        "distro_id": "manjaro",
        "release": "24.1.1",
        "inxi": true
    },
    "system": {
        "kernel": "6.6.54-2-MANJARO",
        "form_factor": "convertible",
        "install_date": "2024-07-03T10:13:01+00:00",
        "product_name": "StarLite",
        "product_family": "I5",
        "sys_vendor": "Star Labs",
        "board_name": "StarLite"
    },
    "boot": {
        "uefi": true,
        "uptime_seconds": 138548
    },
    "cpu": {
        "arch": "x86_64",
        "model": "Intel N200",
        "cores": 4,
        "threads": 4
    },
    "memory": {
        "ram_gb": 15.468299865722656,
        "swap_gb": 19.951168060302734
    },
    "graphics": {
        "comp": "kwin_wayland",
        "dri": "iris",
        "gpus": [
            {
                "vendor": null,
                "model": "Intel Alder Lake-N [UHD Graphics]",
                "driver": "i915"
            }
        ],
        "outputs": [
            {
                "model": "BOE Display 0x0b36",
                "res": "2160x1440",
                "refresh": 0,
                "dpi": 207.0,
                "size": "265x177"
            }
        ]
    },
    "audio": {
        "servers": [
            {
                "name": "PipeWire",
                "active": true
            }
        ]
    },
    "disk": {
        "disks": [
            {
                "size_gb": 476.93978118896484,
                "root": {
                    "size_gb": 476.6448435783386,
                    "fstype": "ext4",
                    "crypt": false
                },
                "home": null
            }
        ],
        "windows": false
    },
    "locale": {
        "region": "en_AU.UTF-8",
        "language": "en",
        "timezone": "Australia/Brisbane"
    },
    "package": {
        "last_update": "2024-11-03T06:45:53+10:00",
        "branch": "stable",
        "pkgs": 1383,
        "foreign_pkgs": 1,
        "pkgs_update_pending": 0,
        "flatpaks": 0,
        "pacman_mirrors": {
            "total": 8,
            "ok": 7,
            "country_config": ""
        }
    },
    "desktop": {
        "cli": "/bin/bash",
        "display": "unspecified",
        "display_with": "Xwayland"
    }
}
------------------------------------------

Note: Skipping data submission because of dry run.

I’m currently working on that but I noticed at least in a Wayland session, when I run inxi as root then it fills in the Monitor-* data, otherwise as use it doesn’t (although I’m able to gather the data as user via wayland-info and xrandr).

@omano Can you try if the same holds for you? When you run inxi or mdd as root, then the Monitor-* data is populated more?

EDIT: inxi definitely has the functionality to gather monitor data on Wayland through wayland-info: inxi/inxi at a2b5fd25d939175c262059d86246a9f03ca68ec6 - smxi/inxi - Codeberg.org

There must be an issue with it because I can get the monitor data just fine with wayland-info on a regular user account while it breaks with inxi when not being root.

omano  ~ $  sudo mdd --dry-run
[sudo] password for omano: 
Welcome to MDD - The Manjaro Data Donor
Preparing data submission...
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
Traceback (most recent call last):
  File "/usr/bin/mdd", line 751, in <module>
    main()
  File "/usr/bin/mdd", line 716, in main
    data = get_device_data(args.telemetry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/mdd", line 661, in get_device_data
    "audio": get_audio_info(),
             ^^^^^^^^^^^^^^^^
  File "/usr/bin/mdd", line 410, in get_audio_info
    pulse_out = get_command_output("pactl info").split("\n")
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'split'

Doesn’t seem to run with sudo

I will try it out when it is stable enough.
Additionally you could configure this script to run once as deamon (systemd service). When the script or Manjaro (new installation, purchased device with Manjaro preinstalled etc.) itself starts on a device for the first time

But that’s where the opt-in/opt-out debate is going to become an issue.

2 Likes

Popup, click YES/NO, no debate, no issue.

2 Likes

That is generally not how systemd services are configured. There is a distinct difference between things running at the user level, things running at the user’s GUI level, and things running at the system-wide level.

1 Like

I added a patch to the repo. Can you checkout the source and try to run the script directly?

There are probably many solutions, like an autostart desktop file like for Manjaro-Hello, which can open a popup, and enable or disable the service. This way you can add the program to all Manjaro installation by adding it as a dependency of a core Manjaro package, and ask for consent to be OK with GDPR.

The patch you sent did not help, same issue when running with sudo.

omano  ~ $  sudo mdd --dry-run
Welcome to MDD - The Manjaro Data Donor
Preparing data submission...
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
Traceback (most recent call last):
  File "/usr/bin/mdd", line 753, in <module>
    main()
  File "/usr/bin/mdd", line 718, in main
    data = get_device_data(args.telemetry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/mdd", line 663, in get_device_data
    "audio": get_audio_info(),
             ^^^^^^^^^^^^^^^^
  File "/usr/bin/mdd", line 412, in get_audio_info
    pulse_out = get_command_output("pactl info").split("\n")
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'split'

Since this contains enough information to fingerprint the machine AND an uuid, it is indeed in the scope of GDPR. So the only option is opt in, just like the cookie stuff on every website.
Pushing it to existing users should trigger some form of dialog on the next startup (explanation, enable, disable).
On new installs you can probably hide it somwhere in the calamares welcome messages in the spirit of “if you continue to install you agree” which is of course a very bad taste. Still, the right honest thing to do will be to ask and provide a toggle in calamares for it.
Or just install, but do not enable, instead show a dialogbon next startup like for old users.

3 Likes

My own ignorance surrounding GDPR will like shine brightly.

Does fingerprinting a specific computer alone violate GDPR?

Or, does that need additional vectors to identify an individual or entity, and or the location of the computer?

Does the data collected by MDD need to meet the threshold of being able to identify an an individual or entity for GDPR protections to apply?

I think it would be nice to see the current timestamp of the data being viewed on the metrics page.

Refreshing the mirrors worked.

Love the map - like the pandemic, let’s watch it spread :wink:

6 Likes

That depends on what you mean by fingerprinting.

In this case the answer is no.

Yes - It requires personal information - name, location as in address, email, phone, ssn etc.

What do you mean?

GDPR covers personal identifiables such as name, location, address, email, phone, passport, drivers licence number, passport number, picture etc.

GDPR is not about identifying generic hardware info.

2 Likes