Re: [Rpm-maint] [rpm-software-management/rpm] Add FA_REFLINK file action (PR #2557)
@pmatilai Thanks for the comments. I tried to address them. Limiting reflinking to whole files would be a serious limitation. We wouldn't be able to use the RPM extents format. And I imagine that other users might like to have the possibility to reflink partial files. -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/2557#issuecomment-1702865171 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Add FA_REFLINK file action (PR #2557)
@rphibel pushed 1 commit. f659678235ea6839e924dec94d39f8fba272c139 Add FA_REFLINK file action -- View it on GitHub: https://github.com/rpm-software-management/rpm/pull/2557/files/6aff1b9f869f4ca268a48830ccd338ed1966e04d..f659678235ea6839e924dec94d39f8fba272c139 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Hyperscale (PR #2621)
Closed #2621. -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/2621#event-10138132553 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
[Rpm-maint] [rpm-software-management/rpm] Hyperscale (PR #2621)
You can view, comment on, or merge this pull request online at: https://github.com/rpm-software-management/rpm/pull/2621 -- Commit Summary -- * RPM with Copy on Write * Fix stack overflow * Fix issue for transaction with transcoded and non-transcoded packages * Add CI -- File Changes -- A .github/workflows/ci.yaml (58) M .gitignore (1) M CMakeLists.txt (3) M build/pack.c (2) M include/rpm/rpmcli.h (10) M include/rpm/rpmlib.h (9) M include/rpm/rpmpgp.h (9) M include/rpm/rpmte.h (2) M include/rpm/rpmtypes.h (3) M lib/CMakeLists.txt (1) M lib/fsm.c (30) M lib/package.c (36) M lib/rpmchecksig.c (116) A lib/rpmextents.c (110) A lib/rpmextents_internal.h (58) M lib/rpmlead.c (43) M lib/rpmlead.h (37) M lib/rpmplugin.h (9) M lib/rpmplugins.c (92) M lib/rpmplugins.h (17) M lib/rpmte.c (5) M lib/transaction.c (29) M macros.in (1) M plugins/CMakeLists.txt (1) A plugins/reflink.c (401) A rpm2extents.c (708) M rpmio/rpmpgp.c (10) M rpmio/rpmpgp_internal.c (18) M rpmio/rpmpgpval.h (18) M scripts/CMakeLists.txt (1) A scripts/rpm2extents_dump (94) M sign/rpmgensig.c (2) M tests/CMakeLists.txt (1) M tests/atlocal.in (22) A tests/rpm2extents.at (151) M tests/rpmtests.at (1) -- Patch Links -- https://github.com/rpm-software-management/rpm/pull/2621.patch https://github.com/rpm-software-management/rpm/pull/2621.diff -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/2621 You are receiving this because you are subscribed to this thread. Message ID: rpm-software-management/rpm/pull/2...@github.com ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
[Rpm-maint] [rpm-software-management/rpm] Add FA_REFLINK file action (PR #2557)
This PR adds a new `FA_REFLINK` file action. This action reflinks a file instead of doing a copy. This can be used as follows: - plugins call `rpmfilesSetFcr` with a [`file_clone_range`](https://man7.org/linux/man-pages/man2/ioctl_ficlonerange.2.html) structure containing reflink information - they call `rpmfsSetAction` to set the `FA_REFLINK` action. - RPM will try to reflink the file and fall back to copying if reflinking fails You can view, comment on, or merge this pull request online at: https://github.com/rpm-software-management/rpm/pull/2557 -- Commit Summary -- * Add FA_REFLINK file action -- File Changes -- M include/rpm/rpmfi.h (8) M include/rpm/rpmfiles.h (3) M lib/fsm.c (9) M lib/fsm.h (2) M lib/rpmfi.c (86) M lib/rpmfs.h (1) M lib/transaction.c (4) -- Patch Links -- https://github.com/rpm-software-management/rpm/pull/2557.patch https://github.com/rpm-software-management/rpm/pull/2557.diff -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/2557 You are receiving this because you are subscribed to this thread. Message ID: rpm-software-management/rpm/pull/2...@github.com ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Create content handler plugin hook (PR #2416)
Also we still need a way for the plugin to claim ownership of a package to trigger the reflinking during install. -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/2416#issuecomment-1598860857 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Create content handler plugin hook (PR #2416)
Thanks for the valuable comments. I will look into creating the new FA_REFLINK file action. For the transcoding part, if we unpack the package files in a directory, I think we still need to keep the package header somewhere for rpm to process it, but this could indeed be a good approach. I will look into it as well. -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/2416#issuecomment-1598688831 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Create content handler plugin hook (PR #2416)
@pmatilai @DemiMarie Did you get a chance to have a look at this? -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/2416#issuecomment-1479478779 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Create content handler plugin hook (PR #2416)
@rphibel pushed 1 commit. 8a7cd8139b759d1711273839a6502333e3c0f914 Create content handler plugin hook -- View it on GitHub: https://github.com/rpm-software-management/rpm/pull/2416/files/5965d2be5b80eea738b767a5b48c5bff50c87da3..8a7cd8139b759d1711273839a6502333e3c0f914 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] Create content handler plugin hook (PR #2416)
@rphibel pushed 1 commit. 5965d2be5b80eea738b767a5b48c5bff50c87da3 Create content handler plugin hook -- View it on GitHub: https://github.com/rpm-software-management/rpm/pull/2416/files/82b6cfe2cfdc981cc7fcda4ecd473c8729aa6920..5965d2be5b80eea738b767a5b48c5bff50c87da3 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
[Rpm-maint] [rpm-software-management/rpm] Create content handler plugin hook (PR #2416)
### Description This change creates a new `content_handler` plugin hook. This hook can be used by plugins to claim responsability for the package payload. The plugin will then be responsible for: - reading the payload - verifying it - installing the files The main motivation for this change is to enable features like [RPMCoW](https://fedoraproject.org/wiki/Changes/RPMCoW) where the package payload is not in a `cpio` format. You can view, comment on, or merge this pull request online at: https://github.com/rpm-software-management/rpm/pull/2416 -- Commit Summary -- * Create content handler plugin hook -- File Changes -- M include/rpm/rpmte.h (62) M include/rpm/rpmts.h (12) M include/rpm/rpmtypes.h (10) M lib/depends.c (16) M lib/fsm.c (101) M lib/fsm.h (14) M lib/rpmplugin.h (12) M lib/rpmplugins.c (28) M lib/rpmplugins.h (9) M lib/rpmte.c (38) M lib/transaction.c (34) -- Patch Links -- https://github.com/rpm-software-management/rpm/pull/2416.patch https://github.com/rpm-software-management/rpm/pull/2416.diff -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/2416 You are receiving this because you are subscribed to this thread. Message ID: rpm-software-management/rpm/pull/2...@github.com ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] API improvement to accommodate for RPM CoW (PR#1470) (Discussion #2057)
Thanks a lot for these comments. I think I have a better idea of what I need to do. I will work on a new implementation. -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/discussions/2057#discussioncomment-5055827 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
[Rpm-maint] [rpm-software-management/rpm] RPM with Copy on Write (PR #2378)
# Description This is a refactoring of PR [#1470](https://github.com/rpm-software-management/rpm/pull/1470). The RPM CoW plugin is refactored to register as owner of payloads transcoded by `rpm2extents` as suggested in comment [#2057](https://github.com/rpm-software-management/rpm/discussions/2057#discussioncomment-2897701). # How it works I defined 2 new fields of type `rpmPlugin` (with associated getters and setters) in `rpmte` structure: - [`customArchiveReader`](https://github.com/rphibel/rpm/blob/8de078508954e005ba0c974389979070cfe9431d/lib/rpmte.c#L85) - [`customFileInstaller`](https://github.com/rphibel/rpm/blob/8de078508954e005ba0c974389979070cfe9431d/lib/rpmte.c#L86) When a plugin wants to register as an archive reader for a package, it sets the field `customArchiveReader` in the [`psm_pre` ](https://github.com/rphibel/rpm/blob/8de078508954e005ba0c974389979070cfe9431d/plugins/reflink.c#L165)stage. Similarly, if it wants to register as a file installer it sets the `customFileInstaller` field. Then in [`fsm.c`](https://github.com/rphibel/rpm/blob/8de078508954e005ba0c974389979070cfe9431d/lib/fsm.c#L849), if these fields are set, archive reading, file installation is deferred to the plugin. You can view, comment on, or merge this pull request online at: https://github.com/rpm-software-management/rpm/pull/2378 -- Commit Summary -- * RPM with Copy on Write * RPM with Copy on Write * RPM CoW: use registration model for plugin -- File Changes -- M CMakeLists.txt (5) M build/pack.c (2) M include/rpm/rpmcli.h (10) M include/rpm/rpmlib.h (9) M include/rpm/rpmpgp.h (9) M include/rpm/rpmte.h (30) M include/rpm/rpmtypes.h (3) M lib/CMakeLists.txt (1) M lib/fsm.c (138) M lib/package.c (36) M lib/rpmchecksig.c (116) A lib/rpmextents.c (110) A lib/rpmextents_internal.h (58) M lib/rpmlead.c (43) M lib/rpmlead.h (37) M lib/rpmplugin.h (9) M lib/rpmplugins.c (50) M lib/rpmplugins.h (18) M lib/rpmte.c (31) M lib/transaction.c (29) M macros.in (1) M plugins/CMakeLists.txt (1) A plugins/reflink.c (402) A rpm2extents.c (701) M rpmio/rpmpgp.c (10) M rpmio/rpmpgp_internal.c (18) M rpmio/rpmpgpval.h (18) M scripts/CMakeLists.txt (1) A scripts/rpm2extents_dump (94) M sign/rpmgensig.c (2) M tests/CMakeLists.txt (1) M tests/atlocal.in (22) A tests/rpm2extents.at (151) M tests/rpmtests.at (1) -- Patch Links -- https://github.com/rpm-software-management/rpm/pull/2378.patch https://github.com/rpm-software-management/rpm/pull/2378.diff -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/2378 You are receiving this because you are subscribed to this thread. Message ID: rpm-software-management/rpm/pull/2...@github.com ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] API improvement to accommodate for RPM CoW (PR#1470) (Discussion #2057)
@pmatilai Hello, I was wondering if you had a chance to have a look at my proposal? Please let me know if this is unclear or if you need more details. -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/discussions/2057#discussioncomment-4762243 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm-software-management/rpm] API improvement to accommodate for RPM CoW (PR#1470) (Discussion #2057)
Hello @pmatilai, I work at Meta with @chantra and @malmond77 . I am implementing the new API for the RPM CoW plugin based on your comment. This is what I have implemented so far: I defined 2 new fields of type `rpmPlugin` (with associated getters and setters) in `rpmte` structure: - [`customArchiveReader`](https://github.com/rphibel/rpm/blob/8de078508954e005ba0c974389979070cfe9431d/lib/rpmte.c#L85) - [`customFileInstaller`](https://github.com/rphibel/rpm/blob/8de078508954e005ba0c974389979070cfe9431d/lib/rpmte.c#L86) When a plugin wants to register as an archive reader for a package, it sets the field `customArchiveReader` in the [`psm_pre` ](https://github.com/rphibel/rpm/blob/8de078508954e005ba0c974389979070cfe9431d/plugins/reflink.c#L165)stage. Similarly, if it wants to register as a file installer it sets the `customFileInstaller` field. Then in [`fsm.c`](https://github.com/rphibel/rpm/blob/8de078508954e005ba0c974389979070cfe9431d/lib/fsm.c#L849), if these fields are set, archive reading, file installation is deferred to the plugin. Here is the code: https://github.com/rphibel/rpm/compare/cow_denylist_rebased...cow_denylist_refactoring Could you please let me know if this is what you had in mind? -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/discussions/2057#discussioncomment-4633129 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
[Rpm-maint] [rpm-software-management/rpm] Fix case of LIBLZMA_FOUND variable (PR #2337)
In pkg_check_modules command, LIBLZMA is all uppercase. So in variable LIBLZMA_FOUND, LIBLZMA should also be all uppercase. You can view, comment on, or merge this pull request online at: https://github.com/rpm-software-management/rpm/pull/2337 -- Commit Summary -- * Fix case of LIBLZMA_FOUND variable -- File Changes -- M CMakeLists.txt (2) -- Patch Links -- https://github.com/rpm-software-management/rpm/pull/2337.patch https://github.com/rpm-software-management/rpm/pull/2337.diff -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/2337 You are receiving this because you are subscribed to this thread. Message ID: rpm-software-management/rpm/pull/2...@github.com ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint