Mailinglist Archive: opensuse-buildservice (244 mails)

< Previous Next >
Re: [opensuse-buildservice] Improving debtransform
  • From: Martin Koegler <martin.koegler@xxxxxxxxx>
  • Date: Tue, 19 Jun 2012 21:17:44 +0200
  • Message-id: <20120619191743.GB7409@mail.zuhause>
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/a55179f6b2abc6a781e7251b538c23fd278bcef7
is just a bug fix to prevent debtransform generating invalid diffs.

https://github.com/e9925248/obs-build/commit/932255aa8c1736cab47d4118eca8b9d6d5240df0
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/24672ebaa7bacdb19ab0e558e8d568b86d8825bd
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@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >