[haiku-bugs] Re: [Haiku] #13141: HaikuDepot - Add system requirement to HPKG packages

  • From: "michel" <trac@xxxxxxxxxxxx>
  • Date: Tue, 03 Jan 2017 17:35:04 -0000

#13141: HaikuDepot - Add system requirement to HPKG packages
--------------------------+------------------------------------------------
   Reporter:  lelldorin   |      Owner:  nobody
       Type:              |     Status:  reopened
  enhancement             |  Milestone:  R1
   Priority:  normal      |    Version:  R1/Development
  Component:  - General   |   Keywords:  haikudepot,hpkg,system requiroment
 Resolution:              |   Blocking:
 Blocked By:              |   Platform:  All
Has a Patch:  0           |
--------------------------+------------------------------------------------

Comment (by michel):

 IMHO, if your app requires a specific piece of hardware like a webcam,
 then it's the programmer's job to detect this in a post-install script or
 applet and display an alert: "You don't seem to have a webcam on this
 machine. My_Great_Skype_clone won't work optimally without one". It is not
 the package system's job. Or you put the capability in the app itself. My
 app Fontmonkey requires internet access, so it tests for it every time it
 starts up. My app Yabadabbadoo required 1024x768 in early revisions. I
 have since tweaked it to run (looks ugly, but it runs) in lower
 resolutions.

 To be blunt, if you need to list the dependencies, the packager can easily
 put this in the description {} field. But why? You should be putting those
 in the requires {} field and the system should automagically install them,
 e.g. libqt4_x86. Why does the user need to know this? You can always rip
 the HPKG apart in Expander and read the .PackageInfo if you are a
 developer (note to devs: please do not remove this capability).

 I do think specifying a minimum amount of RAM is a useful idea. Of course
 that presupposes that we have a way to test for it when developing the
 app. Is there a RAM-limiting utlitity out there? I can't really afford
 twenty computers each with a different amount of RAM on board to test a
 new app. With Pulse we can shut down processor cores and see if the app
 still runs, but how would you do that with memory? Create a RAMdisk to
 take up unwanted RAM, then grow it until the app stops responding?

 The other way that I think the OP has a point is in graphics drivers.
 Especially in games, we may come to a point where we want to specify that
 an app is not going to do well in a VESA environment and needs a driver
 that talks to the GPU more directly. We're not there yet, as Pulkomandy
 points out, but a little future-proofing might be something to think
 about.

 What we are missing as far as I know is  a way to indicate alternatives: a
 given app may need a PDF viewer, but we can only specify one as a
 dependency. if we could say "get either BePDF or DocumentViewer" that
 would give us all more flexibility. If I have missed a subtlety in the
 packaging system, please let me know.

 But those would be long-term enhancements - no need to delay a beta
 release for this.

--
Ticket URL: <https://dev.haiku-os.org/ticket/13141#comment:9>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: