Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • xfce/thunar
  • alexxcons/thunar
  • lastonestanding/thunar
  • StormByte/thunar
  • Manideep/thunar
  • ikem-krueger/thunar
  • Levitating/thunar
  • correctmost/thunar
  • ncfavier/thunar
  • sgn/thunar
  • aslezar/thunar
  • drsudo/thunar
  • prertik/thunar
  • entwicklerseite/thunar
  • sarahjjust/thunar
  • joebonrichie/thunar
  • raultel/thunar
  • Zetta1_Reid0/thunar
  • RAZOR_99/thunar
  • konsolebox/thunar
  • sulincix/thunar
  • bobby285271/thunar
  • jensenr30/thunar
  • radioactiveman/thunar
  • psydbernz/thunar-contrib
  • landry/thunar
  • stealthninja/thunar
  • kressb-gitlab/thunar
  • keszybz/thunar
29 results
Show changes
Showing
with 399 additions and 19164 deletions
[Desktop Entry]
Encoding=UTF-8
_Name=Bulk Rename
_Comment=Rename Multiple Files
_GenericName=Bulk Rename
Exec=@libexecdir@/ThunarBulkRename %F
Icon=Thunar
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;System;Utility;Core;GTK;Filesystem;
# vi:set encoding=UTF-8:
[Desktop Entry]
Encoding=UTF-8
_Name=Open Folder with Thunar
_Comment=Open the specified folders in Thunar
_GenericName=Open Folder
TryExec=Thunar
Exec=Thunar %F
Icon=Thunar
NoDisplay=true
Terminal=false
StartupNotify=true
Type=Application
Categories=System;Utility;Core;GTK;FileManager;
MimeType=x-directory/gnome-default-handler;x-directory/normal;inode/directory;
# vi:set encoding=UTF-8:
[Desktop Entry]
Encoding=UTF-8
_Name=Thunar File Manager
_Comment=Browse the filesystem with the file manager
_GenericName=File Manager
Exec=Thunar %F
Icon=Thunar
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;System;Utility;Core;GTK;FileManager;
# vi:set encoding=UTF-8:
Summary: Thunar File Manager
Name: @PACKAGE_TARNAME@
Version: @PACKAGE_VERSION@
Release: 1
License: GPL
URL: http://thunar.xfce.org/
Source0: %{name}-%{version}.tar.gz
Group: Applications/X11
BuildRoot: %{_tmppath}/%{name}-root
Requires: fam
Requires: libexif
Requires: shared-mime-info >= 0.15
Requires: desktop-file-utils >= 0.7
Requires: exo0.3 >= @EXO_REQUIRED_VERSION@
Requires: startup-notification >= @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@
BuildRequires: fam-devel
BuildRequires: libjpeg-devel
BuildRequires: libexif-devel
BuildRequires: libpng-devel >= 2:1.2.2-16
BuildRequires: desktop-file-utils >= 0.7
BuildRequires: exo0.3-devel >= @EXO_REQUIRED_VERSION@
BuildRequires: startup-notification-devel >= @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@
Provides: @PACKAGE_TARNAME@-devel
%description
Thunar is a new modern file manager for the Xfce Desktop Environment. It has been designed from
the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not
include any confusing or useless options. Thunar is fast and responsive with a good start up time
and directory load time.
%prep
%setup -q
%build
%configure --enable-dbus --enable-final --enable-xsltproc
make
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT mandir=%{_mandir}
%clean
rm -rf $RPM_BUILD_ROOT
%post
update-desktop-database &> /dev/null ||:
touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
%postun
update-desktop-database &> /dev/null ||:
touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
%files
%defattr(-,root,root)
%doc README TODO ChangeLog NEWS INSTALL COPYING AUTHORS HACKING THANKS
%{_bindir}/
%{_datadir}/
%{_includedir}/
%{_libdir}/
%{_libexecdir}/
%{_mandir}/
%{_sysconfdir}/
#!/bin/sh
#
# $Id$
#
# Copyright (c) 2006 Benedikt Meurer <benny@xfce.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# This is an ugly hack, required because xfdesktop simply
# strips off all parameters from the Exec field, and so
# we cannot just invoke Thunar --bulk-rename %F there
exec @bindir@/Thunar --bulk-rename $@
# vim:set ts=2 sw=2 et ai:
#!/bin/sh
#
# $Id$
#
# Copyright (c) 2004-2006 Benedikt Meurer <benny@xfce.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
HELPDIR="@datadir@/doc/Thunar/html/"
if test -n "$LC_ALL"; then
LC=$LC_ALL
elif test -n "$LANG"; then
LC=$LANG
else
LC="C"
fi
if test -n "$1"; then
HELPFILE="$1.html"
else
HELPFILE="index.html"
fi
if test -r "$HELPDIR/$LC/$HELPFILE"; then
URL="$HELPDIR/$LC/$HELPFILE"
elif test -r "$HELPDIR/`echo $LC | sed 's/\(..\)_.*/\1/'`/$HELPFILE"; then
URL="$HELPDIR/`echo $LC | sed 's/\(..\)_.*/\1/'`/$HELPFILE"
else
URL="$HELPDIR/C/index.html"
fi
[ -n "$2" ] && URL="$URL#$2"
exec exo-open --launch WebBrowser "file://$URL"
# vim:set ts=2 sw=2 et ai:
dnl $Id$
dnl
dnl Copyright (c) 2004-2006
dnl The Thunar development team. All rights reserved.
dnl
......@@ -15,7 +13,7 @@ dnl # should be built and installed.
dnl #
AC_DEFUN([BM_THUNAR_PLUGIN_APR],
[
AC_ARG_ENABLE([apr-plugin], [AC_HELP_STRING([--disable-apr-plugin], [Don't build the thunar-apr plugin, see plugins/thunar-apr/README])],
AC_ARG_ENABLE([apr-plugin], [AS_HELP_STRING([--disable-apr-plugin], [Don't build the thunar-apr plugin, see plugins/thunar-apr/README.md])],
[ac_bm_thunar_plugin_apr=$enableval], [ac_bm_thunar_plugin_apr=yes])
AC_MSG_CHECKING([whether to build the thunar-apr plugin])
AM_CONDITIONAL([THUNAR_PLUGIN_APR], [test x"$ac_bm_thunar_plugin_apr" = x"yes"])
......@@ -34,14 +32,14 @@ dnl # should be built and installed.
dnl #
AC_DEFUN([BM_THUNAR_PLUGIN_SBR],
[
AC_ARG_ENABLE([sbr-plugin], AC_HELP_STRING([--disable-sbr-plugin], [Don't build the thunar-sbr plugin, see plugins/thunar-sbr/README]),
AC_ARG_ENABLE([sbr-plugin], AS_HELP_STRING([--disable-sbr-plugin], [Don't build the thunar-sbr plugin, see plugins/thunar-sbr/README.md]),
[ac_bm_thunar_plugin_sbr=$enableval], [ac_bm_thunar_plugin_sbr=yes])
AC_MSG_CHECKING([whether to build the thunar-sbr plugin])
AM_CONDITIONAL([THUNAR_PLUGIN_SBR], [test x"$ac_bm_thunar_plugin_sbr" = x"yes"])
AC_MSG_RESULT([$ac_bm_thunar_plugin_sbr])
dnl Check for PCRE (for the "Search & Replace" renamer)
XDT_CHECK_OPTIONAL_PACKAGE([PCRE], [libpcre], [6.0], [pcre], [Regular expression support])
dnl Check for PCRE2 (for the "Search & Replace" renamer)
XDT_CHECK_OPTIONAL_PACKAGE([PCRE2], [libpcre2-8], [10.0], [pcre2], [Regular expression support])
])
......@@ -54,13 +52,12 @@ dnl # for the Xfce panel, not for Thunar).
dnl #
AC_DEFUN([BM_THUNAR_PLUGIN_TPA],
[
AC_ARG_ENABLE([tpa-plugin], AC_HELP_STRING([--disable-tpa-plugin], [Don't build the thunar-tpa plugin, see plugins/thunar-tpa/README]),
AC_ARG_ENABLE([tpa-plugin], AS_HELP_STRING([--disable-tpa-plugin], [Don't build the thunar-tpa plugin, see plugins/thunar-tpa/README.md]),
[ac_bm_thunar_plugin_tpa=$enableval], [ac_bm_thunar_plugin_tpa=yes])
if test x"$ac_bm_thunar_plugin_tpa" = x"yes"; then
XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.3.90],
XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-2.0], [4.14.0],
[
dnl # Can only build thunar-tpa if D-BUS was found previously
ac_bm_thunar_plugin_tpa=$DBUS_FOUND
ac_bm_thunar_plugin_tpa=yes
],
[
dnl # Cannot build thunar-tpa if xfce4-panel is not installed
......@@ -83,166 +80,32 @@ dnl # should be built and installed.
dnl #
AC_DEFUN([BM_THUNAR_PLUGIN_UCA],
[
AC_ARG_ENABLE([uca-plugin], AC_HELP_STRING([--disable-uca-plugin], [Don't build the thunar-uca plugin, see plugins/thunar-uca/README]),
AC_ARG_ENABLE([uca-plugin], AS_HELP_STRING([--disable-uca-plugin], [Don't build the thunar-uca plugin, see plugins/thunar-uca/README.md]),
[ac_bm_thunar_plugin_uca=$enableval], [ac_bm_thunar_plugin_uca=yes])
AC_MSG_CHECKING([whether to build the thunar-uca plugin])
AM_CONDITIONAL([THUNAR_PLUGIN_UCA], [test x"$ac_bm_thunar_plugin_uca" = x"yes"])
AC_MSG_RESULT([$ac_bm_thunar_plugin_uca])
])
dnl # BM_THUNAR_VFS_MONITOR_IMPL()
dnl #
dnl # Determine the file system monitoring to use for
dnl # thunar-vfs.
dnl #
dnl # Sets LIBFAM_CFLAGS and LIBFAM_LIBS and defines
dnl # HAVE_FAM_H and HAVE_LIBFAM if FAM/Gamin were
dnl # found.
dnl # BM_THUNAR_PLUGIN_WALLPAPER()
dnl #
dnl # Sets $ac_bm_thunar_vfs_monitor_impl to "FAM",
dnl # "Gamin" or "none".
dnl # Check whether the "Wallpaper" plugin
dnl # should be built and installed.
dnl #
AC_DEFUN([BM_THUNAR_VFS_MONITOR_IMPL],
[
LIBFAM_CFLAGS=""
LIBFAM_LIBS=""
have_libfam=no
ac_bm_thunar_vfs_monitor_impl="none"
XDT_CHECK_PACKAGE([LIBFAM], [gamin], [0.1.0],
AC_DEFUN([BM_THUNAR_PLUGIN_WALLPAPER],
[
have_libfam=yes
ac_bm_thunar_vfs_monitor_impl="Gamin"
],
[
dnl Fallback to a generic FAM check
AC_CHECK_HEADERS([fam.h],
[
AC_CHECK_LIB([fam], [FAMOpen],
[
have_libfam="yes" LIBFAM_LIBS="-lfam"
ac_bm_thunar_vfs_monitor_impl="FAM"
])
])
])
if test x"$have_libfam" = x"yes"; then
dnl Define appropriate symbols
AC_DEFINE([HAVE_FAM_H], [1], [Define to 1 if you have the <fam.h> header file.])
AC_DEFINE([HAVE_LIBFAM], [1], [Define to 1 if the File Alteration Monitor is available.])
dnl Check for FAMNoExists (currently Gamin only)
save_LIBS="$LIBS"
LIBS="$LIBS $LIBFAM_LIBS"
AC_CHECK_FUNCS([FAMNoExists])
LIBS="$save_LIBS"
AC_ARG_ENABLE([wallpaper-plugin], AS_HELP_STRING([--disable-wallpaper-plugin], [Don't build the thunar-wallpaper plugin, see plugins/thunar-wallpaper/README.md]),
[ac_bm_thunar_plugin_wallpaper=$enableval], [ac_bm_thunar_plugin_wallpaper=yes])
AC_MSG_CHECKING([whether to build the thunar-wallpaper plugin])
AM_CONDITIONAL([THUNAR_PLUGIN_WALLPAPER], [test x"$ac_bm_thunar_plugin_wallpaper" = x"yes"])
AC_MSG_RESULT([$ac_bm_thunar_plugin_wallpaper])
if test x"$ac_bm_thunar_plugin_wallpaper" = x"yes"; then
AC_CHECK_PROG([xfconf_query_found], [xfconf-query], [yes], [no])
if test x"$xfconf_query_found" = x"no"; then
echo "***"
echo "*** xfconf-query was not found on your system."
echo "*** The wallpaper won't work without it installed."
echo "***"
fi
fi
AC_SUBST([LIBFAM_CFLAGS])
AC_SUBST([LIBFAM_LIBS])
])
dnl # BM_THUNAR_VFS_OS_IMPL()
dnl #
dnl # Determine the operating system support to use
dnl # for thunar-vfs.
dnl #
dnl # Sets ac_bm_thunar_vfs_os_impl to "bsd" or "generic" and
dnl # defines the automake conditional THUNAR_VFS_OS_IMPL_BSD.
dnl #
AC_DEFUN([BM_THUNAR_VFS_OS_IMPL],
[
dnl # Auto-detect target operating system support
AC_MSG_CHECKING([for operating system support])
case "$target_os" in
dragonfly*|freebsd*|netbsd*|openbsd*|darwin*)
dnl # The BSD Family is fully supported
ac_bm_thunar_vfs_os_impl=bsd
;;
*)
dnl # Otherwise fallback to generic OS support
ac_bm_thunar_vfs_os_impl=generic
esac
AC_MSG_RESULT([$ac_bm_thunar_vfs_os_impl])
dnl # Set automake conditionals appropriately
AM_CONDITIONAL([THUNAR_VFS_OS_IMPL_BSD], [test x"$ac_bm_thunar_vfs_os_impl" = x"bsd"])
])
dnl # BM_THUNAR_VFS_VOLUME_IMPL()
dnl #
dnl # Determines the volume manager implementation to
dnl # use for thunar-vfs.
dnl #
dnl # Sets ac_bm_thunar_vfs_volume_impl to "freebsd",
dnl # "hal" or "none".
dnl #
AC_DEFUN([BM_THUNAR_VFS_VOLUME_IMPL],
[
dnl The --with-volume-manager option
AC_ARG_WITH([volume-manager],
AC_HELP_STRING([--with-volume-manager=@<:@auto/freebsd/hal/none@:>@], [The volume manager implementation @<:@default=auto@:>@]),
[], [with_volume_manager=auto])
dnl # Check if we should try to auto-detect
if test x"$with_volume_manager" = x"freebsd"; then
ac_bm_thunar_vfs_volume_impl=freebsd
elif test x"$with_volume_manager" = x"hal"; then
ac_bm_thunar_vfs_volume_impl=hal
elif test x"$with_volume_manager" = x"none"; then
ac_bm_thunar_vfs_volume_impl=none
else
dnl # Check if HAL is available
XDT_CHECK_PACKAGE([HAL], [hal-storage], [0.5.0],
[
dnl # HAL is available, use it
ac_bm_thunar_vfs_volume_impl=hal
],
[
dnl # Check operating system type
case "$target_os" in
freebsd*)
dnl # FreeBSD is fully supported
ac_bm_thunar_vfs_volume_impl=freebsd
;;
*)
dnl # Otherwise no volume support
ac_bm_thunar_vfs_volume_impl=none
;;
esac
])
fi
dnl # We need HAL >= 0.5.x and D-BUS >= 0.23 for the HAL volume manager
if test x"$ac_bm_thunar_vfs_volume_impl" = x"hal"; then
XDT_CHECK_PACKAGE([EXO_HAL], [exo-hal-0.3], [0.3.1.13])
XDT_CHECK_PACKAGE([HAL], [hal-storage], [0.5.0])
XDT_CHECK_PACKAGE([HAL_DBUS], [dbus-glib-1], [0.23])
fi
dnl # Set config.h variables depending on what we're going to use
AC_MSG_CHECKING([for the volume manager implemenation])
case "$ac_bm_thunar_vfs_volume_impl" in
freebsd)
AC_DEFINE([THUNAR_VFS_VOLUME_IMPL_FREEBSD], [1], [Define to 1 if the FreeBSD volume manager implementation should be used])
;;
hal)
AC_DEFINE([THUNAR_VFS_VOLUME_IMPL_HAL], [1], [Define to 1 if the HAL volume manager implementation should be used])
;;
*)
AC_DEFINE([THUNAR_VFS_VOLUME_IMPL_NONE], [1], [Define to 1 if no volume manager implementation should be used])
;;
esac
AC_MSG_RESULT([$ac_bm_thunar_vfs_volume_impl])
dnl # Set automake conditionals appropriately
AM_CONDITIONAL([THUNAR_VFS_VOLUME_IMPL_FREEBSD], [test x"$ac_bm_thunar_vfs_volume_impl" = x"freebsd"])
AM_CONDITIONAL([THUNAR_VFS_VOLUME_IMPL_HAL], [test x"$ac_bm_thunar_vfs_volume_impl" = x"hal"])
AM_CONDITIONAL([THUNAR_VFS_VOLUME_IMPL_NONE], [test x"$ac_bm_thunar_vfs_volume_impl" = x"none"])
])
#!/bin/sh
#
# $Id$
# vi:set et ai sw=2 sts=2 ts=2: */
#-
# Copyright (c) 2009 Jannis Pohlmann <jannis@xfce.org>
#
# Copyright (c) 2002-2006
# The Thunar development team. All rights reserved.
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# Written for Thunar by Benedikt Meurer <benny@xfce.org>.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
(type xdt-autogen) >/dev/null 2>&1 || {
cat >&2 <<EOF
autogen.sh: You don't seem to have the Xfce development tools installed on
your system, which are required to build this software.
Please install the xfce4-dev-tools package first, it is available
from http://www.xfce.org/.
from your distribution or https://www.xfce.org/.
EOF
exit 1
}
# verify that po/LINGUAS is present
(test -f po/LINGUAS) >/dev/null 2>&1 || {
cat >&2 <<EOF
autogen.sh: The file po/LINGUAS could not be found. Please check your snapshot
or try to checkout again.
EOF
exit 1
}
# substitute revision and linguas
linguas=`sed -e '/^#/d' po/LINGUAS`
revision=`LC_ALL=C svn info $0 | awk '/^Revision: / {printf "%05d\n", $2}'`
sed -e "s/@LINGUAS@/${linguas}/g" \
-e "s/@REVISION@/${revision}/g" \
< "configure.in.in" > "configure.in"
exec xdt-autogen $@
# vi:set ts=2 sw=2 et ai:
XDT_AUTOGEN_REQUIRED_VERSION="4.19.2" exec xdt-autogen "$@"
# vi:set et ai sw=2 sts=2 ts=2: */
#-
# Copyright (c) 2004-2007 Benedikt Meurer <benny@xfce.org>
# Copyright (c) 2009-2011 Jannis Pohlmann <jannis@xfce.org>
# Copyright (c) 2004-2024 Xfce Development Team <xfce4-dev@xfce.org>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
dnl ***************************
dnl *** Version information ***
dnl ***************************
m4_define([thunarx_verinfo], [0:0:0])
m4_define([thunarx_version_api], [3])
m4_define([copyright_year], [2025])
XDT_VERSION_INIT([4.21.0], [git])
dnl ***************************
dnl *** Initialize autoconf ***
dnl ***************************
AC_COPYRIGHT([Copyright (c) 2004-copyright_year() The Thunar development team. All rights reserved.])
AC_INIT([thunar], [xdt_version], [https://gitlab.xfce.org/xfce/thunar], [thunar])
AC_PREREQ([2.69])
AC_CONFIG_MACRO_DIRS([m4])
AC_CANONICAL_TARGET()
AC_REVISION([xdt_version_build])
AC_DEFINE([VERSION_FULL], [PACKAGE_VERSION], [Alias for VERSION and PACKAGE_VERSION for meson compatibility])
COPYRIGHT_YEAR=copyright_year()
AC_DEFINE_UNQUOTED([COPYRIGHT_YEAR], ["$COPYRIGHT_YEAR"], [Copyright year])
AC_SUBST([COPYRIGHT_YEAR])
dnl ***************************
dnl *** Initialize automake ***
dnl ***************************
AM_INIT_AUTOMAKE([1.11 dist-bzip2 tar-ustar no-dist-gzip foreign])
AC_CONFIG_HEADERS([config.h])
AM_MAINTAINER_MODE()
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
dnl *******************************
dnl *** Check for UNIX variants ***
dnl *******************************
AC_USE_SYSTEM_EXTENSIONS
dnl ********************************
dnl *** Check for basic programs ***
dnl ********************************
AC_PROG_CC()
LT_PATH_LD()
AM_PROG_CC_C_O()
AC_PROG_INSTALL()
AC_PATH_PROG([XDT_GEN_VISIBILITY], [xdt-gen-visibility])
m4_ifdef([AC_PROG_SED], [AC_PROG_SED], [AC_CHECK_PROG(SED, sed, sed)])
dnl **************************
dnl *** Initialize libtool ***
dnl **************************
LT_PREREQ([2.4])
LT_INIT([disable-static])
dnl **************************************
dnl *** Substitute version information ***
dnl **************************************
THUNARX_VERINFO=thunarx_verinfo()
THUNARX_VERSION_API=thunarx_version_api()
THUNAR_VERSION_MAJOR=xdt_version_major()
THUNAR_VERSION_MINOR=xdt_version_minor()
THUNAR_VERSION_MICRO=xdt_version_micro()
AC_SUBST([THUNARX_VERINFO])
AC_SUBST([THUNARX_VERSION_API])
AC_SUBST([THUNAR_VERSION_MAJOR])
AC_SUBST([THUNAR_VERSION_MINOR])
AC_SUBST([THUNAR_VERSION_MICRO])
dnl ******************************
dnl *** Set helper path prefix ***
dnl ******************************
AC_ARG_WITH([helper-path-prefix],
[AS_HELP_STRING([--with-helper-path-prefix=PATH],
[Path prefix under which helper executables will be installed (default: $libdir)])],
[HELPER_PATH_PREFIX="$withval"],
[HELPER_PATH_PREFIX="$libdir"])
AC_SUBST([HELPER_PATH_PREFIX])
dnl ***************************************
dnl *** Set default thunarx directories ***
dnl ***************************************
AC_ARG_WITH([thunarx-dirs],
[AS_HELP_STRING([--with-thunarx-dirs=PATH],
[Used to set different default paths (separated by colon) for thunarx plugin lookup])],
[DEFAULT_THUNARX_DIRS="$withval"],
[DEFAULT_THUNARX_DIRS="$libdir/thunarx-$THUNARX_VERSION_API"])
AC_SUBST([DEFAULT_THUNARX_DIRS])
dnl *******************************************************
dnl *** Optional support for custom thunarx directories ***
dnl *******************************************************
AC_ARG_WITH([custom-thunarx-dirs-enabled],
[AS_HELP_STRING([--with-custom-thunarx-dirs-enabled],
[Enables the posibillity to set custom thunarx directories by using the environment variable THUNARX_DIRS])],
[CUSTOM_THUNARX_DIRS_ENABLED="TRUE"],
[CUSTOM_THUNARX_DIRS_ENABLED="FALSE"])
AC_SUBST([CUSTOM_THUNARX_DIRS_ENABLED])
dnl ***********************************************
dnl *** Work-around system-specific limitations ***
dnl ***********************************************
AC_SYS_LARGEFILE()
dnl **********************************
dnl *** Check for standard headers ***
dnl **********************************
AC_CHECK_HEADERS([ctype.h errno.h fcntl.h grp.h limits.h locale.h malloc.h memory.h \
paths.h pwd.h sched.h signal.h stdarg.h stdlib.h string.h \
sys/mman.h sys/param.h sys/stat.h sys/time.h sys/types.h \
sys/uio.h sys/wait.h time.h])
dnl ************************************
dnl *** Check for standard functions ***
dnl ************************************
AC_FUNC_MMAP()
AC_CHECK_FUNCS([localeconv mkdtemp pread pwrite sched_yield setgroupent \
setpassent strcoll strlcpy strptime symlink atexit realpath \
statx])
dnl ******************************
dnl *** Check for i18n support ***
dnl ******************************
GETTEXT_PACKAGE="$PACKAGE"
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], [Name of default gettext domain])
AC_SUBST([GETTEXT_PACKAGE])
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.19.8])
AC_SEARCH_LIBS([bind_textdomain_codeset], [intl],
[AC_DEFINE([HAVE_BIND_TEXTDOMAIN_CODESET], [1], [Define to 1 if you have the 'bind_textdomain_codeset' function.])],
[])
dnl *************************
dnl *** Check for gtk-doc ***
dnl *************************
GTK_DOC_CHECK([1.9])
dnl ***********************************
dnl *** Check for required packages ***
dnl ***********************************
XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.72.0])
XDT_CHECK_PACKAGE([GIO], [gio-2.0], [2.72.0])
XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.72.0])
XDT_CHECK_PACKAGE([GMODULE], [gmodule-2.0], [2.72.0])
XDT_CHECK_PACKAGE([GTK], [gtk+-3.0], [3.24.0])
XDT_CHECK_PACKAGE([GDK_PIXBUF], [gdk-pixbuf-2.0], [2.42.8])
XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.17.2])
XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-2], [4.21.0])
XDT_CHECK_PACKAGE([LIBXFCE4KBD_PRIVATE], [libxfce4kbd-private-3], [4.17.2])
XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.12.0])
XDT_CHECK_PACKAGE([PANGO], [pango], [1.38.0])
dnl ******************************
dnl *** GObject Instrospection ***
dnl ******************************
GOBJECT_INTROSPECTION_CHECK([1.72.0])
dnl **********************************
dnl *** Optional X11 dependencies ***
dnl **********************************
XDT_CHECK_OPTIONAL_FEATURE([X11],
[x11],
[
XDT_FEATURE_DEPENDENCY([GDK_X11], [gdk-x11-3.0], [3.24.0])
XDT_FEATURE_DEPENDENCY([LIBX11], [x11], [1.6.7])
],
[the X11 windowing system])
if test x"$ENABLE_X11" != x"yes"; then
dnl Do not check for optional X11 packages if X11 is disabled
enable_libsm=no
fi
XDT_CHECK_OPTIONAL_FEATURE([LIBSM],
[libsm],
[
XDT_FEATURE_DEPENDENCY([LIBICE], [ice], [1.0.10])
XDT_FEATURE_DEPENDENCY([LIBSM], [sm], [1.2.3])
],
[session management library])
dnl **********************************
dnl *** Optional GIO UNIX features ***
dnl **********************************
XDT_CHECK_OPTIONAL_PACKAGE([GIO_UNIX], [gio-unix-2.0],
[2.72.0], [gio-unix], [GIO UNIX features])
dnl ***************************************************************
dnl *** Optional support for GUDev (required for thunar-volman) ***
dnl ***************************************************************
XDT_CHECK_OPTIONAL_PACKAGE([GUDEV], [gudev-1.0], [145], [gudev],
[GUDev (required for thunar-volman)])
dnl **************************************
dnl *** Optional support for libnotify ***
dnl **************************************
XDT_CHECK_OPTIONAL_PACKAGE([LIBNOTIFY], [libnotify], [0.7.0], [notifications],
[Mount notification support], [yes])
dnl ***********************************
dnl *** Check for debugging support ***
dnl ***********************************
XDT_FEATURE_DEBUG([xdt_debug_default])
dnl **************************************
dnl *** Check for linker optimizations ***
dnl **************************************
XDT_FEATURE_LINKER_OPTS()
dnl dnl ****************************************
dnl dnl *** Check for ELF visibility support ***
dnl dnl ****************************************
AC_ARG_ENABLE([visibility],
AS_HELP_STRING([--disable-visibility],
[Do not use ELF visibility attributes]),
[enable_visibility=$enableval], [enable_visibility=yes])
have_gnuc_visibility=no
if test "x$enable_visibility" != "xno"; then
XDT_SUPPORTED_FLAGS([xdt_vis_test_cflags], [-Wall -Werror -Wno-unused-parameter -fvisibility=hidden])
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $xdt_vis_test_cflags"
AC_MSG_CHECKING([whether $CC supports the GNUC visibility attribute])
AC_COMPILE_IFELSE([AC_LANG_SOURCE(
[
void test_default(void);
void test_hidden(void);
void __attribute__((visibility("default"))) test_default(void) {}
void __attribute__((visibility("hidden"))) test_hidden(void) {}
int main(int argc, char **argv) {
test_default();
test_hidden();
return 0;
}
])],
[
have_gnuc_visibility=yes
AC_MSG_RESULT([yes])
],
[
AC_MSG_RESULT([no])
])
CFLAGS="$saved_CFLAGS"
fi
if test "x$have_gnuc_visibility" = "xyes"; then
CPPFLAGS="$CPPFLAGS -DENABLE_SYMBOL_VISIBILITY=1"
CFLAGS="$CFLAGS -fvisibility=hidden"
fi
dnl *********************************
dnl *** Substitute platform flags ***
dnl *********************************
AC_MSG_CHECKING([PLATFORM_CPPFLAGS])
AC_MSG_RESULT([$PLATFORM_CPPFLAGS])
AC_SUBST([PLATFORM_CPPFLAGS])
AC_MSG_CHECKING([PLATFORM_CFLAGS])
AC_MSG_RESULT([$PLATFORM_CFLAGS])
AC_SUBST([PLATFORM_CFLAGS])
AC_MSG_CHECKING([PLATFORM_LDFLAGS])
AC_MSG_RESULT([$PLATFORM_LDFLAGS])
AC_SUBST([PLATFORM_LDFLAGS])
dnl ************************************
dnl *** Check for additional plugins ***
dnl ************************************
BM_THUNAR_PLUGIN_APR()
BM_THUNAR_PLUGIN_SBR()
BM_THUNAR_PLUGIN_TPA()
BM_THUNAR_PLUGIN_UCA()
BM_THUNAR_PLUGIN_WALLPAPER()
AC_CONFIG_FILES([
Makefile
docs/Makefile
docs/reference/Makefile
docs/reference/thunarx/Makefile
examples/Makefile
examples/tex-open-terminal/Makefile
icons/Makefile
icons/16x16/Makefile
icons/24x24/Makefile
icons/48x48/Makefile
icons/128x128/Makefile
icons/scalable/Makefile
plugins/Makefile
plugins/thunar-apr/Makefile
plugins/thunar-sbr/Makefile
plugins/thunar-sendto-email/Makefile
plugins/thunar-tpa/Makefile
plugins/thunar-uca/Makefile
plugins/thunar-wallpaper/Makefile
po/Makefile.in
thunar/Makefile
thunarx/Makefile
thunarx/thunarx-3.pc
thunarx/thunarx-config.h
])
AC_OUTPUT
dnl ***************************
dnl *** Print configuration ***
dnl ***************************
echo
echo "Build Configuration:"
echo
if test x"$GIO_UNIX_FOUND" = x"yes"; then
echo "* GIO UNIX features: yes"
else
echo "* GIO UNIX features: no"
fi
if test x"$GUDEV_FOUND" = x"yes"; then
echo "* GUDev (required for thunar-volman): yes"
else
echo "* GUDev (required for thunar-volman): no"
fi
if test x"$LIBNOTIFY_FOUND" = x"yes"; then
echo "* Mount notification support: yes"
else
echo "* Mount notification support: no"
fi
echo "* Debug Support: $enable_debug"
echo "* GObject Instrospection support: $enable_introspection"
echo
echo "Additional Plugins:"
echo
echo "* Advanced Properties: $ac_bm_thunar_plugin_apr"
echo "* Simple Builtin Renamers: $ac_bm_thunar_plugin_sbr"
echo "* Trash Panel Applet: $ac_bm_thunar_plugin_tpa"
echo "* User Customizable Actions: $ac_bm_thunar_plugin_uca"
echo "* Wallpaper support: $ac_bm_thunar_plugin_wallpaper"
echo
dnl $Id$
dnl
dnl Copyright (c) 2004-2007
dnl The Thunar development team. All rights reserved.
dnl
dnl Written for Thunar by Benedikt Meurer <benny@xfce.org>.
dnl
dnl ***************************
dnl *** Version information ***
dnl ***************************
m4_define([thunar_verinfo], [5:1:3])
m4_define([thunar_version_api], [1])
m4_define([thunar_version_major], [0])
m4_define([thunar_version_minor], [9])
m4_define([thunar_version_micro], [1])
m4_define([thunar_version_build], [r@REVISION@])
m4_define([thunar_version_tag], [svn])
m4_define([thunar_version], [thunar_version_major().thunar_version_minor().thunar_version_micro()ifelse(thunar_version_tag(), [svn], [thunar_version_tag()-thunar_version_build()], [thunar_version_tag()])])
dnl *******************************************
dnl *** Debugging support for SVN snapshots ***
dnl *******************************************
m4_define([thunar_debug_default], [ifelse(thunar_version_tag(), [svn], [yes], [minimum])])
dnl ***************************
dnl *** Initialize autoconf ***
dnl ***************************
AC_COPYRIGHT([Copyright (c) 2004-2007
The Thunar development team. All rights reserved.
Written for Thunar by Benedikt Meurer <benny@xfce.org>.])
AC_INIT([Thunar], [thunar_version], [http://bugzilla.xfce.org/], [Thunar])
AC_PREREQ([2.50])
AC_CANONICAL_TARGET()
AC_REVISION([$Id$])
dnl ***************************
dnl *** Initialize automake ***
dnl ***************************
AM_INIT_AUTOMAKE([1.8 dist-bzip2 tar-ustar])
AM_CONFIG_HEADER([config.h])
AM_MAINTAINER_MODE()
dnl *******************************
dnl *** Check for UNIX variants ***
dnl *******************************
AC_AIX()
AC_ISC_POSIX()
AC_MINIX()
dnl ********************************
dnl *** Check for basic programs ***
dnl ********************************
AC_PROG_CC()
AC_PROG_LD()
AM_PROG_CC_C_O()
AC_PROG_INSTALL()
AC_PROG_INTLTOOL()
AC_CHECK_PROGS([PERL], [perl5 perl])
dnl **************************
dnl *** Initialize libtool ***
dnl **************************
AC_DISABLE_STATIC()
AC_PROG_LIBTOOL()
dnl **************************************
dnl *** Substitute version information ***
dnl **************************************
THUNAR_VERINFO=thunar_verinfo()
THUNAR_VERSION_API=thunar_version_api()
THUNAR_VERSION_MAJOR=thunar_version_major()
THUNAR_VERSION_MINOR=thunar_version_minor()
THUNAR_VERSION_MICRO=thunar_version_micro()
AC_SUBST([THUNAR_VERINFO])
AC_SUBST([THUNAR_VERSION_API])
AC_SUBST([THUNAR_VERSION_MAJOR])
AC_SUBST([THUNAR_VERSION_MINOR])
AC_SUBST([THUNAR_VERSION_MICRO])
dnl ***********************************************
dnl *** Determine the u32 type required for tdb ***
dnl ***********************************************
AC_CHECK_SIZEOF([int])
AC_CHECK_SIZEOF([long])
AC_CHECK_SIZEOF([short])
AC_MSG_CHECKING([for 32bit unsigned integer])
case 4 in
$ac_cv_sizeof_int) TDB_U32_TYPE="unsigned int" ;;
$ac_cv_sizeof_long) TDB_U32_TYPE="unsigned long" ;;
$ac_cv_sizeof_short) TDB_U32_TYPE="unsigned short" ;;
esac
AC_SUBST([TDB_U32_TYPE])
AC_MSG_RESULT([$TDB_U32_TYPE])
dnl ***********************************************
dnl *** Work-around system-specific limitations ***
dnl ***********************************************
AC_SYS_LARGEFILE()
dnl **********************************
dnl *** Check for standard headers ***
dnl **********************************
AC_CHECK_HEADERS([ctype.h dirent.h errno.h fcntl.h fnmatch.h fstab.h grp.h \
limits.h locale.h math.h memory.h mntent.h paths.h pwd.h \
regex.h sched.h setjmp.h signal.h stdarg.h stdlib.h \
string.h syslog.h sys/xattr.h sys/extattr.h sys/cdio.h \
sys/mman.h sys/mount.h sys/param.h sys/resource.h sys/stat.h \
sys/statfs.h sys/statvfs.h sys/time.h sys/ucred.h sys/uio.h \
sys/vfs.h sys/wait.h time.h wchar.h wctype.h])
dnl ************************************
dnl *** Check for standard functions ***
dnl ************************************
AC_FUNC_MMAP()
AC_CHECK_FUNCS([attropen extattr_get_fd fgetxattr futimes getdents getfsspec \
getfsstat lchmod localeconv localtime_r mbrtowc mkdtemp mkfifo \
posix_madvise pread pwrite readdir_r sched_yield setgroupent \
setmntent setpassent setpriority statfs statvfs statvfs1 \
strcoll strlcpy strptime symlink syslog])
dnl ******************************************
dnl *** Linux/glibc specified work-arounds ***
dnl ******************************************
AC_MSG_CHECKING([whether we need _BSD_SOURCE and _XOPEN_SOURCE])
AC_TRY_LINK([#include <features.h>],
[
if (__GLIBC_PREREQ (2, 0));
],
[
AC_DEFINE([_XOPEN_SOURCE], [600], [Required to unbreak glibc])
AC_DEFINE([_BSD_SOURCE], [1], [Required to unbreak glibc])
AC_MSG_RESULT([yes])
],
[
AC_MSG_RESULT([no])
])
dnl **************************************************************
dnl *** Check for f_mntonname in statfs (trash implementation) ***
dnl **************************************************************
AC_CHECK_MEMBERS([struct statfs.f_mntonname],,,
[
#include <sys/param.h>
#include <sys/mount.h>
])
dnl ******************************
dnl *** Check for i18n support ***
dnl ******************************
XDT_I18N([@LINGUAS@])
dnl ***********************************
dnl *** Check for required packages ***
dnl ***********************************
XDT_CHECK_PACKAGE([EXO], [exo-0.3], [0.3.4])
XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.6.4])
XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.6.4])
XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.6.0])
XDT_CHECK_PACKAGE([GDK_PIXBUF], [gdk-pixbuf-2.0], [2.6.0])
XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.2.2])
dnl *********************************************
dnl *** Check for libpng (with various names) ***
dnl *********************************************
XDT_CHECK_PACKAGE([LIBPNG], [libpng], [1.2.0], [],
[
dnl # libpng.pc not found, try with libpng12.pc
XDT_CHECK_PACKAGE([LIBPNG], [libpng12], [1.2.0])
])
dnl ********************************************
dnl *** Check for session management support ***
dnl ********************************************
XDT_CHECK_LIBSM()
dnl **********************************
dnl *** Optional support for D-BUS ***
dnl **********************************
XDT_CHECK_OPTIONAL_PACKAGE([DBUS], [dbus-glib-1],
[0.34], [dbus], [D-BUS support])
dnl *******************************************************
dnl *** Optional support for gconf (GNOME thumbnailers) ***
dnl *******************************************************
XDT_CHECK_OPTIONAL_PACKAGE([GCONF], [gconf-2.0],
[2.4.0], [gnome-thumbnailers],
[GNOME thumbnailer support])
dnl *************************************************
dnl *** Optional support for startup notification ***
dnl *************************************************
XDT_CHECK_OPTIONAL_PACKAGE([LIBSTARTUP_NOTIFICATION],
[libstartup-notification-1.0],
[0.4], [startup-notification],
[startup notification library])
dnl ******************************
dnl *** Check for FreeType 2.x ***
dnl ******************************
FREETYPE_LIBS=""
FREETYPE_CFLAGS=""
AC_PATH_PROG([FREETYPE_CONFIG], [freetype-config], [no])
if test x"$FREETYPE_CONFIG" != x"no"; then
AC_MSG_CHECKING([FREETYPE_CFLAGS])
FREETYPE_CFLAGS="`$FREETYPE_CONFIG --cflags`"
AC_MSG_RESULT([$FREETYPE_CFLAGS])
AC_MSG_CHECKING([FREETYPE_LIBS])
FREETYPE_LIBS="`$FREETYPE_CONFIG --libs`"
AC_MSG_RESULT([$FREETYPE_LIBS])
fi
AM_CONDITIONAL([HAVE_FREETYPE], [test x"$FREETYPE_CONFIG" != x"no"])
AC_SUBST([FREETYPE_CFLAGS])
AC_SUBST([FREETYPE_LIBS])
dnl *************************
dnl *** Check for libjpeg ***
dnl *************************
LIBJPEG_LIBS=""
LIBJPEG_CFLAGS=""
AC_CHECK_LIB([jpeg], [jpeg_start_decompress],
[
AC_CHECK_HEADER([jpeglib.h],
[
LIBJPEG_LIBS="-ljpeg -lm"
AC_DEFINE([HAVE_LIBJPEG], [1], [Define to 1 if libjpeg is found])
AC_DEFINE([HAVE_JPEGLIB_H], [1], [Define to 1 if jpeglib.h is found])
])
], [-lm])
AC_SUBST([LIBJPEG_CFLAGS])
AC_SUBST([LIBJPEG_LIBS])
dnl *************************
dnl *** Check for gtk-doc ***
dnl *************************
GTK_DOC_CHECK([1.0])
dnl **************************
dnl *** Check for xsltproc ***
dnl **************************
AC_ARG_ENABLE([xsltproc], [AC_HELP_STRING([--enable-xsltproc], [Use xsltproc to build documentation @<:@default=no@:>@])],, [enable_xsltproc=no])
if test x"$enable_xsltproc" = x"yes"; then
AC_PATH_PROG([XSLTPROC], [xsltproc], [no])
if test x"$XSLTPROC" = x"no"; then
enable_xsltproc=no
fi
fi
AM_CONDITIONAL([ENABLE_XSLTPROC], [test x"$enable_xsltproc" = x"yes"])
dnl ************************
dnl *** Check for xml2po ***
dnl ************************
AC_ARG_ENABLE([xml2po], [AC_HELP_STRING([--enable-xml2po], [Use xml2po to translate documentation @<:@default=no@:>@])],, [enable_xml2po=no])
if test x"$enable_xml2po" = x"yes"; then
AC_PATH_PROG([XML2PO], [xml2po], [no])
if test x"$XML2PO" = x"no"; then
enable_xml2po=no
fi
fi
AM_CONDITIONAL([ENABLE_XML2PO], [test x"$enable_xml2po" = x"yes"])
dnl ******************************************
dnl *** Check for operating system support ***
dnl ******************************************
BM_THUNAR_VFS_OS_IMPL()
dnl ****************************************************
dnl *** Check for file system monitor implementation ***
dnl ****************************************************
BM_THUNAR_VFS_MONITOR_IMPL()
dnl ***********************************************
dnl *** Check for volume manager implementation ***
dnl ***********************************************
BM_THUNAR_VFS_VOLUME_IMPL()
dnl ***********************************
dnl *** Check for debugging support ***
dnl ***********************************
AC_ARG_ENABLE([debug],
AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes/full@:>@], [Turn on debugging @<:@default=thunar_debug_default@:>@]),
[], [enable_debug=thunar_debug_default])
AC_MSG_CHECKING([whether to enable debugging support])
if test x"$enable_debug" = x"full" -o x"$enable_debug" = x"yes"; then
dnl Print the result
AC_MSG_RESULT([$enable_debug])
dnl Make sure we detect possible errors (if supported)
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Wall -Werror"
AC_MSG_CHECKING([whether $CC accepts -Wall -Werror])
AC_COMPILE_IFELSE(AC_LANG_SOURCE([int x;]), [
AC_MSG_RESULT([yes])
PLATFORM_CFLAGS="$PLATFORM_CFLAGS -Wall -Werror"
], [
AC_MSG_RESULT([no])
])
CFLAGS="$save_CFLAGS"
dnl Paranoia for --enable-debug=full
if test x"$enable_debug" = x"full"; then
dnl Enable extensive debugging
PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DG_ENABLE_DEBUG"
dnl Use -O0 -g3 if the compiler supports it
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -O0 -g3"
AC_MSG_CHECKING([whether $CC accepts -O0 -g3])
AC_COMPILE_IFELSE(AC_LANG_SOURCE([int x;]), [
AC_MSG_RESULT([yes])
PLATFORM_CFLAGS="$PLATFORM_CFLAGS -O0 -g3"
], [
AC_MSG_RESULT([no])
])
CFLAGS="$save_CFLAGS"
fi
else
dnl Print the result
AC_MSG_RESULT([$enable_debug])
dnl Disable debugging (release build)
PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DNDEBUG"
dnl Disable object cast checks
PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DG_DISABLE_CAST_CHECKS"
dnl Disable all checks for --enable-debug=no
if test x"$enable_debug" = x"no"; then
PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
fi
fi
dnl **************************************
dnl *** Check for linker optimizations ***
dnl **************************************
AC_MSG_CHECKING([whether $LD accepts --as-needed])
case `$LD --as-needed -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
LDFLAGS="$LDFLAGS -Wl,--as-needed"
AC_MSG_RESULT([yes])
;;
*)
AC_MSG_RESULT([no])
;;
esac
AC_MSG_CHECKING([whether $LD accepts -O1])
case `$LD -O1 -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -Wl,-O1"
AC_MSG_RESULT([yes])
;;
*)
AC_MSG_RESULT([no])
;;
esac
dnl ****************************************
dnl *** Check for ELF visibility support ***
dnl ****************************************
AC_ARG_ENABLE([visibility], AC_HELP_STRING([--disable-visibility], [Don't use ELF visibility attributes]), [], [enable_visibility=yes])
have_gnuc_visibility=no
if test x"$enable_visibility" != x"no"; then
dnl Check whether the compiler supports the visibility attribute
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Wall -Werror"
AC_MSG_CHECKING([whether $CC supports the GNUC visibility attribute])
AC_COMPILE_IFELSE(AC_LANG_SOURCE(
[
void __attribute__ ((visibility("default"))) test_default (void) {}
void __attribute__ ((visibility("hidden"))) test_hidden (void) {}
int main (int argc, char **argv) { test_default (); test_hidden (); return 0; }
]),
[
have_gnuc_visibility=yes
AC_MSG_RESULT([yes])
],
[
AC_MSG_RESULT([no])
])
CFLAGS="$save_CFLAGS"
fi
if test x"$have_gnuc_visibility" = x"yes"; then
PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DHAVE_GNUC_VISIBILITY"
fi
AM_CONDITIONAL([HAVE_GNUC_VISIBILITY], [test x"$have_gnuc_visibility" = x"yes"])
dnl *********************************
dnl *** Substitute platform flags ***
dnl *********************************
AC_MSG_CHECKING([PLATFORM_CPPFLAGS])
AC_MSG_RESULT([$PLATFORM_CPPFLAGS])
AC_SUBST([PLATFORM_CPPFLAGS])
AC_MSG_CHECKING([PLATFORM_CFLAGS])
AC_MSG_RESULT([$PLATFORM_CFLAGS])
AC_SUBST([PLATFORM_CFLAGS])
AC_MSG_CHECKING([PLATFORM_LDFLAGS])
AC_MSG_RESULT([$PLATFORM_LDFLAGS])
AC_SUBST([PLATFORM_LDFLAGS])
dnl ************************************
dnl *** Check for additional plugins ***
dnl ************************************
BM_THUNAR_PLUGIN_APR()
BM_THUNAR_PLUGIN_SBR()
BM_THUNAR_PLUGIN_TPA()
BM_THUNAR_PLUGIN_UCA()
AC_OUTPUT([
Makefile
Thunar.spec
docs/Makefile
docs/design/Makefile
docs/manual/Makefile
docs/manual/C/Makefile
docs/manual/C/Thunar.xml
docs/manual/C/images/Makefile
docs/manual/es/Makefile
docs/manual/es/Thunar.xml
docs/manual/es/images/Makefile
docs/manual/eu/Makefile
docs/manual/eu/Thunar.xml
docs/manual/eu/images/Makefile
docs/manual/fr/Makefile
docs/manual/fr/Thunar.xml
docs/manual/fr/images/Makefile
docs/manual/ja/Makefile
docs/manual/ja/Thunar.xml
docs/manual/ja/images/Makefile
docs/manual/nl/Makefile
docs/manual/nl/Thunar.xml
docs/manual/nl/images/Makefile
docs/manual/pl/Makefile
docs/manual/pl/Thunar.xml
docs/manual/pl/images/Makefile
docs/manual/ru/Makefile
docs/manual/ru/Thunar.xml
docs/manual/ru/images/Makefile
docs/manual/zh_TW/Makefile
docs/manual/zh_TW/Thunar.xml
docs/manual/zh_TW/images/Makefile
docs/papers/Makefile
docs/reference/Makefile
docs/reference/thunar-vfs/Makefile
docs/reference/thunar-vfs/version.xml
docs/reference/thunarx/Makefile
docs/reference/thunarx/version.xml
examples/Makefile
examples/tex-open-terminal/Makefile
icons/Makefile
icons/16x16/Makefile
icons/24x24/Makefile
icons/48x48/Makefile
icons/scalable/Makefile
pixmaps/Makefile
plugins/Makefile
plugins/thunar-apr/Makefile
plugins/thunar-sbr/Makefile
plugins/thunar-sendto-email/Makefile
plugins/thunar-tpa/Makefile
plugins/thunar-uca/Makefile
po/Makefile.in
po-doc/Makefile
tdb/Makefile
tdb/tdbconfig.h
tests/Makefile
tests/data/Makefile
thunar/Makefile
thunar-vfs/Makefile
thunar-vfs/thunar-vfs-1.pc
thunar-vfs/thunar-vfs-config.h
thunarx/Makefile
thunarx/thunarx-1.pc
thunarx/thunarx-config.h
])
dnl ***************************
dnl *** Print configuration ***
dnl ***************************
echo
echo "Build Configuration:"
echo
echo "* Operating system support: $ac_bm_thunar_vfs_os_impl"
if test x"$DBUS_FOUND" = x"yes"; then
echo "* D-BUS support: yes"
else
echo "* D-BUS support: no"
fi
echo "* File System Monitor: $ac_bm_thunar_vfs_monitor_impl"
if test x"$GCONF_FOUND" = x"yes"; then
echo "* GNOME Thumbnailers: yes"
else
echo "* GNOME Thumbnailers: no"
fi
if test x"$LIBSTARTUP_NOTIFICATION_FOUND" = x"yes"; then
echo "* Startup Notification: yes"
else
echo "* Startup Notification: no"
fi
echo "* Volume Manager: $ac_bm_thunar_vfs_volume_impl"
echo "* Debug Support: $enable_debug"
echo
echo "Additional Plugins:"
echo
echo "* Advanced Properties: $ac_bm_thunar_plugin_apr"
echo "* Simple Builting Renamers: $ac_bm_thunar_plugin_sbr"
echo "* Trash Panel Applet: $ac_bm_thunar_plugin_tpa"
echo "* User Customizable Actions: $ac_bm_thunar_plugin_uca"
echo
# $Id$
SUBDIRS = \
design \
manual \
papers \
reference
docdir = $(datadir)/doc/Thunar
doc_DATA = \
README.gtkrc \
README.thunarrc \
README.volumes \
ThumbnailersCacheFormat.txt
README.gtkrc
man_MANS = \
Thunar.1
......@@ -24,6 +15,8 @@ endif
EXTRA_DIST = \
$(doc_DATA) \
$(man_MANS) \
Thunar.xml
Thunar.xml \
meson.build \
$(NULL)
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
......@@ -80,4 +80,4 @@ ThunarLocationButtons
Additional information can be found on the Thunar Project Wiki:
http://thunar.xfce.org/pwiki/documentation/advanced_settings#gtk_style_properties
https://docs.xfce.org/xfce/thunar/hidden-settings
The Thunar Configuration File (thunarrc)
========================================
Thunar stores most of its preferences in the thunarrc file, which is located
in $XDG_CONFIG_HOME/Thunar/thunarrc. Many, but not all, of the settings are
configurable from the preferences dialog, which is available from the Edit
menu of every Thunar window.
The following list gives a brief overview of the preferences known to Thunar:
* DefaultView (ThunarDetailsView/ThunarIconView/void)
The name of the widget class, which should be used for the view pane
in new Thunar windows, or "void" to use the last selected view from
LastView preference.
* LastCompactViewZoomLevel (THUNAR_ZOOM_LEVEL_SMALLEST/
THUNAR_ZOOM_LEVEL_SMALLER/
THUNAR_ZOOM_LEVEL_SMALL/
THUNAR_ZOOM_LEVEL_NORMAL/
THUNAR_ZOOM_LEVEL_LARGE/
THUNAR_ZOOM_LEVEL_LARGER/
THUNAR_ZOOM_LEVEL_LARGEST)
The last selected zoom level for the compact list view.
* LastDetailsViewZoomLevel (THUNAR_ZOOM_LEVEL_SMALLEST/
THUNAR_ZOOM_LEVEL_SMALLER/
THUNAR_ZOOM_LEVEL_SMALL/
THUNAR_ZOOM_LEVEL_NORMAL/
THUNAR_ZOOM_LEVEL_LARGE/
THUNAR_ZOOM_LEVEL_LARGER/
THUNAR_ZOOM_LEVEL_LARGEST)
The last selected zoom level for the detailed list view.
* LastDetailsViewColumnOrder
A comma separated list of columns, which specifies the order of
information that appears in the detailed list view. Valid names
for the detailed list columns are:
- THUNAR_COLUMN_DATE_ACCESSED
- THUNAR_COLUMN_DATE_MODIFIED
- THUNAR_COLUMN_GROUP
- THUNAR_COLUMN_MIME_TYPE
- THUNAR_COLUMN_NAME
- THUNAR_COLUMN_OWNER
- THUNAR_COLUMN_PERMISSIONS
- THUNAR_COLUMN_SIZE
- THUNAR_COLUMN_TYPE
* LastDetailsViewColumnWidths
A comma separated list of column widths, used if the details view
is in fixed column mode. The exact format of this list should be
considered an implementation detail and may change in future
versions of Thunar.
* LastDetailsViewFixedColumns (FALSE/TRUE)
Whether to use fixed column widths in the detailed list view.
* LastDetailsViewVisibleColumns
The comma separated list of visible columns in the detailed list
view. Valid names for the detailed list columns are:
- THUNAR_COLUMN_DATE_ACCESSED
- THUNAR_COLUMN_DATE_MODIFIED
- THUNAR_COLUMN_GROUP
- THUNAR_COLUMN_MIME_TYPE
- THUNAR_COLUMN_NAME
- THUNAR_COLUMN_OWNER
- THUNAR_COLUMN_PERMISSIONS
- THUNAR_COLUMN_SIZE
- THUNAR_COLUMN_TYPE
* LastIconViewZoomLevel (THUNAR_ZOOM_LEVEL_SMALLEST/
THUNAR_ZOOM_LEVEL_SMALLER/
THUNAR_ZOOM_LEVEL_SMALL/
THUNAR_ZOOM_LEVEL_NORMAL/
THUNAR_ZOOM_LEVEL_LARGE/
THUNAR_ZOOM_LEVEL_LARGER/
THUNAR_ZOOM_LEVEL_LARGEST)
The last selected zoom level for the icon view.
* LastLocationBar (ThunarLocationButtons/ThunarLocationEntry/void)
The name of the widget class which should be used for the location bar
in Thunar windows or "void" to hide the location bar completely.
* LastSeparatorPosition (0...)
The position of the gutter in the main window, which separates the
side pane from the main view.
* LastShowHidden (FALSE/TRUE)
Determines whether hidden files should be shown by default in newly
opened Thunar windows.
* LastSidePane (ThunarShortcutsPane/void)
The name of the widget class which should be used for the side pane
in Thunar windows or "void" to hide the side pane completely.
* LastSortColumn (THUNAR_COLUMN_DATE_ACCESSED/
THUNAR_COLUMN_DATE_MODIFIED/
THUNAR_COLUMN_GROUP/
THUNAR_COLUMN_MIME_TYPE/
THUNAR_COLUMN_NAME/
THUNAR_COLUMN_OWNER/
THUNAR_COLUMN_PERMISSIONS/
THUNAR_COLUMN_SIZE/
THUNAR_COLUMN_TYPE)
The default sort column for new views.
* LastSortOrder (GTK_SORT_ASCENDING/GTK_SORT_DESCENDING)
The default sort order for new views.
* LastStatusbarVisible (FALSE/TRUE)
Determines whether to display a statusbar in new windows by
default.
* LastView (ThunarDetailsView/ThunarIconView)
The name of the widget class which should be used for the main view
component in Thunar windows if the DefaultView preference is "void".
* LastWindowHeight (1..4096)
The last known height of a Thunar window, which will be used as
default height for newly created windows.
* LastWindowWidth (1..4096)
The last known width of a Thunar window, which will be used as
default width for newly created windows.
* MiscVolumeManagement (FALSE/TRUE)
This option requires both HAL and the thunar-volman package
to be installed. If enabled and Thunar runs as daemon (see the
--daemon command line option), Thunar will watch for new devices
being added and perform appropriate volume management, which
means that if you plug in a new device, that is handled by the
volume manager, it will try to automatically spawn the appropriate
application or mount the device if it contains a mountable
volume (i.e. an USB stick).
* MiscCaseSensitive (FALSE/TRUE)
Determines whether the sorting should be done in a case-sensitive
manner. The default is FALSE.
* MiscDateStyle (THUNAR_DATE_STYLE_SIMPLE/
THUNAR_DATE_STYLE_SHORT/
THUNAR_DATE_STYLE_LONG)
This option controls how dates are shown in the user interface
(i.e. the modification date of a file in the detailed list view).
* MiscFoldersFirst (FALSE/TRUE)
Determines whether folder should be sorted before files.
* MiscHorizontalWheelNavigates (FALSE/TRUE)
Controls whether the horizontal mouse wheel is used to navigate back
and forth within a Thunar view, or whether it should be used for
horizontal scrolling.
* MiscRecursivePermissions (THUNAR_RECURSIVE_PERMISSIONS_ASK/
THUNAR_RECURSIVE_PERMISSIONS_ALWAYS/
THUNAR_RECURSIVE_PERMISSIONS_NEVER)
Determines whether to apply permissions recursively everytime the
permissions are altered by the user.
* MiscRememberGeometry (FALSE/TRUE)
Whether Thunar should remember the size of windows and apply
that size to new windows. If TRUE the width and height are
saved to LastWindowWidth and LastWindowHeight. If FALSE the
user may specify the start size in LastWindowWith and
LastWindowHeight. This option is enabled by default.
* MiscShowAboutTemplates (FALSE/TRUE)
Whether to display the "About Templates" dialog, when opening the
Templates folder from the Go menu.
* MiscShowThumbnails (FALSE/TRUE)
Whether to generate and display thumbnails for previewable files.
* MiscSingleClick (FALSE/TRUE)
Whether to use single click navigation instead of the default double
click navigation.
* MiscSingleClickTimeout (0...2000)
If MiscSingleClick mode is enabled this is the amount of time in
milliseconds after which the item under the mouse pointer will be
selected automatically. A value of 0 disables the automatic selec-
tion.
* MiscTextBesidesIcons (FALSE/TRUE)
Controls whether the icon view should display the file names beside
the file icons instead of below the file icons.
* ShortcutsIconEmblems (FALSE/TRUE)
Determines whether to display emblems for file icons (if defined) in
the shortcuts side pane.
* ShortcutsIconSize (THUNAR_ICON_SIZE_SMALLEST/
THUNAR_ICON_SIZE_SMALLER/
THUNAR_ICON_SIZE_SMALL/
THUNAR_ICON_SIZE_NORMAL/
THUNAR_ICON_SIZE_LARGE/
THUNAR_ICON_SIZE_LARGER/
THUNAR_ICON_SIZE_LARGEST)
The icon size to use for the icons displayed in the shortcuts side
pane.
* TreeIconEmblems (FALSE/TRUE)
Determines whether to display emblems for file icons (if defined) in
the tree side pane.
* TreeIconSize (THUNAR_ICON_SIZE_SMALLEST/
THUNAR_ICON_SIZE_SMALLER/
THUNAR_ICON_SIZE_SMALL/
THUNAR_ICON_SIZE_NORMAL/
THUNAR_ICON_SIZE_LARGE/
THUNAR_ICON_SIZE_LARGER/
THUNAR_ICON_SIZE_LARGEST)
The icon size to use for the icons displayed in the tree side pane.
Additional information can be found on the Thunar Project Wiki:
http://thunar.xfce.org/pwiki/documentation/advanced_settings
The Thunar Volume Manager
=========================
The Thunar-VFS library contains an abstract interface to volume managers
and implementations of this interface for some platforms (currently only
FreeBSD and Linux with HAL is known to work properly).
Using this abstract interface (in fact the platform specific implementations
of the interface), Thunar is able to display mounted and mountable volumes
in the shortcuts pane, and allows the user to mount or eject/unmount these
volumes from the context menu. In addition, if the user double-clicks a
volume in the shortcuts pane (or requests to open the shortcut in a new
window), Thunar will first try to mount the volume if it's not already
mounted.
Unfortunately, this functionality is currently only available to BSD users.
I'm looking for people to provide implementations of ThunarVfsVolume and
ThunarVfsVolumeManager (see thunar-vfs-volume.h) for other platforms. If
you need a starting point, you should have a look at the FreeBSD implemen-
tation in thunar-vfs-volume-freebsd.c, it's a bit tricky when it comes to
details, but it should give you the basic idea.
Notes for FreeBSD users
------------------------
FreeBSD offers a really nice option, which allows regular users to mount
devices on every folder owned by the user. It is very handy for a single
user desktop system.
You'll need to enable the vfs.usermount option for this to work:
# sysctl -w vfs.usermount=1
Afterwards, just change the owner of the mount points for removable
devices to your user id, i.e.
# chown benny /mnt/dvd
# chown benny /mnt/cdrw
and you will be able to mount and unmount your DVD and CD-RW in Thunar.
In order to be able to eject removable devices, you will need to install
the eject utility from the sysutils/eject port.
Notes for Linux users
---------------------
On Linux platforms, Thunar requires HAL 0.5 or better to provide information
about volumes.
To be able to eject dics, you will need the eject utility program.
The Thumbnailers Cache Format
=============================
Date: 2006-08-08
Author: Benedikt Meurer <benny@xfce.org>
Revision: $Rev$
Motivation
----------
In order to avoid a dependency of libthunar-vfs-1.so on GConf and in order to
stay flexible wrt thumbnailers w/o adding more overhead to libthunar-vfs-1.so
(and thereby to all applications using the library), the available thumbnailers
for the ThunarVfsThumbFactory are determined by a separate utility program,
named thunar-vfs-update-thumbnailers-cache-1, which is installed to the
$(libexecdir).
This program generates a thumbnailers.cache file in the users home directory,
in $XDG_CACHE_HOME/Thunar/ (usually ~/.cache/Thunar/), which is a binary file
that lists all mime types for a thumbnailer is available. For each thumbnailer
the command required to run it is specified, where the command can contain
various special parameters that are substituted when the command is run.
This thumbnailers.cache is generated initially when the thumbnail factory is
loaded and no cache file is present, and afterwards the utility is run every
5 minutes to check if new thumbnailers are available (or existing thumbnailers
have been removed).
Special Thumbnailer Parameters
------------------------------
The following special parameters are supported in thumbnailer commands and
will be substituted when ThunarVfsThumbFactory runs the command:
%u The URL of the input file for which to create a thumbnail.
%i The absolute path to the input file.
%o The absolute path to the output file where to save the generated
thumbnail to (as PNG image).
%s The desired size of the thumbnail in pixel (usually 128 or 256).
%% Will be substituted with a single '%'.
The thunar-vfs-update-thumbnailers-cache-1 Utility
--------------------------------------------------
When compiled with support for GConf, the utility will first query all available
thumbnailers that have been registered with GConf. Otherwise, the utility checks
for several well-known thumbnailers (i.e. evince-thumbnailer, ...) and adds them
if the programs were found on the system.
Afterwards the available gdk-pixbuf formats will be queried and for each of the
returned mime types, the thunar-vfs-pixbuf-thumbnailer-1 will be registered. If
any such mime type was already registered by a thumbnailer queried from the
GConf database, the pixbuf thumbnailer will overwrite the previously registered
one.
The last step is to add all internal thumbnails (again overwriting previously
registered thumbnailers).
The thumbnailers.cache File Format
----------------------------------
The thumbnailers.cache file is a binary file, that maps mime types to thumbnai-
ler commands. The file format is designed to be mmap()ed into processes using
the thumbnailers.cache. All numbers are 32bit integers in big endian. All
strings are zero-terminated ASCII strings.
The current version of the file format is 1.0. Newer versions will either be
backward compatible with the current format or use a new file name.
The file starts with a header that contains the file format version, the number
of mime types stored in the file and the offset of the thumbnailers table:
Bits Meaning
---- -------
32 FORMAT MAJOR VERSION (currently 1)
32 FORMAT MINOR VERSION (currently 0)
32 NUMER OF MIME TYPES (and thereby NUMBER OF THUMBNAILERS)
32 OFFSET OF THE THUMBNAILERS TABLE
Next comes the table of mime types, where each entry contains the length of the
mime type in bytes (excluding the trailing zero) and the offset (relative to the
cache file start) where the name of the mime type is stored. The mime types are
sorted by strlen() and strcmp(), which means that binary search can be used to
find a mime type, trying the length first (so string comparisons are reduced to
a minimum to make the search cache-friendly) and performing a string comparison
when the lengths are equal (see thunar_vfs_thumb_factory_cache_lookup() for an
example implementation of the search).
Bits Meaning
---- -------
32 LENGTH OF MIME TYPE STRING
32 OFFSET OF MIME TYPE STRING
Once you successfully detected a mime type, you can use the index of the mime
type in the table above to locate the thumbnailer command for this mime type.
Therefore determine the OFFSET OF THE THUMBNAILERS TABLE (at offset 12 in the
cache) and look at that offset plus the index * 4 for the offset of the thumb-
nailer command string.
Bits Meaning
---- -------
32 OFFSET OF THUMBNAILER STRING
Afterwards substitute the special parameters as mentioned in "Special Thumbnai-
ler Parameters" above.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.