obs-build icon indicating copy to clipboard operation
obs-build copied to clipboard

[Debian] Support for newer source formats is needed

Open zilti opened this issue 6 years ago • 6 comments

See below; support for newer source formats is needed. Seeing as there is another bug asking about that that is way over a year old now I also have to ask if it's even planned at all to keep supporting .deb building?

[   83s]  dpkg-source -b BUILD
[   83s] dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
[   83s] dpkg-source: warning: source directory 'BUILD' is not <sourcepackage>-<upstreamversion> 'chicken-4.12.0'
[   83s] dpkg-source: warning: .orig directory name BUILD.orig is not <package>-<upstreamversion> (wanted chicken-4.12.0.orig)
[   83s] dpkg-source: info: using source format '1.0'
[   83s] dpkg-source: info: building chicken using existing chicken_4.12.0.orig.tar.gz
[   84s] dpkg-source: info: building chicken in chicken_4.12.0-22.1.diff.gz
[   84s] dpkg-source: warning: newly created empty file 'debian/changelog.dpkg-orig' will not be represented in diff
[   84s] dpkg-source: warning: newly created empty file 'debian/compat.dpkg-orig' will not be represented in diff
[   84s] dpkg-source: warning: newly created empty file 'debian/control.dpkg-orig' will not be represented in diff
[   84s] dpkg-source: warning: newly created empty file 'debian/rules.dpkg-orig' will not be represented in diff
[   84s] dpkg-source: error: diff '/usr/src/packages/chicken_4.12.0-22.1.diff.gz.new.Zgi2bP' patches file with name ending in .dpkg-orig
[   84s] dpkg-buildpackage: error: dpkg-source -b BUILD gave error exit status 29

zilti avatar Jul 16 '17 11:07 zilti

obs-build does support format 3.0 just fine, eg:

[   80s] -----------------------------------------------------------------
[   80s] ----- building dpdk_16.11.3-0vyatta1.dsc (user abuild)
[   80s] -----------------------------------------------------------------
[   80s] -----------------------------------------------------------------
[   81s] dpkg-buildpackage: info: source package dpdk
[   81s] dpkg-buildpackage: info: source version 16.11.3-0vyatta1+18.2
[   81s] dpkg-buildpackage: info: source distribution unstable
[   81s] dpkg-buildpackage: info: source changed by Luca Boccassi <[email protected]>
[   81s]  dpkg-source --before-build BUILD
[   81s] dpkg-buildpackage: info: host architecture amd64
[   81s]  fakeroot debian/rules clean
[   81s] dh clean --with python2,dkms
[   83s]    dh_testdir
[   83s]    debian/rules override_dh_auto_clean
[   83s] make[1]: Entering directory '/usr/src/packages/BUILD'
[   83s] rm -f debian/control.modules
[   84s] sed -i '/Package: dpdk-modules/,$d' debian/control
[   84s] rm -fr debian/dpdk debian/dpdk-dev debian/dpdk-modules-*
[   84s] rm -rf debian/build debian/tmp debian/dpdk-modules-* \
[   84s] 	debian/control.modules debian/VERSION
[   84s] sed -i '/Package: dpdk-modules-/,/`tail -n1 debian/control.modules.in`/d' debian/control
[   84s] test -L config/defconfig_x86_64-vyatta-linuxapp-gcc && rm -f config/defconfig_x86_64-vyatta-linuxapp-gcc || true
[   84s] make[1]: Leaving directory '/usr/src/packages/BUILD'
[   84s]    dh_clean
[   84s]  dpkg-source -b BUILD
[   85s] dpkg-source: info: using source format '3.0 (quilt)'
[   85s] dpkg-source: info: building dpdk using existing ./dpdk_16.11.3.orig.tar.gz
[   87s] dpkg-source: info: building dpdk in dpdk_16.11.3-0vyatta1+18.2.debian.tar.xz
[   87s] dpkg-source: info: building dpdk in dpdk_16.11.3-0vyatta1+18.2.dsc
[   87s]  debian/rules build

But you need to feed it a proper Debian source artefact (real .dsc + .orig.tar.gz (+ debian.tar.gz))

bluca avatar Sep 01 '17 13:09 bluca

The issue ... patches file with name ending in .dpkg-orig just arrived at my packages which use the alternative method of creating a Debian package (which means not feeding a proper Debian source artefact) when I updated the source tarball.

https://build.opensuse.org/package/show/openSUSE:Tools/build use the alternative method, too, but the last build (last source change) was 5 days ago, so maybe the trouble arrives there later.

dg0yt avatar Dec 11 '18 08:12 dg0yt

I don't know about the error reported in the original post, but in my case the root cause was a patch from debian.series no longer applying successfully. This error is clearly reported a couple of lines earlier, so the question remains why the build continues with dpkg-source --before-build BUILD and dpkg-source -b BUILD.

--- b	2018-12-12 06:28:28.075046952 +0100
+++ a	2018-12-12 06:17:32.576414990 +0100
@@ -1079,9 +1079,19 @@
 dpkg-source: info: extracting openorienteering-mapper-master in /usr/src/packages/BUILD
 dpkg-source: info: unpacking openorienteering-mapper-master_0.8.20181211.orig.tar.gz
 dpkg-source: info: applying openorienteering-mapper-master_0.8.20181211-0+60.1.diff.gz
