Re: Packaging a gui app

2017-02-26 Thread matt jones
Thanks for the tips on this. I am brand new to packaging Debian products. The 
product I am working on packaging is 
https://github.com/keepassxreboot/keepassxc. My main goal with packaging it is 
because I am a big fan of it and I keep my systems clean so I want a pure 
Debian package that I can install. Hopefully others will find it useful as 
well. I am following the new maintainers guide for now and I don’t see anything 
too taxing in it beyond the work needed and the care that needs to be taken to 
make sure it is done right.

Right now I am still at the make sure it installs cleanly stage. I spun up a 
clean Jessie box in vagrant and have been hammering at the upstream install 
instructions to ensure they are valid for building from source rather than 
using the pre-built packages. Thanks for tips on this, I had completely forgort 
about connecting to a remote server.

-- 
Matt Jones @CaffeinatedEng


On 2/26/17, 11:15 AM, "Christian Seiler"  wrote:

On 02/26/2017 04:52 PM, The Wanderer wrote:
> On 2017-02-26 at 10:47, Ghislain Vaillant wrote:
> 
>> On Sun, 2017-02-26 at 10:15 -0500, matt jones wrote:
>>
>>> I am packaging a gui that has dependencies for qt and such. How do
>>> I go about ensuring that X is available as well? Do I list that as
>>> a dependency as well. The upstream maintainers don’t call it out
>>> specifically but it is understood. Links to docs are always
>>> welcome.
>>
>> Usually, the toolkit your application depends on (here Qt), will
>> bring the necessary dependencies for you. So you don't need to care
>> about X.
> 
> I recall that historically the rule was "you don't depend on having X
> packages installed" regardless, on the grounds that it is or was
> possible to connect to an X instance running on a different machine (it
> is called "the X server", after all) - but I don't spot that in current
> policy, and I do seem to remember reading discussion about repealing
> that rule on the grounds that doing this hasn't actually _worked_ in
> modern X for years if not longer.

I'm not saying it works great, and X forwarding has its problems, but
in general from my experience most programs do still work when forwarded
via X11. Heck, even Firefox works. And I know plenty of people that use
X11 forwarding in various ways (though not necessarily Firefox). Even
OpenGL stuff works, it just falls back to software rendering via Mesa in
that case.

