LM's, Join the Debian (and/or Ubuntu) Multimedia Team!

Programming applications for making music on Linux.

Moderators: MattKingUSA, khz

Post Reply
studio32

LM's, Join the Debian (and/or Ubuntu) Multimedia Team!

Post by studio32 »

One Musician, One package!

In this topic: http://linuxmusicians.com/viewtopic.php?f=44&t=809
Funkmuscle talks about autopackage, a solution for getting rid of the building problems for Linux audio apps on different distros.

I think a better solution to solve those problems is making the Linux audio packages available for the distros, as *.deb for the Debian based distros for example.

When more people join the Debian multimedia team, more audio packages are available with just one command (apt-get install <package>)!

Many people here builds Debian packages for themselves. Why not choose one or two favorite packages and maintain it for the Debian Multimedia Team? It will help the Linux audio/musicians community much more then only working solo.

Why the Debian multimedia team?


1) Because they want to improve Debian and derivatives (like Ubuntu) for music production!
2) A lot of people use Debian (based) distro's, Debian itself, 64studio, Ubuntu, Sidux, Mepis etc.
3) The Debian Multimedia Team works closely together with The MOTUMedia team in Ubuntu and vice versa. Building for the Debian Multimedia Team = building for Ubuntu (Studio) too.
4) You will learn to build quality packages
5) You get help from the team and you don't have to become a Debian or Ubuntu Developer, you can just be and stay an package maintainer.

What can I do?

1) Build or improve packages for the Debian Multimedia Team. It's recommended to maintain packages you use yourself often.
2) Report bugs and wishes: http://linuxmusicians.com/viewtopic.php ... 3863#p3863
3) Join the Debian multimedia team mailing list: http://lists.alioth.debian.org/mailman/ ... aintainers

Where can I find more info?

wiki:
http://wiki.debian.org/DebianMultimedia
http://wiki.debian.org/DebianMultimedia ... pPackaging

Debian package HowTo:
http://wiki.debian.org/HowToPackageForDebian

Debian New Maintainers' guide:
http://www.debian.org/doc/maint-guide/

To make packaging more easy you can use CDBS:
https://perso.duckcorp.org/duck/cdbs-doc/cdbs-doc.xhtml

The Debian Multimedia team use guilt to manage patches:
http://pkg-perl.alioth.debian.org/howto/quilt.html
http://wiki.debian.org/HolgerLevsen

Building packages for Debian on Ubuntu:
https://wiki.ubuntu.com/PbuilderHowto

Pbuilder (for if you don't run Debian unstable):
http://www.netfort.gr.jp/~dancer/softwa ... r-doc.html

edit: Contributing to Debian Multimedia Team, is contributing to Ubuntu (among others).
The MOTUMedia team in Ubuntu works closely together with The Debian Multimedia Team. https://launchpad.net/~motumedia

So subscribe to both teams if you are a Ubuntu user would be a good idea! :)


edit:
I also noticed you got a lot of good help building your first package on the Debian mentors mailinglist.
http://mentors.debian.net/cgi-bin/welcome

http://www.mail-archive.com/debian-ment ... /info.html
Last edited by studio32 on Tue Apr 21, 2009 2:41 pm, edited 20 times in total.
studio32

Using Pbuilder

Post by studio32 »

The packages should be build in an Debian unstable (sid) environment. If you don't use sid but stable, testing or even another kind of distro like Ubuntu, you can easily set up an chroot evironment, which makes you able to build sid packages anyway. Check out pbuilder and/or cowbuilder

http://www.netfort.gr.jp/~dancer/softwa ... r-doc.html

for Ubuntero's:
https://wiki.ubuntu.com/PbuilderHowto


edit: another advantage of building for Debian is that you don't have to become a official debian developer (DD), you can just become and stay a package maintainer (with or without a mentor)

http://people.debian.org/~mpalmer/debia ... #packaging
Last edited by studio32 on Tue Apr 21, 2009 2:26 pm, edited 2 times in total.
studio32

packaging for 64studio

Post by studio32 »

Also for the coming 64studio 3.0 there is a need for packages to build. You could contribute by building packages for the debian multimedia team!

http://lists.64studio.com/pipermail/64s ... 02621.html
http://lists.64studio.com/pipermail/64s ... 02624.html
http://lists.64studio.com/pipermail/64s ... 02630.html
Last edited by studio32 on Tue Apr 21, 2009 2:25 pm, edited 1 time in total.
studio32

packaging for Ubuntu: MOTUMedia

Post by studio32 »

Contributing to Debian Multimedia Team, is contributing to Ubuntu (among others).
The MOTUMedia team in Ubuntu works closely together with The Debian Multimedia Team. https://launchpad.net/~motumedia

So subscribe to both teams if you are a Ubuntu user would be a good idea! :)

quote from the Debian Multimedia Team mailinglist

