Compare commits

..

No commits in common. "rawhide" and "f29" have entirely different histories.

5 changed files with 117 additions and 262 deletions

29
.gitignore vendored
View file

@ -1,2 +1,27 @@
/pcmanfm-*.tar.xz
/pcmanfm-*.tar.gz
pcmanfm-0.9.7.tar.gz
/pcmanfm-0.9.8.tar.gz
/pcmanfm-0.9.9-git0f075cf5ba8fe1ba5c317ebd2babece067852f18.tar.gz
/pcmanfm-0.9.9-git43fdda452f2153a825df8f44023247a2ebb46b25.tar.gz
/pcmanfm-0.9.9-gitbd677a97832406099ada1fd38a5370d43eee2f99.tar.gz
/pcmanfm-0.9.9-D20110422git3f899d14eb.tar.gz
/pcmanfm-0.9.9-D20110529git99f4474555_tabrework.tar.gz
/pcmanfm-0.9.9-D20110803git07ddaf9cde.tar.gz
/pcmanfm-0.9.9.tar.gz
/pcmanfm-0.9.10.tar.gz
/pcmanfm-1.0.tar.gz
/pcmanfm-1.0.1.tar.gz
/pcmanfm-1.1.0.tar.gz
/pcmanfm-1.1.1.tar.gz
/pcmanfm-1.1.2.tar.gz
/pcmanfm-1.1.2-D20130830gitfc8adaab77.tar.gz
/pcmanfm-1.2.0-rc1.tar.xz
/pcmanfm-1.2.0.tar.xz
/pcmanfm-1.2.1.tar.xz
/pcmanfm-1.2.2.tar.xz
/pcmanfm-1.2.3.tar.xz
/pcmanfm-1.2.4.tar.xz
/pcmanfm-1.2.5.tar.xz
/pcmanfm-20180123T1609.tar.gz
/pcmanfm-1.3.0.tar.xz
/pcmanfm-1.3.1.tar.xz
/pcmanfm-20190110T1400.tar.gz

View file

@ -4,7 +4,7 @@ set -x
set -e
REPONAME=pcmanfm
GITURL=https://github.com/lxde/${REPONAME}.git
GITURL=git://git.lxde.org/lxde/${REPONAME}.git
DATE=$(date '+%Y%m%d')
TIME=$(date '+%H%M')
@ -18,7 +18,7 @@ pushd $TMPDIR
git clone --mirror $GITURL
pushd ${REPONAME}.git/
git log --format=fuller | head -n 12
git log | head -n 4
popd
tar czf ${TARNAME} ${REPONAME}.git/

View file

