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
  • Rishabh705/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
Commits on Source (9742)
---
Language: Cpp
BasedOnStyle: GNU
AlignEscapedNewlines: DontAlign
AlignTrailingComments: true
AlignConsecutiveDeclarations: true
AllowAllParametersOfDeclarationOnNextLine: false
AlwaysBreakAfterReturnType: All
BinPackParameters: false
AlignAfterOpenBracket: true
BreakBeforeBinaryOperators: NonAssignment
ColumnLimit: 0
ContinuationIndentWidth: 0
IncludeBlocks: Regroup
IndentGotoLabels: false
InsertNewlineAtEOF: true
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 3
SpaceAfterCStyleCast: true
WhitespaceSensitiveMacros:
# Avoid breaking formatting in the code parameter
- G_DEFINE_TYPE_WITH_CODE
- G_DEFINE_TYPE_EXTENDED
- G_DEFINE_ABSTRACT_TYPE_WITH_CODE
# Buggy workaround to add exceptions to 'SpaceBeforeParens: Always' (see below)
- _
# Workaround to avoid some alignment bugs when adding a macro to WhitespaceSensitiveMacros,
# see https://github.com/llvm/llvm-project/issues/55443#issuecomment-1953268337
# This doesn't fix all alignment bugs though, so I'd rather make an exception only for '_',
# and not also for 'N_' or 'I_' for example.
# See also https://github.com/llvm/llvm-project/issues/82288
Macros:
- _(x)=x
...
# action_mgr->n_files_to_process > 0 ensures that action_mgr->files_to_process != NULL
thunar-action-manager.c:[0-9]+:[0-9]+: warning: dereference of NULL .+\*action_mgr.files_to_process.+ \[CWE-476\] \[-Wanalyzer-null-dereference\]
# perhaps a bit questionable, but it's been working for a long time, and it seems
# a bit pointless to add a lot of cast to silence this warning
thunar-dbus-service.c:[0-9]+:[0-9]+: warning: .+va_arg.+ expected .+void \*\*.+ but received .+gboolean \(\*\)\(ThunarDBusFileManager \*, GDBusMethodInvocation \*, const gchar \*, gboolean, gboolean, const gchar \*, const gchar \*, ThunarDBusService \*\).+ \{aka .+int \(\*\)\(struct _ThunarDBusFileManager \*, struct _GDBusMethodInvocation \*, const char \*, int, int, const char \*, const char \*, struct _ThunarDBusService \*\).+\} for variadic argument 2 of .+ap.+ \[CWE-686\] \[-Wanalyzer-va-arg-type-mismatch\]
thunar-dbus-service.c:[0-9]+:[0-9]+: warning: .+va_arg.+ expected .+void \*\*.+ but received .+gboolean \(\*\)\(ThunarDBusTrash \*, GDBusMethodInvocation \*, const gchar \*, const gchar \*, ThunarDBusService \*\).+ \{aka .+int \(\*\)\(struct _ThunarDBusTrash \*, struct _GDBusMethodInvocation \*, const char \*, const char \*, struct _ThunarDBusService \*\).+\} for variadic argument 2 of .+ap.+ \[CWE-686\] \[-Wanalyzer-va-arg-type-mismatch\]
thunar-dbus-service.c:[0-9]+:[0-9]+: warning: .+va_arg.+ expected .+void \*\*.+ but received .+gboolean \(\*\)\(ThunarDBusThunar \*, GDBusMethodInvocation \*, const gchar \*, gchar \*\*, gboolean, const gchar \*, const gchar \*, ThunarDBusService \*\).+ \{aka .+int \(\*\)\(struct _ThunarDBusThunar \*, struct _GDBusMethodInvocation \*, const char \*, char \*\*, int, const char \*, const char \*, struct _ThunarDBusService \*\).+\} for variadic argument 2 of .+ap.+ \[CWE-686\] \[-Wanalyzer-va-arg-type-mismatch\]
thunar-dbus-service.c:[0-9]+:[0-9]+: warning: .+va_arg.+ expected .+void \*\*.+ but received .+gboolean \(\*\)\(ThunarOrgFreedesktopFileManager1 \*, GDBusMethodInvocation \*, gchar \*\*, const gchar \*, ThunarDBusService \*\).+ \{aka .+int \(\*\)\(struct _ThunarOrgFreedesktopFileManager1 \*, struct _GDBusMethodInvocation \*, char \*\*, const char \*, struct _ThunarDBusService \*\).+\} for variadic argument 2 of .+ap.+ \[CWE-686\] \[-Wanalyzer-va-arg-type-mismatch\]
# not super obvious, but if we get there and err == NULL then target_filenames[0] != NULL
# and there is at least one file in target_file_list
thunar-dbus-service.c:[0-9]+:[0-9]+: warning: dereference of NULL .+target_file_list.+ \[CWE-476\] \[-Wanalyzer-null-dereference\]
thunar-dbus-service.c:[0-9]+:[0-9]+: warning: dereference of NULL .+target_file_list.+ \[CWE-476\] \[-Wanalyzer-null-dereference\]
thunar-dbus-service.c:[0-9]+:[0-9]+: warning: dereference of NULL .+target_file_list.+ \[CWE-476\] \[-Wanalyzer-null-dereference\]
# this is from plugins/thunar-uca/thunar-uca-model.c:285:11:
# g_warning ("Failed to load `%s': %s", filename, error->message);
# in normal operating mode (i.e. no g_return_val_if_fail()) error is set
glib-2.0/glib/gmessages.h:[0-9]+:[0-9]+: warning: dereference of NULL .+error.+ \[CWE-476\] \[-Wanalyzer-null-dereference\]
ChangeLog
Thunar.pot
Makefile
Makefile.in
......@@ -27,22 +28,20 @@ core.*
core
*.core
*.desktop
*.desktop.in
*.service
*.policy
org.xfce.thunar.appdata.xml
thunar.appdata.xml
gtk-doc.make
ThunarBulkRename
ThunarHelp
Thunar.spec
docs/.*.swp
docs/*.1
docs/design/.*.swp
docs/manual/.*.swp
docs/manual/*/.*.swp
docs/manual/*/Thunar.xml
docs/manual/*/html
docs/manual/*/*.stamp
docs/manual/*/images/.*.swp
docs/papers/.*.swp
docs/reference/.*.swp
docs/reference/thunarx/xml
docs/reference/thunarx/html
......@@ -51,11 +50,12 @@ docs/reference/thunarx/.*.swp
docs/reference/thunarx/*.bak
docs/reference/thunarx/thunarx-decl-list.txt
docs/reference/thunarx/thunarx-decl.txt
docs/reference/thunarx/thunarx-overrides.txt
docs/reference/thunarx/thunarx-docs.xml
docs/reference/thunarx/thunarx-undeclared.txt
docs/reference/thunarx/thunarx-undocumented.txt
docs/reference/thunarx/thunarx-unused.txt
docs/reference/thunarx/thunarx.args
docs/reference/thunarx/thunarx.actions
docs/reference/thunarx/thunarx.hierarchy
docs/reference/thunarx/thunarx.interfaces
docs/reference/thunarx/thunarx.prerequisites
......@@ -78,13 +78,13 @@ plugins/thunar-sbr/.*.swp
plugins/thunar-sendto-email/thunar-sendto-email
plugins/thunar-sendto-email/thunar-sendto-email.desktop
plugins/thunar-sendto-email/.*.swp
plugins/thunar-tpa/thunar-tpa-bindings.h
plugins/thunar-tpa/thunar-tpa-bindings.[ch]
plugins/thunar-tpa/thunar-tpa.desktop
plugins/thunar-tpa/thunar-tpa.desktop.in
plugins/thunar-tpa/.*.swp
plugins/thunar-tpa/thunar-tpa
plugins/thunar-uca/.*.swp
plugins/thunar-uca/uca.xml
plugins/thunar-uca/thunar-uca.gresource.c
po-doc/.*.swp
po-doc/.xml2po.mo
po/Makefile.in.in
......@@ -92,14 +92,8 @@ po/.*.swp
po/*.gmo
po/*.mo
po/POTFILES
po/.intltool-merge-cache
po/.intltool-merge-cache*
po/stamp-*
tdb/tdbconfig.h
tdb/.*.swp
tdb/tdbspeed
tdb/tdbtool
tdb/tdbtorture
tdb/*.tdb
tests/*.loT
tests/.*.swp
tests/core.*
......@@ -107,26 +101,49 @@ tests/*.core
tests/data/.*.swp
thunar/*.loT
thunar/.*.swp
thunar/thunar
thunar/thunar.a
thunar/thunar-dbus-freedesktop-interfaces.[ch]
thunar/thunar-dbus-service-infos.[ch]
thunar/thunar-fallback-icon.c
thunar/thunar-throbber-fallback.c
thunar/thunar-thumbnail-cache-proxy.[ch]
thunar/thunar-thumbnail-frame.c
thunar/thunar-thumbnailer-manager-proxy.h
thunar/thunar-thumbnailer-proxy.h
thunar/thunar-thumbnailer-proxy.[ch]
thunar/thunar-marshal.[ch]
thunar/thunar-resources.[ch]
thunar/Thunar
thunar/core.*
thunar/*.core
thunar/thunar-marshal.[ch]
thunar/thunar-*-ui.h
thunar/stamp-thunar-*.*
thunar/thunar-dbus-service-infos.h
thunarx/.*.swp
thunarx/*.pc
thunarx/thunarx-alias*.[ch]
thunarx/*.gir
thunarx/*.typelib
thunarx/thunarx-visibility.[ch]
thunarx/thunarx-config.h
*~
*.o
*.lo
*.la
.libs
.deps
thunar-vfs
config.h.in~
gtk-doc.m4
test-driver
m4/*
!m4/introspection.m4
ABOUT-NLS
config.rpath
po/Makevars.template
po/Rules-quot
po/boldquot.sed
po/en@boldquot.header
po/en@quot.header
po/insert-header.sin
po/quot.sed
po/remove-potcdate.sin
thunar/libthunar.a
po/remove-potcdate.sed
po/thunar.pot
include:
- project: 'xfce/xfce4-dev-tools'
file: '/ci/build_project.yml'
<!-- Please drop all sections which are not relevant for your concrete use-case -->
<!-- For enhancements and new features only the section 'Version information' might be relevant -->
## Version information
<!-- Which version of this software are you using? -->
<!-- Which distribution are you using? -->
## Steps to reproduce
<!-- Please, explain as detailed as possible the sequence of actions necessary to reproduce the issue -->
1. ...
2. ...
3. ...
## Current behavior
<!-- Please describe the current behaviour -->
## Expected outcome
<!-- Please describe the expected outcome -->
## Backtrace
<!--
For crashes, it's best to get a backtrace to see which method failed to execute.
To get a meaningful backtrace, you will need to install debug symbols. Check the Xfce wiki to see how to do so:
https://docs.xfce.org/contribute/bugs/start#backtraces
It's basically `ulimit -c unlimited` to produce coredumps on crashes and then using gdb on it to get the backtrace out of the coredump.
-->
## Additional information
<!--
- Screenshots are useful for visual errors
- Please report any warning or message printed on the terminal
-->
\ No newline at end of file
# generated code
Thunarx-3.0.c:[0-9]+:[0-9]+: warning: Access to field 'message' results in a dereference of a null pointer \(loaded from variable 'error'\) \[core.NullDereference\]
thunar-tpa-bindings.c:[0-9]+:[0-9]+: warning: Value stored to 'skeleton' during its initialization is never read \[deadcode.DeadStores\]
thunar-dbus-freedesktop-interfaces.c:[0-9]+:[0-9]+: warning: Value stored to 'skeleton' during its initialization is never read \[deadcode.DeadStores\]
thunar-thumbnailer-proxy.c:[0-9]+:[0-9]+: warning: Value stored to 'skeleton' during its initialization is never read \[deadcode.DeadStores\]
thunar-dbus-service-infos.c:[0-9]+:[0-9]+: warning: Value stored to 'skeleton' during its initialization is never read \[deadcode.DeadStores\]
thunar-dbus-service-infos.c:[0-9]+:[0-9]+: warning: Value stored to 'skeleton' during its initialization is never read \[deadcode.DeadStores\]
thunar-dbus-service-infos.c:[0-9]+:[0-9]+: warning: Value stored to 'skeleton' during its initialization is never read \[deadcode.DeadStores\]
thunar-thumbnail-cache-proxy.c:[0-9]+:[0-9]+: warning: Value stored to 'skeleton' during its initialization is never read \[deadcode.DeadStores\]
# n_files = g_list_length (file_infos) so files[n] is initialized for all n
thunar-uca-model.c:[0-9]+:[0-9]+: warning: The left operand of '&' is a garbage value \[core.UndefinedBinaryOperatorResult\]
thunar-uca-model.c:[0-9]+:[0-9]+: warning: 1st function call argument is an uninitialized value \[core.CallAndMessage\]
# not super obvious, but if we get there and err == NULL then target_filenames[0] != NULL
# and there is at least one file in target_file_list
thunar-dbus-service.c:[0-9]+:[0-9]+: warning: Access to field 'data' results in a dereference of a null pointer \(loaded from variable 'target_file_list'\) \[core.NullDereference\]
# item_count = g_list_length (toolbar_items) so target_order[i] and current_order[j] are initialized for all i,j
thunar-toolbar-editor.c:[0-9]+:[0-9]+: warning: Assigned value is garbage or undefined \[core.uninitialized.Assign\]
thunar-toolbar-editor.c:[0-9]+:[0-9]+: warning: Assigned value is garbage or undefined \[core.uninitialized.Assign\]
# the only case where new_name isn't reassigned is the else branch, where there is a g_assert
thunar-util.c:[0-9]+:[0-9]+: warning: Use of memory after it is freed \[unix.Malloc\]
# needed to avoid -Wunused-result
thunar-window.c:[0-9]+:[0-9]+: warning: Value stored to 'list' is never read \[deadcode.DeadStores\]
# zero size array is a legal thing and is consistent with i < item_count in for loops
thunar-window.c:[0-9]+:[0-9]+: warning: Declared variable-length array \(VLA\) has zero size \[core.VLASize\]
thunar-window.c:[0-9]+:[0-9]+: warning: Declared variable-length array \(VLA\) has zero size \[core.VLASize\]
# item_count = g_list_length (toolbar_items) so current_order[j] is initialized for all j
thunar-window.c:[0-9]+:[0-9]+: warning: Assigned value is garbage or undefined \[core.uninitialized.Assign\]
......@@ -2,10 +2,12 @@ Benedikt Meurer <benny@xfce.org>
Jannis Pohlmann <jannis@xfce.org>
Jeffs Franks <jcfranks@xfce.org>
Nick Schermer <nick@xfce.org>
Harald Judt <hjudt@xfce.org>
Andre Miranda <andreldm@xfce.org>
Alexander Schwinn <alexxcons@xfce.org>
The tdb library, which is included with the Thunar distribution, was originally
written as part of the Samba suite. My understanding is that the majority of
the code was written by Andrew Trigell <tridge@linuxcare.com> with the help of
Paul "Rusty" Russell <rusty@linuxcare.com>. Luke Kenneth Casson Leighton
<luke@samba.org> also contributed a few patches. Sorted freelist merge code
added by Jeremy Allison <jeremy@valinux.com>.
The stock_folder-copy and stock_folder-move icons where taken from
gnome-icon-theme 2.18.0 whose authors are Lapo Calamandrei <calamandrei@gmail.com>,
Rodney Dawes <dobey@novell.com>, Luca Ferretti <elle.uca@libero.it>,
Tuomas Kuosmanen <tigert@gimp.org>, Andreas Nilsson <nisses.mail@home.se>
and Jakub Steiner <jimmac@novell.com>. The icons are licensed under GPL.
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
......@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
......@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
......@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
......@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
......@@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
......@@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
......@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
......@@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
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
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.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
......@@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
......@@ -133,7 +133,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
......
......@@ -27,14 +27,7 @@ appropriate answers to these questions.
3. Where does Thunar store the metadata associated with files?
==============================================================
Thunar associates various settings with files/folders, which we call metadata.
This metadata for all files is stored in tdb database file, which is called
the metafile. The database file is stored in
$XDG_CACHE_HOME/Thunar/metafile.tdb
and can be examined using the tdbtool, which is part of the Thunar
distribution (located in the tdb/ subdirectory).
Thunar uses the metadata daemon provided by GVFS.
4. Where does Thunar store its preferences?
......
Bug tracking system
===================
Thunar uses the Xfce bug tracking system at http://bugzilla.xfce.org/,
Thunar uses the Xfce bug tracking system at https://gitlab.xfce.org/xfce/thunar,
hosted and maintained by the Xfce project.
Patches
=======
Please submit patches to the Xfce bug tracking system or to the thunar-dev
mailinglist. Your patch should be in unified diff format (the -u option
to GNU diff) and it must comply with the coding style described below.
Please submit merge requests to the Xfce GitLab instance.
Your code must comply with the coding style described below.
Please send a patch against a recent version of this package. Patches
against the Git master branch are most preferable. You can always
Please base on work against the master branch of this package. You can always
clone the Thunar repository from
http://git.xfce.org/git/xfce/thunar
https://gitlab.xfce.org/xfce/thunar
Feature requests
================
Please file feature requests to the Xfce bug tracking system
(http://buzilla.xfce.org, product Thunar) with a Severity of
enhancement. Make sure that your feature request wasn't reported
already before; requesting a feature several times won't increase
the changed that it gets added!
Please file feature requests to the Xfce's GitLab
(https://gitlab.xfce.org/xfce/thunar).
Make sure that your feature request wasn't reported already before; requesting
a feature several times won't increase the changed that it gets added!
Coding Style
......@@ -63,4 +60,4 @@ Coding Style
Release process
===============
Yet to be defined!
Refer to https://www.xfce.org/about/releasemodel
Installation Instructions
*************************
Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without warranty of any kind.
Basic Installation
==================
Briefly, the shell command `./autogen.sh && make && make install'
should configure, build, and install this package.
Note that './autogen.sh' creates a './configure' script from
'configure.ac.in' and runs it automatically.
You will not need to run './configure' yourself.
Autotools has be installed on your system in order to run './autogen.sh'
The following text originally referred to './configure' ... usually you
can just replace all calls of './configure' directly with './autogen.sh'.
The following more-detailed instructions are generic; see the `README.md'
file for instructions specific to this package. Some packages provide
this `INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README.md' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./autogen.sh' to configure the package for your system.
Running `./autogen.sh' might take a while. While running, it prints
some messages telling which features it is checking for.
Probably ./autogen.sh will list some/many missing packages.
Install the related packages in dev-version and run ./autogen.sh again,
until all required dependencies are resolved.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package, generally using the just-built uninstalled binaries.
4. After that it is possible to run thunar directly from the source-folder:
./thunar/thunar -q;./thunar/thunar
The -q argument will quit any running thunar-daemon.
However if you want to make use of thunar-plugin, you will need to
run 'make install':
5. Type `make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the `make install' phase executed with root
privileges.
6. Optionally, type `make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
regular user, particularly if the prior `make install' required
root privileges, verifies that the installation completed
correctly.
7. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
8. Often, you can also type `make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
9. Some packages, particularly those that use Automake, provide `make
distcheck', which can by used by developers to test that all other
targets like `make install' and `make uninstall' work correctly.
This target is generally not run by end users.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. Run `./configure --help'
for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'. This
is known as a "VPATH" build.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the `lipo' tool if you have problems.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX', where PREFIX must be an
absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them. In general, the
default for these options is expressed in terms of `${prefix}', so that
specifying just `--prefix' will affect all of the other directory
specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the
correct locations to `configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
`make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
affected directory. For example, `make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
`${prefix}'. Any directories that were specified during `configure',
but not in terms of `${prefix}', must each be overridden at install
time for the entire installation to be relocated. The approach of
makefile variable overrides for each directory variable is required by
the GNU Coding Standards, and ideally causes no recompilation.
However, some platforms have known limitations with the semantics of
shared libraries that end up requiring recompilation when using this
method, particularly noticeable in packages that use GNU Libtool.
The second method involves providing the `DESTDIR' variable. For
example, `make install DESTDIR=/alternate/directory' will prepend
`/alternate/directory' before all installation names. The approach of
`DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of `${prefix}'
at `configure' time.
Optional Features
=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README.md' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Some packages offer the ability to configure how verbose the
execution of `make' will be. For these packages, running `./configure
--enable-silent-rules' sets the default to minimal output, which can be
overridden with `make V=1'; while running `./configure
--disable-silent-rules' sets the default to verbose, which can be
overridden with `make V=0'.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./autogen.sh CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
HP-UX `make' updates targets which have the same time stamps as
their prerequisites, which makes it generally unusable when shipped
generated files such as `configure' are involved. Use GNU `make'
instead.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
to try
./autogen.sh CC="cc"
and if that doesn't work, try
./autogen.sh CC="cc -nodtk"
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
directory contains several dysfunctional programs; working variants of
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
in your `PATH', put it _after_ `/usr/bin'.
On Haiku, software installed for all users goes in `/boot/common',
not `/usr/local'. It is recommended to use the following options:
./autogen.sh --prefix=/boot/common
Specifying the System Type
==========================
There may be some features `configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, `configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS
KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./autogen.sh CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf limitation. Until the limitation is lifted, you can use
this workaround:
CONFIG_SHELL=/bin/bash ./autogen.sh CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it
operates.
`--help'
`-h'
Print a summary of all of the options to `configure', and exit.
`--help=short'
`--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
`--no-create'
`-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`./autogen.sh --help' for more details.
......@@ -17,24 +17,24 @@
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
SUBDIRS = \
icons \
pixmaps \
po \
po-doc \
tdb \
thunarx \
thunar \
docs \
examples \
plugins
plugins \
po
distclean-local:
rm -rf *.spec *.cache *~
rm -rf *.cache *~
find . -type f -name Makefile -delete
find . -type f -name Makefile.in -delete
rpm: dist
rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz
@rm -f $(PACKAGE)-$(VERSION).tar.gz
distuninstallcheck_listfiles = \
find . -type f -print | grep -v ./share/icons/hicolor/icon-theme.cache
.PHONY: ChangeLog
......@@ -45,70 +45,78 @@ ChangeLog: Makefile
dist-hook: ChangeLog
libexec_SCRIPTS = \
ThunarBulkRename \
ThunarHelp
ThunarBulkRename: ThunarBulkRename.in Makefile
$(AM_V_GEN) ( \
rm -f ThunarBulkRename.gen ThunarBulkRename \
&& sed -e "s,\@bindir\@,$(bindir),g" \
< $(srcdir)/ThunarBulkRename.in \
> ThunarBulkRename.gen \
&& mv ThunarBulkRename.gen ThunarBulkRename \
)
ThunarHelp: ThunarHelp.in Makefile
$(AM_V_GEN) ( \
rm -f ThunarHelp.gen ThunarHelp \
&& sed -e "s,\@datadir\@,$(datadir),g" \
< $(srcdir)/ThunarHelp.in \
> ThunarHelp.gen \
&& mv ThunarHelp.gen ThunarHelp \
)
desktopdir = $(datadir)/applications
desktop_in_in_files = \
Thunar.desktop.in.in \
Thunar-bulk-rename.desktop.in.in \
Thunar-folder-handler.desktop.in.in
desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in)
%.desktop.in: %.desktop.in.in
$(AM_V_GEN) sed -e "s,\@libexecdir\@,$(libexecdir),g" < $< > $@
desktop_in_files = \
thunar.desktop.in \
thunar-bulk-rename.desktop.in
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
@INTLTOOL_DESKTOP_RULE@
%.desktop: %.desktop.in Makefile
$(AM_V_GEN)$(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@
#
# .appdata
#
appdatadir = $(datadir)/metainfo
appdata_DATA = $(appdata_in_files:.xml.in=.xml)
appdata_in_files = org.xfce.thunar.appdata.xml.in
%.appdata.xml: %.appdata.xml.in Makefile
$(AM_V_GEN)$(MSGFMT) --xml --template $< -d $(top_srcdir)/po -o $@
if HAVE_DBUS
servicedir = $(datadir)/dbus-1/services
service_in_files = org.xfce.FileManager.service.in org.xfce.Thunar.service.in
service_in_files = org.xfce.FileManager.service.in \
org.xfce.Thunar.service.in \
org.xfce.Thunar.FileManager1.service.in
service_DATA = $(service_in_files:.service.in=.service)
%.service: %.service.in
$(AM_V_GEN) sed -e "s,\@bindir\@,$(bindir),g" < $< > $@
endif
systemd_userdir = $(prefix)/lib/systemd/user
systemd_user_in_files = thunar.service.in
systemd_user_DATA = $(systemd_user_in_files:.service.in=.service)
%.service: %.service.in Makefile
$(AM_V_GEN) $(SED) -e "s,\@bindir\@,$(bindir),g" < $< > $@
polkit_policydir = $(datadir)/polkit-1/actions
polkit_in_in_files = \
org.xfce.thunar.policy.in.in
polkit_in_files = $(polkit_in_in_files:.policy.in.in=.policy.in)
%.policy.in: %.policy.in.in Makefile
sed -e "s,\@bindir\@,$(bindir),g" < $< > $@
polkit_policy_DATA = $(polkit_in_files:.policy.in=.policy)
# Not using HAVE_POLKIT because a lot of distributions put
# polkit.{its,loc} in binary package instead of development package.
# E.g. Debian puts in polkitd instead of libpolkit-gobject-1-dev
%.policy: %.policy.in Makefile
$(AM_V_GEN)$(MSGFMT) --xml --template $< -d $(top_srcdir)/po -o $@ || \
cp $< $@
EXTRA_DIST = \
FAQ \
HACKING \
ThunarBulkRename.in \
Thunar.spec.in \
ThunarHelp.in \
intltool-extract.in \
intltool-merge.in \
intltool-update.in \
$(desktop_in_in_files) \
$(service_in_files)
README.md \
$(desktop_in_files) \
$(service_in_files) \
$(systemd_user_in_files) \
$(appdata_in_files) \
$(polkit_in_in_files) \
its/xfce.loc \
its/xfce.its \
m4/introspection.m4 \
po/meson.build \
meson_options.txt \
meson.build \
xfce-revision.h.in \
$(NULL)
CLEANFILES = $(appdata_DATA)
DISTCLEANFILES = \
ThunarBulkRename \
Thunar.spec \
ThunarHelp \
intltool-extract \
intltool-merge \
intltool-update \
$(desktop_in_files) \
$(desktop_DATA) \
$(service_DATA)
$(service_DATA) \
$(systemd_user_DATA) \
$(polkit_in_files) \
$(polkit_policy_DATA)
DISTCHECK_CONFIGURE_FLAGS = \
--enable-gtk-doc \
--enable-gen-doc
AM_DISTCHECK_CONFIGURE_FLAGS = \
--enable-gtk-doc \
--enable-gen-doc \
--enable-introspection
This diff is collapsed.
What is it?
===========
Thunar is a modern file manager for the Unix/Linux desktop, aiming to be
easy-to-use and fast.
Required packages
=================
Thunar depends on the following packages:
- perl 5.6 or above
- GTK+ 2.14.0 or above
- GLib 2.18.0 or above
- exo 0.5.1 or above
- intltool 0.30 or above
Thunar can optionally use the following packages:
- D-Bus 0.34 or above (strongly suggested)
- libstartup-notification 0.4 or above
- xfce4-panel 4.3.90 or above (for the trash applet)
- xfconf-query
Installation
============
The file 'INSTALL' contains generic installation instructions. For more
detailed information, visit the Thunar website at http://thunar.xfce.org/.
Debugging Support
=================
Thunar currently supports four different levels of debugging support, which
can be setup using the configure flag `--enable-debug' (check the output of
`configure --help'):
`full' Use this if you want to debug Thunar to locate a bug. The
build will most probably be noticably slower. This is also
recommended for people that want to develop Thunar stuff.
`yes' This is the default for SVN snapshot builds. It adds all
kinds of checks to the code, and is therefore likely to run
slower. Use this if you want to develop for Thunar (e.g.
writing Thunar extensions and such).
`minimum' This is the default for release builds, and presents the
recommended behaviour.
`no' Disables all sanity checks. Don't use this unless you know
exactly what you do.
Standards compliance
====================
Thunar supports the following standards/specifications:
* XDG Base Directory Specification
http://freedesktop.org/wiki/Standards_2fbasedir_2dspec
* Shared MIME Database Specification
http://freedesktop.org/wiki/Standards_2fshared_2dmime_2dinfo_2dspec
* X Direct Save (XDS) Protocol for the X Window System
http://freedesktop.org/wiki/Standards_2fdirect_2dsave
* Icon Theme Specification
http://freedesktop.org/wiki/Standards_2ficon_2dtheme_2dspec
* Thumbnail Managing Standard
http://jens.triq.net/thumbnail-spec/index.html
* File URI Specification
http://freedesktop.org/wiki/Standards_2ffile_2duri_2dspec
* Desktop Trash Can Specification
http://freedesktop.org/wiki/Standards_2ftrash_2dspec
How to report bugs?
===================
Bugs should be reported to the Xfce bug tracking system
(http://bugzilla.xfce.org, product Thunar). You will need to
create an account for yourself.
Please read the HACKING file for information on where to send
changes or bugfixes for this package.
[![License](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://gitlab.xfce.org/xfce/thunar/COPYING)
# thunar
Thunar is a modern file manager for the Xfce Desktop Environment. Thunar 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 by default. Thunar starts up quickly and navigating through files and folders is fast and responsive.
----
### Homepage
[Thunar documentation](https://docs.xfce.org/xfce/thunar/start)
### Changelog
See [NEWS](https://gitlab.xfce.org/xfce/thunar/-/blob/master/NEWS) for details on changes and fixes made in the current release.
### Source Code Repository
[Thunar source code](https://gitlab.xfce.org/xfce/thunar)
### Download a Release Tarball
[Thunar archive](https://archive.xfce.org/src/xfce/thunar)
or
[Thunar tags](https://gitlab.xfce.org/xfce/thunar/-/tags)
### Installation
From source:
% git clone https://gitlab.xfce.org/xfce/thunar
% git checkout <branch|tag> #optional step. Per default master is checked out
% cd thunar
% ./autogen.sh
% make
# make install
From release tarball:
% tar xf thunar-<version>.tar.bz2
% cd thunar-<version>
% ./configure
% make
# make install
Both autogen.sh and configure will list missing dependencies.
If your distribution provides development versions of the related packages,
install them. Otherwise you will need to build and install the missing dependencies from source.
For additional build & debug hints, check the [Thunar wiki pages](https://wiki.xfce.org/thunar/dev) and the [detailed building wiki manual](https://docs.xfce.org/xfce/building).
### Reporting Bugs
Visit the [reporting bugs](https://docs.xfce.org/xfce/thunar/bugs) page to view currently open bug reports and instructions on reporting new bugs or submitting bugfixes.
Important for Thunar 1.2
========================
- The layouting code for ThunarLocationButtons is still buggy. Problem shows
with paths that include a very long directory; you cannot scroll to the
last path component then.
- A design for the ThunarDesktopView module must be developed and later
be implemented.
- We need a suite of unit tests and probably high-level tests, that enable
us to test parts of the file manager automatically and isolate bugs
early.
- Setup gtk-doc to present developers with the internal API of Thunar
to ease development of core modules (and later plugins).
- Write good user documentation. Must be both precise and complete.
- We need some easy way to manage diagrams and related developer
information, which also includes results from discussions on
thunar-dev.
- The HACKING file must be updated with strict rules about how
development of Thunar core modules is to be done, and what
material each developer in addition to the source code.
[Desktop Entry]
_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]
_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]
_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: