Mailinglist Archive: opensuse-buildservice (138 mails)

< Previous Next >
[opensuse-buildservice] Improvements for building .deb packages for projects with an in-tree debian/ (or debian.upstream/) directory
  • From: Terry Burton <tez@xxxxxxxxxxxxxxxxx>
  • Date: Mon, 22 Feb 2016 21:51:46 +0000
  • Message-id: <CANsiXE+QV3y6h46Jeprqab=c-FBs5ZhaED5LC9CqT0y4kLm93Q@mail.gmail.com>
Hi,

I'm using the OpenSUSE OBS to develop DEB and RPM packaging for my
Barcode Writer in Pure PostScript project.

My goal is to provide OBS with nothing but a single _service file with
everything else extracted directly from the project's repository via
extract_file, etc.

I have this working but with a few rough edges which may be down to me
not understanding something, overlooking some functionality or these
might become requests for improvements to debtransform.

1. SUPERFLUOUS TAR FILE: I'm using tar_scm to create the tarball from
the project's Git repository and to provide automatic versioning,
however I seem to require a duplicate tarball just for DEB that has a
static filename as referenced from the DEBTRANSFORM-TAR tag. It would
be great to be able to simply use the versioned output of tar_scm
(recompressed).

2. DEBIAN.* FILES: I have to separately map each of the files in my
project's debian.upstream/ directory to debian.* files for OBS. It
would be great to indicate to debtransforn that a particular directory
in the tarball contains Debian packaging. Then you would only need to
provide the .dsc file, not the debian.{rules,control} files, etc.

[ 2a. For context, a year or two back I was successfully building DEBs
on OBS by having the Debian packaging directory called debian/ in the
project repo/tarball. Recent versions of OBS appear to fail with an
in-tarball debian/ directory because the diff generated by
debtransform from the OBS debian.{control,rules} files conflicts with
the existing debian/{control,rules} files — the pre-existing files
appear to get patched into rather than replaced or left as-is. Besides
this, Debian guidance is for upstream projects to name any included
DEB packaging something other than debian/ such as debian.upstream/ as
I now do. So indicating that some otherwise-named directory provides
the DEB packaging seems preferable. ]

[ 2b. I'm aware that you can supply the components of a Debian source
package (e.g. a project-debian.tar.gz) for OBS to build instead of the
individual .dsc and debian.* files. I'm wanting to use OBS for
Continuous Integration testing (perhaps just for tagged releases) so
having to build a source package first elsewhere to supply to OBS by
download_url or otherwise defeats my purpose somewhat.]

3. VERSIONING: A Debian non-native package must have a version that
ends in "-N", which is incompatible with RPM versioning. I'm using
tar_scm to provides automatic versioning using the versionformat
parameter but am unable to simultaneously satisfy both RPM and DEB
version formatting requirements. I've raised an issue for this here:
https://github.com/openSUSE/obs-service-set_version/issues/25

Hopefully my annotated _service file should make this clear:

https://build.opensuse.org/package/show/home:terryburton:postscriptbarcode/libpostscriptbarcode

I'd be happy to be told that I've missed some functionality and that
some of this can already be done. If not, I'm happy to put some work
into smoothing out these issues but I first want to check that my use
case ("in-project-tree Debian packaging") is something that the OBS
project would approve of and support going forward so that I don't
waste time needlessly optimising for my own needs.


Many thanks,

Terry
--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >