Closed serhepopovych closed 4 years ago
There are two ideas I come with, each of which has it's own pros and cons:
Create .downloads.v$version packages and at build time symlink it to .downloads depending on $version we build. This will change source base at build time and git(1) will report them as new/modified that requires more careful handling. Also this induces lot of duplication between versions while only few packages added/deleted/renamed between two versions.
Use cpp(1) (C preprocessor) and add #if,#endif conditional blocks. This also will make git(1) complaining about new/modified that can be addressed by adding .downloads to .gitignore as we already did for .description that also generated at run time and storing unprocessed data to *_downloads or something similar. Pros here is that duplication can be avoided and there is only single packages file. As cons this adds another dependency on external utility that required on build host.
Most preferred approach is (2).
With desktop support now introduced since commit cbe295ead67e ("simple-cdd-meta/debian: Add MATE Desktop and common desktop apps") and later supporting per release package sets becomes more important as some packages affected by #21 added to desktop profile file per release which isn't correct, but supported since minimal profile also has *.downloads to address package renaming.
Supported in master branch since commit 296ea3dc205b ("simple-cdd-meta/debian: Provide alternatives for package names"). Now under testing.
More fixes since commit 5c7b375c2b9b ("simple-cdd-meta/debian: Explicitly list libreoffice-style-galaxy for 9"). From now feature implementation considered complete.
There at least two reasons in this:
By supporting per release specific package set for profile we can address both of above.