diff --git a/.gitignore b/.gitignore index ed34232..b334c15 100644 --- a/.gitignore +++ b/.gitignore @@ -1,32 +1,2 @@ -libfm-0.1.12.tar.gz -/libfm-0.1.14.tar.gz -/libfm-0.1.15-git3ec0a717adde65f262b5bb2b33ae5eb56e9aea6f.tar.gz -/libfm-0.1.15-git197c7e1b8e3e439a5e4f3f004a3447aef43b298b.tar.gz -/libfm-0.1.15-gitdebea4a90d17ec6fd5876564d28977a3c3875924.tar.gz -/libfm-0.1.15-D20110422git30d03d27e4.tar.gz -/libfm-0.1.15-D20110427gita1f63c3114.tar.gz -/libfm-0.1.15-D20110529gitcd79d6228b.tar.gz -/libfm-0.1.15-D20110807gitd22b41fd2f.tar.gz -/libfm-0.1.16.tar.gz -/libfm-0.1.17.tar.gz -/libfm-1.0.tar.gz -/libfm-1.0.1.tar.gz -/libfm-1.1.0.tar.gz -/libfm-1.1.1.tar.gz -/libfm-1.1.2.tar.gz -/libfm-1.1.2.1.tar.gz -/libfm-1.1.2.2.tar.gz -/libfm-1.1.3.tar.xz -/libfm-1.1.4.tar.xz -/libfm-1.2.0-rc1.tar.xz -/libfm-1.2.0.tar.xz -/libfm-1.2.1.tar.xz -/libfm-1.2.2.tar.xz -/libfm-1.2.3.tar.xz -/libfm-1.2.3-699810d3bd0c5d9d508fcd9aa3a65442f2afee3f.tar.gz -/libfm-1.2.3-577806e29d2ec27ce5fee9dc816566fb4e23b155.tar.gz -/libfm-1.2.3-D20150525git8f38f90e04b648637509f2fa2d4208027ae59b5c.tar.gz -/libfm-1.2.3-D20150607gite1de98ccba316605e14d8cfc06df9a55752cdcec.tar.gz -/libfm-1.2.3-D20150713gitf47c9ae7ae7e1c5ff9742b8a6ca49fdb6f55f98d.tar.gz -/libfm-1.2.3-D20150728git47d0c1dd7d59c83188f11bfd6aef4a855f4f5c39.tar.gz -/libfm-1.2.4.tar.xz +/libfm-*.tar.gz +/libfm-*.tar.xz diff --git a/create-libfm-git-bare-tarball.sh b/create-libfm-git-bare-tarball.sh new file mode 100644 index 0000000..1095278 --- /dev/null +++ b/create-libfm-git-bare-tarball.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -x +set -e + +REPONAME=libfm +GITURL=https://github.com/lxde/${REPONAME}.git + +DATE=$(date '+%Y%m%d') +TIME=$(date '+%H%M') + +TARNAME=${REPONAME}-${DATE}T${TIME}.tar.gz + +PWDDIR=$(pwd) +TMPDIR=$(mktemp -d /var/tmp/libfm-XXXXXX) +pushd $TMPDIR + +git clone --mirror $GITURL +tar czf ${TARNAME} ${REPONAME}.git/ + +pushd ${REPONAME}.git/ +git log --format=fuller | head -n 12 +popd + +cp -p ${TARNAME} $PWDDIR +popd +rm -rf $TMPDIR diff --git a/libfm-1.2.3-moduledir-gtkspecific-v02.patch b/libfm-1.3.0.2-moduledir-gtkspecific-v03.patch similarity index 68% rename from libfm-1.2.3-moduledir-gtkspecific-v02.patch rename to libfm-1.3.0.2-moduledir-gtkspecific-v03.patch index 3be23af..d240e49 100644 --- a/libfm-1.2.3-moduledir-gtkspecific-v02.patch +++ b/libfm-1.3.0.2-moduledir-gtkspecific-v03.patch @@ -1,5 +1,5 @@ ---- libfm-8f38f90e04b648637509f2fa2d4208027ae59b5c/configure.ac.moduledir 2015-05-26 01:14:45.000000000 +0900 -+++ libfm-8f38f90e04b648637509f2fa2d4208027ae59b5c/configure.ac 2015-06-01 16:59:15.758431997 +0900 +--- libfm-1.3.0.2/configure.ac.moduledir 2018-04-29 05:06:53.000000000 +0900 ++++ libfm-1.3.0.2/configure.ac 2018-04-29 17:54:40.014818903 +0900 @@ -117,12 +117,14 @@ if test x"$ac_with_gtk" != xno; then LIBFM_GTK_LTLIBRARIES=libfm-gtk3.la LIBFM_GTK_PC=libfm-gtk3.pc @@ -22,8 +22,8 @@ + LIBFM_GTK_MODULE_DIR_SUFFIX="" LIBFM_PREF_APPS= fi - AC_SUBST(GTK_CFLAGS) -@@ -141,6 +144,7 @@ AC_SUBST(GTK_LIBS) + if test "$ac_with_gtk" = "3.0"; then +@@ -144,6 +147,7 @@ AC_SUBST(GTK_LIBS) AC_SUBST(LIBFM_GTK_LTLIBRARIES) AC_SUBST(LIBFM_PREF_APPS) AC_SUBST(LIBFM_GTK_PC) @@ -31,9 +31,9 @@ AM_CONDITIONAL([ENABLE_GTK], [test x$ac_with_gtk != xnone]) dnl pango_modules="pango >= 1.16.0" ---- libfm-8f38f90e04b648637509f2fa2d4208027ae59b5c/src/Makefile.am.moduledir 2015-05-26 01:14:45.000000000 +0900 -+++ libfm-8f38f90e04b648637509f2fa2d4208027ae59b5c/src/Makefile.am 2015-06-01 16:59:15.759431997 +0900 -@@ -313,6 +313,7 @@ libfm_gtk_la_CFLAGS = \ +--- libfm-1.3.0.2/src/Makefile.am.moduledir 2018-04-29 04:15:18.000000000 +0900 ++++ libfm-1.3.0.2/src/Makefile.am 2018-04-29 17:54:40.014818903 +0900 +@@ -315,6 +315,7 @@ libfm_gtk_la_CFLAGS = \ -I$(srcdir)/gtk \ -DPACKAGE_UI_DIR=\""$(datadir)/libfm/ui"\" \ -DPACKAGE_THEME_DIR=\""$(datadir)/libfm/images"\" \ @@ -41,8 +41,8 @@ $(GTK_CFLAGS) \ $(MENU_CACHE_CFLAGS) \ $(NULL) ---- libfm-8f38f90e04b648637509f2fa2d4208027ae59b5c/src/fm-gtk.c.moduledir 2015-06-01 17:04:33.951498868 +0900 -+++ libfm-8f38f90e04b648637509f2fa2d4208027ae59b5c/src/fm-gtk.c 2015-06-01 17:04:59.933504328 +0900 +--- libfm-1.3.0.2/src/fm-gtk.c.moduledir 2018-04-17 04:11:33.000000000 +0900 ++++ libfm-1.3.0.2/src/fm-gtk.c 2018-04-29 17:54:40.014818903 +0900 @@ -57,6 +57,7 @@ gboolean fm_gtk_init(FmConfig* config) if no theme was selected and GTK fallback isn't available then no icons are shown - we should add folder and file icons as fallbacks theme */ @@ -51,9 +51,9 @@ _fm_icon_pixbuf_init(); _fm_thumbnail_init(); _fm_file_properties_init(); ---- libfm-8f38f90e04b648637509f2fa2d4208027ae59b5c/src/modules/Makefile.am.moduledir 2015-05-26 01:14:45.000000000 +0900 -+++ libfm-8f38f90e04b648637509f2fa2d4208027ae59b5c/src/modules/Makefile.am 2015-06-01 16:59:15.759431997 +0900 -@@ -18,6 +18,7 @@ LIBS += $(top_builddir)/src/libfm.la +--- libfm-1.3.0.2/src/modules/Makefile.am.moduledir 2018-04-29 05:00:55.000000000 +0900 ++++ libfm-1.3.0.2/src/modules/Makefile.am 2018-04-29 17:57:06.097345230 +0900 +@@ -19,6 +19,7 @@ LIBS += $(top_builddir)/src/libfm.la # change default and put modules below usual place pkglibdir = $(libdir)/@PACKAGE@/modules @@ -61,7 +61,7 @@ # modules to compile pkglib_LTLIBRARIES = \ -@@ -25,11 +26,14 @@ pkglib_LTLIBRARIES = \ +@@ -26,8 +27,11 @@ pkglib_LTLIBRARIES = \ vfs-search.la \ $(NULL) @@ -69,16 +69,12 @@ + $(NULL) + if ENABLE_GTK - if HAVE_ACTIONS --pkglib_LTLIBRARIES += gtk-menu-actions.la -+pkggtklib_LTLIBRARIES += gtk-menu-actions.la - endif -pkglib_LTLIBRARIES += \ +pkggtklib_LTLIBRARIES += \ gtk-fileprop-x-desktop.la \ gtk-fileprop-x-shortcut.la \ gtk-menu-trash.la \ -@@ -39,10 +43,14 @@ endif +@@ -38,10 +42,14 @@ endif # install only .so files, we don't need .la files install-exec-hook: rm -f $(DESTDIR)$(pkglibdir)/*.la diff --git a/libfm-1.3.2-0001-fm_config_load_from_key_file-don-t-replace-string-va.patch b/libfm-1.3.2-0001-fm_config_load_from_key_file-don-t-replace-string-va.patch new file mode 100644 index 0000000..493abf9 --- /dev/null +++ b/libfm-1.3.2-0001-fm_config_load_from_key_file-don-t-replace-string-va.patch @@ -0,0 +1,91 @@ +From 1789c96ae73720ef001249d2085553102043aee3 Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA +Date: Thu, 28 Oct 2021 22:07:14 +0900 +Subject: [PATCH] fm_config_load_from_key_file: don't replace string value when + loaded config file does not have such key + +For example, fm_config_load_from_file() loads every key file with path +ending with "/libfm/libfm.conf" under XDG_CONFIG_DIRS using fm_config_load_from_key_file(). + +With current fm_config_load_from_key_file() implementation, every time it is called, +for key having string, firstly the old value is always free'ed, and the new value is +read and set, even if the new value is empty. +So if system wide key file contains a key with string value but user-specific key file +does not contain the key, system widely set key value is lost, which is unwilling. + +For other value types (such as bool or int), the corresponding fm_key_file_get_TYPE +function are used, and these functions replace old values when the new config file +actually has the corresponding key. + +With this patch, similar to other value types, string value is to be replaced +only when new loaded config actually has corresponding key. +Also, implement fm_key_file_get_string() to be consistent with other types. +--- + src/base/fm-config.c | 30 ++++++++++++++++++------------ + 1 file changed, 18 insertions(+), 12 deletions(-) + +diff --git a/src/base/fm-config.c b/src/base/fm-config.c +index a633857..1e3d3f7 100644 +--- a/src/base/fm-config.c ++++ b/src/base/fm-config.c +@@ -245,6 +245,19 @@ static void _parse_drop_default_action(GKeyFile *kf, gint *action) + } + } + ++static gboolean fm_key_file_get_string(GKeyFile* kf, const char* grp, const char* key, char** val) ++{ ++ char* str_key_new = g_key_file_get_string(kf, grp, key, NULL); ++ if(G_LIKELY(str_key_new)) ++ { ++ if (*val) ++ g_free(*val); ++ *val = str_key_new; ++ } ++ return str_key_new != NULL; ++} ++ ++ + /** + * fm_config_load_from_key_file + * @cfg: pointer to configuration +@@ -263,12 +276,8 @@ void fm_config_load_from_key_file(FmConfig* cfg, GKeyFile* kf) + fm_key_file_get_int(kf, "config", "auto_selection_delay", &cfg->auto_selection_delay); + fm_key_file_get_bool(kf, "config", "confirm_del", &cfg->confirm_del); + fm_key_file_get_bool(kf, "config", "confirm_trash", &cfg->confirm_trash); +- if(cfg->terminal) +- g_free(cfg->terminal); +- cfg->terminal = g_key_file_get_string(kf, "config", "terminal", NULL); +- if(cfg->archiver) +- g_free(cfg->archiver); +- cfg->archiver = g_key_file_get_string(kf, "config", "archiver", NULL); ++ fm_key_file_get_string(kf, "config", "terminal", &cfg->terminal); ++ fm_key_file_get_string(kf, "config", "archiver", &cfg->archiver); + fm_key_file_get_bool(kf, "config", "thumbnail_local", &cfg->thumbnail_local); + fm_key_file_get_int(kf, "config", "thumbnail_max", &cfg->thumbnail_max); + fm_key_file_get_bool(kf, "config", "advanced_mode", &cfg->advanced_mode); +@@ -285,8 +294,7 @@ void fm_config_load_from_key_file(FmConfig* cfg, GKeyFile* kf) + fm_key_file_get_bool(kf, "config", "defer_content_test", &cfg->defer_content_test); + fm_key_file_get_bool(kf, "config", "quick_exec", &cfg->quick_exec); + fm_key_file_get_bool(kf, "config", "smart_desktop_autodrop", &cfg->smart_desktop_autodrop); +- g_free(cfg->format_cmd); +- cfg->format_cmd = g_key_file_get_string(kf, "config", "format_cmd", NULL); ++ fm_key_file_get_string(kf, "config", "format_cmd", &cfg->format_cmd); + /* append blacklist */ + strv = g_key_file_get_string_list(kf, "config", "modules_blacklist", NULL, NULL); + fm_strcatv(&cfg->modules_blacklist, strv); +@@ -305,10 +313,8 @@ void fm_config_load_from_key_file(FmConfig* cfg, GKeyFile* kf) + fm_key_file_get_int(kf, "ui", "thumbnail_size", &cfg->thumbnail_size); + fm_key_file_get_bool(kf, "ui", "show_thumbnail", &cfg->show_thumbnail); + fm_key_file_get_bool(kf, "ui", "shadow_hidden", &cfg->shadow_hidden); +- g_free(cfg->list_view_size_units); +- cfg->list_view_size_units = g_key_file_get_string(kf, "ui", "list_view_size_units", NULL); +- g_free(cfg->saved_search); +- cfg->saved_search = g_key_file_get_string(kf, "ui", "saved_search", NULL); ++ fm_key_file_get_string(kf, "ui", "list_view_size_units", &cfg->list_view_size_units); ++ fm_key_file_get_string(kf, "ui", "saved_search", &cfg->saved_search); + + fm_key_file_get_bool(kf, "places", "places_home", &cfg->places_home); + fm_key_file_get_bool(kf, "places", "places_desktop", &cfg->places_desktop); +-- +2.33.1 + diff --git a/libfm.spec b/libfm.spec index c52aec4..5fc24d7 100644 --- a/libfm.spec +++ b/libfm.spec @@ -3,79 +3,121 @@ # Upstream git: # git://pcmanfm.git.sourceforge.net/gitroot/pcmanfm/libfm # add bootstrap, need to build menu-cache in epel7 -%global bootstrap 0 -%global mainver 1.2.4 -%undefine prever -%global prerpmver %(echo "%{?prever}" | sed -e 's|-||g') +%global use_release 0 +%global use_gitbare 1 -%global usegit 0 -%global mainrel 3 - -%global githash 47d0c1dd7d59c83188f11bfd6aef4a855f4f5c39 -%global shorthash %(TMP=%githash ; echo ${TMP:0:10}) -%global gitdate Tue, 28 Jul 2015 02:25:54 +0000 -%global gitdate_num 20150728 - -%if 0%{?usegit} >= 1 -%global fedorarel %{mainrel}.D%{gitdate_num}git%{shorthash} -%else -%global fedorarel %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}} +%if 0%{?use_gitbare} < 1 +# force +%global use_release 1 %endif +%global git_version %{nil} +%global git_ver_rpm %{nil} +%global git_builddir %{nil} + +%if 0%{?use_gitbare} +%global gittardate 20251217 +%global gittartime 2335 +%define use_gitcommit_as_rel 0 + +%global gitbaredate 20251214 +%global git_rev 7e575d13fcf0532fc181fc26391ad6fd7717ed66 +%global git_short %(echo %{git_rev} | cut -c-8) +%global git_version %{gitbaredate}git%{git_short} + +%if 0%{?use_gitcommit_as_rel} +%global git_ver_rpm ^%{git_version} +%global git_builddir -%{git_version} +%else +%global git_ver_rpm %{nil} +%global git_builddir %{nil} +%endif + +%endif + + +%global main_version 1.4.1 + +%global bootstrap 0 %global build_doc 1 +%undefine _changelog_trimtime + Name: libfm -Version: %{mainver} -Release: %{fedorarel}%{?dist} +Version: %{main_version}%{git_ver_rpm} +Release: 1%{?dist} Summary: GIO-based library for file manager-like programs -Group: System Environment/Libraries -License: GPLv2+ +# src/actions/ GPL-2.0-or-later +# src/base/ LGPL-2.1-or-later +# src/demo/ GPL-2.0-or-later +# src/extra/ LGPL-2.1-or-later +# src/fm-gtk.{c,h} GPL-2.0-or-later +# src/gtk-compat.c GPL-2.0-or-later +# src/*.c (rest) LGPL-2.1-or-later +# src/gio/ GPL-2.0-or-later +# src/gtk/exo/ LGPL-2.1-or-later AND GPL-2.0-or-later +# src/gtk/ GPL-2.0-or-later AND LGPL-2.1-or-later +# src/job/ LGPL-2.1-or-later +# src/modules/ GPL-2.0-or-later +# src/tests/ GPL-2.0-or-later +# src/tools/ GPL-2.0-or-later +# src/udisks/ GPL-2.0-or-later + +# SPDX confirmed +License: LGPL-2.1-or-later AND GPL-2.0-or-later URL: http://pcmanfm.sourceforge.net/ -%if 0%{?usegit} >= 1 -Source0: https://github.com/lxde/libfm/archive/%{githash}/%{name}-%{version}-D%{gitdate_num}git%{githash}.tar.gz -%else +%if 0%{?use_release} >= 1 Source0: http://downloads.sourceforge.net/pcmanfm/%{name}-%{mainver}%{?prever}.tar.xz Source1: https://raw.githubusercontent.com/lxde/libfm/master/autogen.sh %endif -# Fedora specific patches -# Firefox uses firefox.desktop for desktop name, drop -#Patch0: libfm-0.1.9-pref-apps.patch -# http://sourceforge.net/p/pcmanfm/feature-requests/385/ -Patch1000: http://sourceforge.net/p/pcmanfm/feature-requests/_discuss/thread/0a50a386/597e/attachment/libfm-1.2.3-moduledir-gtkspecific-v02.patch - -BuildRequires: libexif-devel -BuildRequires: gtk3-devel -%if 0%{?fedora} >= 22 -BuildRequires: gtk2-devel +%if 0%{?use_gitbare} >= 1 +Source0: libfm-%{gittardate}T%{gittartime}.tar.gz %endif +Source10: create-libfm-git-bare-tarball.sh + +# Make fm_config_load_from_key_file don't replace string key value +# when subsequent config file does not contain such key but previous key had +# (related to bug 2011471) +Patch1: libfm-1.3.2-0001-fm_config_load_from_key_file-don-t-replace-string-va.patch +# http://sourceforge.net/p/pcmanfm/feature-requests/385/ +#Patch1000: http://sourceforge.net/p/pcmanfm/feature-requests/_discuss/thread/0a50a386/597e/attachment/libfm-1.2.3-moduledir-gtkspecific-v02.patch +Patch1000: libfm-1.3.0.2-moduledir-gtkspecific-v03.patch + +BuildRequires: pkgconfig(gio-unix-2.0) >= 2.26.0 +BuildRequires: pkgconfig(glib-2.0) >= 2.27.0 +BuildRequires: pkgconfig(gtk+-2.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(dbus-glib-1) +BuildRequires: pkgconfig(libexif) %if ! 0%{?bootstrap} -BuildRequires: menu-cache-devel >= 0.3.2 +BuildRequires: pkgconfig(libmenu-cache) >= 0.3.2 %endif +BuildRequires: make +BuildRequires: gcc BuildRequires: gettext BuildRequires: intltool BuildRequires: desktop-file-utils BuildRequires: gtk-doc BuildRequires: libxslt - -BuildRequires: dbus-glib-devel - -BuildRequires: vala +BuildRequires: %{_bindir}/valac # Patch1000 needs the below anyway BuildRequires: automake BuildRequires: libtool +# Anyway use git +BuildRequires: git + %if 0%{?build_doc} < 1 Obsoletes: %{name}-devel-docs < 0.1.15 %endif -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig - %description LibFM is a GIO-based library used to develop file manager-like programs. It is @@ -89,7 +131,6 @@ This package contains the generic non-gui functions of libfm. %package gtk Summary: File manager-related GTK+ widgets of %{name} -Group: System Environment/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} Requires: gvfs @@ -104,7 +145,6 @@ This package provides useful file manager-related GTK+ 3 widgets. %package gtk2 Summary: File manager-related GTK+ widgets of %{name} -Group: System Environment/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} Requires: gvfs @@ -119,7 +159,6 @@ This package provides useful file manager-related GTK+ 2 widgets. %package gtk-utils Summary: GTK+ related utility package for %{name} -Group: User Interface/Desktops Requires: %{name}-gtk%{?isa} = %{version}-%{release} Obsoletes: lxshortcut < 0.1.3 Provides: lxshortcut = %{version}-%{release} @@ -132,7 +171,6 @@ This package contains some GTK+ related utility files for %package devel Summary: Development files for %{name} -Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} %description devel @@ -142,7 +180,6 @@ developing applications that use %{name}. %package gtk-devel-common Summary: Common Development files for %{name}-gtk -Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} BuildArch: noarch @@ -153,7 +190,6 @@ developing applications that use %{name}-gtk. %package gtk-devel Summary: Development files for %{name}-gtk -Group: Development/Libraries Requires: %{name}-gtk%{?_isa} = %{version}-%{release} Requires: %{name}-gtk-devel-common = %{version}-%{release} @@ -163,7 +199,6 @@ developing applications that use %{name}-gtk. %package gtk2-devel Summary: Development files for %{name}-gtk2 -Group: Development/Libraries Requires: %{name}-gtk2%{?_isa} = %{version}-%{release} Requires: %{name}-gtk-devel-common = %{version}-%{release} @@ -173,44 +208,120 @@ developing applications that use %{name}-gtk2. %package devel-docs Summary: Development documation for %{name} -Group: Development/Libraries %description devel-docs This package containg development documentation files for %{name}. %prep -%if 0%{?usegit} < 1 -%setup -q -n %{name}-%{version}%{?prever} +%if 0%{?use_release} >= 1 +%setup -q -n %{name}-%{main_version}%{?prever} cp -a %{SOURCE1} . #%%patch0 -p1 -b .orig -%else -%setup -q -n %{name}-%{githash} +git init %endif -%if 0%{?fedora} >= 22 -%patch1000 -p1 +%if 0%{?use_gitbare} +%setup -q -c -T -n %{name}-%{main_version}%{git_builddir} -a 0 +git clone ./%{name}.git/ +cd %{name} + +%if !%{use_gitcommit_as_rel} +git checkout -b fedora-%{version} %{version} %endif -# Patch1000 needs below anyway +# 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 + +cp -a [A-Z]* .. +%endif + +git config user.name "libfm Fedora maintainer" +git config user.email "libfm-maintainer@fedoraproject.org" + +%if 0%{?use_release} >= 1 +# Once call autogen.sh to make git status clean sh autogen.sh +git add . +git commit -m "Init tree" -q +%endif + +%if 0%{?use_gitbare} >= 1 +git checkout -b %{main_version}-fedora %{git_rev} +cat > GITHASH <= 22 - 2 \ +%if 0%{?use_gitbare} >= 1 +cd libfm %endif + +%if 0%{?use_gitbare} >= 1 +# Workaround +# Once generate files anyway +./configure +make dist +rm -f config.status +%endif + +for ver in \ + 2 \ 3 \ %{nil} do + rm -rf _BUILDDIR_gtk${ver} + mkdir _BUILDDIR_gtk${ver} + pushd _BUILDDIR_gtk${ver} + ln -sf ../configure + %configure \ + --srcdir=$(pwd)/.. \ %if 0%{?bootstrap} - --with-extra-only \ + --with-extra-only \ %endif --enable-gtk-doc \ --enable-udisks \ @@ -225,11 +336,17 @@ do make -C po -j1 GMSGFMT="msgfmt --statistics" make %{?_smp_mflags} -k - make install DESTDIR=$(pwd)/INSTDIR-gtk${ver} - test "$ver" == 2 && make clean + make install DESTDIR=$(pwd)/../INSTDIR-gtk${ver} INSTALL="install -p" + popd done %install +TOPDIR=$(pwd) + +%if 0%{?use_gitbare} >= 1 +cd libfm +%endif + # GTK3 cp -a INSTDIR-gtk3/* $RPM_BUILD_ROOT @@ -238,11 +355,14 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/pkgconfig/libfm-gtk.pc find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' %if ! 0%{?bootstrap} desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop +( +cd $TOPDIR %find_lang %{name} +) %endif -echo '%%defattr(-,root,root,-)' > base-header.files -echo '%%defattr(-,root,root,-)' > gtk-header.files +echo '%%defattr(-,root,root,-)' > $TOPDIR/base-header.files +echo '%%defattr(-,root,root,-)' > $TOPDIR/gtk-header.files for f in $RPM_BUILD_ROOT%_includedir/%name-1.0/*.h do @@ -251,24 +371,24 @@ do do if [ -f src/$dir/$bf ] then - echo %_includedir/%name-1.0/$bf >> base-header.files + echo %_includedir/%name-1.0/$bf >> $TOPDIR/base-header.files fi done for dir in gtk do if [ -f src/$dir/$bf ] then - echo %_includedir/%name-1.0/$bf >> gtk-header.files + echo %_includedir/%name-1.0/$bf >> $TOPDIR/gtk-header.files fi done done # GTK2 -%if 0%{?fedora} >= 22 +%if ! 0%{?bootstrap} pushd INSTDIR-gtk2 find . -name '*.la' -exec rm -f {} ';' -rm -f .{_libdir}/pkgconfig/libfm-gtk3.pc +rm -f .%{_libdir}/pkgconfig/libfm-gtk3.pc diff -urNp .%{_includedir}/%{name}-1.0 $RPM_BUILD_ROOT%{_includedir}/%name-1.0 diff -urNp .%{_datadir}/%{name} $RPM_BUILD_ROOT/%{_datadir}/%{name} @@ -284,12 +404,19 @@ popd /usr/lib/rpm/check-rpaths %check -find INSTDIR-gtk* -name \*.ui >> po/POTFILES.skip -make check +%if 0%{?use_gitbare} >= 1 +cd libfm +%endif -%post -/sbin/ldconfig -touch --no-create %{_datadir}/mime/packages &> /dev/null || : +for ver in \ + 2 \ + 3 \ + %{nil} +do + pushd _BUILDDIR_gtk${ver} + make check + popd +done %pre devel # Directory -> symlink @@ -297,23 +424,6 @@ if [ -d %{_includedir}/libfm ] ; then rm -rf %{_includedir}/libfm fi -%postun -/sbin/ldconfig -if [ $1 -eq 0 ] ; then -touch --no-create %{_datadir}/mime/packages &> /dev/null || : -update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : -fi - -%posttrans -update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : - -%post gtk -p /sbin/ldconfig -%postun gtk -p /sbin/ldconfig -%if 0%{?fedora} >= 22 -%post gtk2 -p /sbin/ldconfig -%postun gtk2 -p /sbin/ldconfig -%endif - %if 0%{?bootstrap} %files %else @@ -321,34 +431,34 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %endif # FIXME: Add ChangeLog if not empty %doc AUTHORS -%doc COPYING +%license COPYING %doc NEWS %doc README + %if ! 0%{?bootstrap} %dir %{_sysconfdir}/xdg/libfm/ %config(noreplace) %{_sysconfdir}/xdg/libfm/libfm.conf + %{_datadir}/%{name}/ %{_libdir}/%{name}.so.4* + %dir %{_libdir}/libfm %dir %{_libdir}/libfm/modules %{_libdir}/libfm/modules/vfs-*.so %{_datadir}/mime/packages/libfm.xml %endif + %{_libdir}/%{name}-extra.so.4* %if ! 0%{?bootstrap} %files gtk %{_libdir}/%{name}-gtk3.so.4* -%{_datadir}/libfm/ -%if 0%{?fedora} < 22 -%{_libdir}/libfm/modules/gtk-*.so -%else %{_libdir}/libfm/modules/gtk3/ -%endif %files gtk-utils %{_mandir}/man1/libfm-pref-apps.1.* %{_mandir}/man1/lxshortcut.1.* + %{_bindir}/libfm-pref-apps %{_bindir}/lxshortcut %{_datadir}/applications/libfm-pref-apps.desktop @@ -359,6 +469,7 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %doc TODO %{_includedir}/libfm %dir %{_includedir}/libfm-1.0/ + %if ! 0%{?bootstrap} %{_libdir}/%{name}.so %{_libdir}/pkgconfig/libfm.pc @@ -374,7 +485,6 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %{_libdir}/%{name}-gtk3.so %{_libdir}/pkgconfig/libfm-gtk3.pc -%if 0%{?fedora} >= 22 %files gtk2 %{_libdir}/%{name}-gtk.so.4* %{_libdir}/libfm/modules/gtk/ @@ -382,7 +492,6 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %files gtk2-devel %{_libdir}/%{name}-gtk.so %{_libdir}/pkgconfig/libfm-gtk.pc -%endif %if 0%{?build_doc} %files devel-docs @@ -393,6 +502,199 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %endif %changelog +* Wed Dec 17 2025 Mamoru TASAKA - 1.4.1-1 +- 1.4.1 + +* Thu Jul 24 2025 Fedora Release Engineering - 1.4.0^20250316git3289abf5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon May 26 2025 Mamoru TASAKA - 1.4.0^20250316git3289abf5-2 +- Add ACLOCAL_PATH for gettext 0.25 (ref: bug 2366708) + +* Sat Mar 22 2025 Mamoru TASAKA - 1.4.0^20250316git3289abf5-1 +- Update to the latest git + +* Wed Feb 19 2025 Mamoru TASAKA - 1.4.0-1 +- 1.4.0 + +* Sun Feb 16 2025 Mamoru TASAKA - 1.3.2^20250215git9ea11dca-1 +- Update to the latest git + +* Fri Feb 07 2025 Mamoru TASAKA - 1.3.2^20250114git493571d1-1 +- Update to the latest git + +* Fri Jan 17 2025 Fedora Release Engineering - 1.3.2^20250109git2d94c3c8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Tue Jan 14 2025 Mamoru TASAKA - 1.3.2^20250109git2d94c3c8-2 +- Apply upstream PR for C23 with function prototype strictness + +* Tue Jan 14 2025 Mamoru TASAKA - 1.3.2^20250109git2d94c3c8-1 +- Update to the latest git + +* Wed Dec 25 2024 Mamoru TASAKA - 1.3.2^20241221git37456d7d-1 +- Update to the latest git +- Restore libfm.so ABI (bug 2333955) + +* Thu Dec 19 2024 Mamoru TASAKA - 1.3.2^20241216gitfb651b87-1 +- Update to the latest git + +* Fri Dec 06 2024 Mamoru TASAKA - 1.3.2^20241203gitcea66071-1 +- Update to the latest git + +* Sun Nov 10 2024 Mamoru TASAKA - 1.3.2^20241107gitd9935ec1-1 +- Update to the latest git + +* Sun Aug 25 2024 Mamoru TASAKA - 1.3.2^20240823git4d2f7b41-1 +- Update to the latest git + +* Tue Aug 13 2024 Mamoru TASAKA - 1.3.2^20240812gitfbcd1833-1 +- Update to the latest git + +* Thu Jul 18 2024 Mamoru TASAKA - 1.3.2^20240714gitee33947e-1 +- Update to the latest git (20240714gitee33947e) + +* Tue Jun 04 2024 Mamoru TASAKA - 1.3.2^20230916git5346a539-3 +- Ignore po/ directory make check error with autoconf 2.72 + +* Tue May 14 2024 Mamoru TASAKA - 1.3.2^20230916git5346a539-2 +- Restore timestamps for git ls files + +* Tue Feb 27 2024 Mamoru TASAKA - 1.3.2^20230916git5346a539-1 +- Update to the latest git (20230916git5346a539) + +* Fri Feb 23 2024 Mamoru TASAKA - 1.3.2-8 +- Handle gcc14 -Werror=incompatible-pointer-types +- Make vala regenerate C source related to -Werror=incompatible-pointer-types + workaround for vala source + +* Thu Jan 25 2024 Fedora Release Engineering - 1.3.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 1.3.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Mamoru TASAKA - 1.3.2-5 +- Change -Wincompatible-pointer-types from error to warning + +* Mon Dec 11 2023 Mamoru TASAKA - 1.3.2-4 +- SPDX migration + +* Thu Jul 20 2023 Fedora Release Engineering - 1.3.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 1.3.2-2.3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 1.3.2-2.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 1.3.2-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Oct 28 2021 Mamoru TASAKA - 1.3.2-2 +- Make fm_config_load_from_key_file don't replace string key value + when subsequent config file does not contain such key but previous key had + (related to bug 2011471) + +* Thu Jul 22 2021 Fedora Release Engineering - 1.3.2-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sun Feb 7 2021 Mamoru TASAKA - 1.3.2-1 +- 1.3.2 release + +* Thu Feb 4 2021 Mamoru TASAKA - 1.3.1-4.D20210202git54cd5fc +- Update to the latest git + +* Mon Feb 1 2021 Mamoru TASAKA - 1.3.1-3.D20210129git1d79967 +- Update to the latest git + +* Tue Jan 26 2021 Fedora Release Engineering - 1.3.1-2.D20200401git8914a52.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 1.3.1-2.D20200401git8914a52.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Apr 8 2020 Mamoru TASAKA - 1.3.1-2.D20200401git8914a52 +- Update to the latest git + +* Wed Jan 29 2020 Fedora Release Engineering - 1.3.1-1.3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 1.3.1-1.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 1.3.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Dec 19 2018 Mamoru TASAKA - 1.3.1-1 +- 1.3.1 release + +* Fri Jul 13 2018 Fedora Release Engineering - 1.3.0.2-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Sun Apr 29 2018 Mamoru TASAKA - 1.3.0.2-1 +- 1.3.0.2 release + +* Wed Feb 07 2018 Fedora Release Engineering - 1.2.5-5.gitD20171230.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 2 2018 Mamoru TASAKA - 1.2.5-5.gitD20171230 +- Better cherry-pick description +- Backport one more fixes + +* Sat Dec 30 2017 Mamoru TASAKA - 1.2.5-4.gitD20171230 +- Backport various fixes from master to 1.2.5 +- Use bare repository directly + +* Thu Aug 03 2017 Fedora Release Engineering - 1.2.5-3.100.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.2.5-3.100.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Apr 7 2017 Mamoru TASAKA - 1.2.5-3 +- Fix crash when pasting large string when completion matches (bug 1437443) +- Build error fix with vala 0.36 + +* Mon Feb 6 2017 Mamoru TASAKA - 1.2.5-2 +- spec file fix for bootstrap mode on fedora (bug 1419338) + +* Sun Dec 11 2016 Mamoru TASAKA - 1.2.5-1 +- 1.2.5 released. + +* Sun Dec 11 2016 Mamoru TASAKA - 1.2.4-13.D20161209gitab583d7800 +- Update to the latest master (with 2 patch from 1.2) + +* Wed Dec 7 2016 Mamoru TASAKA - 1.2.4-12.D20161206gita24389f804 +- Update to the latest master (with 2 patch from 1.2) + +* Mon Dec 5 2016 Mamoru TASAKA - 1.2.4-11.D20161204git275559f196 +- Update to the lastest master branch, with cherry-picking patches from 1.2 branch + to revert some enhancement change on master + +* Thu Nov 10 2016 Mamoru TASAKA - 1.2.4-10.D20161105gitc2989af015 +- Remove duplicate files + +* Tue Nov 8 2016 Mamoru TASAKA - 1.2.4-9.D20161105gitc2989af015 +- Update to the latest git 1.2 branch + +* Sat Oct 22 2016 Mamoru TASAKA - 1.2.4-8.D20161017git82b3a1a201 +- Update to the latest git +- Switch to 1.2 branch + +* Sun Aug 28 2016 Mamoru TASAKA - 1.2.4-7.D20160627git2a537414de +- Pull github:libfm#11 fix + +* Thu Aug 18 2016 Mamoru TASAKA - 1.2.4-6.D20160627git2a537414de +- Properly initialize GError with NULL (bug 1357213) + +* Thu Jul 14 2016 Mamoru TASAKA - 1.2.4-5.D20160627git2a537414de +- Update to the latest git to pull in upstream bug fixes + +* Tue Jun 21 2016 Mamoru TASAKA - 1.2.4-4.D20160618gitb22c0995e7 +- Update to the latest git to pull in upstream bug fixes + * Wed Jun 15 2016 Than Ngo - 1.2.4-3 - disable bootstrap in epel7 diff --git a/sources b/sources index 17525dd..6e2ccab 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -74997d75e7e87dc73398746fd373bf52 libfm-1.2.4.tar.xz +SHA512 (libfm-20251217T2335.tar.gz) = 22310c122892588d23196b21e4e8e251fb83a49a6e8d0bd86abdc93e20d427d6f81f738f3fb8500c0aaf7d6ff7be5752329435b80ce36f5aa5c42353ab0e1864