← Back to team overview

launchpad-users team mailing list archive

Re: Are packages orig.tar.gz and debian.tar.xz necessary? Can they be empty?


Em ter, 29 de mai de 2018 às 09:02, Colin Watson <cjwatson@xxxxxxxxxxxxx>

> I very strongly recommend against following this tutorial.  It won't
> work on Launchpad at all, because it relies on constructing binary
> packages by hand rather than constructing a source package and letting
> the tools build that; and, more generally, it deliberately works at a
> low level rather than taking advantage of lots of useful higher-level
> tools.
> People reinvent this sort of thing from time to time, and there's no way
> to stop them, but it's just a really bad idea.  A good rule of thumb is
> that if you see anything that involves fiddling with the contents of an
> all-caps "DEBIAN" directory, then run away from that document and
> pretend you never saw it; it's the equivalent of building your
> executables with a hex editor rather than a compiler.  (Working with the
> lower-case "debian" directory is fine, though.)

I also have noticed and iscarded this tutorial

In general, I think you're asking these questions because you've made
> some kind of mistake that leads you to need to care about the details
> too much.
> Generally the way it works is that you get an .orig.tar.* from the
> upstream of the source code that you're packaging (classically by
> something like "make dist", or nowadays maybe something like "git
> archive"), you put that in the directory one level above the unpacked
> source code, and then you use "debuild -S" (or similar) to build the
> source package, which produces all the other necessary files.  If you
> find yourself compressing a .debian.tar.* file by hand, then you're
> doing it wrong.
> There are a few different shapes that a source package can take,
> depending on the contents of debian/source/format and on the package's
> version number.  It's possible to build a source package with a single
> .tar.* rather than .orig.tar.* and .debian.tar.*, which is referred to
> as a "native" source package; that's useful in situations where the
> package doesn't really have a separate upstream source.  Otherwise,
> using separate .orig.tar.* and .debian.tar.* files is normally correct.

 The problem is that, if I remove these compressed files and run debuild-S,
it asked like:

This package has a Debian revision number but there does not seem to be
an appropriate original tar file or .orig directory in the parent directory;
(expected one of suru-plus-pack_1.3.4.orig.tar.gz,
suru-plus-pack_1.3.4.orig.tar.lzma,  suru-plus-pack_1.3.4.orig.tar.xz or
continue anyway? (y/n)

And it gave errors following:

dpkg-source: error: can't build with source format '3.0 (quilt)': no
upstream tarball found at ../suru-plus-pack_1.3.4.orig.tar.{bz2,gz,lzma,xz}
dpkg-buildpackage: error: dpkg-source -b suru-plus-pack subprocess returned
exit status 25
debuild: fatal error at line 1152:
dpkg-buildpackage -rfakeroot -us -uc -ui -S failed

It is why I depend on compressing files, but it must because of
debian/source/format. Maybe here is the text in the file format:

3.0 (quilt)

Is it correct?

As you have suggested me to compile it without depending on compressing
files. I have searched the whole manual of Ubuntu Packaging Guide, but it
does not explain this. I also searched at Launchpad guide, but there was no
explication about it.

Follow ups