77 lines
3.3 KiB
Plaintext
77 lines
3.3 KiB
Plaintext
--------------------------------------------------------------------------------
|
|
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.
|