Creating an application for Linux

Mike Driscoll kyosohma at gmail.com
Wed Dec 31 16:54:22 EST 2008


On Dec 31, 3:36 pm, lkcl <luke.leigh... at googlemail.com> wrote:
> hiya mike: where do i know you from?  i've heard your name somewhere
> and for the life of me can't remember where!  anyway... onwards.
>

I don't know...while your username looks vaguely familiar, I don't
think I've communicated with you recently. I spend most of my time on
the wxPython list now...


> your simplest bet is to take advantage of the .deb install system,
> which, if you follow that, will allow you to pull in all of the
> dependencies _without_ screwing around with the ubuntu distribution,
> or requiring that you build "special" versions of the dependencies.
>
> so - your first port of call is to locate a similar app to your own
> one:
>
> apt-cache  search wxwidgets
> [rose-tinted filter on the results...]
> cryptonit - A client side PKI (X.509) cryptographic tool
> fontypython - A GUI tool to manage ttf fonts
> jmdlx - jugglemaster deluxe using wxWidgets
> wxmaxima - a wxWidgets GUI for the computer algebra system maxima
> multiget - graphical download manager
>
> then, do apt-cache show <packagename>, paying particular attention to
> the dependencies.  apt-cache show fontypython looks like a good
> candidate.
>
> so, do apt-get source fontypython (or other candidate)
>
> also do apt-get build-essential dh-make dpkg-dev debutils python-dev
> devscripts python-setuptools juuust for fun, but the essential ones
> are probably dh-make and dpkg-dev.
>
> then you have something to work from (an example - the source of the
> deb-wrapped fontypython) and you will have most of the debian
> developer utils etc. etc.
>
> _then_ you go to e.g. oooo this:http://www.pythonmark.com/python-library/debian/howto-build-a-debian-...
> the preamble for which says "don't bother with that annoying ubuntu
> python deb howto video, particularly on the basis that who gives a
> stuff about _verbal_ instructions when you actually want stuff you can
> READ!"
>
> :)
>
> the most important thing that _you_ need to remember is that you
> _must_ identify the correct libraries (and their debian packagenames -
> can't bring myself to say ubuntu packagenames) and make damn sure that
> you add them into the dependencies in the debian/control file.
>
> do _not_ be tempted to "bundle" customised versions of python-
> pysqlite, python-sqlalchemy etc. etc.
>
> testing: you should really use a debootstrap absolute "basic"
> environment (set up a chroot, or a virtual KVM or other virtual PC,
> qemu, whatever, or even a real machine) do NOT do a "full" install of
> ubuntu, do an absolute minimalist install (netbook, businesscard,
> whatever).


I thought the general practice was to test on the closest software/
hardware combo that your application was most likely to run on. I have
heard of doing testing on the lowest common denominator before though.
Unfortunately, I don't have time to set up a bare-bones VM since we're
closing soon, but I may give this a go on Friday and report back.

>
> ... and _then_ install your .deb (with dpkg -i) followed by apt-get -f
> install (to pull in all of the dependencies).
>
> then, use export DISPLAY=192.168.1.5:0.0 (adapt as necessary), run
> xhost + on 192.168.1.5 (adapt as necessary), and _then_ fire up your
> test app.
>
> if you get a python library not found runtime error, you know that you
> got your dependencies wrong, in the debian/control file.
>
> if you install a "vanilla" ubuntu desktop, various other packages will
> pull in the dependencies for you - and you will never find out if you
> got all of the dependencies correct.
>
> that having been said, if you don't _care_ about correctness, skip the
> above six sentences :)
>
> l.
>

Thanks for the instructions.

Mike



More information about the Python-list mailing list