Review for Source Package: msgraph [Summary] src:msgraph is a fairly new/young package, that provides gnome-online-accounts integration to Microsoft services (e.g. OneDrive), using the MS Graph API. It's currently pure Ubuntu delta, as it has not been uploaded to Debian yet. Upstream's initial commit was in Februrary 2024. Overall, the package seems to be relatively well structured, but didn't have a long history to proof proper maintenance. MIR team ACK under the constraint to resolve the below listed required TODOs and as much as possible having a look at the recommended TODOs. This does need a security review, so I'll assign ubuntu-security List of specific binary packages to be promoted to main: libmsgraph-0-1 Specific binary packages built, but NOT to be promoted to main: libmsgraph-dev Notes: #0 - Official Microsoft Graph SDK alternatives are listed here, but are not packaged in Ubuntu: https://learn.microsoft.com/en-us/graph/sdks/sdks-overview#supported-languages #1 - This is a pretty young package, the Desktop team takes responsibility for maintaining it during the LTS cycle, should upstream vanish. #2 - Asking security review for REST/Json parsing, certificates and centralized online accounts Required TODOs: #3 - The package should get a team bug subscriber before being promoted #4 - should not (build-)depend on libgoa-* => not sure what to do about that, as it's an essential part of this package. I need to consult fellow MIR team members. Recommended TODOs: #5 - Consider pushing it into Debian, too. #6 - Consider fixing "dh_girepository" and "dpkg-gencontrol" build-time warnings, to improve packaging (see "[Upstream red flags]" below) [Rationale, Duplication and Ownership] There is no other package in main providing the same functionality. A team is committed to own long term maintenance of this package. (~desktop-packages) The rationale given in the report seems valid and useful for Ubuntu (Microsoft OneDrive support in GNOME) [Dependencies] OK: - no other Dependencies to MIR due to this - SRCPKG checked with `check-mir` - all dependencies can be found in `seeded-in-ubuntu` (already in main) - none of the (potentially auto-generated) dependencies (Depends and Recommends) that are present after build are not in main - No dependencies in main that are only superficially tested requiring more tests now. Problems: - dev/-debug/-doc packages that need exclusion: libmsgraph-dev depends on librest-dev in universe [Embedded sources and static linking] OK: - no embedded source present - no static linking - does not have unexpected Built-Using entries - not a go package, no extra constraints to consider in that regard - not a rust package, no extra constraints to consider in that regard Problems: None [Security] OK: - does not run a daemon as root - does not use webkit1,2 - does not use lib*v8 directly - does not expose any external endpoint (port/socket/... or similar) - does not process arbitrary web content (Not considering MS Graph API as "arbitrary") - does not integrate arbitrary javascript into the desktop - does not deal with system authentication (eg, pam), etc) - does not deal with security attestation (secure boot, tpm, signatures) - this makes appropriate (for its exposure) use of established risk mitigation features (dropping permissions, using temporary environments, restricted users/groups, seccomp, systemd isolation features, apparmor, ...) Problems: - history of CVEs does not look concerning (but it's fairly young, initial release 2024-02-13) - does parse data formats (REST/json structures) from an untrusted source. - does use centralized online accounts (allow gnome-online-accounts connecting to Microsoft services) - does deal with cryptography (certificates) [Common blockers] OK: - does not FTBFS currently - does have a test suite that runs at build time - test suite fails will fail the build upon error. - does have a non-trivial test suite that runs as autopkgtest - This does not need special HW for build or test - no new python2 dependency Problems: None [Packaging red flags] OK: - symbols tracking is in place. - debian/watch is present and looks ok (if needed, e.g. non-native) - the current release is packaged - promoting this does not seem to cause issues for MOTUs that so far maintained the package - no massive Lintian warnings - debian/rules is rather clean - It is not on the lto-disabled list Problems: - Ubuntu does carry a delta (full package, not packaged in Debian) - Upstream update history is sporadic (very few releases to date, 0.1.0, 0.2.0 & 0.2.1) - Debian/Ubuntu update history is sporadic [Upstream red flags] OK: - no Errors during the build - no incautious use of malloc/sprintf (as far as we can check it) - no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH (usage is OK inside tests) - no use of user nobody - no use of setuid / setgid - no important open bugs (crashers, etc) in Debian or Ubuntu - no dependency on webkit, qtwebkit, seed - not part of the UI for extra checks - no translation present, but none needed for this case (user visible)? Problems: - build-dependency on libgoa-* - warnings during build, might be worth investigation to improve packaging: dh_girepository: warning: Missing Build-Depends: gir1.2-gobject-2.0-dev (ideally with ) dh_girepository: warning: Missing Build-Depends: gir1.2-gio-2.0-dev (ideally with ) dh_girepository: warning: libgoa-1.0-dev should have Provides: gir1.2-goa-1.0-dev (= ${binary:Version}) dh_girepository: warning: Missing Build-Depends: gir1.2-json-1.0-dev (ideally with ) dh_girepository: warning: librest-dev should have Provides: gir1.2-rest-1.0-dev (= ${binary:Version}) dh_girepository: warning: Missing Build-Depends: gir1.2-soup-3.0-dev (ideally with ) dh_installdeb dh_gencontrol dpkg-gencontrol: warning: package libmsgraph-dev: substitution variable ${gir:Depends} unused, but is defined dpkg-gencontrol: warning: package libmsgraph-dev: substitution variable ${gir:Provides} unused, but is defined