@ -1,60 +0,0 @@
From 25a85bc3ec664864678d33e4c923b0008384d037 Mon Sep 17 00:00:00 2001
From: Mamoru TASAKA <mtasaka@fedoraproject.org>
Date: Tue, 5 May 2020 09:50:37 +0900
Subject: [PATCH] connect_model: connect to signal before setting folder for
model
In connect_model(), when fm_folder_model_new(folder, FALSE) is invoked, in libfm/src/gtk/fm-folder-model.c ,
* a new FmFolderModel object *model is created,
* and fm_folder_model_set_folder(model, folder) is called internally.
* When folder is already loaded, fm_folder_model_set_folder() calls _fm_folder_model_add_file() internally for each file in "Desktop" directory, which calls fm_folder_model_file_created().
* fm_folder_model_file_created() calls _fm_folder_model_insert_item(), and
* _fm_folder_model_insert_item() calls gtk_tree_model_row_inserted() (for each file in "Desktop" directory), which emits "row-inserted" signal to the created model.
What is the problem here is that this signal is needed for calling on_row_inserted() callback function (in pcmanfm/src/desktop.c),
* which calls fm_folder_model_set_item_userdata().
* This fm_folder_model_set_item_userdata() call is needed for load_items(), as it tries to call the line:
```
item = fm_folder_model_get_item_userdata(desktop->model, &it);
```
and then it tries to access item->fi.
So with current connect_model() implementation, when folder is already called, on_row_inserted callback function (for "row-inserted" signal) is never called. This causes fm_folder_model_get_item_userdata() return value (in load_itemr) NULL, and it makes segfault when accessing item->fi like https://bugzilla.redhat.com/show_bug.cgi?id=1827445 or so.
So before setting folder for model by fm_folder_model_set_folder(), connecting model to signal from folder is needed beforehand.
---
src/desktop.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/desktop.c b/src/desktop.c
index bea6b82..a066059 100644
--- a/src/desktop.c
+++ b/src/desktop.c
@@ -4875,11 +4875,11 @@ static void on_sort_changed(GtkTreeSortable *model, FmDesktop *desktop)
static inline void connect_model(FmDesktop *desktop, FmFolder *folder)
{
- desktop->model = fm_folder_model_new(folder, FALSE);
+ desktop->model = fm_folder_model_new(NULL, FALSE);
+
g_signal_connect(folder, "start-loading", G_CALLBACK(on_folder_start_loading), desktop);
g_signal_connect(folder, "finish-loading", G_CALLBACK(on_folder_finish_loading), desktop);
g_signal_connect(folder, "error", G_CALLBACK(on_folder_error), desktop);
- fm_folder_model_set_icon_size(desktop->model, fm_config->big_icon_size);
g_signal_connect(app_config, "changed::big_icon_size",
G_CALLBACK(on_big_icon_size_changed), desktop->model);
g_signal_connect(desktop->model, "row-deleting", G_CALLBACK(on_row_deleting), desktop);
@@ -4887,6 +4887,10 @@ static inline void connect_model(FmDesktop *desktop, FmFolder *folder)
g_signal_connect(desktop->model, "row-deleted", G_CALLBACK(on_row_deleted), desktop);
g_signal_connect(desktop->model, "row-changed", G_CALLBACK(on_row_changed), desktop);
g_signal_connect(desktop->model, "rows-reordered", G_CALLBACK(on_rows_reordered), desktop);
+
+ fm_folder_model_set_folder(desktop->model, folder);
+ fm_folder_model_set_icon_size(desktop->model, fm_config->big_icon_size);
+
#if FM_CHECK_VERSION(1, 0, 2)
fm_folder_model_set_sort(desktop->model, desktop->conf.desktop_sort_by,
desktop->conf.desktop_sort_type);
--
2.26.2

View file

@ -1,67 +1,72 @@
%global use_release 0
%global use_gitbare 1
%if 0%{?use_gitbare} < 1
# force
%global use_release 1
%if (0%{?fedora} && 0%{?fedora} < 19)
%global with_desktop_vendor_tag 1
%endif
%global main_version 1.4.0
%undefine prever
%global prerpmver %(echo "%{?prever}" | sed -e 's|-||g')
%global use_release 0
%global use_git 0
%global use_gitbare 1
%if 0%{?use_git} < 1
%if 0%{?use_gitbare} < 1
# force
%global use_release 1
%endif
%endif
%global mainver 1.3.1
%undefine prever
%global prerpmver %(echo "%{?prever}" | sed -e 's|-||g')
# Upstream git:
# git://pcmanfm.git.sourceforge.net/gitroot/pcmanfm/pcmanfm
%global git_version %{nil}
%global git_ver_rpm %{nil}
%global git_builddir %{nil}
%global mainrel 2
%if 0%{?use_git} >= 1
%global githash fc8adaab77f2cc9120deaf905f732e6a7ec1a8a4
%global shorthash %(TMP=%githash ; echo ${TMP:0:10})
%global gitdate Fri Aug 30 19:14:03 2013 +0300
%global gitdate_num 20130830
%endif
%if 0%{?use_gitbare} >= 1
%global tarballdate 20251218
%global tarballtime 1224
%define use_gitcommit_as_rel 1
%global githeaddate 20251022
%global git_rev 09087446392d08c25412cade107bdec0a6e8ae7b
%global git_short %(echo %{git_rev} | cut -c-8)
%global git_version %{githeaddate}git%{git_short}
%global gitbaredate 20190110
%global gitbaretime 1400
%global githeaddate 20181227
%global git_rev 0619a81f358d85568d990fc78c67e121e55f1c05
%global git_short %(echo %{git_rev} | cut -c-8)
%global git_version D%{githeaddate}git%{git_short}
%endif
%global libfm_minver 1.4.0
%undefine _changelog_trimtime
%if 0%{?use_gitbare}
%if 0%{?use_gitcommit_as_rel}
%global git_ver_rpm ^%{git_version}
%global git_builddir -%{git_version}
%if 0%{?use_git} >= 1
%global fedorarel %{mainrel}.D%{gitdate_num}git%{shorthash}
%endif
%endif
%global use_gcc_strict_sanitize 0
%global flagrel %{nil}
%if 0%{?use_gcc_strict_sanitize} >= 1
%global flagrel %{flagrel}.san
%endif
#%%undefine _annotated_build
Name: pcmanfm
Version: %{main_version}%{git_ver_rpm}
Release: 1%{?dist}%{flagrel}
Summary: Extremly fast and lightweight file manager
# SPDX confirmed
License: GPL-2.0-or-later
URL: http://pcmanfm.sourceforge.net/
%if 0%{?use_gitbare} >= 1
Source0: %{name}-%{tarballdate}T%{tarballtime}.tar.gz
%global fedorarel %{mainrel}.%{git_version}
%endif
%if 0%{?use_release} >= 1
Source0: http://downloads.sourceforge.net/pcmanfm/%{name}-%{main_version}%{?prever}.tar.xz
%global fedorarel %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}}
%endif
%global libfm_minver 1.2.0
%undefine _changelog_trimtime
Name: pcmanfm
Version: %{mainver}
Release: %{fedorarel}%{?dist}
Summary: Extremly fast and lightweight file manager
Group: User Interface/Desktops
License: GPLv2+
URL: http://pcmanfm.sourceforge.net/
%if 0%{?use_git} >= 1
Source0: %{name}-%{version}-D%{gitdate_num}git%{shorthash}.tar.gz
%endif
%if 0%{?use_gitbare}
Source0: %{name}-%{gitbaredate}T%{gitbaretime}.tar.gz
%endif
%if 0%{?use_release} >= 1
Source0: http://downloads.sourceforge.net/pcmanfm/%{name}-%{mainver}%{?prever}.tar.xz
%endif
## Missing in the tarball, taken from git tree
#Source1: pcmanfm.conf
@ -77,27 +82,18 @@ Patch102: pcmanfm-0102-use-GList-for-FmDesktop-entries-instead-of-static-ar.patc
Patch103: pcmanfm-0103-Fix-the-bug-that-desktop-configuration-is-not-proper.patch
Patch104: pcmanfm-0104-Finish-implementation-of-inserting-new-monitor.patch
# connect_model: connect to signal before setting folder for model
Patch202: pcmanfm-0202-connect_model-connect-to-signal-before-setting-folde.patch
BuildRequires: make
BuildRequires: gcc
BuildRequires: gcc
BuildRequires: libfm-gtk-devel >= %{libfm_minver}
BuildRequires: menu-cache-devel
BuildRequires: desktop-file-utils
BuildRequires: gettext
BuildRequires: gettext-devel
BuildRequires: intltool
%if 0%{?use_gitbare}
%if 0%{?use_git} || 0%{?use_gitbare}
BuildRequires: automake
BuildRequires: intltool
%endif
%if 0%{?use_gcc_strict_sanitize}
BuildRequires: libasan
BuildRequires: libubsan
%endif
BuildRequires: git
@ -105,8 +101,12 @@ BuildRequires: git
#BuildRequires: automake
# Request for now
Requires: libfm-gtk-utils
Requires: libfm-gtk-utils
# Still needed for removable media - still now really?
%if 0%{?fedora} < 16
Requires: hal-storage-addon
%endif
# Write explicitly
Requires: libfm >= %{libfm_minver}
@ -114,47 +114,37 @@ Requires: libfm >= %{libfm_minver}
PCMan File Manager is an extremly fast and lightweight file manager
which features tabbed browsing and user-friendly interface.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%package devel
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%if 0%{?use_release}
%setup -q -n %{name}-%{main_version}%{?prever}%{git_builddir}
%if 0%{?use_release} || 0%{?use_git}
%setup -q -n %{name}-%{version}%{?prever}
#install -cpm 644 %{SOURCE1} %{SOURCE2} data/
git init
%endif
%if 0%{?use_gitbare}
%setup -q -c -T -n %{name}-%{main_version}%{?prever}%{git_builddir}%{?prever} -a 0
%setup -q -c -T -a 0
git clone ./%{name}.git/
cd %{name}
#git checkout -b %{version}-fedora %{version}
git checkout -b %{main_version}-fedora %{git_rev}
# Restore timestamps
set +x
echo "Restore timestamps"
git ls-tree -r --name-only HEAD | while read f
do
unixtime=$(git log -n 1 --pretty='%ct' -- $f)
touch -d "@${unixtime}" $f
done
set -x
git checkout -b %{version}-fedora %{git_rev}
install -cpm 0644 [A-Z]* ..
%endif
git config user.name "pcmanfm Fedora maintainer"
git config user.email "pcmanfm-owner@fedoraproject.org"
%if 0%{?use_release}
%if 0%{?use_release} || 0%{?use_git}
git add .
git commit -q -m "init tree"
%endif
@ -163,11 +153,10 @@ cat %PATCH101 | git am
cat %PATCH102 | git am
cat %PATCH103 | git am
cat %PATCH104 | git am
cat %PATCH202 | git am
%if 0%{?use_gitbare}
# Add ACLOCAL_PATH for gettext 0.25 (ref: bug 2366708)
export ACLOCAL_PATH=%{_datadir}/gettext/m4/
%if 0%{?use_git} || 0%{?use_gitbare}
sh autogen.sh
# Patch0
autoreconf -fi
%endif
@ -181,12 +170,6 @@ chmod u+x configure
chmod u+x */
%build
%if 0%{?use_gcc_strict_sanitize}
export CC="${CC} -fsanitize=address -fsanitize=undefined"
export CXX="${CXX} -fsanitize=address -fsanitize=undefined"
export LDFLAGS="${LDFLAGS} -pthread"
%endif
%if 0%{?use_gitbare}
cd %{name}
%endif
@ -210,6 +193,9 @@ make install \
INSTALL="install -p"
desktop-file-install \
%if 0%{?with_desktop_vendor_tag}
--vendor fedora \
%endif
--delete-original \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
--remove-category 'Application' \
@ -223,18 +209,25 @@ cd ..
%{_prefix}/lib/rpm/check-rpaths
%post
update-desktop-database &> /dev/null
exit 0
%postun
update-desktop-database &> /dev/null
exit 0
%files -f %{name}.lang
%defattr(-,root,root,-)
%doc AUTHORS
%license COPYING
%doc COPYING
%doc README
%{_bindir}/%{name}
%{_mandir}/man1/%{name}.1*
%{_libdir}/%{name}/
%dir %{_datadir}/%{name}/
%{_datadir}/%{name}/ui/
%{_datadir}/%{name}/
%{_datadir}/applications/*%{name}*.desktop
%config(noreplace) %{_sysconfdir}/xdg/%{name}/
@ -242,109 +235,6 @@ cd ..
%{_includedir}/pcmanfm-modules.h
%changelog
* Thu Dec 18 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.4.0^20251022git09087446-1
- Update to the latest git
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Mon May 26 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.4.0-3
- Use ACLOCAL_PATH environment instead of calling autopoint
* Sat May 17 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.4.0-2
- Call autopoint with gettext 0.25 (ref: bug 2366708)
* Thu Mar 06 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.4.0-1
- 1.4.0
* Wed Feb 19 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.2^20241216gita8ae14c5-3
- Rebuild with libfm 1.4.0 for date format option
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2^20241216gita8ae14c5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Dec 25 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.2^20241216gita8ae14c5-1
- Update to the latest git
* Fri Dec 06 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.2^20241203git836c77c8-1
- Update to the latest git
* Sat Nov 23 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.2^20241103git1312f603-1
- Update to the latest git
* Sun Aug 25 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.2^20240821gitaa4860d6-1
- Update to the latest git
* Tue Aug 13 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.2^20240812git12abd7e1-1
- Update to the latest git
* Fri Jul 26 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.2^20230917gite6b422b2-6
- Apply upstream PR for gcc14 -Werror=incompatible-pointer-types
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2^20230917gite6b422b2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2^20230917gite6b422b2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2^20230917gite6b422b2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.2^20230917gite6b422b2-2
- Change -Wincompatible-pointer-types from error to warning
* Thu Sep 21 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.2^20230917gite6b422b2-1
- Update to the latest git
* Mon Aug 14 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.2^20230807git752d11b7-1
- Update to the latest git
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-1.4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-1.3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-1.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Sun Feb 7 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.2-1
- 1.3.2 release
* Wed Feb 3 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.1-6.D20210203git31394e55
- Rebase to the latest git
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-5.D20200322gitbe8c60d5.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-5.D20200322gitbe8c60d5.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue May 5 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.1-5.D20200322gitbe8c60d5
- connect_model: connect to signal before setting folder for model (bug 1645030)
* Wed Apr 8 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.1-4.D20200322gitbe8c60d5
- Update to the latest git (the previous GIOChannel patch merged)
* Sun Mar 22 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.1-3.D20190224gitc52cc4b2
- main: set the GIOChannel encoding to binary
(may fix 1797193)
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2.D20181227git0619a81f.3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2.D20181227git0619a81f.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2.D20181227git0619a81f.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Jan 10 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.3.1-2.D20181227git0619a81f
- Update to the latest git
- fix isdigit() undefined behavior to fix Alt+Home issue [SF#1085] (may fix #1649027)

View file

@ -1 +1 @@
SHA512 (pcmanfm-20251218T1224.tar.gz) = 41427507b7cdb3d8eb142f858d5228394aa6eaabe38405dc20c12d3c94efd2bc88e6ccda49d9a9b463cbf0092e8f9bed5aa76a0aa23a0a573071a53ab78a3100
SHA512 (pcmanfm-20190110T1400.tar.gz) = 885ece510e70c7a8217d729b49fd702cf462fd6cd914e7c7777fa20b2cc2cf70786d1eb5ee550b63cb9c0d691adde3704cc27e763dedda59d1cb674f7b0b273d