I hear that OpenSUSE's build server will build Debian packages, but
I've
never used it. It would be very useful if someone set that up, I
think can
also build Fedora and SUSE packages.
I played around with OpenSUSE's OBS but it's not a success yet. It needs a something.spec file for building RPMs and a something.dsc
file
for DEBs. Both files serve to define a source package. For the spec file, I started from one well worked out for Planet CCRMA
by
Fernando Lopez-Lezcano. It's looking good for the OBS right now except
that
I'm struggling with the source definition, i.e. it doesn't seem to be
able
to grab the tar.gz from sourceforge. For the debian dsc file, I used Paul Brossier's one. The dsc is much simpler, but it cannot accept source urls, only local files. That's
where
OBS's so-called "Source Service" comes into the picture, which can
download
a tar.gz or even checkout an svn repo and tar.gz it for me. I'm
struggling
with this too, because (1) I'm unable to grab the resulting tar.gz
from
the
dsc (it's created with an odd name that contains a colon) and (2) in
the
dsc an MD5 checksum of the tar.gz needs to be present which is unknown
in
the case of an archive newly created from SVN. I'll try to grow smarter with OBS, but in the meantime, any advice is highly appreciated. :)
Update: both source access problems are solved for now. The deb build at the moment is stuck at the point where it doesn't recognize the source package as a valid one. Dunno why. The rpm build got as far as where it would have needed mp3lame - seems
that
it's only available with Planet CCRMA (?). GEM builds fine. I'm playing around with conditionals for requires for different CPU capabilities, because OBS's spec file parser is somewhat limited. More news soon, hopefully.
Deb source packages are too tricky to create manually, use the Debian tools. If you are working from a git repo, like for puredata, the use "git-buildpackage -S". For any repo with the debian/ folder there, you can use "debuild -S"
You will need to change the debian/changelog to have your name and email in it, so that the signing part works, if opensuse requires signed packages. Launchpad, Debian, and Ubuntu all do.
At the very least, you'll want to do:
sudo apt-get install dpkg-dev devscripts debhelper cdbs
You can also download the source packages from the Debian or Ubuntu official packages, but they'll be signed by the original uploaders key. That wouldn't work with Launchpad but might with OBS, if it has looser signing restrictions.
Cool, I've actually paid less attention to the deb process on OBS knowing that it's already worked out and up-to-date somewhere else. I'll take a look at how I can reuse those packages. OBS doesn't need signed packages, an I haven't tried if it accepts
packages
signed by someone else.
It could be a useful way to provide Debian/squeeze packages.
If you want to try my new Pd-extended proper debian support, run:
$
~/auto-build/pd-extended/scripts/auto-build/pd-extended-source-tarball.sh
$ mv /tmp/Pd-extended_0.43.1~20120926-source.tar.bz2 ~/auto-build/pd-extended_0.43.1~20120926.orig.tar.bz2 $ cd ~/auto-build/pd-extended $ debuild -S -uc -us
Hm, I don't have this script yet in ~auto-build/ ... It seems it doesn't work if I just download it to any place along with its whole folder, but
I
cannot run it from the main run-automated-builder script either, because rsync cannot reach the server.
you need to get them from SVN:
cd ~/auto-build/pd-extended/scripts svn up cd .. svn up
That did the trick! The script itself didn't succeed at the first run but the third run completed clean. And it deletes the file at the end so I needed to copy it before it finished :o)
The rsync method is gone for now, and perhaps permanently. I'm trying to see if I can make the cleaning process work without rsync.
(the -uc -us) means ignore the whole signing procedure, including the name in the debian/changelog)
Also, its great that you are taking on the spec file for RPMs! Once you
get 'puredata' working, then it would be very handy if you could make
one for the externals/template. Then it'll be easy to make RPMs for most of the libraries in Pd-extended, just like what's in Debian.
I've never made RPMs before, but I've done a lot of other packaging, so I'll help where I can.
Well, the deb thing is stuck at this line now:
dpkg-source: error: unrecognized file for a v1.0 source package: Pd-0.42.5-extended.tar.gz
The file is pulled from
http://sourceforge.net/projects/pure-data/files/pd-extended/0.42.5/Pd-0.42.5...
(It has a packages/linux_make/debian folder but still no good.) Is there a .tar.gz for pd-extended online which is suitable for deb packaging and I could link to it? I don't want to reinvent the wheel... BTW, Is there a Pd-0.42.5-extended-dev.deb (or alike) that I could study
or
use for parts?
The rpm is losing it here:
`test -f
/home/abuild/rpmbuild/BUILD/Pd-0.42.5-extended/externals/unauthorized/mp3live~/../linux/mp3streamin~.libs
&& cat
/home/abuild/rpmbuild/BUILD/Pd-0.42.5-extended/externals/unauthorized/mp3live~/../linux/mp3streamin~.libs`
/usr/bin/ld: cannot find -lmp3lame
As far as I understood lame-devel is not available in Fedora. How do I proceed?
András
For Debian/squeeze, we rely on the libmp3lame-dev that's in squeeze-backports. Previously, it was required that people downloaded it from deb-multimedia.org. I guess you'd need to get it from somewhere else, but I don't know enough about Fedora to say. Does PlanetCCRMA include lame? I think that would be the best place for dependencies.
Planet CCRMA does have lame, but the OBS doesn't have Planet CCRMA. It is possible to fetch and build the lame sources into with pd but then we would have the lame binary bundled into pd which is not something we want, do we? So my best idea right now is to disable the external(s) that use lame.
I think it'll be a lot easier if you start with just 'puredata' and the libs based on the Library Template. Then once you get the hang of basic RPM packaging, you can take on the whole pd-extended, which can be painful. Also, I think that Pd-extended 0.43.1 will be a lot easier to package since I've fixed all of the problems that came up during the proper debian packaging.
Well... I'm actually enjoying RPM packaging, it's a nice compact thing with everything controlled from a single spec file, and at the moment the simpler way for me is to try to get pd-extended build, and to get into the Library Template, which I'm completely unfamiliar with, at a later point. The problems which I'm having are with some individual externals, but this way when I solve one, the next one comes up, so it's easy to go through all of them. At least I hope so. I'd even say: let me finish packaging 0.42.5-extended as a monolith now (according to the original topic), and let's do 0.43 with the Library Template approach later. Is that OK?
Again, I'm focusing more on the RPM side and I'd by happy if I could feed a debian-ready source tar.gz to the OBS, and I'd provide only the dsc. The less cool way is to upload a static file (like the one generated by pd-extended-source-tarball.sh), the more cool way would be to link to one which is online somewhere. Is there one?
András