diff --git a/website/content/en/gnome/_index.adoc b/website/content/en/gnome/_index.adoc --- a/website/content/en/gnome/_index.adoc +++ b/website/content/en/gnome/_index.adoc @@ -11,11 +11,14 @@ == What is GNOME? -GNOME is a complete graphical desktop for X, including everything from a window manager to web browsers, audio players, office programs, graphical login programs and more. MATE is a continuation of the old GNOME 2 desktop environment. Cinnamon is originally a fork of GNOME 3's gnome-shell, but grew into its own desktop environment. +GNOME is a complete graphical desktop for X, including everything from a window manager to web browsers, audio players, office programs, graphical login programs and more. +MATE is a continuation of the old GNOME 2 desktop environment. +Cinnamon was originally a fork of GNOME 3's gnome-shell, but grew into its own desktop environment. == How to install these desktop environments? -There are some so called meta ports available for installing these desktop environments or parts of them. They are: +There are some so called meta ports available for installing these desktop environments or parts of them. +They are: * gnome3 (full GNOME desktop) * gnome3-lite (minimal GNOME desktop) @@ -23,33 +26,30 @@ * mate-lite (minimal MATE desktop) * cinnamon -The easiest way of installing is to run the following command and replace gnome3 with the desktop environment of choice: +The easiest way of installing is to run the following command and replace gnome with the desktop environment of choice: .... -# pkg install gnome3 +# pkg install gnome .... Or if you prefer to build from source: .... -# cd /usr/ports/x11/gnome3 -# make clean +# cd /usr/ports/x11/gnome # make install clean .... == State of the port: -GNOME, MATE, and Cinnamon for FreeBSD are currently fully supported on 11.1, 11-STABLE, and 10.4, while support for 12.0-CURRENT is provided on a best effort basis. - -GNOME is simple and easy to build using the FreeBSD ports system, but sometimes things simply go wrong. Please see our link:docs/bugging/[Bug reporting] page for more info. +GNOME, MATE, and Cinnamon for FreeBSD are currently fully supported. == Resources * link:https://wiki.freebsd.org/Gnome[FreeBSD GNOME's wiki page] * link:https://www.gnome.org/[GNOME Project] -* link:https://news.gnome.org/[GNOME Project news] +* link:https://foundation.gnome.org/news/[GNOME Project news] * link:https://developer.gnome.org/[GNOME development platform] -* link:http://planet.gnome.org/[Planet GNOME (blogs)] +* link:https://planet.gnome.org/[Planet GNOME (blogs)] * link:https://mate-desktop.org/[MATE Project] * link:https://github.com/linuxmint/Cinnamon[Cinnamon Project] diff --git a/website/content/en/gnome/docs/bugging.adoc b/website/content/en/gnome/docs/bugging.adoc deleted file mode 100644 --- a/website/content/en/gnome/docs/bugging.adoc +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "FreeBSD GNOME Project: Reporting a Bug" -sidenav: gnome ---- - -= FreeBSD GNOME Project: Reporting a Bug - -== 1. When should I make a bug report? - -* *_After_* running any build failure output through link:/gnome/gnomelogalyzer.sh[gnomelogalyzer.sh]. -* *_After_* running `portsnap` to obtain the most recent ports tree. -* *_After_* running `portupgrade -a` or `portmaster -a` to ensure that all applications are up-to-date. Do not forget to read in `/usr/ports/UPDATING` first before you upgrade those installed ports. -* *_After_* searching through the FreeBSD GNOME link:../../[Mailing list archives] to see if the problem has already been reported. -* *_After_* deciding whether the problem is FreeBSD-specific, or is a bug in an application that would affect all users, on all operating systems. If you cannot determine if the problem is FreeBSD-specific or not, then send your problem to the mailto:freebsd-gnome@FreeBSD.org[freebsd-gnome mailing list], and we can help decide where the problem lies. - -== 2. What to report? - -Always report as much information as you can. Too much information is always preferable to too little information. Superfluous information can be filtered out; developers like to play guessing games with code, not with bug reports. - -A good bug report should at least include the following information: - -* Exact version of the operating system (usually output of `uname -a`). -* List of all packages installed on your system (output of `pkg_info`). -* Your environment (output of `/usr/bin/env`). -* If you are building from ports, note approximately how long it has been since you last updated your ports tree. If it has been more than a day, or if you have not run `portupgrade -a` or `portmaster -a`, do not bother sending a bug report until you have run `portsnap` and `portupgrade/portmaster`. -* Information specific for each type of breakage: -** If a port will not build, provide a full log of the unsuccessful build by uploading it to any website or copy-and-paste to http://freebsd-gnome.pastebin.com. Try to avoid sending any attachments to the mailing list, because attachments sent to FreeBSD mailing lists are usually discarded by the mailing list software. -** If a program produces a core dump, provide a back trace. Back traces are only useful if the application (and possibly its dependencies) are compiled with debugging symbols. See these http://live.gnome.org/GettingTraces[instructions] for more information on obtaining useful back traces. In general, though, you can build and install your port with the following command to produce binaries that will have useful debugging symbols: `make WITH_DEBUG="yes" install` -** If an application produces unexpected behavior, provide a clear and detailed description, including a description of the behavior that you were expecting. - -If you have a solution or a workaround for the problem, then include it into your report as well, even if you are not quite sure that it is a proper fix. Even if the fix is not quite right, it could still point others in the right direction. - -== 3. Where to report? - -Once you are sure it is a new problem, there are several ways to report a bug in GNOME running on FreeBSD: you could send a report to the mailto:freebsd-gnome@FreeBSD.org[freebsd-gnome mailing list], file a problem report in the link:../../../support/[FreeBSD bug reporting system], send your report to the application's developers via the GNOME http://bugzilla.gnome.org/[bug tracking system], or any combination of those. - -* If the problem is FreeBSD-specific (usually, this means a problem with building or upgrading), then report to the mailto:freebsd-gnome@FreeBSD.org[freebsd-gnome mailing list], or file a bug report through the link:../../../support/[FreeBSD bug reporting system]. -* If the problem has to do with an application's behavior, report the problem directly to the application's developers through the GNOME project's http://bugzilla.gnome.org/[bug tracking system] -* If the problem is quite serious, not necessarily FreeBSD-specific, _and_ you have a fix available, report it to both the FreeBSD GNOME team and the application's developers. This way, the application's developers can apply the patch upstream, and the FreeBSD GNOME team can apply the patch immediately to the ports tree without needing to wait for the next release. diff --git a/website/content/en/gnome/docs/develfaq.adoc b/website/content/en/gnome/docs/develfaq.adoc deleted file mode 100644 --- a/website/content/en/gnome/docs/develfaq.adoc +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "FreeBSD GNOME Project: GNOME Development Branch FAQ" -sidenav: gnome ---- - -include::shared/releases.adoc[] - -= FreeBSD GNOME Project: GNOME Development Branch FAQ - -== Contents - -* <> -* <> -* <> -* <> -* <> -* <> -* <> - -== Full Text - -[[q1]] -* *What are development versions of GNOME all about?* - -The development versions are the packages released by the GNOME project that will eventually become the stable (release) versions. There are three working branches of GNOME development: - -1. *STABLE* - The applications and libraries in the stable branch are considered "release quality," and are the versions that appear in the FreeBSD ports tree. The current stable version is GNOME {gnomever}. - -2. *DEVELOPMENT* - In between stable releases are development releases. Traditionally, GNOME development releases have odd minor numbers (e.g. 2.3, {gnomedevelver}, 3.(n*2)-1). Development releases will become stable releases, and move from alpha to beta quality during their lifecycle. The development releases need testing by FreeBSD users to minimize the number of surprises when the new stable versions are committed to the FreeBSD SVN tree. This document is about the development branch. At any time the development branch for FreeBSD might be based of a stable GNOME release. However it will be tagged "development" here if it is the version that is work in progress by the FreeBSD GNOME team. The current development branch for FreeBSD is GNOME {gnomedevelver}. - -3. *GIT* - Often newer-than-new, the GIT master versions of GNOME applications and libraries are alpha quality, or often completely unbuildable. The FreeBSD GNOME project pays attention to, but does not track the alpha quality code. - -[[q2]] -* *Should I track GNOME development versions?* - -If you are looking for a stable environment, absolutely not. Please only track the GNOME {gnomedevelver} branch if you wish to help identify bug and improve the FreeBSD GNOME project. You will find little sympathy if a development-quality GNOME application eats your homework. - -[[q3]] -* *How do I obtain the development versions of GNOME stuff?* - -mailto:marcus@FreeBSD.org[Marcus] maintains a SVN repository where all the development versions of the GNOME components for FreeBSD are housed. Instructions for how to check out the development ports module and how to merge it into the FreeBSD ports tree reside on the entrance page to his SVN repository. Please read carefully the instructions at http://www.marcuscom.com/viewvc/viewvc.cgi/marcuscom/. - -During the development cycle, FreeBSD-specific caveats and other useful information will be sent to marcuscom-devel@marcuscom.com. If you are tracking the GNOME development branch, you *must* http://www.marcuscom.com/mailman/listinfo/marcuscom-devel[subscribe] to this list. You should also consider https://lists.freebsd.org/subscription/freebsd-gnome[subscribing] to freebsd-gnome@FreeBSD.org. - -In order to help with bug reports, be sure to add the following to `/etc/make.conf` so that gdb back traces contain useful information: - -.... -WITH_DEBUG="yes" -.... - -GNOME has an excellent guide for getting https://wiki.gnome.org/GettingTraces[useful back traces]. - -[[q4]] -* *How do I keep everything up-to-date and in sync?* - -The short answer is that you need to use the `marcusmerge` script to merge the development tree with the FreeBSD ports tree. The `marcusmerge` script is available http://www.marcuscom.com/downloads/marcusmerge[here], and a man page on using the script is available http://www.marcuscom.com/marcusmerge.8.html[here]. This script will merge the development ports tree into your main ports tree. From there, you can use `portupgrade` or `portmaster` to upgrade from {gnomever} to {gnomedevelver} and stay up-to-date afterwards. - -The long answer is that keeping up-to-date with the GNOME development branch is complicated. Sometimes components change in a way that makes `portupgrade` or `portmaster` fail, or causes strange end results. If you plan to track the development branch, it is a good idea to join the https://lists.FreeBSD.org/subscription/freebsd-gnome[freebsd-gnome] mailing list, as well as to join the _#freebsd-gnome_ IRC channel on FreeNode (`irc.freenode.net`). - -If all of this sounds scary, or you need a desktop that "Just Works," you should stick with the {gnomever} version that is available in the FreeBSD ports tree. - -[[q5]] -* *What should I do when something does not work?* - -It depends. If you think the problem is truly a bug with the GNOME component, you can report a bug using *bug-buddy* or the GNOME http://bugzilla.gnome.org[Bugzilla] interface. If you think the problem lies in a FreeBSD port, or is FreeBSD-specific, send email to freebsd-gnome@FreeBSD.org, or report the problem on the _#freebsd-gnome_ IRC channel on FreeNode. - -Please forward all relevant bug IDs to freebsd-gnome@FreeBSD.org so we can keep track of known issues. Thanks! - -[[q6]] -* *How can I help with the development versions?* - -Now that work on {gnomedevelver} has started, we need people to install it, and test things. If you are compiling {gnomedevelver} by hand, be sure to build link:../bugging/[debugging symbols]. Package users will have these symbols already. - -[[q7]] -* *What is the current state of development GNOME on FreeBSD?* - -{gnomever} is the latest version that was merged into the FreeBSD ports tree. Work is currently underway to make {gnomedevelver} stable. diff --git a/website/content/en/gnome/docs/example-makefile.adoc b/website/content/en/gnome/docs/example-makefile.adoc deleted file mode 100644 --- a/website/content/en/gnome/docs/example-makefile.adoc +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "FreeBSD GNOME Project: Example GNOME Makefile" -sidenav: gnome ---- - -= FreeBSD GNOME Project: Example GNOME Makefile - -The following is an example Makefile for a FreeBSD GNOME port. - -.... -# New ports collection makefile for: gnomeapp -# Date created: 27 December 2003 -# Whom: Some GNOME User -# -# $FreeBSD: head/en_US.ISO8859-1/htdocs/gnome/docs/example-Makefile.xml 43181 2013-11-13 06:10:37Z hrs $ -# - -# For this example, assume there was already a gnomeapp in the tree, and that this -# is the GTK+-2 version (i.e. gnomeapp2 versus gnomeapp). -PORTname= gnomeapp2 -PORTVERSION= 2.32.2 -MASTER_SITES= ${MASTER_SITE_GNOME} -MASTER_SITE_SUBDIR= sources/${PORTNAME:S/2//}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/} -DISTname= ${PORTNAME:S/2//}-${PORTVERSION} -DIST_SUBDIR= gnome2 - -MAINTAINER= gnome@FreeBSD.org -COMMENT= A GNOME app that does some stuff - -USE_BZIP2= yes -GNU_CONFIGURE= yes # NOTE: if the port needs ltverhack, this must be -USE_AUTOTOOLS="libtool":15 -USE_GMAKE= yes # same with GNU make -# This is for i18n: -CONFIGURE_ENV+= CPPFLAGS="-I${LOCALBASE}/include" \ - LDFLAGS="-L${LOCALBASE}/lib" -USE_GNOME= gnomehack gtk20 - -# This application can dock in the GNOME panel, or it can not. -# But there's no need to build support for it if the GNOME panel -# libraries are not installed, so only build GNOME panel support -# if the gnomepanel port is already installed. -WANT_GNOME= yes - -.include - -.if ${HAVE_GNOME:Mgnomepanel}!="" -USE_GNOME+= gnomepanel -CONFIGURE_ARGS+= --with-gnome -PKGNAMESUFFIX= -gnome -.else -CONFIGURE_ARGS+= --without-gnome -.endif - -# Given all the above code, the package name is either "gnomeapp2-gnome-2.32.2" or -# "gnomeapp2-2.32.2", depending upon whether you want gnomepanel support. The downloaded -# distfile will be "gnomeapp-2.32.2.tar.bz2." - -.include -.... diff --git a/website/content/en/gnome/docs/gnome1_porting.adoc b/website/content/en/gnome/docs/gnome1_porting.adoc deleted file mode 100644 --- a/website/content/en/gnome/docs/gnome1_porting.adoc +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "FreeBSD GNOME Project: GNOME 1 Components" -sidenav: gnome ---- - -= FreeBSD GNOME Project: GNOME 1 Components - -To see how to utilize these components, please examine the link:../example-makefile/[example Makefile]. - -[.tblbasic] -[cols=",,",] -|=== -|*COMPONENT* |*ASSOCIATED PROGRAM* |*IMPLIED COMPONENTS* -|bonobo |devel/bonobo |oaf gnomeprint -|gal |x11-toolkits/gal |libglade -|gconf |devel/gconf |oaf -|gdkpixbuf |graphics/gdk-pixbuf |gtk12 -|glib12 |devel/glib12 |pkgconfig -|gnomecanvas |graphics/gnomecanvas |gnomelibs gdkpixbuf -|gnomedb |databases/gnome-db |libgda -|gnomelibs |x11/gnome-libs |esound imlib libxml orbit -|gnomeprint |print/gnome-print |gnomelibs gnomecanvas -|gnomevfs |devel/gnome-vfs1 |gnomemimedata gconf gnomelibs -|gtk12 |x11-toolkits/gtk12 |glib12 -|imlib |graphics/imlib |gtk12 -|libgda |databases/libgda |gconf bonobo -|libghttp |www/libghttp | -|libglade |devel/libglade |gnomedb -|libxml |textproc/libxml |glib12 -|oaf |devel/oaf |orbit libxml -|orbit |devel/ORBit |glib12 -|pygtk |x11-toolkits/py-gtk |gnomelibs gdkpixbuf libglade -|=== - -If you still need help with your port, have a look at some of the existing ports for examples. The link:mailto:freebsd-gnome@FreeBSD.org[freebsd-gnome mailing list] is also there for you. diff --git a/website/content/en/gnome/docs/gnome2_porting.adoc b/website/content/en/gnome/docs/gnome2_porting.adoc deleted file mode 100644 --- a/website/content/en/gnome/docs/gnome2_porting.adoc +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "FreeBSD GNOME Project: GNOME 2 Components" -sidenav: gnome ---- - -= FreeBSD GNOME Project: GNOME 2 Components - -To see how to utilize these components, please examine the link:../example-makefile/[example Makefile]. - -[.tblbasic] -[cols=",,",] -|=== -|*COMPONENT* |*ASSOCIATED PROGRAM* |*IMPLIED COMPONENTS* -|atk |accessibility/atk |glib20 -|atspi |accessibility/at-spi |gtk20 libbonobo -|desktopfileutils |devel/desktop-file-utils |glib20 -|eel2 |x11-toolkits/eel |gnomedesktop -|evolutiondataserver |databases/evolution-data-server |libgnomeui -|gal2 |x11-toolkits/gal2 |gnomeui libgnomeprintui -|gconf2 |devel/gconf2 |orbit2 libxml2 gtk20 -|_glib20 |devel/glib20 |pkgconfig -|glib20 |devel/gio-fam-backend |_glib20 -|gnomecontrolcenter2 |sysutils/gnome-control-center |metacity gnomemenus desktopfileutils libgnomekbd gnomedesktop librsvg2 -|gnomedesktop |x11/gnome-desktop |gconf2 gnomedocutils pygtk2 -|gnomedesktopsharp20 |x11-toolkits/gnome-desktop-sharp20 |gnomesharp20 -|gnomedocutils |textproc/gnome-doc-utils |libxslt -|gnomemenus |x11/gnome-menus |glib20 -|gnomepanel |x11/gnome-panel |gnomedesktop libwnck gnomemenus gnomedocutils librsvg2 libgnomeui -|gnomesharp20 |x11-toolkits/gnome-sharp20 |gnomepanel gtkhtml3 gtksharp20 librsvg2 vte -|gnomespeech |accessibility/gnome-speech |libbonobo -|gnomevfs2 |devel/gnome-vfs |gconf2 gnomemimedata -|gtk20 |x11-toolkits/gtk20 |intltool atk pango -|gtkhtml3 |www/gtkhtml3 |libgnomeui -|gtksharp10 |x11-toolkits/gtk-sharp10 |gtk20 -|gtksharp20 |x11-toolkits/gtk-sharp20 |gtk20 -|gtksourceview |x11-toolkits/gtksourceview |libgnome libgnomeprintui -|gtksourceview2 |x11-toolkits/gtksourceview2 |gtk20 libxml2 -|gvfs |devel/gvfs |glib20 gconf2 -|libartlgpl2 |graphics/libart_lgpl |pkgconfig -|libbonobo |devel/libbonobo |libxml2 orbit2 -|libbonoboui |x11-toolkits/libbonoboui |libgnomecanvas libgnome -|libgailgnome |x11-toolkits/libgail-gnome |libgnomeui atspi -|libgda2 |databases/libgda2 |glib20 libxslt -|libgda3 |databases/libgda3 |glib20 libxslt -|libgda4 |databases/libgda4 |glib20 libxslt -|libglade2 |devel/libglade2 |libxml2 gtk20 -|libgnome |x11/libgnome |gnomevfs2 esound libbonobo -|libgnomecanvas |graphics/libgnomecanvas |libglade2 libartlgpl2 -|libgnomedb |databases/libgnomedb |libgnomeui libgda3 -|libgnomekbd |x11/libgnomekbd |gconf2 -|libgnomeprint |print/libgnomeprint |libbonobo libartlgpl2 gtk20 -|libgnomeprintui |x11-toolkits/libgnomeprintui |libgnomeprint libgnomecanvas -|libgnomeui |x11-toolkits/libgnomeui |libbonoboui -|libgsf |devel/libgsf |gconf2 glib20 libxml2 -|libgsf_gnome |devel/libgsf-gnome |libgsf gnomevfs2 -|libgtkhtml |www/libgtkhtml |libxslt gnomevfs2 -|libidl |devel/libIDL |glib20 -|librsvg2 |graphics/librsvg2 |libgsf gtk20 -|libwnck |x11-toolkits/libwnck |gtk20 -|libxml2 |textproc/libxml2 |pkgconfig -|libxslt |textproc/libxslt |libxml2 -|libzvt |x11-toolkits/libzvt |gtk20 -|linc |net/linc |glib20 -|metacity |x11-wm/metacity |gconf2 -|nautilus2 |x11-fm/nautilus |librsvg2 gnomedesktop desktopfileutils gvfs -|nautiluscdburner |sysutils/nautilus-cd-burner |nautilus2 eel2 desktopfileutils -|orbit2 |devel/ORBit2 |libidl -|pango |x11-toolkits/pango |glib20 -|pygnome2 |x11-toolkits/py-gnome2 |libgnomeui pygtk2 -|pygnomedesktop |x11-toolkits/py-gnome-desktop |pygnome2 libgnomeprintui gtksourceview gnomepanel libwnck nautilus2 metacity -|pygnomeextras |x11-toolkits/py-gnome-extras |pygnome2 libgtkhtml -|pygtk2 |x11-toolkits/py-gtk2 |libglade2 -|pygtksourceview |x11-toolkits/py-gtksourceview |gtksourceview2 pygtk2 -|vte |x11-toolkits/vte |gtk20 -|=== - -If you still need help with your port, have a look at some of the existing ports for examples. The link:mailto:freebsd-gnome@FreeBSD.org[freebsd-gnome mailing list] is also there for you. diff --git a/website/content/en/gnome/docs/gnome_porting.adoc b/website/content/en/gnome/docs/gnome_porting.adoc deleted file mode 100644 --- a/website/content/en/gnome/docs/gnome_porting.adoc +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "FreeBSD GNOME Project: GNOME Desktop-Independent Components" -sidenav: gnome ---- - -= FreeBSD GNOME Project: GNOME Desktop-Independent Components - -To see how to utilize these components, please examine the link:../example-makefile/[example Makefile]. - -[.tblbasic] -[cols=",,",] -|=== -|*COMPONENT* |*ASSOCIATED PROGRAM* |*IMPLIED COMPONENTS* -|esound |audio/esound | -|gnomehack |gnomehack makes common GNOME Makefile substitutions that nearly every GNOME port requires to fit into the proper mtree structure. | -|gnomehier |gnomehier installs all the directories needed for both the GNOME 1 and 2 desktops. Only include this option if your port calls @dirrm on one of the directories listed in the plist for gnomehier. | -|gnomemimedata |misc/gnome-mime-data |gnomehier pkgconfig -|gnomeprefix |gnomeprefix sets some CONFIGURE_ARGS to ensure data is placed properly within the GNOME hierarchy. |gnomehier -|intlhack |intlhack registers a dependency upon textproc/intltool and patches broken intltool-merge.in implementations. |intltool -|intltool |intltool registers a BUILD_DEPENDS on textproc/intltool. | -|lthack |lthack prevents the installation of .la files and ensures that $\{PTHREAD_LIBS} will be passed to the linker. NOTE: lthack is DEPRECATED, and USE_AUTOTOOLS="libtool":15 should be used instead. See the libtool section of the porting guide for more details. | -|ltasneededhack |ltasneededhack hacks the port's link:../porting/#libtool[libtool] so that the -Wl,--as-needed flag is passed to the linker. This will result in shared objects with smaller ELF NEEDED sections which can improve the startup time and module load time of some applications. In order to use ltasneededhack the port must define USE_AUTOTOOLS="libtool":15. NOTE: be sure to thoroughly test the resulting application to make sure there are no undefined symbol errors after adding this hack. | -|ltverhack |ltverhack normalizes shared object versions so that they do not change needlessly. Using ltverhack keeps shared object versions in line with what they should be and what they end up being on other operating systems. In order to use ltverhack the port must define USE_AUTOTOOLS="libtool":15. | -|pkgconfig |pkgconfig registers a dependency upon devel/pkg-config to make sure it is installed. | -|referencehack |referencehack is designed for ports that install API reference documentation. These ports should use referencehack then another port with a -reference suffix should be created to install this documentation. See devel/glib20 and devel/glib20-reference for an example. | -|=== - -If you still need help with your port, have a look at some of the existing ports for examples. The link:mailto:freebsd-gnome@FreeBSD.org[freebsd-gnome mailing list] is also there for you. diff --git a/website/content/en/gnome/docs/halfaq.adoc b/website/content/en/gnome/docs/halfaq.adoc deleted file mode 100644 --- a/website/content/en/gnome/docs/halfaq.adoc +++ /dev/null @@ -1,207 +0,0 @@ ---- -title: "FreeBSD GNOME Project: Hardware Abstraction Layer (HAL) FAQ" -sidenav: gnome ---- - -= FreeBSD GNOME Project: Hardware Abstraction Layer (HAL) FAQ - -_"You're in luck, Dave. Turns out I CAN let you do that."_ - -== Contents - -. <> -. <> -. <> -. <> -. <> -. <> - -== Full Text - -[[q1]] -* *How do I use hal on FreeBSD?* - -The only thing you need to do in order to use hal is to start the HAL daemon, `hald`. To do this, add the following to `/etc/rc.conf`: - -.... -dbus_enable="YES" -hald_enable="YES" -.... - -*NOTE:* GNOME users can opt to add `gnome_enable="YES"` to `/etc/rc.conf` instead of the lines above. This will start all GNOME-related services including Avahi and GDM. - -Then you must either reboot, or run: - -.... -# /usr/local/etc/rc.d/dbus start -# /usr/local/etc/rc.d/hald start -.... - -Once `hald` is running, hal-aware application will automatically start to communicate with it over D-BUS. To confirm that hald is running correctly, execute `lshal` from the command line. This provides you with a list of devices attached to the system. *Note:* `lshal` must be run from within a D-BUS enabled session (e.g. GNOME or KDE). - -[[q2]] -* *How do I prevent hal from probing a device?* - -Sometimes, when hal probes a device, this can cause the system to hang, panic, or otherwise behave badly. By using device information files (.fdi files), you can tell hal to ignore such devices. These files are in XML format, and should be created under `/usr/local/share/hal/fdi/preprobe/20thirdparty`. For example, to tell hal to ignore USB uhci controller 0, create a file `/usr/local/share/hal/fdi/preprobe/20thirdparty/10-ignore-uhci0.fdi` with the following contents: - -.... - - - - - - - true - - - - -.... - -Using this same technique, you can also merge (or change) other hal device properties. Use the `lshal` command to get a list of all available device properties. You can also look at the system-provided .fdi files under `/usr/local/share/hal/fdi/preprobe/10osvendor` for more examples. - -All .fdi files in this `20thirdparty` directory are loaded in alphabetical order, so name your files accordingly. The convention is to start the files with a number. The lower the number, the earlier the file will be loaded. - -[[q3]] -* *How do I mount media using hal?* - -Understand that having hal alone does not mean media will get automatically mounted. Hal simply serves as a broker for requests to mount certain devices. Some other software needs to make this request. As of GNOME 2.22, this is Nautilus. KDE and XFCE have their own components to mount hal volumes. - -*NOTE:* Volumes that you wish to manage using hal should _NOT_ be listed in `/etc/fstab`. This is especially true for CD devices and floppy disk devices. If you try to dynamically mount a volume using hal that is listed in `/etc/fstab` you will see the following error: - -.... -mount_cd9660: /dev/acd0: Operation not permitted -.... - -If you are a GNOME user be aware that prior to GNOME 2.22, `gnome-volume-manager` was responsible for asking hal to mount volumes. Since this responsibility has moved to Nautilus, it is vital to change `gnome-volume-manager's` configuration so that it will no longer attempt to mount volumes. - -*NOTE:* This step is only required if you are a GNOME user that upgraded to 2.22 from a previous version of GNOME. If this is not the case, then skip to Step 1. - -From within your GNOME session, run the following commands: - -.... -% gconftool-2 -s --type bool /desktop/gnome/volume_manager/automount_drives false -% gconftool-2 -s --type bool /desktop/gnome/volume_manager/automount_media false -% gconftool-2 -s --type bool /desktop/gnome/volume_manager/autobrowse false -% gconftool-2 -s --type bool /desktop/gnome/volume_manager/autoplay_cda false -% gconftool-2 -s --type bool /desktop/gnome/volume_manager/autoplay_dvd false -% gconftool-2 -s --type bool /desktop/gnome/volume_manager/autoplay_vcd false -% gconftool-2 -s --type bool /desktop/gnome/volume_manager/autoprinter false -.... - -Then restart GNOME. - -*Step 1:* All users _MUST_ have `procfs` mounted on `/proc`. Hal uses an application called PolicyKit to authorize users to perform mount tasks, and PolicyKit relies heavily on `/proc` entries. If `/proc` is not mounted, volume mounting will not work. To mount `/proc`, add the following to `/etc/fstab`: - -.... -proc /proc procfs rw 0 0 -.... - -Then run the following command: - -.... -# mount /proc -.... - -*Step 2:* In order to mount volumes using hal, you must be authorized. This authorization is carried out by ConsoleKit and PolicyKit. If you are a GNOME user, and you use GDM to login to GNOME, then you do not need to make any additional configuration changes in order to mount removable media. If you are not a GNOME user, or you start GNOME without using GDM, then you will need to edit `/usr/local/etc/PolicyKit/PolicyKit.conf`, and add the `org.freedesktop.hal.storage.mount-removable` action to your username. For example, if your username is "marcus," you would add the following lines: - -.... - - - - - -.... - -*NOTE:* All config lines in this file _MUST_ be between the opening and closing `` tags: - -.... - - - - -.... - -If you use GDM to login to GNOME, GDM will add a ConsoleKit record for the session. If this session is active, then you will be allowed to mount removable media without any additional PolicyKit configuration. You can confirm if ConsoleKit is working correctly by running the command, `ck-list-sessions`. The `active` property must be `TRUE` for auto-mounting to work. - -By default, PolicyKit allows root to do everything, and all users in the "wheel" group are allowed to authenticate for admin tasks with their own password. To get a list of all available actions, use the `polkit-action(1)` command. For more information on the directives available for `PolicyKit.conf`, see the `PolicyKit.conf(5)` man page. - -*Step 3:* If you have fixed volumes you wish to mount, you must also authorize yourself for the `org.freedesktop.hal.storage.mount-fixed` action. *Note:* This step is applicable to _ALL_ users including GNOME users using GDM. This is done just like the removable action above. For example, to allow user "marcus" to mount fixed volumes, add the following to `PolicyKit.conf`: - -.... - - - - - -.... - -*Step 4:* While not really part of hal volume management, you may also be able to have volumes listed in `/etc/fstab` automatically mounted. In GNOME, for example, Nautilus will mount volumes listed in `/etc/fstab` provided the following conditions are met: -.. The `vfs.usermount` sysctl is set to `1`. -.. The user requesting the mount owns the mount point. -.. The user requesting the mount is in the "operator" group. - -For example, say you had the following listed in `/etc/fstab`: - -.... -/dev/ad0s1 /win/c msdosfs rw,noauto 0 0 -.... - -If you want Nautilus to mount this volume as the user "marcus," do the following: - -.... -# sysctl vfs.usermount="1" -# chown marcus /win/c -# pw group mod operator -m marcus -.... - -Then, when the user marcus logs into GNOME, `/win/c` will be automatically mounted on the desktop. - -[[q4]] -* *How do I troubleshoot problems with hal?* - -If you run into problems with hal, you must first collect the link:../bugging/[general troubleshooting information] required by the FreeBSD GNOME Team. You should also provide a detailed description of the problem, and the output of `lshal` (assuming `hald` is starting). Remember, `lshal` _MUST_ be run under a D-BUS enabled session. If you cannot login to GNOME, KDE, or XFCE, run `lshal` within `dbus-launch`: - -.... -% dbus-launch lshal -.... - -You should also provide the verbose output from `hald` when it is performing the problematic task. To get this, first stop `hald`, then run it manually: - -.... -# /usr/local/etc/rc.d/hald stop -# /usr/local/sbin/hald --daemon="no" --verbose="yes" -.... - -Capture all of the output on the screen. - -If you are having problems with hal detecting volumes or media, or having problems with mounting volumes through hal, obtain the following additional information. All of this needs to be collected with the problem device attached to the system. -.. Output of `sysctl -b kern.geom.conftxt` -.. Contents of `/etc/fstab` -.. Output of the `mount` command -.. Full `dmesg` output -.. If using GNOME, and a volume is not mounting properly, include the output of `gnome-mount --block --no-ui --verbose --hal-udi ` ( is the Unique Device Identifier obtained from the output of `lshal` for the device that is not mounting properly) - -Additionally, if you are a GDM user, please provide the output of `ck-list-sessions`. - -[[q5]] -* *Does hal support Fuse file systems?* - -Yes. As of hal-0.5.11_10, Fuse file systems are supported. See the installed `/usr/local/share/doc/hal-0.5.11/README.fuse` file for more details. - -[[q6]] -* *Hal is interfering with my CD/DVD drive when I want to play a disc or burn something. How can I stop this from happening?* - -Applications which are not hal-aware will not be able to tell hald to stop polling CD/DVD drives when they begin to use them. Because of this, hald may cause these applications to abort because two different processes are trying to use the device at the same time. Applications such as totem, k3b, sound-juicer, etc. should not be affected as they are hal-aware. For other applications, you can start them using the `hal-lock` command. This command will try and lock the device in question. If successful, hald will stop polling the device, and `hal-lock` will spawn the desired application. The arguments to `hal-lock` are as follows: - -.... -% hal-lock --interface org.freedesktop.Hal.Device.Storage --udi UDI --run COMMAND -.... - -You can use `lshal` to determine the proper `UDI` value. For example, to run `abcde` to extract tracks from a CD: - -.... -% hal-lock --interface org.freedesktop.Hal.Device.Storage --udi /org/freedesktop/Hal/devices/storage_model_DVD__RW_DVD8801 --run abcde -.... - -As soon as the application finishes, the lock will be released. diff --git a/website/content/en/gnome/docs/porting.adoc b/website/content/en/gnome/docs/porting.adoc deleted file mode 100644 --- a/website/content/en/gnome/docs/porting.adoc +++ /dev/null @@ -1,199 +0,0 @@ ---- -title: "FreeBSD GNOME Project: How To Make a Port" -sidenav: gnome ---- - -include::shared/en/urls.adoc[] - -= FreeBSD GNOME Project: How To Make a Port - -This document assumes that you already know how the port system works, and therefore only provides GNOME-specific hints and tips. General instructions can be found in the link:{porters-handbook}[FreeBSD Porter's Handbook]. - -== Example Makefile - -There is an link:../example-makefile/[example Makefile] for a GNOME port, which uses many of the tricks outlined in this document. Please feel free to use it as a guide for creating your own ports. - -== GNOME Makefile Macros - -GNOME applications under FreeBSD use the *USE_GNOME* infrastructure. To specify which components of the GNOME system your port needs in order to build, simply list them all as a space-separated list. For example: - -.... -USE_XLIB= yes -USE_GNOME= gnomeprefix gnomehack libgnomeui -.... - -The *USE_GNOME* components are divided into the following two lists: - -* link:../gnome_porting/[GNOME desktop-version-independent components] -* link:../gnome2_porting/[GNOME 2 components] -* link:../gnome1_porting/[GNOME 1 components] - -If your port needs only *GTK2* libraries, the following is the shortest way to define this: - -.... -USE_GNOME= gtk20 -.... - -If your port needs only *GTK1* libraries, the following is the shortest way to define this: - -.... -USE_GNOME= gtk12 -.... - -Even if your application needs only the GTK libraries, other *USE_GNOME* components may be useful. Please scan the entire list to make sure your port uses all relevant components. - -Once you have finished with your port, it is a good idea to verify that your port depends on the correct list of components. To see a list of what packages your port will actually require, use the command `make package-depends` from within your port's directory. - -To aid in creating the list of necessary components, it can be helpful to examine the output of `make configure`. At the end of the `checking for...` list, there will be a line similar to this: - -.... -checking for libgnomeui-2.0 >= 2.0.0 cspi-1.0 >= 1.1.7 -libspi-1.0 >= 1.1.7 libbonobo-2.0 >= 2.0.0 atk >= 1.0.0 -gtk+-2.0 >= 2.0.0 gail libwnck-1.0 esound... yes -.... - -This is a list of the components upon which this application relies to build. Pay close attention to the hierarchical layout of the *USE_GNOME* system; many components are implied from other *USE_GNOME* directives. In the above example, `USE_GNOME= libgnomeui` implies use of `libbonoboui`, which implies `libgnomecanvas`, which implies `libglade2`, which implies `gtk20`. Thus, even though `gtk+-2.0` appears in the list of requisite components, `gtk20` can be eliminated from the *USE_GNOME* list. There are a number of other such redundancies that can be eliminated from this list. - -For the above list (taken from `sysutils/gok`), the following is defined in the `Makefile`: - -.... -USE_GNOME= gnomehack gnomeprefix libgnomeui atspi libwnck -.... - -== GNOME 1 Desktop vs. GNOME 2 Desktop - -In the beginning, there was only `GNOME 1`. When the `GNOME 2` desktop came around, maximum backwards compatibility was ensured, within reason. `GNOME 1` applications can run fine under the `GNOME 2` desktop, provided that the applications do not utilize functionality specific to the `GNOME 1` desktop environment. - -The `GNOME 1` desktop, and all applications that will not run under the `GNOME 2` desktop, have been removed from the ports tree. - -What this means for you, as an application porter, is simply that you should not add `GNOME 1`-specific applications to the ports tree. - -If you wish to determine which version of the GNOME desktop environment is present on a user's machine, you can check the value of *GNOME_DESKTOP_VERSION*. This variable is set to either `"1"` or `"2"` depending upon whether the `GNOME 1` or `GNOME 2` desktop is installed. - -== Optional GNOME Dependencies - -If your port can optionally use GNOME, you must set `WANT_GNOME= yes` in your Makefile, then check to see if `HAVE_GNOME` is set for each component from the list above that your port can use. Since this is a conditional evaluation, you need to stick it between `bsd.port.pre.mk` and `bsd.port.post.mk`. For example: - -.... -WANT_GNOME= yes - -.include - -.if ${HAVE_GNOME:Mgnomepanel}!="" - USE_GNOME+= gnomeprefix gnomepanel - CONFIGURE_ARGS+= --with-gnome - PKGNAMESUFFIX= -gnome -.else - CONFIGURE_ARGS+= --without-gnome -.endif - -.include -.... - -Here, `WANT_GNOME` tells the ports system to check for the existence of the various GNOME components listed above. For each component found, its name is appended to `HAVE_GNOME`. Since this port can use `gnomepanel`, we check `HAVE_GNOME` to see if it contains `gnomepanel` (for more on the :M`pattern` make syntax, please refer to the link:https://www.freebsd.org/cgi/man.cgi?query=make&sektion=0&format=html[make(1)] manpage). If `gnomepanel` is found, then it is added the list of `USE_GNOME` dependencies, and the port-specific `--with-gnome` `CONFIGURE_ARG` is passed. In an old GNOME infrastructure, `PKGNAMESUFFIX` was automatically adjusted by the proper `USE_*` macro. Now it is up to the individual porter to do this. Our example port appends `-gnome` to the port name to indicate it has been built with GNOME support. The same is true for the `DATADIR` `PLIST_SUB`. The individual porter must decide when do the `DATADIR` substitution. A good rule of thumb is to add the `DATADIR` `PLIST_SUB` when using the `gnomeprefix` component. - -*Note:* You cannot add extra default `USE_GNOME` components after the `.include `. That is, the following is *wrong* : - -.... -.include - -.if ${HAVE_GNOME:Mgnomelibs}!="" - USE_GNOME+= libgnome -.else - USE_GNOME+= gtk12 # WRONG! -.endif -.... - -This will make the build system think that GNOME _is_ desired, and mark the `pkg-plist` accordingly, thus breaking package builds. If you need to add default `USE_GNOME` components, do so *above* the ` .include ` line. - -To enforce use of optional GNOME dependencies unconditionally, you can add `WITH_GNOME= yes` to `/etc/make.conf` or on the make command line. This will always return true when checking for optional GNOME dependencies. If you want the system to always return false when checking for optional GNOME dependencies, you can add `WITHOUT_GNOME= yes` to `/etc/make.conf` or to the make command line. - -More information on the USE_GNOME infrastructure can be found by looking at the source and comments of `${PORTSDIR}/Mk/bsd.gnome.mk`. - -[[prefix]] -== GNOME PREFIX - -Since the release of 2.16, GNOME now lives in `LOCALBASE` instead of `X11BASE`. To make it easier for GNOME ports that must also be installed into the same PREFIX as GNOME, a hack has been added to `bsd.gnome.mk` to force the PREFIX to `LOCALBASE` whenever the `gnomeprefix` component is used. This can be overridden by manually specifying `PREFIX` in your port's `Makefile` or on the command line. - -[[omf]] -== OMF Installation - -A large number of GNOME applications (especially GNOME 2 applications) install Open Source Metadata Framework (OMF) files which contain the help file information for those applications. These OMF files require special processing by ScrollKeeper in order for applications like Yelp to find help documentation. In order to accomplish proper registry of these OMF files when installing GNOME applications from packages, you should make sure that `omf` files are listed in `pkg-plist` and that your `Makefile` has this defined: - -.... -INSTALLS_OMF="yes" -.... - -== GConf Schema Installation - -GConf is the XML-based database that virtually all GNOME applications use for storing their settings. This database is defined by installed schema files that are used to generate `%gconf.xml` key files. Previously, these schema files and `%gconf.xml` key files were listed in the port's `pkg-plist`. Since this proved to be problematic, handling of GConf schemas was changed to something similar to that of link:{porters-handbook}[MANn] files. That is, for each schema file installed by your port, you must have the following listed in the `Makefile`: - -.... -GCONF_SCHEMAS= my_app.schemas my_app2.schemas my_app3.schemas -.... - -For example in `audio/gnome-media`: - -.... -GCONF_SCHEMAS= CDDB-Slave2.schemas gnome-audio-profiles.schemas \ - gnome-cd.schemas gnome-sound-recorder.schemas -.... - -The schema files and `%gconf.xml` key files should not be in the `pkg-plist`. If you notice that the port doesn't has any `%gconf.xml` key files, but has schema files then you should not be use `GCONF_SCHEMAS`. It means, this port has broke either schema files or installation of GConf. - -== Shared MIME database - -If your port install files like `application/x-portname.xml` in `share/mime`, you have to add these two lines at the end of the `pkg-plist`: - -.... -@exec %%LOCALBASE%%/bin/update-mime-database %D/share/mime -@unexec %%LOCALBASE%%/bin/update-mime-database %D/share/mime -.... - -Also make sure `shared-mime-info` is among the dependencies of your port. If your port use `gtk20`, you will have `shared-mime-info` indirectly. You can check indirect dependencies with `make describe`. - -Example port to look at: https://cgit.FreeBSD.org/ports/tree/emulators/tilem/[`emulators/tilem`] - -== Desktop database - -Some ports provide MIME definitions in their `.desktop` files. If your port install `.desktop` file into `share/applications` and there is a line starting with `MimeType` in it, you need to update desktop database after install and deinstall. This database is represented by `share/applications/mimeinfo.cache` file. Add dependency on GNOME component `desktopfileutils` and these lines to the end of `pkg-plist`: - -.... -@exec %%LOCALBASE%%/bin/update-desktop-database > /dev/null || /usr/bin/true -@unexec %%LOCALBASE%%/bin/update-desktop-database > /dev/null || /usr/bin/true -.... - -Also add following to the `post-install` target in port's Makefile: - -.... --@update-desktop-database -.... - -Example port to look at: https://cgit.FreeBSD.org/ports/tree/editors/leafpad/[`editors/leafpad`] - -[[libtool]] -== Libtool Issues - -Most, if not all, GNOME applications depend on GNU's libtool. They also use the GNU configure system. If your port installs shared libraries, and includes an `ltmain.sh` script in its `${WRKSRC}` directory, you should add `USES=libtool` to your port's Makefile. - -== Distfiles - -To separate GNOME 2 distfiles from the GNOME 1 distfiles, and to keep the distfiles directory clean, GNOME 1 ports that download their distfiles from `${MASTER_SITE_GNOME}` must add the following to their Makefile: - -.... -DIST_SUBDIR= gnome -.... - -GNOME 2 ports that download their distfiles from `${MASTER_SITE_GNOME}` must include the following in their Makefile: - -.... -DIST_SUBDIR= gnome2 -.... - -Some GNOME distfiles come in both tar gzip as well as tar bzip2 format. To save time when downloading distfiles over slow links, you should use the bzip2 distfiles whenever possible. To do this, add the following to your port's Makefile: - -.... -USE_BZIP2= yes -.... - -If you still need help with your port, have a look at some of the existing ports for examples. The mailto:freebsd-gnome@FreeBSD.org[freebsd-gnome mailing list] is also there for you. diff --git a/website/content/en/gnome/docs/volunteer.adoc b/website/content/en/gnome/docs/volunteer.adoc deleted file mode 100644 --- a/website/content/en/gnome/docs/volunteer.adoc +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "FreeBSD GNOME Project: How To Help" -sidenav: gnome ---- - -include::shared/en/urls.adoc[] - -= FreeBSD GNOME Project: How To Help - -There is always something to do around the GNOME FreeBSD camp. Grab something that sounds interesting to you, and run with it. - -* Test existing ports, and link:../bugging[report bugs]. Try to build with weird configurations intentionally, before someone else tries to do so cluelessly. -* Regularly install GNOME from packages, and report any problems with the install or the functionality. -* link:{handbook}#ERESOURCES-SUBSCRIBE[Subscribe] to the freebsd-gnome mailing list, and help answer users' questions. -* Proofread the FreeBSD GNOME link:../../[project pages], and offer feedback and updates. -* Build, upgrade, and rebuild both stable and development versions. The builditinator.sh script, available from the link:../develfaq/#q3[MarcusCom] portstools repository, can automate the entire process, from start to finish. -* The following non-trivial porting tasks are needed. -** Fix `sysutils/system-tools-backends` to work with all supported versions of FreeBSD. This will require someone with FreeBSD configuration knowledged as well as a good knowledge of Perl programming. All patches can be submitted as PRs. -** Port http://www.gnome.org/projects/NetworkManager/[NetworkManager] to FreeBSD. This will require someone with C programming experience, and a good knowledge of wireless networking in FreeBSD. Additionally, this will require some FreeBSD userland changes especially to `ifconfig`. -** Port the http://live.gnome.org/GnomeBluetooth[GNOME Bluetooth] suite to FreeBSD. This will require someone with C programming experience and Bluetooth devices. The bulk of the work will be porting libbtctl to use FreeBSD's Bluetooth stack. -** Extend the FreeBSD hal backend to support missing subsystems. Currently, the most notable missing subsystems are `ieee1394` (i.e. Firewire), `bluetooth`, and `printer`. Those interested should use the latest http://www.marcuscom.com/hal-spec/hal-spec.html[HAL Specification] as a guide. Contact marcus@FreeBSD.org if you wish to help with this task. - -Send any feedback to freebsd-gnome@FreeBSD.org. diff --git a/website/themes/beastie/layouts/partials/sidenav.html b/website/themes/beastie/layouts/partials/sidenav.html --- a/website/themes/beastie/layouts/partials/sidenav.html +++ b/website/themes/beastie/layouts/partials/sidenav.html @@ -82,11 +82,7 @@
  • {{ i18n "gnome" }}