diff --git a/.gitignore b/.gitignore index 852717d..6f72d53 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,40 @@ -/gnome-commander-*.tar.gz -/gnome-commander-*.tar.xz +gnome-commander-1.2.8.6.tar.bz2 +gnome-commander-1.2.8.7.tar.bz2 +/gnome-commander-1.2.8.8.tar.bz2 +/gnome-commander-1.2.8.9.tar.bz2 +/gnome-commander-1.2.8.10.tar.bz2 +/gnome-commander-1.2.8.11.tar.bz2 +/gnome-commander-1.2.8.12.tar.bz2 +/gnome-commander-1.2.8.13.tar.bz2 +/gnome-commander-1.2.8.14.tar.bz2 +/gnome-commander-1.2.8.15.tar.xz +/gnome-commander-1.2.8.16.tar.xz +/gnome-commander-1.2.8.17.tar.xz +/gnome-commander-1.4.0.tar.xz +/gnome-commander-1.4.1.tar.xz +/gnome-commander-1.4.2.tar.xz +/gnome-commander-1.4.3.tar.xz +/gnome-commander-1.4.4.tar.xz +/gnome-commander-1.4.5.tar.xz +/gnome-commander-5a4806f7e5789a7d29d62550e9128436ffdef00a.tar.xz +/gnome-commander-1.4.6.tar.xz +/gnome-commander-1.4.7.tar.xz +/gnome-commander-1.4.8.tar.xz +/gnome-commander-1.4.9.tar.xz +/gnome-commander-1.6.0.tar.xz +/gnome-commander-1.6.1.tar.xz +/gnome-commander-1.6.2.tar.xz +/gnome-commander-1.6.3.tar.xz +/gnome-commander-1.6.4.tar.xz +/gnome-commander-1.8.0.tar.xz +/gnome-commander-1.8.1.tar.xz +/gnome-commander-1.10.0.tar.xz +/gnome-commander-1.10.1.tar.xz +/gnome-commander-1.10.2.tar.xz +/gnome-commander-1.10.3.tar.xz +/gnome-commander-20210319T1025.tar.gz +/gnome-commander-1.12.0.tar.xz +/gnome-commander-1.12.1.tar.xz +/gnome-commander-1.12.2.tar.xz +/gnome-commander-1.12.3.tar.xz +/gnome-commander-1.12.3.1.tar.xz diff --git a/0001-GnomeCmdData-save_devices-place-GVariantBuilder-stru.patch b/0001-GnomeCmdData-save_devices-place-GVariantBuilder-stru.patch new file mode 100644 index 0000000..7aafb7e --- /dev/null +++ b/0001-GnomeCmdData-save_devices-place-GVariantBuilder-stru.patch @@ -0,0 +1,64 @@ +From 9723c65d0295baedeb6ee4cb85b35ab51ef22376 Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA +Date: Mon, 22 Nov 2021 17:04:36 +0900 +Subject: [PATCH] GnomeCmdData::save_devices: place GVariantBuilder structure + on stack initially + +As written on: +https://www.freedesktop.org/software/gstreamer-sdk/data/docs/latest/glib/glib-GVariant.html#g-variant-builder-new +when calling g_variant_builder_init(), GVariantBuilder structure must be placed on stack first +and the reference to the memory must be passed to the function, instead of +passing nullptr. +--- + src/gnome-cmd-data.cc | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git a/src/gnome-cmd-data.cc b/src/gnome-cmd-data.cc +index 51407cc..b38f96a 100644 +--- a/src/gnome-cmd-data.cc ++++ b/src/gnome-cmd-data.cc +@@ -1722,23 +1722,24 @@ void GnomeCmdData::save_devices() + devices = gnome_cmd_con_list_get_all_dev (gnome_cmd_data.priv->con_list); + if (devices && g_list_length(devices) > 0) + { +- GVariantBuilder *gVariantBuilder = nullptr; ++ GVariantBuilder gVariantBuilder; ++ gboolean device_added_p = false; + + for (; devices; devices = devices->next) + { + auto *device = GNOME_CMD_CON_DEVICE (devices->data); + if (device && !gnome_cmd_con_device_get_autovol (device)) + { +- if (!gVariantBuilder) ++ if (!device_added_p) + { +- g_variant_builder_init (gVariantBuilder, G_VARIANT_TYPE_ARRAY); ++ g_variant_builder_init (&gVariantBuilder, G_VARIANT_TYPE_ARRAY); + } +- ++ device_added_p = true; + gchar *icon_path = g_strdup (gnome_cmd_con_device_get_icon_path (device)); + if (!icon_path || icon_path[0] == '\0') + icon_path = g_strdup (""); + +- g_variant_builder_add (gVariantBuilder, GCMD_SETTINGS_DEVICES_FORMAT_STRING, ++ g_variant_builder_add (&gVariantBuilder, GCMD_SETTINGS_DEVICES_FORMAT_STRING, + gnome_cmd_con_device_get_alias (device), + gnome_cmd_con_device_get_device_fn (device), + gnome_cmd_con_device_get_mountp (device), +@@ -1747,9 +1748,9 @@ void GnomeCmdData::save_devices() + } + } + +- if (gVariantBuilder) ++ if (device_added_p) + { +- devicesToStore = g_variant_builder_end (gVariantBuilder); ++ devicesToStore = g_variant_builder_end (&gVariantBuilder); + g_settings_set_value(options.gcmd_settings->general, GCMD_SETTINGS_DEVICES, devicesToStore); + return; + } +-- +2.33.1 + diff --git a/create-gcmd-git-bare-tarball.sh b/create-gcmd-git-bare-tarball.sh index 8326c21..6ec6fa7 100644 --- a/create-gcmd-git-bare-tarball.sh +++ b/create-gcmd-git-bare-tarball.sh @@ -5,7 +5,7 @@ set -e REPONAME=gnome-commander GITURL=https://gitlab.gnome.org/GNOME/${REPONAME}.git -BRANCH=master +BRANCH=gcmd-1-12 DATE=$(date '+%Y%m%d') TIME=$(date '+%H%M') diff --git a/gnome-commander.spec b/gnome-commander.spec index 19979f7..068a248 100644 --- a/gnome-commander.spec +++ b/gnome-commander.spec @@ -2,12 +2,15 @@ %undefine _strict_symbol_defs_build %global EXIV2_REQ 0.14 -%global GLIB_REQ 2.70.0 -%global LIBGSF_REQ 1.14.26 -%global POPPLER_REQ 0.18 +%global GLIB_REQ 2.44.0 +%global LIBGSF_REQ 1.12.0 +%global POPPLER_REQ 0.8 %global TAGLIB_REQ 1.4 -%global UNIQUE_REQ 0.9.3 +%global mimeedit_rev 1958 + +%global use_autotool 0 +%global update_po 0 %global if_pre 0 %global use_gcc_strict_sanitize 0 @@ -26,41 +29,51 @@ %endif %if 0%{?use_gitbare} -%global gittardate 20240721 -%global gittartime 1636 -%global gitbaredate 20240719 -%global git_rev 95c732e0bda821f4b1eb437d2bc175acd268c9c6 +%global gittardate 20210319 +%global gittartime 1025 +%global gitbaredate 20210318 +%global git_rev 3ebb680e6a181d1dc6f7c3a188f3d5d90ff26d32 %global git_short %(echo %{git_rev} | cut -c-8) -%global git_version %{gitbaredate}git%{git_short} +%global git_version D%{gitbaredate}git%{git_short} %global if_pre 1 -%global clamp_mtime_to_source_date_epoch 0 %endif -%global shortver 1.18 -%global fullver %{shortver}.4 +%global shortver 1.12 +%global fullver %{shortver}.3.1 +%global mainrel 2 %if 0%{?use_release} >= 1 -%global fedoraver %{fullver} +%global fedorarel %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}} %endif %if 0%{?use_gitbare} >= 1 -%global fedoraver %{fullver}%{?if_pre:~}%{!?if_pre:^}%{git_version} +%global fedorarel %{mainrel}.%{git_version} %endif +%if 0%{?if_pre} > 0 +%global use_autotool 1 +%endif +%if 0%{?use_autotool} < 1 +%global update_po 0 +%endif + +# Patch1 updates configure.in +%global use_autotool 1 + +# Autotool seems still needed to avoid build failure +# under doc/ diretory, need investigating +%global use_autotool 1 + Name: gnome-commander # Downgrade 3 times, sorry... Epoch: 4 -Version: %{fedoraver} -Release: 1%{?dist}%{flagrel} +Version: %{fullver} +Release: %{fedorarel}%{flagrel}%{?dist} Summary: A nice and fast file manager for the GNOME desktop Summary(pl): Menadżer plików dla GNOME oparty o Norton Commander'a (TM) Summary(sv): GNOME Commander är en snabb och smidig filhanderare för GNOME -# Overall GPL-2.0-or-later -# data/org.gnome.gnome-commander.appdata.xml.in CC0-1.0 -# doc/C/legal.xml GFDL-1.1-or-later -# SPDX confirmed -License: GPL-2.0-or-later AND GFDL-1.1-or-later AND CC0-1.0 +License: GPLv2+ URL: http://gcmd.github.io/ %if 0%{?use_release} Source0: http://ftp.gnome.org/pub/GNOME/sources/%{name}/%{shortver}/%{name}-%{version}%{?extratag:-%extratag}.tar.xz @@ -71,7 +84,10 @@ Source0: %{name}-%{gittardate}T%{gittartime}.tar.gz Source1: gnome-commander.sh # Source0 is created from Source2 Source2: create-gcmd-git-bare-tarball.sh +Source10: mimeedit-svn%{mimeedit_rev}.sh Patch1: gnome-commander-1.6.0-path-fedora-specific.patch +# Must send to be upstream +Patch101: 0001-GnomeCmdData-save_devices-place-GVariantBuilder-stru.patch BuildRequires: gcc-c++ %if 0%{?use_gcc_strict_sanitize} @@ -83,37 +99,40 @@ BuildRequires: desktop-file-utils BuildRequires: gettext BuildRequires: intltool +BuildRequires: chmlib-devel BuildRequires: pkgconfig(exiv2) >= %{EXIV2_REQ} BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(glib-2.0) -BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(gnome-vfs-2.0) BuildRequires: pkgconfig(libgsf-1) >= %{LIBGSF_REQ} BuildRequires: pkgconfig(poppler-glib) >= %{POPPLER_REQ} BuildRequires: pkgconfig(taglib) >= %{TAGLIB_REQ} -BuildRequires: pkgconfig(unique-1.0) >= %{UNIQUE_REQ} +BuildRequires: pkgconfig(unique-1.0) BuildRequires: libICE-devel BuildRequires: libSM-devel -BuildRequires: meson +BuildRequires: gnome-doc-utils +BuildRequires: perl(XML::Parser) + +%if %{use_autotool} +BuildRequires: automake BuildRequires: flex BuildRequires: intltool -BuildRequires: yelp-tools - -BuildRequires: /usr/bin/git -BuildRequires: /usr/bin/appstream-util +BuildRequires: libtool +BuildRequires: gnome-common +%endif +BuildRequires: make +BuildRequires: %{_bindir}/git +BuildRequires: %{_bindir}/appstream-util # %%check -BuildRequires: xorg-x11-server-Xvfb -BuildRequires: pkgconfig(gtest) +BuildRequires: gtest-devel +Requires: gnome-vfs2-smb Requires: meld Requires: gnome-icon-theme-legacy -%if 0%{?fedora} >= 41 -BuildRequires: gdk-pixbuf2-modules-extra -Requires: gdk-pixbuf2-modules-extra%{?_isa} -%endif %description GNOME Commander is a nice and fast file manager for the GNOME desktop. @@ -151,22 +170,11 @@ git init %endif %if 0%{?use_gitbare} -%setup -q -c -n %{name}-%{fullver}-%{git_version} -T -a 0 +%setup -q -c -T -a 0 git clone ./%{name}.git/ cd %{name} -git checkout -b %{fullver}-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} cp -a [A-Z]* .. cp -a doc .. @@ -182,43 +190,63 @@ done %endif git config user.name "%{name} Fedora maintainer" -git config user.email "%{name}-maintainer@fedoraproject.org" +git config user.email "%{name}-owner@fedoraproject.org" %if 0%{?use_release} +cat > .gitignore < 0 +( export NOCONFIGURE=1 ; sh autogen.sh ) %endif -# Tweak samba detection -sed -i meson.build \ - -e 's|^\(samba = dependency\)|# \1|' \ - -e 's|^\(have_samba = .*\)$|have_samba = true|' \ - %{nil} -git commit -m "Tweak samba detection" -a - -# Don't install unneeded files -sed -i doc/meson.build \ - -e '\@install_data@,\@^)$@s|^\(.*\)$|# \1|' \ - %{nil} -git commit -m "Don't install header files, static archives, documentation" -a +%{__sed} -i.pylib \ + -e 's|\$PY_EXEC_PREFIX/lib|%{_libdir}|' \ + configure %if 0%{?use_gitbare} pushd .. %endif # gzip -#gzip -9 ChangeLog-* +gzip -9 ChangeLog-* + +mkdir TMPBINDIR +cd TMPBINDIR +ln -sf /bin/true ./update-mime-database %if 0%{?use_gitbare} popd %endif %build +export PATH=$(pwd)/TMPBINDIR:$PATH export BUILD_TOP_DIR=$(pwd) %set_build_flags @@ -233,27 +261,86 @@ pushd %{name} # Install wrapper script, and move binaries to # %%{_libexecdir}/%%{name} -%meson \ +mkdir _builddir || : + +# For debuginfo issue +find . -name \*.cc | while read f +do + dirn=$(dirname $f) + %{__cat} $f | %{__sed} -n -e 's|^#line.*[ \t][ \t]*\"\(.*\)"$|\1|p' | \ + sort | uniq | while read g + do + %{__mkdir_p} _builddir/$dirn + %{__cp} -p $dirn/$g _builddir/$dirn + done +done + +pushd _builddir + +ln -sf ../configure +%configure \ + --srcdir=$(pwd)/.. \ --bindir=%{_libexecdir}/%{name} \ + --disable-Werror \ + --disable-scrollkeeper \ %{nil} -%meson_build --ninja-args "-k 0" +%{__cp} -p README ${BUILD_TOP_DIR} + +%if %{update_po} +%{__make} -C po gnome-commander.pot update-po +%endif + +# First make po without _smp_mflags, so that messages +# won't be mixed up +# Second doc/, parallel make seems to fail +%{__make} -C po GMSGFMT="msgfmt --statistics" +%{__make} -C doc +%{__make} %{?_smp_mflags} -k + +popd # from _builddir %if 0%{?use_gitbare} popd %endif %install +%{__rm} -rf %{buildroot} + +export PATH=$(pwd)/TMPBINDIR:$PATH + %if 0%{?use_gitbare} pushd %{name} %endif -%meson_install +pushd _builddir +%{__make} \ + INSTALL="%{__install} -c -p" \ + DESTDIR=%{buildroot} \ + install +popd # from _builddir + +# Desktop file +desktop-file-install \ + --delete-original \ + --vendor '' \ + --remove-category Application \ + --dir %{buildroot}%{_datadir}/applications \ + %{buildroot}%{_datadir}/applications/%{name}.desktop # Install wrapper %{__mkdir_p} %{buildroot}%{_bindir} %{__install} -cpm 0755 %SOURCE1 %{buildroot}%{_bindir}/%{name} +# install gnome-file-types-properties (bug 458667) +%if 0 +%{__install} -cpm 0755 mimeedit.sh \ + %{buildroot}%{_libexecdir}/%{name}/gnome-file-types-properties +%endif + +%{__rm} -f %{buildroot}%{_libdir}/%{name}/*.{a,la} +%{__rm} -f %{buildroot}%{_libdir}/%{name}/*/*.{a,la} + %if 0%{?use_gitbare} popd %endif @@ -261,16 +348,14 @@ popd %find_lang %{name} %check -desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.%{name}.desktop -appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.gnome.%{name}.appdata.xml +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{name}.appdata.xml %if 0%{?use_gitbare} pushd %{name} %endif -export ASAN_OPTIONS=detect_leaks=0 -xvfb-run sh -c \ - "%meson_test -v" +pushd _builddir +make check %if 0%{?use_gitbare} popd @@ -280,9 +365,10 @@ popd %defattr(-,root,root,-) %doc AUTHORS %doc BUGS -%license COPYING +%doc ChangeLog* +%doc COPYING %doc NEWS -%doc README.md +%doc README %doc TODO %doc doc/*.txt @@ -291,97 +377,17 @@ popd %{_libdir}/%{name}/ %{_mandir}/man1/%{name}.1* -%{_datadir}/glib-2.0/schemas/org.gnome.*xml -%dir %{_datadir}/%{name} -#%%{_datadir}/%{name}/*.txt -%{_datadir}/%{name}/icons/ - -%{_datadir}/applications/org.gnome.%{name}.desktop -%{_metainfodir}/org.gnome.%{name}.appdata.xml +%{_datadir}/applications/%{name}.desktop +%{_metainfodir}/%{name}.appdata.xml %{_datadir}/help/*/%{name}/ +%{_datadir}/glib-2.0/schemas/org.gnome.*xml -%{_datadir}/icons/hicolor/scalable/apps/%{name}*.svg +%{_datadir}/pixmaps/%{name}.svg %{_datadir}/pixmaps/%{name}/ %changelog -* Thu Oct 02 2025 Mamoru TASAKA - 4:1.18.4-1 -- 1.18.4 - -* Wed Jul 23 2025 Fedora Release Engineering - 4:1.18.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Thu Jun 26 2025 Mamoru TASAKA - 4:1.18.3-1 -- 1.18.3 - -* Mon Feb 10 2025 Mamoru TASAKA - 4:1.18.2-1 -- 1.18.2 - -* Thu Jan 16 2025 Fedora Release Engineering - 4:1.18.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Sun Sep 15 2024 Mamoru TASAKA - 4:1.18.1-2 -- Require gdk-pixbuf2-modules-extra when available - -* Thu Aug 01 2024 Mamoru TASAKA - 4:1.18.1-1 -- 1.18.1 - -* Tue Jul 23 2024 Mamoru TASAKA - 4:1.18.0-2 -- Apply upstream PR for workaround for segfault with leaving tab pointing to - invalid directory - -* Mon Jul 22 2024 Mamoru TASAKA - 4:1.18.0-1 -- 0.18.0 - -* Thu Jul 18 2024 Fedora Release Engineering - 4:1.16.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri Jun 14 2024 Robert-André Mauchin - 4:1.16.2-2 -- Rebuilt for exiv2 0.28.2 - -* Mon May 20 2024 Mamoru TASAKA - 4:1.16.2-1 -- 1.16.2 - -* Thu Apr 18 2024 Mamoru TASAKA - 4:1.16.1-6 -- Fix double g_error_free call in remote_close_callback (bug 2271363) - -* Sun Jan 28 2024 Mamoru TASAKA - 4:1.16.1-5 -- SPDX migration - -* Wed Jan 24 2024 Fedora Release Engineering - 4:1.16.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 4:1.16.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jul 19 2023 Fedora Release Engineering - 4:1.16.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Jul 10 2023 Mamoru TASAKA - 4:1.16.1-1 -- 1.16.1 - -* Wed Jan 25 2023 Mamoru TASAKA - 4:1.16.0-1 -- 1.16.0 - -* Thu Jan 19 2023 Fedora Release Engineering - 4:1.14.3-1.2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jul 27 2022 Mamoru TASAKA - 4:1.14.3-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sun Jun 19 2022 Mamoru TASAKA - 4:1.14.3-1 -- 1.14.3 - -* Thu Mar 31 2022 Mamoru TASAKA - 4:1.14.2-1 -- 1.14.2 - -* Thu Mar 3 2022 Mamoru TASAKA - 4:1.14.1-1 -- 1.14.1 - -* Sun Feb 6 2022 Mamoru TASAKA - 4:1.14.0-1 -- 1.14.0 - * Mon Nov 22 2021 Mamoru TASAKA - 4:1.12.3.1-2 - Fix crash when saving device information on preference diff --git a/noautobuild b/noautobuild new file mode 100644 index 0000000..02c8cc6 --- /dev/null +++ b/noautobuild @@ -0,0 +1 @@ +Check git later diff --git a/sources b/sources index d5cd8e1..212c6fb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gnome-commander-1.18.4.tar.xz) = 54966719e63a4ca6c9d24cbd1f69dbadd4ac0b7588c2cd1a34635deafcab5976d9e82fdcf6dbc0dc7f1098a25443c9eeaa2400db192b487b6d92d62f62ee23db +SHA512 (gnome-commander-1.12.3.1.tar.xz) = 1206d545493deeb2237af6b9026baf6faab2a8f6ae86eb1abb5c2e5ceb6212ad66382d3abd07c89f14271ac8709d14548f0bfe68fb0e11b1779e0c061e0272e5