How to port XFCE to interix ?
Today, I decide to start port XFCE to interix. I search through www.xfce.org and found that XFCE depend on the following modules:
Xfce 4 requirements
- Building Xfce 4 modules depends on :
pkgconfig , a system for managing library compile/link flags that works with automake and autoconf. - GTK+ >= 2.2 (also dev packages), the GIMP multi-platform toolkit designed for creating graphical user interfaces.
- libxml2, a XML C library developed for the Gnome project.
- libdbh, the "Disk based hashtables" library, is needed for xffm, the file manager.
Make sure you have these packages (and their *-devel packages) installed.
Optional dependencies :
- librsvg >= 2.2.x, a SAX-based renderer library for SVG files, that has to be installed if you want to use SVG icons for the panel.
- libstartup-notification >= 0.5, a library that has to be installed if you want to use the startup notification feature.
Out of the 4 dependant modules, three of them already avaiable in interix which can be download from Tool Warehouse. libdbh need to be ported to interix first.
Working procedure:
- Download source under /sfu/sources/contrib/dbh-1.0.24
This package is able to compile without problem. - Add package gtk+ and find the following error:
Fixed this by using command "pkg_add -v -f packagename" to force the installation. The dependency in toolwarehouse is quite mess. - I can download xfce source and start to compile it now.
Building the modules
If you have downloaded the source tarballs, unpack them.
If you install into a different prefix from pkg-config, you have to set the PKG_CONFIG_PATH variable to include the path to the *.pc files installed by the Xfce 4 libraries, which is ${prefix}/lib/pkgconfig. For example:
Building the modules should be a simple matter of typing :
| ./configure && make && make install |
in the top directory of each module, in the following build order :
- libxfce4util
- libxfcegui4
- libxfce4mcs
- xfce-mcs-manager
- all other modules (you have to install xfce4 panel before compiling panel plugins).
dbh-1.0.22.tar.gz
libxfce4util-4.2.1.tar.gz
libxfcegui4-4.2.1.tar.gz
libxfce4mcs-4.2.1.tar.gz
xfce-mcs-manager-4.2.1.tar.gz
xfce-mcs-plugins-4.2.1.tar.gz
gtk-xfce-engine-2.2.6.tar.gz
xfcalendar-4.2.1.tar.gz
xfce-utils-4.2.1.tar.gz
xfce4-appfinder-4.2.1.tar.gz
xfce4-icon-theme-4.2.1.tar.gz
xfce4-iconbox-4.2.1.tar.gz
xfce4-mixer-4.2.1.tar.gz
xfce4-panel-4.2.1.1.tar.gz
xfce4-session-4.2.1.tar.gz
xfce4-systray-4.2.1.tar.gz
xfce4-toys-4.2.1.tar.gz
xfce4-trigger-launcher-4.2.1.tar.gz
xfdesktop-4.2.1.tar.gz
xffm-4.2.1.tar.gz
xfprint-4.2.1.tar.gz
xfwm4-4.2.1.tar.gz
xfwm4-themes-4.2.1.tar.gz
libtool error
xfce4-systray-4.2.1.tar.gz
xfdesktop-4.2.1.tar.gz
Cannot compile file manager
xffm-4.2.1.tar.gz cannot compile xfprint-4.2.1.tar.gz
xfce4-mixer-4.2.1.tar.gz compilation error:
vc_oss.c:81: error: `SOUND_MIXER_NRDEVICES' undeclared here (not in a function)vc_oss.c:81: error: `SOUND_DEVICE_LABELS' undeclared here (not in a function)
vc_oss.c: In function `find_master':
vc_oss.c:100: error: `SOUND_MIXER_READ_DEVMASK' undeclared (first use in this function)
vc_oss.c:100: error: (Each undeclared identifier is reported only oncevc_oss.c:100: error: for each function it appears in.)
vc_oss.c:107: error: `SOUND_MIXER_NRDEVICES' undeclared (first use in this function)vc_oss.c: In function `find_control':
vc_oss.c:161: error: `SOUND_MIXER_NRDEVICES' undeclared (first use in this function)vc_oss.c: In function `vc_get_control_list':
vc_oss.c:250: error: `SOUND_MIXER_NRDEVICES' undeclared (first use in this function)vc_oss.c: At top level:
vc_oss.c:81: error: storage size of `label' isn't known
After installing a library you should run ldconfig. It may be necessary to add /usr/local to /etc/ld.so.conf.
If there are errors, try to run ./autogen.sh instead of ./configure. In that case you need to have automake, autoconf and libtool installed. If this doesn't work please report to the xfce mailing list: xfce4-dev@xfce.org.
The gtk-xfce-engine-2 theme engine has to be installed using the same path as your GTK+ installation, usually /usr. In that case you have to use the following command in the gtk-xfce-engine-2 top directory :
Some FreeBSD document that need to refer to:
- FreeBSD Release Engineering
- FreeBSD Release Engineering for Third Party Software Packages
- Package Building Procedures
- Explaining BSD
- FreeBSD From Scratch
- Installing and Using FreeBSD With Other Operating Systems
- Bootstrapping Vinum: A Foundation for Reliable Servers
- Design elements of the FreeBSD VM system
- Darwin
- OpenDarwin

