Skip to content

Use libreoffice still#19

Open
duchenean wants to merge 3 commits into
masterfrom
PM-4189_libreoffice_25.2
Open

Use libreoffice still#19
duchenean wants to merge 3 commits into
masterfrom
PM-4189_libreoffice_25.2

Conversation

@duchenean
Copy link
Copy Markdown
Contributor

@duchenean duchenean commented Feb 10, 2026

Summary by CodeRabbit

  • Chores
    • Upgraded LibreOffice container image from 7.3 to 25.2 across deployment configs.
    • Enabled LibreOffice Still PPA in the build and expanded LibreOffice + utility packages installed.
    • Added a build-time LibreOffice version check (build fails if installed version mismatches expected).
    • Added maintainer metadata and integrated ruby/python/docsplit installation and cleanup into the build.

coderabbitai[bot]

This comment was marked as outdated.

@duchenean duchenean force-pushed the PM-4189_libreoffice_25.2 branch from 24e9324 to 0abf87d Compare February 10, 2026 13:39
coderabbitai[bot]

This comment was marked as off-topic.

@duchenean duchenean force-pushed the PM-4189_libreoffice_25.2 branch from 0abf87d to f3d62c6 Compare February 10, 2026 13:41
@IMIO IMIO deleted a comment from coderabbitai Bot Feb 10, 2026
@IMIO IMIO deleted a comment from coderabbitai Bot Feb 10, 2026
@IMIO IMIO deleted a comment from coderabbitai Bot Feb 10, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 10, 2026

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
{"name":"HttpError","status":404,"request":{"method":"PATCH","url":"https://api.github.com/repos/IMIO/buildout.pm/issues/comments/3877975386","headers":{"accept":"application/vnd.github.v3+json","user-agent":"octokit.js/0.0.0-development octokit-core.js/7.0.6 Node.js/24","authorization":"token [REDACTED]","content-type":"application/json; charset=utf-8"},"body":{"body":"<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\n<!-- walkthrough_start -->\n\n<details>\n<summary>📝 Walkthrough</summary>\n\n## Walkthrough\n\nAdds LibreOffice Still PPA and a LO_VERSION build-arg with runtime version verification to Docker base and latest images; updates libreoffice service image tags from 7.3 to 25.2 in three docker-compose files.\n\n## Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**Dockerfiles — PPA, LO_VERSION, install flow** <br> `docker/Dockerfile-base`, `docker/Dockerfile-latest`|Enable `libreoffice-still` PPA, consolidate apt installs, introduce `ARG LO_VERSION` and a post-install LibreOffice version check (fail build if mismatch), add/adjust installs (Ruby, Python deps, docsplit), reorder RUN into set -eux multi-step flow, and cleanup apt lists.|\n|**Docker Compose — image bumps** <br> `docker/docker-compose.yml`, `docker/docker-compose-dev.yml`, `docker/docker-compose-minimal.yml`|Bump `libreoffice` service image tag from `harbor.imio.be/common/libreoffice:7.3` to `harbor.imio.be/common/libreoffice:25.2`.|\n\n## Estimated code review effort\n\n🎯 3 (Moderate) | ⏱️ ~20 minutes\n\n## Poem\n\n> 🐰 I hopped into builds with a twitchy nose,  \n> > added a PPA where the LibreOffice grows.  \n> > I checked the version with a careful hop—  \n> > \"LO_VERSION, match!\" or the build must stop.  \n> > Cheers to images newer and spry, nibble a carrot, bye!\n\n</details>\n\n<!-- walkthrough_end -->\n\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 3</summary>\n\n<details>\n<summary>✅ Passed checks (3 passed)</summary>\n\n|     Check name     | Status   | Explanation                                                                                                                                                                                                                                                    |\n| :----------------: | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n|  Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled.                                                                                                                                                                                                    |\n|     Title check    | ✅ Passed | The title 'Use libreoffice still' is directly related to the main change in the pull request, which replaces LibreOffice with the libreoffice-still PPA and updates the version from 7.3 to 25.2 across multiple Dockerfile and docker-compose configurations. |\n| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.                                                                                                                                                     |\n\n</details>\n\n<sub>✏️ Tip: You can configure your own custom pre-merge checks in the settings.</sub>\n\n</details>\n\n<!-- pre_merge_checks_walkthrough_end -->\n\n<!-- finishing_touch_checkbox_start -->\n\n<details>\n<summary>✨ Finishing touches</summary>\n\n<details>\n<summary>🧪 Generate unit tests (beta)</summary>\n\n- [ ] <!-- {\"checkboxId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Create PR with unit tests\n- [ ] <!-- {\"checkboxId\": \"07f1e7d6-8a8e-4e23-9900-8731c2c87f58\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Post copyable unit tests in a comment\n- [ ] <!-- {\"checkboxId\": \"6ba7b810-9dad-11d1-80b4-00c04fd430c8\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Commit unit tests in branch `PM-4189_libreoffice_25.2`\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n\n\n---\n\nNo actionable comments were generated in the recent review. 🎉\n\n<details>\n<summary>🧹 Recent nitpick comments</summary><blockquote>\n\n<details>\n<summary>docker/Dockerfile-latest (1)</summary><blockquote>\n\n`91-110`: **Duplicated LibreOffice PPA + package installation across base and latest images.**\n\nSince `Dockerfile-latest` uses `FROM harbor.imio.be/delib/iadelib:base` (built from `Dockerfile-base`), and `Dockerfile-base` already adds the `libreoffice-still` PPA and installs these exact LO packages (lines 93–116 there), this block re-adds the PPA and re-installs the same packages, creating an extra layer for no functional gain.\n\nConsider removing the PPA addition and LO install from `Dockerfile-latest` and keeping only the version check, since the base image already provides these packages. If you want the check as a safety gate, a simpler assertion would suffice:\n\n<details>\n<summary>Proposed simplification</summary>\n\n```diff\n USER root\n-RUN set -eux; \\\n-    add-apt-repository -y ppa:libreoffice/libreoffice-still; \\\n-    apt-get update -qqy; \\\n-    apt-get install -qqy --no-install-recommends \\\n-      default-jre-headless \\\n-      libreoffice-java-common \\\n-      libreoffice-writer \\\n-      libreoffice-calc \\\n-      libreoffice-script-provider-python; \\\n-    \\\n-    if ! libreoffice --version | grep -q \"^LibreOffice ${LO_VERSION}\\.\"; then \\\n+RUN set -eux; \\\n+    if ! libreoffice --version | grep -q \"^LibreOffice ${LO_VERSION}\\.\"; then \\\n       echo >&2 \"ERROR: Expected LibreOffice ${LO_VERSION}.x but got:\"; \\\n       libreoffice --version >&2 || true; \\\n-      echo >&2 \"APT candidate versions for libreoffice-common:\"; \\\n-      apt-cache policy libreoffice-common >&2 || true; \\\n       exit 1; \\\n-    fi; \\\n-    \\\n-    rm -rf /var/lib/apt/lists/*\n+    fi\n```\n</details>\n\nIf `Dockerfile-latest` may also be built on a different base image that doesn't include LO, then disregard this—but please add a comment explaining the intent.\n\n</blockquote></details>\n\n</blockquote></details>\n\n<!-- tips_start -->\n\n---\n\nThanks for using [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=IMIO/buildout.pm&utm_content=19)! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.\n\n<details>\n<summary>❤️ Share</summary>\n\n- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)\n- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)\n- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)\n- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)\n\n</details>\n\n<sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub>\n\n<!-- tips_end -->\n\n<!-- internal state start -->\n\n\n<!-- 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 -->\n\n<!-- internal state end -->"},"request":{"retryCount":1}},"response":{"url":"https://api.github.com/repos/IMIO/buildout.pm/issues/comments/3877975386","status":404,"headers":{"access-control-allow-origin":"*","access-control-expose-headers":"ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset","content-encoding":"gzip","content-security-policy":"default-src 'none'","content-type":"application/json; charset=utf-8","date":"Tue, 10 Feb 2026 15:30:24 GMT","referrer-policy":"origin-when-cross-origin, strict-origin-when-cross-origin","server":"github.com","strict-transport-security":"max-age=31536000; includeSubdomains; preload","transfer-encoding":"chunked","vary":"Accept-Encoding, Accept, X-Requested-With","x-accepted-github-permissions":"issues=write; pull_requests=write","x-content-type-options":"nosniff","x-frame-options":"deny","x-github-api-version-selected":"2022-11-28","x-github-media-type":"github.v3; format=json","x-github-request-id":"901B:2DD026:9465931:2830733A:698B4F10","x-ratelimit-limit":"12500","x-ratelimit-remaining":"12427","x-ratelimit-reset":"1770738439","x-ratelimit-resource":"core","x-ratelimit-used":"73","x-xss-protection":"0"},"data":{"message":"Not Found","documentation_url":"https://docs.github.com/rest/issues/comments#update-an-issue-comment","status":"404"}}}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant