On Thu, 26 Dec 2013 12:12:56 +0800, Paul Wise wrote: > On Thu, Dec 26, 2013 at 11:06 AM, Markus Hitter wrote: > > Packaging is out of the scope of Debian? That's an unexpected response. :-) > You asked about automated packaging, which isn't something we do in > Debian right now AFAIK. And IMO all attempts that we've seen so far were of rather poor quality. I mean, there _is_ a reason why we have Linux distributions and human packagers :) > > If I knew where to start, which commands to try, I could tell about what > > isn't working. Instead I can't find a clear path on how to make a > > package, much less on how to automate this. > Try maint-guide: > > http://www.debian.org/doc/manuals/maint-guide/update.en.html#inspectnewupstream > http://www.debian.org/doc/manuals/maint-guide/update.en.html#newupstream Additionally I'd also recommend Lucas' packaging-tutorial, available as a package or online at http://www.debian.org/doc/manuals/packaging-tutorial/packaging-tutorial On Thu, 26 Dec 2013 13:44:32 +0100, Markus Hitter wrote: > Am 26.12.2013 05:12, schrieb Paul Wise: > On the developer side I see pretty much the opposite: a process far more > complex than what developers feel capable of dealing with, while iPhone > developers simply drop their binary package somewhere. Upstream development and packaging are two different tasks and two different skill sets. Of course it's possible to do both but then one has to learn both. > Things I've learned so far: > 2) To find out which source package is needed, do a dry run for one of > the binary packages: > > PKG_NAME=gnustep-make-doc > apt-get -s source ${PKG_NAME} | tee /tmp/$$ > if grep -q "Picking" /tmp/$$; then > PKG_NAME=$(awk '/^Picking/ { print substr($2, 2, length($2) - 2); }' > < /tmp/$$) > fi > rm -f /tmp/$$ % apt-cache show gnustep-make-doc | grep Source: or % apt-cache showsrc gnustep-make-doc > 5) The first step is to grab debian/ from the older package and moving > it to the new bunch of sources. > > rm -rf debian > tar -xvzf ../${PKG_NAME}*debian.tar.gz uupdate(1) does this automatically. > 6) Then add a changelog entry with "dch". Important, because debuild > grabs the version information from here. Also, the version number is > used for sorting packages by age: > > . Version > dch -v "${GNUSTEP_MAKE_VERSION}-$(date +%Y%m%d)" -D saucy > > "Version" is a file provided by GNUstep, "saucy" is the distribution you > want to build against. An editor will open, add something like "Weekly > snapshot.", save and quit. You can also give the changelog message directly to dch(1): % dch -v 1234-1 -D saucy "Weekly snapshot." > 8) Now it's a good time to change debian/control.in and/or debian/rules. debian/control.in is no standard file, just used by some maintainers to _manually_ manage debian/control outside of the build process. > 9) Build a package locally with "debuild ... " > > Uhm, here I'm stuck. Some instructions recommend "debuild -d", some > "debuild -i -uc -us", some "debuild -S -sd". All of them fail with the > same error: > > $ debuild -S -sd > 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 gnustep-make_2.6.6.orig.tar.gz, > gnustep-make_2.6.6.orig.tar.bz2, > gnustep-make_2.6.6.orig.tar.lzma, gnustep-make_2.6.6.orig.tar.xz or > make.orig) > > It's a bit unclear to me why it asks for a tar of the _new_ package. Can > you help? Well, to build a package for the new release you need the tarball of the new upstream release, and it must be named according to what the error message tells you. (Unless you're building a "native package" but that's usually not useful.) > 10) Upload the package: > dput ppa:mah-jump-ing/ppa ../${PKG_NAME}*.changes That's Ubuntu only, obviously. Cheers, gregor -- .''`. Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06 : :' : Debian GNU/Linux user, admin, and developer - http://www.debian.org/ `. `' Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe `- NP: Eric Clapton: Lay Down Sally
Attachment:
signature.asc
Description: Digital signature