[opensuse-buildservice] Improving debtransform
OBS offers source services to build packages out of a VCS. But for dpkg-based distribution, the version number handling is not working. The version number of the binary packages is derived from debian/changelog file - updating this file in the source package is currently not possible. Therefore I tried to improve debtransform: https://github.com/e9925248/obs-build The changes make sure, that the first entry of any added changelog file matches the version number of the dsc file - otherwise it adds a dummy entry with the correct version number. This way, binary and source version number stay in sync. Other improvements: * support for replacing file content in the debian directory * fix empty file behaviour Regards, Martin -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Jun 17, 2012, at 22:58, Martin Koegler wrote: Hi Martin,
OBS offers source services to build packages out of a VCS. But for dpkg-based distribution, the version number handling is not working.
The version number of the binary packages is derived from debian/changelog file - updating this file in the source package is currently not possible.
Therefore I tried to improve debtransform: https://github.com/e9925248/obs-build
I'm not sure if you've seen the various Debian package modules kept for building Debian packages on CPAN: https://metacpan.org/module/Debian::Control These tools may help you with creating and manipulating Debian control files and other associated Debian packaging meta-data. The tools are largely maintained by Damian Ivanov, a member of the Debian perl team and a long time Debian contributor. They are object oriented which makes for fairly easy re-use. Even if you don't want to re-use the code, it might help to look at the code to find an algorithm or a parsing strategy since these tools are considered "correct" and produce good debs that can go through lintian cleanly. Regards, Jeremiah-- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Mon, Jun 18, 2012 at 08:18:33AM +0200, Jeremiah C. Foster wrote:
OBS offers source services to build packages out of a VCS. But for dpkg-based distribution, the version number handling is not working.
The version number of the binary packages is derived from debian/changelog file - updating this file in the source package is currently not possible.
Therefore I tried to improve debtransform: https://github.com/e9925248/obs-build
I'm not sure if you've seen the various Debian package modules kept for building Debian packages on CPAN: https://metacpan.org/module/Debian::Control
These tools may help you with creating and manipulating Debian control files and other associated Debian packaging meta-data. The tools are largely maintained by Damian Ivanov, a member of the Debian perl team and a long time Debian contributor. They are object oriented which makes for fairly easy re-use.
Even if you don't want to re-use the code, it might help to look at the code to find an algorithm or a parsing strategy since these tools are considered "correct" and produce good debs that can go through lintian cleanly.
The module does not fit. debian/control just contains the list of binary packages and their descriptions as well as various dependencies. Changing this file shouldn't be necessary. The current deficit of OBS is, that it can't produce debian packages from a VCS with a consistant version number. To solve this problem, OBS must be able to adapt the changelog. Any self modification in the package build (as I currently use as a workaround for my package) is not conforming to the various distributions standards. Such an approch has the additional problem, that you need to invent something to pass the version number to the build. The logical place for such modifications is in my option debtransform. Regarding third party modules, I question, if OBS want to add a runtime dependency for these to obs-build. Regards, Martin -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Am Montag, 18. Juni 2012, 09:08:08 schrieb Martin Koegler:
On Mon, Jun 18, 2012 at 08:18:33AM +0200, Jeremiah C. Foster wrote:
OBS offers source services to build packages out of a VCS. But for dpkg-based distribution, the version number handling is not working.
The version number of the binary packages is derived from debian/changelog file - updating this file in the source package is currently not possible.
Therefore I tried to improve debtransform: https://github.com/e9925248/obs-build
I'm not sure if you've seen the various Debian package modules kept for building Debian packages on CPAN: https://metacpan.org/module/Debian::Control
These tools may help you with creating and manipulating Debian control files and other associated Debian packaging meta-data. The tools are largely maintained by Damian Ivanov, a member of the Debian perl team and a long time Debian contributor. They are object oriented which makes for fairly easy re-use.
Even if you don't want to re-use the code, it might help to look at the code to find an algorithm or a parsing strategy since these tools are considered "correct" and produce good debs that can go through lintian cleanly.
The module does not fit. debian/control just contains the list of binary packages and their descriptions as well as various dependencies. Changing this file shouldn't be necessary.
The current deficit of OBS is, that it can't produce debian packages from a VCS with a consistant version number. To solve this problem, OBS must be able to adapt the changelog.
Any self modification in the package build (as I currently use as a workaround for my package) is not conforming to the various distributions standards. Such an approch has the additional problem, that you need to invent something to pass the version number to the build.
The logical place for such modifications is in my option debtransform. Regarding third party modules, I question, if OBS want to add a runtime dependency for these to obs-build.
hm, wouldn't it make more sense to modify the changelog file during import if new sources instead? debtransform will never be able to write a meaningfull changelog entry IMHO. -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Mon, Jun 18, 2012 at 02:05:49PM +0200, Adrian Schröter wrote:
Am Montag, 18. Juni 2012, 09:08:08 schrieb Martin Koegler:
On Mon, Jun 18, 2012 at 08:18:33AM +0200, Jeremiah C. Foster wrote:
OBS offers source services to build packages out of a VCS. But for dpkg-based distribution, the version number handling is not working.
The version number of the binary packages is derived from debian/changelog file - updating this file in the source package is currently not possible.
Therefore I tried to improve debtransform: https://github.com/e9925248/obs-build
I'm not sure if you've seen the various Debian package modules kept for building Debian packages on CPAN: https://metacpan.org/module/Debian::Control
These tools may help you with creating and manipulating Debian control files and other associated Debian packaging meta-data. The tools are largely maintained by Damian Ivanov, a member of the Debian perl team and a long time Debian contributor. They are object oriented which makes for fairly easy re-use.
Even if you don't want to re-use the code, it might help to look at the code to find an algorithm or a parsing strategy since these tools are considered "correct" and produce good debs that can go through lintian cleanly.
The module does not fit. debian/control just contains the list of binary packages and their descriptions as well as various dependencies. Changing this file shouldn't be necessary.
The current deficit of OBS is, that it can't produce debian packages from a VCS with a consistant version number. To solve this problem, OBS must be able to adapt the changelog.
Any self modification in the package build (as I currently use as a workaround for my package) is not conforming to the various distributions standards. Such an approch has the additional problem, that you need to invent something to pass the version number to the build.
The logical place for such modifications is in my option debtransform. Regarding third party modules, I question, if OBS want to add a runtime dependency for these to obs-build.
hm, wouldn't it make more sense to modify the changelog file during import if new sources instead?
The current OBS implementation allows that the source package V1 generates binaries with version V2. Having debtransform "correct" not matching changelogs prevent such things. Let's assume, OBS would offer a changelog generator: It's only output could be a file named debian.changelog [debtransform does not allow rename of individual files of the OBS sources]. There can be multiple dsc files with different version numbers [eg. to force a package update at distribution upgrade], but only one changelog - so the binary versions can be different again.
debtransform will never be able to write a meaningfull changelog entry IMHO.
Generating changelogs is out of my scope - I just try to implement something similar to set_version for debian changelogs. https://github.com/e9925248/obs-build/commit/a55179f6b2abc6a781e7251b538c23f... is just a bug fix to prevent debtransform generating invalid diffs. https://github.com/e9925248/obs-build/commit/932255aa8c1736cab47d4118eca8b9d... adds support for replacing file content [in my option, a useful extension to debtransform, even if the changelog is generated by a source service]. https://github.com/e9925248/obs-build/commit/24672ebaa7bacdb19ab0e558e8d568b... is my first approach to update changelogs. If the OBS people don't like this approach: * extend set_version with support for debian changelog files * create a new service Regards, Martin -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
participants (3)
-
Adrian Schröter
-
Jeremiah C. Foster
-
Martin Koegler