>From my POV, packaging a GUI application is simple in general:

 - dh_shlibdeps will take care of all the dependencies via shared
   libraries (e.g. Qt) automatically, so you don't have to care about
   that directly

 - if you require certain plugins for a library you are using to be
   available, Depend: or Recommend: those packages (depending on how
   fatal their non-availability is)

 - if you need some framework such as KDE, Depend: on that (for
   example, KDE5 packages typically require a Depends: kde-runtime)

 - if you require a DBus bus to be around, Depend: dbus-x11
   (or Recommend: it if the non-availability is non-fatal)

 - if the package contains any scripts, make sure that any tools
   required from those scripts are in your dependencies (since they
   won't be auto-detected at build time)

Regards,
Christian






Re: Packaging a gui app

2017-02-26 Thread Christian Seiler
On 02/26/2017 04:52 PM, The Wanderer wrote:
> On 2017-02-26 at 10:47, Ghislain Vaillant wrote:
> 
>> On Sun, 2017-02-26 at 10:15 -0500, matt jones wrote:
>>
>>> I am packaging a gui that has dependencies for qt and such. How do
>>> I go about ensuring that X is available as well? Do I list that as
>>> a dependency as well. The upstream maintainers don’t call it out
>>> specifically but it is understood. Links to docs are always
>>> welcome.
>>
>> Usually, the toolkit your application depends on (here Qt), will
>> bring the necessary dependencies for you. So you don't need to care
>> about X.
> 
> I recall that historically the rule was "you don't depend on having X
> packages installed" regardless, on the grounds that it is or was
> possible to connect to an X instance running on a different machine (it
> is called "the X server", after all) - but I don't spot that in current
> policy, and I do seem to remember reading discussion about repealing
> that rule on the grounds that doing this hasn't actually _worked_ in
> modern X for years if not longer.

I'm not saying it works great, and X forwarding has its problems, but
in general from my experience most programs do still work when forwarded
via X11. Heck, even Firefox works. And I know plenty of people that use
X11 forwarding in various ways (though not necessarily Firefox). Even
OpenGL stuff works, it just falls back to software rendering via Mesa in
that case.

>From my POV, packaging a GUI application is simple in general:

 - dh_shlibdeps will take care of all the dependencies via shared
   libraries (e.g. Qt) automatically, so you don't have to care about
   that directly

 - if you require certain plugins for a library you are using to be
   available, Depend: or Recommend: those packages (depending on how
   fatal their non-availability is)

 - if you need some framework such as KDE, Depend: on that (for
   example, KDE5 packages typically require a Depends: kde-runtime)

 - if you require a DBus bus to be around, Depend: dbus-x11
   (or Recommend: it if the non-availability is non-fatal)

 - if the package contains any scripts, make sure that any tools
   required from those scripts are in your dependencies (since they
   won't be auto-detected at build time)

Regards,
Christian



Re: Packaging a gui app

2017-02-26 Thread The Wanderer
On 2017-02-26 at 10:47, Ghislain Vaillant wrote:

> On Sun, 2017-02-26 at 10:15 -0500, matt jones wrote:
> 
>> I am packaging a gui that has dependencies for qt and such. How do
>> I go about ensuring that X is available as well? Do I list that as
>> a dependency as well. The upstream maintainers don’t call it out
>> specifically but it is understood. Links to docs are always
>> welcome.
> 
> Usually, the toolkit your application depends on (here Qt), will
> bring the necessary dependencies for you. So you don't need to care
> about X.

I recall that historically the rule was "you don't depend on having X
packages installed" regardless, on the grounds that it is or was
possible to connect to an X instance running on a different machine (it
is called "the X server", after all) - but I don't spot that in current
policy, and I do seem to remember reading discussion about repealing
that rule on the grounds that doing this hasn't actually _worked_ in
modern X for years if not longer.

-- 
   The Wanderer

The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore all
progress depends on the unreasonable man. -- George Bernard Shaw



signature.asc
Description: OpenPGP digital signature


Re: Packaging a gui app

2017-02-26 Thread Ghislain Vaillant
On Sun, 2017-02-26 at 10:15 -0500, matt jones wrote:
> I am packaging a gui that has dependencies for qt and such. How do I go about 
> ensuring that X is available as well? Do I list that as a dependency as well. 
> The upstream maintainers don’t call it out specifically but it is understood. 
> Links to docs are always welcome.

Usually, the toolkit your application depends on (here Qt), will bring
the necessary dependencies for you. So you don't need to care about X.

Ghis



Re: Packaging a gui app

2017-02-26 Thread Zoltan Gyarmati
Dear Matt,

libqt5gui5 is already depending on the needed X libraries, so unless
your app is doing something tricky, you don't need to care about this.
But we can tell more if we see the application in question...


Regards,

Zoltan Gyarmati
https://zgyarmati.de

On 02/26/2017 04:15 PM, matt jones wrote:
>
> I am packaging a gui that has dependencies for qt and such. How do I
> go about ensuring that X is available as well? Do I list that as a
> dependency as well. The upstream maintainers don’t call it out
> specifically but it is understood. Links to docs are always welcome.
>
>  
>
> Thanks!
>
>  
>
> -- 
>
> Matt Jones @CaffeinatedEng
>
> Senior Infrastructure Engineer - Yieldbot Inc. 
>
> Co-Organizer - Boston Infrastructure Coders
> 
>
> Organizer - Metrowest Golang Meetup
> 
>
> https://linkedin.com/in/mattyjones
>
>  
>
>  
>



signature.asc
Description: OpenPGP digital signature


Re: Packaging a gui app

2017-02-26 Thread Zoltan Gyarmati
Dear Matt,

libqt5gui5 is already depending on the needed X libraries, so unless
your app is doing something tricky, you don't need to care about this.
But we can tell more if we see the application in question...


Regards,

Zoltan Gyarmati
https://zgyarmati.de

On 02/26/2017 04:15 PM, matt jones wrote:
>
> I am packaging a gui that has dependencies for qt and such. How do I
> go about ensuring that X is available as well? Do I list that as a
> dependency as well. The upstream maintainers don’t call it out
> specifically but it is understood. Links to docs are always welcome.
>
>  
>
> Thanks!
>
>  
>
> -- 
>
> Matt Jones @CaffeinatedEng
>
> Senior Infrastructure Engineer - Yieldbot Inc. 
>
> Co-Organizer - Boston Infrastructure Coders
> 
>
> Organizer - Metrowest Golang Meetup
> 
>
> https://linkedin.com/in/mattyjones
>
>  
>
>  
>



Packaging a gui app

2017-02-26 Thread matt jones
I am packaging a gui that has dependencies for qt and such. How do I go about 
ensuring that X is available as well? Do I list that as a dependency as well. 
The upstream maintainers don’t call it out specifically but it is understood. 
Links to docs are always welcome.

 

Thanks!

 

-- 

Matt Jones @CaffeinatedEng

Senior Infrastructure Engineer - Yieldbot Inc.

Co-Organizer - Boston Infrastructure Coders

Organizer - Metrowest Golang Meetup

https://linkedin.com/in/mattyjones