> I think building packages for Debian could also improve Debian
> > derivatives, like Ubuntu, for multimedia production. And Ubuntu users
> > could contribute to the Debian multimedia team by maintaining packages.
> > It would be nice if Debian and Ubuntu users could have some kind of
> > working together to improve Debian and Ubuntu for multimedia production.

Yes, Good idea! That's what I've intended when I've created the
MOTUMedia team. Unfortunately, the only active people were slomo,
crimsun and myself. :-(

> > Ubuntu users could contribute to the Debian Multimedia Team to maintain
> > packages, but they also want to be sure that their packages they make
> > for Debian will hit Ubuntu of course.

We already have too many packages for too little manpower. So any help
is more than welcome!

> > So I was wondering:
> >
> > 1) how can I maintain a multimedia package for Debian and be sure that
> > it hits Ubuntu (Studio) too?

I'd say get that package imported in a git branch on
git.debian.org. Distributed development is ideal for this usecase.

> > 2) how can I make a Ubuntu package from an Debian package?
> > 3) how can I make an Debian package from an Ubuntu package?

Ubuntu and Debian packages share the same format. Ideally there are no
differences between the debian and the ubuntu package.

For packages that need to have some difference, I'd suggest to maintain
the ubuntu package in a git branch. That way merging back and forth
remains easy.

> > 4) how could we improve this 'working together'?

Subscribe to this mailing list, send patches to existing packages, get
the packages accepted, make sure that packages from debian are kept
up-to-date in ubuntu.

I already do that for the ubuntu ffmpeg and mplayer packages, and I
start to feel a bit lonley :-)
Last edited by studio32 on Tue Apr 21, 2009 2:26 pm, edited 1 time in total.
User avatar
nathan
Site Admin
Posts: 405
Joined: Mon Dec 11, 2006 8:53 pm
Location: Phoenix, AZ
Been thanked: 5 times
Contact:

Re: LM's, Join the Debian (and/or Ubuntu) Multimedia Team!

Post by nathan »

Thanks for all this info. I will definitely be thinking about packages I could possibly maintain...is there a list of packages that need maintainers?
studio32

Building the package

Post by studio32 »

That's great. Others are busy too and also I have packaged some and ready to upload now. Pick an small package first, maybe a synth or something? Subscribe to the mailinglist and also to the debian-mentors mailinglist, they can help you a lot. I also contact the upstream author (the author of the package) he can also help a lot and give info about build-depends and depends, maybe provide an manpage etc.
Here is an chat with someone who helped me and I build packages this way, using cdbs to make it more easy:
(I assume you read the debian package build howto or debian new maintainers guide)

Code: Select all


 dh_make -e my.email@mail.com -f ../rumor-1.0.3b.tar.gz -c gpl -b


 and what does: -c gpl -b

: -c gpl sets the license in debian/copyright to GPL (which is what rumor is distributed under)

: -b uses CDBS


 Fill in debian/control with the required information... debian/changelog... etc.



: also, run ``grep -rin copyright *'' from the source root to make sure that there aren't any other 
authors.




 so, I'd make a ~/tmp_debian_files/ and mv *.ex ~/tmp_debian_files/ ... then I'd run debuild -S -sa 
from the source root.


 cd .. && lintian -I --pedantic rumor-foo.dsc

that tmp folder I make in /rumor-x/debian ?

 no, outside, you can make it in /tmp or /home/wherever.

: You just want to move the *.ex and *.EX files out of the debian/ directory... but keep them as a 
reference for later on.

 debuild -S -sa -k<Your key>

 mmh I've set a key, but forgot.. howto get it?

 gpg --list-keys <name>

 what does this do btw, lintian -I --pedantic rumor-foo.dsc ?

 Sweet, now, copy watch.ex back to debian/watch ... edit it (man uscan if I rememer correctly...)

 lintian checks for packaging errors. -I displays informational tags. --pedantic ``Pedantic tags are 
Lintian at its most pickiest and include checks for particular packaging styles''

 now, go back to the source directory, debuild -S -sa -k<foo>
 then rerun lintian.
 if it's clean, try building the dsc-
 how building the dsc?
: with pbuilder

 pbuilder --build rumor.foo.dsc


 pbuilder --update first
Here is an list with packages, RFP = request for package
http://bugs.debian.org/cgi-bin/pkgrepor ... 0gmail.com

edit: maybe this is a good one to start with: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522884
First mail the upstream author about you plans..

See also http://wiki.debian.org/DebianMultimedia ... pPackaging
Last edited by studio32 on Tue Apr 21, 2009 6:47 pm, edited 3 times in total.
studio32

menu entries

Post by studio32 »

some info about menu entries:

For the traditional Debian menu entries, see:
http://www.debian.org/doc/packaging-man ... index.html

For FreeDesktop.org menu entries, see:
- Packaging information:
https://wiki.ubuntu.com/PackagingGuide/ ... es#Desktop
- Specifications: http://standards.freedesktop.org/deskto ... ec/latest/
- List of categories:
http://standards.freedesktop.org/menu-s ... t/apa.html
- The "desktop-file-validate" tool to check if the file looks correct.

