Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| ivanvoras:pkg_patch [2010/05/05 14:34] – IvanVoras | ivanvoras:pkg_patch [2018/03/23 07:22] (current) – wiki markup MarkLinimon | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | :idea: Current status: Completed. {{ivanvoras/ | ||
| + | |||
| + | Additional information: | ||
| + | |||
| + | * [[IvanVoras/ | ||
| + | * [[IvanVoras/ | ||
| + | |||
| ====== Brainstorming for the pkg_patch project ====== | ====== Brainstorming for the pkg_patch project ====== | ||
| - | Per %%SoC%% proposal comment, scope is reduced not to deal with the "ABI stability" | + | Per %%SoC%% proposal comment, |
| The project contains these general steps: | The project contains these general steps: | ||
| Line 10: | Line 17: | ||
| ===== pkg_patch ===== | ===== pkg_patch ===== | ||
| - | The pkg_patch is the central tool for creating and applying binary package patches. It will be made to support different variations on binary | + | The pkg_patch is the central tool for creating and applying binary package patches. It creates |
| In any case, the tool will patch files on the " | In any case, the tool will patch files on the " | ||
| + | |||
| + | Backed up packages will be stored in / | ||
| Brainstorming: | Brainstorming: | ||
| * It will be built on top of pkg_* infrastructure | * It will be built on top of pkg_* infrastructure | ||
| - | * It will operate on binary .tbz package archives (slow but no feasible alternative - switch to txz?) | + | * It will operate on binary .tbz package archives (performance will improve when txz gets supported in base) |
| * Package patch filenames in the form php-5.2.10-patch-5.2.11.tbz ? | * Package patch filenames in the form php-5.2.10-patch-5.2.11.tbz ? | ||
| + | * Patch files: binary format, with a small header and the rest of the data as a zlib stream; binary data encoded endian-neutral to allow for cross-builds of packages & patches; zlib will mostly compress metadata, it is expected that the patch data itself will be of low entropy | ||
| + | * Need to think about handling packages with different cwd... | ||
| ===== The update infrastructure ===== | ===== The update infrastructure ===== | ||
| - | The update infrastructure | + | The update infrastructure |
| - | In any case, the infrastructure will provide | + | Depending on how the "ABI stability" |
| Brainstorming: | Brainstorming: | ||
| * Rely on simple text and HTTP protocols for distributing information about everything (list of updates, package patches) | * Rely on simple text and HTTP protocols for distributing information about everything (list of updates, package patches) | ||
| + | * Maintain a list of patched packages with dates and versions to be compared with local state to determine what needs to be fetched and patched | ||
| ===== The schedule ===== | ===== The schedule ===== | ||
| Line 37: | Line 49: | ||
| * pkg_patch: Patch application step: 2 weeks | * pkg_patch: Patch application step: 2 weeks | ||
| * pkg_patch: wrapper or built-in function for generating patches to multiple packages: 1 week | * pkg_patch: wrapper or built-in function for generating patches to multiple packages: 1 week | ||
| - | * Update infrastructure: | + | * Update infrastructure: |
| * -- midterm -- | * -- midterm -- | ||
| * pkg_patch: wrapper or built-in function for fetching the list of packages needing the updates, fetching the patches and applying them: 4 weeks | * pkg_patch: wrapper or built-in function for fetching the list of packages needing the updates, fetching the patches and applying them: 4 weeks | ||
| + | |||
| + | ===== Survey of other work ===== | ||
| + | |||
| + | ==== RPMs ==== | ||
| + | |||
| + | * %%PatchRPM%% - contains changed files within the package, part of the regular rpm toolset, used mostly for %%RedHat%%-derived distributions (?), same file format as rpm | ||
| + | * %%DeltaRPM%% - contains patches to changed files (binary diffs) within the package, written in python, used in %%SuSE%% (?) | ||
| + | |||
| + | ==== DEBs ==== | ||
| + | |||
| + | * %%DebDiff%% - can contain both changed files and patches to changed files | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{tag> | ||