diff --git a/.gitignore b/.gitignore index 4deb7b3..44e4e80 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,2 @@ -lxappearance-0.4.0.tar.gz -/lxappearance-20100903gitf0945814.tar.bz2 -/lxappearance-0.5.0.tar.gz -/lxappearance-0.5.1.tar.gz -/lxappearance-0.5.2.tar.gz -/lxappearance-0.6.1.tar.xz -/lxappearance-0.6.2.tar.xz -/lxappearance-0.6.3.tar.xz -/lxappearance-20210321T2042.tar.gz +/lxappearance-*.tar.xz +/lxappearance-*.tar.gz diff --git a/create-lxappearance-git-bare-tarball.sh b/create-lxappearance-git-bare-tarball.sh new file mode 100644 index 0000000..1309606 --- /dev/null +++ b/create-lxappearance-git-bare-tarball.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +set -x +set -e + +REPONAME=lxappearance +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 + +pushd ${REPONAME}.git/ +git log --format=fuller | head -n 12 +popd + +tar czf ${TARNAME} ${REPONAME}.git/ + +cp -p ${TARNAME} $PWDDIR +popd +rm -rf $TMPDIR diff --git a/lxappearance-0.6.3-0001-load_icon_themes_from_dir-never-reuse-GKeyFile-objec.patch b/lxappearance-0.6.3-0001-load_icon_themes_from_dir-never-reuse-GKeyFile-objec.patch deleted file mode 100644 index cd8b2b1..0000000 --- a/lxappearance-0.6.3-0001-load_icon_themes_from_dir-never-reuse-GKeyFile-objec.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 2aa35e4c8a9d9c632e411df83d43ec27f4ddf718 Mon Sep 17 00:00:00 2001 -From: Mamoru TASAKA -Date: Sun, 21 Mar 2021 21:52:10 +0900 -Subject: [PATCH 1/2] load_icon_themes_from_dir: never reuse GKeyFile object - -As written on: -https://developer.gnome.org/glib/stable/glib-Key-value-file-parser.html#g-key-file-load-from-file -an empty GKeyFile object must be passed to g_key_file_load_from_file . ---- - src/icon-theme.c | 8 ++++---- - src/icon-theme.h | 2 +- - src/utils.c | 4 +--- - 3 files changed, 6 insertions(+), 8 deletions(-) - -diff --git a/src/icon-theme.c b/src/icon-theme.c -index 7fba616..ea1db83 100644 ---- a/src/icon-theme.c -+++ b/src/icon-theme.c -@@ -46,7 +46,7 @@ static void icon_theme_free(IconTheme* theme) - g_slice_free(IconTheme, theme); - } - --void load_icon_themes_from_dir(const char* base_dir, const char* theme_dir, GKeyFile* kf) -+void load_icon_themes_from_dir(const char* base_dir, const char* theme_dir) - { - /* NOTE: - * 1. theoratically, base_dir is identical to theme_dir -@@ -75,6 +75,7 @@ void load_icon_themes_from_dir(const char* base_dir, const char* theme_dir, GKey - IconTheme* theme = g_slice_new0(IconTheme); - char* index_theme; - char* cursor_subdir; -+ GKeyFile* kf = g_key_file_new(); - - theme->name = g_strdup(name); - index_theme = g_build_filename(theme_dir, name, "index.theme", NULL); -@@ -97,6 +98,7 @@ void load_icon_themes_from_dir(const char* base_dir, const char* theme_dir, GKey - else - theme->disp_name = theme->name; - g_free(index_theme); -+ g_key_file_free(kf); - - cursor_subdir = g_build_filename(theme_dir, name, "cursors", NULL); - /* it contains a cursor theme */ -@@ -119,13 +121,11 @@ static void load_icon_themes() - { - int n, i; - gtk_icon_theme_get_search_path(gtk_icon_theme_get_default(), &icon_theme_dirs, &n); -- GKeyFile* kf = g_key_file_new(); - for(i = 0; i < n; ++i) - { -- load_icon_themes_from_dir(icon_theme_dirs[i], icon_theme_dirs[i], kf); -+ load_icon_themes_from_dir(icon_theme_dirs[i], icon_theme_dirs[i]); - /* g_debug("icon_theme_dirs[%d] = %s", i, icon_theme_dirs[i]); */ - } -- g_key_file_free(kf); - } - - -diff --git a/src/icon-theme.h b/src/icon-theme.h -index 7ba2ac1..45a104d 100644 ---- a/src/icon-theme.h -+++ b/src/icon-theme.h -@@ -40,7 +40,7 @@ typedef struct - }IconTheme; - - void icon_theme_init(GtkBuilder* b); --void load_icon_themes_from_dir(const char* base_dir, const char* theme_dir, GKeyFile* kf); -+void load_icon_themes_from_dir(const char* base_dir, const char* theme_dir); - - gint icon_theme_cmp_name(IconTheme* t, const char* name); - gint icon_theme_cmp_disp_name(IconTheme* t1, IconTheme* t2); -diff --git a/src/utils.c b/src/utils.c -index 09d356d..4f3af10 100644 ---- a/src/utils.c -+++ b/src/utils.c -@@ -159,11 +159,9 @@ _failed: - { - /* move files in tmp_dir to user_icons_dir */ - GDir* dir; -- GKeyFile* kf = g_key_file_new(); - - /* convert the themes in the dir to IconTheme structs and add them to app.icon_themes list */ -- load_icon_themes_from_dir(user_icons_dir, tmp_dir, kf); -- g_key_file_free(kf); -+ load_icon_themes_from_dir(user_icons_dir, tmp_dir); - - /* now really move this themes to $XDG_DATA_HOME/icons dir and also update the GUI */ - dir = g_dir_open(tmp_dir, 0, NULL); --- -2.30.2 - diff --git a/lxappearance-0.6.3-0002-on_remove_theme_clicked-initialize-both-variable-cor.patch b/lxappearance-0.6.3-0002-on_remove_theme_clicked-initialize-both-variable-cor.patch deleted file mode 100644 index 7c35777..0000000 --- a/lxappearance-0.6.3-0002-on_remove_theme_clicked-initialize-both-variable-cor.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 3f50631f17f96ef3695921b892eb2f7b82a2b43d Mon Sep 17 00:00:00 2001 -From: Mamoru TASAKA -Date: Sun, 21 Mar 2021 22:08:16 +0900 -Subject: [PATCH 2/2] on_remove_theme_clicked: initialize both variable - correctly - -In on_remove_theme_clicked: both variable is used uninitialized, which causes lxappearance segfault -when removing theme. Initialize this correctly. ---- - src/icon-theme.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/icon-theme.c b/src/icon-theme.c -index ea1db83..6952cd8 100644 ---- a/src/icon-theme.c -+++ b/src/icon-theme.c -@@ -171,7 +171,6 @@ static void on_remove_theme_clicked(GtkButton* btn, gpointer user_data) - if(gtk_tree_selection_get_selected(sel, &model, &it)) - { - IconTheme* theme; -- gboolean both = theme->has_icon && theme->has_cursor; - - if(gtk_tree_model_iter_n_children(model, NULL) < 2) - { -@@ -183,6 +182,7 @@ static void on_remove_theme_clicked(GtkButton* btn, gpointer user_data) - gtk_tree_model_get(model, &it, 1, &theme, -1); - if(remove_icon_theme(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(btn))), theme)) - { -+ gboolean both = theme->has_icon && theme->has_cursor; - gtk_list_store_remove(GTK_LIST_STORE(model), &it); - - /* select the first theme */ --- -2.30.2 - diff --git a/lxappearance.spec b/lxappearance.spec index 19574f3..bc03c79 100644 --- a/lxappearance.spec +++ b/lxappearance.spec @@ -1,56 +1,57 @@ # Review: https://bugzilla.redhat.com/show_bug.cgi?id=442269 -%global use_release 0 -%global use_git 0 -%global use_gitbare 1 +%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 +%global use_release 1 %endif %endif +%global git_version %{nil} +%global git_ver_rpm %{nil} +%global git_builddir %{nil} + %if 0%{?use_gitbare} -%global gittardate 20210321 -%global gittartime 2042 -%global gitbaredate 20200807 -%global git_rev d132fdd829b1ed080f4c82a53b71d7e88dda8cc2 -%global git_short %(echo %{git_rev} | cut -c-8) -%global git_version D%{gitbaredate}git%{git_short} +%global gittardate 20250325 +%global gittartime 1621 +%define use_gitcommit_as_rel 0 + +%global gitbaredate 20250324 +%global git_rev 96e09b05b1897bdca72d8fdfeb1bd8ec68942c42 +%global git_short %(echo %{git_rev} | cut -c-8) +%global git_version %{gitbaredate}git%{git_short} %endif -%global mainrel 13 - -%if 0%{?use_release} >= 1 -%global fedorarel %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}} -%endif -%if 0%{?use_gitbare} >= 1 -%global fedorarel %{mainrel}.%{git_version} -%endif -Name: lxappearance -Version: 0.6.3 -Release: %{fedorarel}%{?dist}.2 -Summary: Feature-rich GTK+ theme switcher for LXDE +%if 0%{?use_gitcommit_as_rel} +%global git_ver_rpm ^%{git_version} +%global git_builddir -%{git_version} +%endif -License: GPLv2+ -URL: http://lxde.org/ -#VCS: git:git://lxde.git.sourceforge.net/gitroot/lxde/lxappearance + +%global main_version 0.6.4 + +Name: lxappearance +Version: %{main_version}%{git_ver_rpm} +Release: 3%{?dist} +Summary: Feature-rich GTK+ theme switcher for LXDE + +# SPDX confirmed +License: GPL-2.0-or-later +URL: http://lxde.org/ %if 0%{?use_gitbare} -Source0: %{name}-%{gittardate}T%{gittartime}.tar.gz +Source0: %{name}-%{gittardate}T%{gittartime}.tar.gz %endif %if 0%{?use_git} -Source0: %{name}-%{version}-%{?git_version}.tar.bz2 +Source0: %{name}-%{main_version}-%{?git_version}.tar.bz2 %endif %if 0%{?use_release} -Source0: http://downloads.sourceforge.net/sourceforge/lxde/%{name}-%{version}.tar.xz +Source0: http://downloads.sourceforge.net/sourceforge/lxde/%{name}-%{main_version}.tar.xz %endif -# https://github.com/lxde/lxappearance/pull/3 -Patch1: lxappearance-0.6.3-0001-load_icon_themes_from_dir-never-reuse-GKeyFile-objec.patch -# https://sourceforge.net/p/lxde/bugs/866/ -# https://github.com/lxde/lxappearance/pull/4 -Patch2: lxappearance-0.6.3-0002-on_remove_theme_clicked-initialize-both-variable-cor.patch BuildRequires: make BuildRequires: gcc @@ -63,11 +64,11 @@ BuildRequires: gettext BuildRequires: intltool BuildRequires: docbook-utils BuildRequires: docbook-style-xsl -BuildRequires: %{_bindir}/xsltproc +BuildRequires: /usr/bin/xsltproc BuildRequires: automake BuildRequires: autoconf -BuildRequires: %{_bindir}/git +BuildRequires: /usr/bin/git Requires: lxsession >= 0.4.0 @@ -91,18 +92,30 @@ for LXAppearance. %prep %if 0%{?use_release} -%setup -q +%setup -q -n %{name}-%{main_version}%{git_builddir} git init %endif %if 0%{?use_gitbare} -%setup -q -c -T -a 0 +%setup -q -c -T -n %{name}-%{main_version}%{git_builddir} -a 0 git clone ./%{name}.git/ cd %{name} #git checkout -b %{version}-fedora %{version} -git checkout -b %{version}-fedora %{git_rev} +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 + + cp -a [A-Z]* .. cp -a data/ .. @@ -111,23 +124,22 @@ EOF cat GITHASH | while read line do - commit=$(echo "$line" | sed -e 's|[ \t].*||') - git cherry-pick $commit + commit=$(echo "$line" | sed -e 's|[ \t].*||') + git cherry-pick $commit done %endif git config user.name "lxpanel Fedora maintainer" -git config user.email "lxpanel-owner@fedoraproject.org" +git config user.email "lxpanel-maintainers@fedoraproject.org" %if 0%{?use_release} git add . git commit -m "base" -q %endif -cat %PATCH1 | git am -cat %PATCH2 | git am - +# Add ACLOCAL_PATH for gettext 0.25 (ref: bug 2366708) +export ACLOCAL_PATH=%{_datadir}/gettext/m4/ sh autogen.sh @@ -139,6 +151,9 @@ pushd %{name} %configure \ --disable-silent-rules \ --enable-man \ +%if 0 + --enable-gtk3 \ +%endif %{nil} %make_build @@ -148,34 +163,85 @@ pushd %{name} pushd %{name} %endif -rm -rf %{buildroot} %make_install -desktop-file-install \ - --delete-original \ - --dir=%{buildroot}%{_datadir}/applications \ - %{buildroot}%{_datadir}/applications/%{name}.desktop - %if 0%{?use_gitbare} popd %endif +# Own plugin directory +mkdir -p %{buildroot}%{_libdir}/%{name}/plugins/ + %find_lang %{name} -%files -f %{name}.lang -%doc AUTHORS -%license COPYING +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop + +%files -f %{name}.lang +%doc AUTHORS +%license COPYING + %{_bindir}/%{name} %{_datadir}/applications/*%{name}.desktop -%{_datadir}/%{name}/ +%dir %{_datadir}/%{name}/ +%{_datadir}/%{name}/ui/ +%dir %{_libdir}/%{name}/plugins/ %{_mandir}/man1/%{name}*.1.* -%files devel +%files devel %{_includedir}/%{name}/ %{_libdir}/pkgconfig/%{name}.pc %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 0.6.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon May 26 2025 Mamoru TASAKA - 0.6.4-2 +- Add ACLOCAL_PATH for gettext 0.25 (ref: bug 2366708) + +* Tue Mar 25 2025 Mamoru TASAKA - 0.6.4-1 +- 0.6.4 + +* Tue Feb 11 2025 Mamoru TASAKA - 0.6.3^20241025gitb51af4c5-1 +- Update to the latest git + +* Fri Jan 17 2025 Fedora Release Engineering - 0.6.3^20240817git95d5b02e-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Aug 30 2024 Mamoru TASAKA - 0.6.3^20240817git95d5b02e-2 +- Own plugin directory + +* Sun Aug 25 2024 Mamoru TASAKA - 0.6.3^20240817git95d5b02e-1 +- Update to the latest git + +* Thu Jul 18 2024 Fedora Release Engineering - 0.6.3^20230917git655fd083-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Jan 25 2024 Fedora Release Engineering - 0.6.3^20230917git655fd083-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 0.6.3^20230917git655fd083-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Dec 31 2023 Mamoru TASAKA - 0.6.3^20230917git655fd083-1 +- Update to the latest git + +* Fri Sep 15 2023 Mamoru TASAKA - 0.6.3^20230913git5423cc46-1 +- Update to the latest git + +* Mon Aug 14 2023 Mamoru TASAKA - 0.6.3^20230801git8e634d03-1 +- Update to the latest git + +* Thu Jul 20 2023 Fedora Release Engineering - 0.6.3-14.D20200807gitd132fdd8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 0.6.3-13.D20200807gitd132fdd8.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 0.6.3-13.D20200807gitd132fdd8.3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Thu Jan 20 2022 Fedora Release Engineering - 0.6.3-13.D20200807gitd132fdd8.2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild diff --git a/sources b/sources index 1063dd7..9eb30d2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (lxappearance-20210321T2042.tar.gz) = 6e4ffab43923fa803c0be130c5690c567a376ee20342371f22a3a408ba9ee678ea851d6598f296d9ad5552d922bb4ca1492ce04ff6e584267d38cbf6ef4595d9 +SHA512 (lxappearance-20250325T1621.tar.gz) = ab48ed776beff4ce6d5a5419306669dab5af91c8bdac794454535b5eb2993ec66ab110b5356c69c2be95ca3d1403d350466b2bbe97b87731d0fa61b0822fa294