Of course you can look at other packages how they do it...
studio32

manpages

Post by studio32 »

Making manpages:

I always ask an upstream author to provide one.
Tools which are useful:
help2man
gmanedit


For example I have an rumor manpage for the package rumor in /debian

Code: Select all

rumor.1
and I have an file in the debian folder:

Code: Select all

rumor.manpages
with the content:

Code: Select all

debian/rumor.1
studio32

uploading package to Debian Multimedia (or mentors.debian.ne

Post by studio32 »

I've uploaded today, whysynth, rumor, xjadeo and jack-mixer. I hope they are right.

I've introduced myself to the on the pkg-multimedia-maintainer mailinglist

And registered myself on alioth.debian

I reported my login name to pkg-multimedia-...

They gave me access, and I uploaded it:

Code: Select all

git-import-dsc your-source-package.dsc
(please have a look to git-buildpackage.)

For new projects, I usually do something like:

Code: Select all

ssh <user>@git.debian.org
cd /git/pkg-multimedia
./setup-repository <project> "Project description"
[logout]
cd /path/to/local/<project>
git remote add alioth ssh://<user>@git.debian.org/git/pkg-multimedia/<project>.git
git push alioth master
git push alioth --tags
See also at the bottom of this page!
http://wiki.debian.org/DebianMultimedia ... pPackaging

more info about working with git:
http://wiki.debian.org/Alioth/Git
http://lists.alioth.debian.org/pipermai ... 04293.html
http://www.kernel.org/pub/software/scm/ ... anual.html

It's also possible to upload it to mentors.debian.net ( http://mentors.debian.net/cgi-bin/maintainer-intro ), but it's pretty hard sometimes to get an sponsor, so if it's an audio/video package, the pkg-multimedia team is the best way to go IMO.
Last edited by studio32 on Thu May 28, 2009 11:17 am, edited 1 time in total.
studio32

final stage: upload to Debian

Post by studio32 »

My first package will hit Debian soon :)
The package looks in very good shape, nice job! I've just re-touched a
bit the description because some lines where longer than 80 chars
(there were lintian warnings for them). You can get my changes with
git pull.

I've just uploaded the package to Debian, it will be hold in the NEW
queue until it passes all QA checks.

http://ftp-master.debian.org/new.html
I hope it inspires people to follow me in building some packages! :)
studio32

When upstream doesn't install menu entry / icon

Post by studio32 »

A quick tutorial about debian packaging "states". When you build your
package everything that needs to be compiled gets compiled. Then
everything is installed into a temporary directory inside debian/ then
various dh_ commands are run to change/make the temporary directories
fit for actual binary .deb. At the the end metadata, maintainer
scripts and those temp directories are compressed into an archive with
name ending in deb.

To get better understanding let's do this:

1) Change into the directory of your package, eg. cd foo-1.0/
2) Run this command
debuild binary
3) Now go into debian/ and look what you have in there. A good way to
see what's there is to run this:

du -a

This should show all the files in all subdirectrories. One particular
directory you want to look at is the one named after your package
(hope you are still following, I'm talking about foo-1.0/debian/foo).
It has all the files that will end up in the final deb. Sometimes (if
you are building more than one package) you will have 3 folders e.g.:
tmp/ foo/ foo-data/

Sometimes you will notice that upstream compilation doesn't install
everything you want. In that case you create the debian/$foo.install
files.

Case 1 Single package (you are only creating ONE deb)
Step 1) create debian/install
Step 2) For each missing file/directory write one line:
source destination-dir

Where source is path relative the toplevel source directory (foo-1.0),
and destination-dir is where you want the files to end up when your
package is installed on the system eg. (usr/share/lib/)

Case 2 Multiple deb package (youare creating MORE THAN ONE deb)
Step 1) create debian/$(package).install eg. if you want to install
something additionally into a package called supercow-data you create
a file debian/supercow-data.intall
Step 2) Same as in case 1.

> > I have package.install
> >
> > with:
> >
> > debian/tmp/usr/share/applications/* usr/share/applications/

Most likely you want to simply write

upstream/location/of/desktop/files usr/share/applications

And rename "package.install" into simply "install".

"upstream/location/of/desktop/files" is the path to the .desktop
file/files in the tarball

eg. one of my upstreams has desktop files in
vitables-2.0/unixapp/vitables.desktop so in my debian/install I have
this line:

unixapp/vitables.desktop usr/share/applications


Hope this helps. please take a little bit of time and play around with
it to understand which paths you need to be using when. It's something
I had to spend a little while to get the hang of.
studio32

Re: LM's, Join the Debian (and/or Ubuntu) Multimedia Team!

Post by studio32 »

I'm glad I see more and more (especially Ubuntu people) help packaging for the Debian Multimedia team. Good for Debian, AVLinux, Ubuntu, Ubuntu Studio and 64studio :)

Consider to join to ;)
Post Reply