-dpkg-source: info: upstream files that have been modified: 
- /usr/src/packages/BUILD/doc/manual/CMakeLists.txt
- /usr/src/packages/BUILD/src/main.cpp
+dpkg-source: error: LC_ALL=C patch -t -F 0 -N -p1 -u -V never -b -z .dpkg-orig < /usr/src/packages/SOURCES.DEB/openorienteering-mapper-master_0.8.20181211-0+60.1.diff.gz subprocess returned exit status 1
+patching file debian/compat
+patching file debian/rules
+patching file debian/control
+patching file debian/copyright
+patching file debian/changelog
+patching file debian/source.lintian-overrides
+patching file src/main.cpp
+Hunk #1 succeeded at 99 (offset 8 lines).
+patching file doc/manual/CMakeLists.txt
+Hunk #2 succeeded at 240 (offset 8 lines).
+Hunk #3 FAILED at 261.
+1 out of 3 hunks FAILED -- saving rejects to file doc/manual/CMakeLists.txt.rej
 -----------------------------------------------------------------
 ----- building openorienteering-mapper-master.dsc (user abuild)
 -----------------------------------------------------------------
 -----------------------------------------------------------------
 dpkg-buildpackage: info: source package openorienteering-mapper-master
 dpkg-buildpackage: info: source version 0.8.20181211-0+60.1
 dpkg-buildpackage: info: source distribution unstable
 dpkg-buildpackage: info: source changed by debtransform <[email protected]>
+dpkg-buildpackage: warning: debian/rules is not executable; fixing that
  dpkg-source --before-build BUILD
 dpkg-buildpackage: info: host architecture amd64
  fakeroot debian/rules clean
@@ -1118,3175 +1129,21 @@
 dpkg-source: info: using source format '1.0'
 dpkg-source: info: building openorienteering-mapper-master using existing openorienteering-mapper-master_0.8.20181211.orig.tar.gz
 dpkg-source: info: building openorienteering-mapper-master in openorienteering-mapper-master_0.8.20181211-0+60.1.diff.gz
-dpkg-source: warning: the diff modifies the following upstream files: 
- doc/manual/CMakeLists.txt
- src/main.cpp
-dpkg-source: info: use the '3.0 (quilt)' format to have separate and documented changes to upstream files, see dpkg-source(1)
-dpkg-source: info: building openorienteering-mapper-master in openorienteering-mapper-master_0.8.20181211-0+60.1.dsc
- debian/rules build
-dh build --builddirectory=build --parallel
-...
+dpkg-source: warning: newly created empty file 'debian/changelog.dpkg-orig' will not be represented in diff
+dpkg-source: warning: newly created empty file 'debian/compat.dpkg-orig' will not be represented in diff
+dpkg-source: warning: newly created empty file 'debian/control.dpkg-orig' will not be represented in diff
+dpkg-source: warning: newly created empty file 'debian/copyright.dpkg-orig' will not be represented in diff
+dpkg-source: warning: newly created empty file 'debian/rules.dpkg-orig' will not be represented in diff
+dpkg-source: warning: newly created empty file 'debian/source.lintian-overrides.dpkg-orig' will not be represented in diff
+dpkg-source: error: diff '/usr/src/packages/openorienteering-mapper-master_0.8.20181211-0+60.1.diff.gz.new.A2brBo' patches file with name ending in .dpkg-orig
+dpkg-buildpackage: error: dpkg-source -b BUILD subprocess returned exit status 29

dg0yt avatar Dec 12 '18 05:12 dg0yt

Also related to #225 and #500 I think the crux of the issue is that 'debtransform' only generates source format '1.0' packages.

nickbroon avatar Aug 06 '19 18:08 nickbroon

Latest Debian Testing does not support 1.0 format anymore, so debtransform creates unbuildable result.

[   69s] ** Started: debtransform --release 23.35 //usr/src/packages/SOURCES //usr/src/packages/SOURCES/naemon.dsc //usr/src/packages/SOURCES.DEB
[   69s] No DEBTRANSFORM-TAR line in the .dsc file.
[   69s] Attempting automatic discovery of a suitable source archive.
[   69s] Source archive chosen for transformation: naemon-1.2.2.0+20201113~fd83da1.tar.gz
[   69s] No DEBTRANSFORM-FILES-TAR line in the .dsc file.
[   69s] Attempting automatic discovery of a debian archive.
[   69s] Transforming into source package 1.0 (non-native) format
[   69s] Added Debian revision to Version field, which is now "1.2.2.0+20201113~fd83da1-1".
[   69s] Modifying dsc Version field to "1.2.2.0+20201113~fd83da1-1"
...
[   70s] dpkg-source: error: can't build with source format '3.0 (native)': native package version may not have a revision
[   70s] dpkg-buildpackage: error: dpkg-source -b . subprocess returned exit status 25

I'd suggest debtransform to set the deb source format to '3.0 (native)' and remove adding a revision.

sni avatar Jan 13 '21 10:01 sni

I think what you are seeing is #633 , which is a separate issue.

nickbroon avatar Jan 13 '21 11:01 nickbroon