summaryrefslogtreecommitdiff
path: root/Docs/PACKAGING-GTK
blob: 42c589991245b3085a08a3a5aeaa62d26184d70e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
--------------------------------------------------------------------------------
  Packaging suggestions for NetSurf                              21 March 2008
--------------------------------------------------------------------------------

  This document lays out some suggestions for people interested in packaging
  NetSurf for UNIX-like OSes.

  We consider the Debian (and thus Ubuntu) packages excellent examples to
  crib from.  They do everything right.


  Launching NetSurf
===================

  The GTK port of NetSurf requires access to some resources at run time.
  These are stored in gtk/res/ in the source tree.  Some of these files are
  symlinks into the !NetSurf directory, which is the application container
  for the native RISC OS build.  None of the other files from the !NetSurf
  directory are required - the symlinks are used only as a way of making
  checkouts smaller and making sure changes to one set of resources updates
  the other.

  The binary that the build system produces is called "nsgtk".  There is also
  a shell script called "netsurf" that will set up the environment and launch
  the nsgtk binary.  Do not ship this shell script with your package.  It is
  included only as a convience for launching NetSurf from the build tree.
  Instead, you should move nsgtk to /usr/bin/netsurf (or wherever your
  distribution's packaging policy suggests) and copy the contents of
  gtk/res/ (dereferencing the symlinks, obviously) to /usr/share/netsurf (or
  wherever your packaging policy suggests).

  You will need to tell NetSurf where to find its resources.  NetSurf searches
  three locations by default when trying to load them, in this order:

    1. ~/.netsurf/
    2. $NETSURFRES/
    3. /usr/share/netsurf/

  The second one is how the netsurf launcher script controls it.  The third
  location is controlled by #define RESPATH in gtk/gtk_gui.c, and this is
  the recommended way for packagers to change the location it searches,
  as this still allows the user some flexibility in changing what NetSurf
  uses.


  User agent string
===================

  You may also want to change NetSurf's user agent string to include the
  name of your distribution.  The user agent string is build by a function
  kept in utils/useragent.c - you'll want to change the macro called
  NETSURF_UA_FORMAT_STRING.  It's processed via sprintf, so keep that in
  mind when changing it.  The first two printf parameters are major and minor
  version numbers, the second two are OS name (uname -s) and architecure
  (uname -m).  You might want change this to something like:

      "NetSurf/%d.%d (%s; %s; Debian GNU/Linux)"

  or similar.  Please don't be tempted to mention Mozilla or similar - let's
  let that lie die.


  Home page URL
===============

  If the user hasn't specified a home page URL in their Preferences, NetSurf
  defaults to a "portal" welcome page on http://www.netsurf-browser.org/ - if
  you wish to change this, you need to do it two places currently; in the
  function gui_init2() in gtk/gtk_gui.c and nsgtk_window_home_button_clicked()
  in gtk/gtk_scaffolding.c.


  If you make significant changes to NetSurf in your package, please ask your
  users to report bugs to your bug tracker, not ours.  We'd also be interested
  in seeing the diffs for these changes - we may be able to integrate them
  to make your job easier in future.