Compare commits
No commits in common. "rawhide" and "f20" have entirely different histories.
9 changed files with 563 additions and 182 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1 +1 @@
|
||||||
/4pane-*.tar.gz
|
/4pane-3.0.tar.gz
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,167 @@
|
||||||
|
From 5b4ce2be04f00e001bad6c4d6c59ff3791b1125c Mon Sep 17 00:00:00 2001
|
||||||
|
From: dghart <dghart@users.sourceforge.net>
|
||||||
|
Date: Wed, 10 Dec 2014 20:42:12 +0000
|
||||||
|
Subject: [PATCH] When getting a pointer to a menubar menu, don't search by
|
||||||
|
title
|
||||||
|
|
||||||
|
Using wxMenuBar::FindMenu to find the index of a menu isn't as mnemonic-safe as it should be. There are two problems:
|
||||||
|
1) If the search string isn't localised, it will fail if there's a translation.
|
||||||
|
2) Even if it is, there's a potential problem with mnemonic location, as translators are allowed to use a non-default letter.
|
||||||
|
|
||||||
|
This _shouldn't_ matter as wx removes the mnemonic before matching. However it seems that in Japanese, the mnemonic is appended
|
||||||
|
(e.g. Bookmarks(&B))
|
||||||
|
and unsurprisingly wxStripMenuCodes() can't cope with this. So store the position while loading the menubar; which isn't elegant, but it is safe.
|
||||||
|
---
|
||||||
|
Accelerators.cpp | 4 ++++
|
||||||
|
Bookmarks.cpp | 13 +++++++++----
|
||||||
|
Bookmarks.h | 5 ++++-
|
||||||
|
Tools.cpp | 14 ++++++++------
|
||||||
|
Tools.h | 3 +++
|
||||||
|
5 files changed, 28 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Accelerators.cpp b/Accelerators.cpp
|
||||||
|
index eb75627..d470c91 100644
|
||||||
|
--- a/Accelerators.cpp
|
||||||
|
+++ b/Accelerators.cpp
|
||||||
|
@@ -16,6 +16,7 @@
|
||||||
|
|
||||||
|
#include "Externs.h"
|
||||||
|
#include "Configure.h"
|
||||||
|
+#include "Bookmarks.h"
|
||||||
|
#include "Accelerators.h"
|
||||||
|
|
||||||
|
|
||||||
|
@@ -490,6 +491,9 @@ subitemslistarray[0] = columnitems; subitemslistcount[0] = sizeof(columnitems)/p
|
||||||
|
|
||||||
|
// Make arrays for menus & for submenus
|
||||||
|
const wxString menutitles[] = { _("&File"), _("&Edit"), _("&View"), _("&Tabs"), _("&Bookmarks"), _("&Archive"), _("&Mount"), _("Too&ls"), _("&Options"), _("&Help") };
|
||||||
|
+Bookmarks::SetMenuIndex(4); // *** remember to change these if their position changes! ***
|
||||||
|
+LaunchMiscTools::SetMenuIndex(7);
|
||||||
|
+
|
||||||
|
const wxString submenutitles[] = { _("&Columns to Display"), _("&Load a Tab Template") };
|
||||||
|
int submenID[2]; submenID[0] = SHCUT_FINISH + 1; submenID[1] = LoadTabTemplateMenu; // "Columns to Display" hasn't a set id, so use SHCUT_FINISH+1
|
||||||
|
wxMenu* menuarray[ menuno ]; wxMenu* submenuarray[ submenuno ];
|
||||||
|
diff --git a/Bookmarks.cpp b/Bookmarks.cpp
|
||||||
|
index e0e2e7d..65ae21c 100644
|
||||||
|
--- a/Bookmarks.cpp
|
||||||
|
+++ b/Bookmarks.cpp
|
||||||
|
@@ -318,6 +318,8 @@ END_EVENT_TABLE()
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
+int Bookmarks::m_menuindex = -1;
|
||||||
|
+
|
||||||
|
Bookmarks::Bookmarks()
|
||||||
|
{
|
||||||
|
LoadBookmarks();
|
||||||
|
@@ -336,8 +338,9 @@ MenuStruct.ClearData(); // Make sure the arrays are em
|
||||||
|
bookmarkID = ID_FIRST_BOOKMARK; // Similarly reset bookmarkID
|
||||||
|
MenuStruct.ID = GetNextID(); // & use it indirectly to id MenuStruct
|
||||||
|
|
||||||
|
-wxMenu* menu = MenuBar->GetMenu(MenuBar->FindMenu(_("Bookmarks"))); // Find the menu for the group
|
||||||
|
-if (menu==NULL) { wxLogError(_("Couldn't find menu!?")); return; }
|
||||||
|
+wxCHECK_RET(m_menuindex > wxNOT_FOUND, wxT("Bookmarks menu index not set")); // Should have been set when the bar was loaded
|
||||||
|
+wxMenu* menu = MenuBar->GetMenu(m_menuindex); // Find the menu for the group
|
||||||
|
+if (!menu) { wxLogError(_("Couldn't find menu!?")); return; }
|
||||||
|
|
||||||
|
MenuStruct.pathname = wxT("/Bookmarks");
|
||||||
|
MenuStruct.FullLabel.Empty(); // Needed for re-entry during Save/Load
|
||||||
|
@@ -435,8 +438,10 @@ config->Flush();
|
||||||
|
|
||||||
|
wxMenuBar* MenuBar = MyFrame::mainframe->GetMenuBar(); // We now have to destroy the menu structure, so it can be born again
|
||||||
|
if (MenuBar==NULL) { wxLogError(_("Couldn't load Menubar!?")); return; }
|
||||||
|
-
|
||||||
|
-wxMenu* mainmenu = MenuBar->GetMenu(MenuBar->FindMenu(_("Bookmarks"))); // Find the menu for the group
|
||||||
|
+
|
||||||
|
+wxCHECK_RET(m_menuindex > wxNOT_FOUND, wxT("Bookmarks menu index not set")); // Should have been set when the bar was loaded
|
||||||
|
+wxMenu* mainmenu = MenuBar->GetMenu(m_menuindex); // Find the menu for the group
|
||||||
|
+if (!mainmenu) { wxLogError(_("Couldn't find menu!?")); return; }
|
||||||
|
|
||||||
|
for (size_t count=mainmenu->GetMenuItemCount(); count > 3 ; --count) // Skip the 1st 3 items, they're Add, Manage & a Separator
|
||||||
|
mainmenu->Destroy(mainmenu->GetMenuItems().Item(count-1)->GetData()); // Destroy all the others, including submenus
|
||||||
|
diff --git a/Bookmarks.h b/Bookmarks.h
|
||||||
|
index b476a4d..a52109c 100644
|
||||||
|
--- a/Bookmarks.h
|
||||||
|
+++ b/Bookmarks.h
|
||||||
|
@@ -173,6 +173,8 @@ bool Cut(wxTreeItemId item);
|
||||||
|
bool Paste(wxTreeItemId item, bool NoDupCheck=false, bool duplicating=false);
|
||||||
|
bool Copy(wxTreeItemId item);
|
||||||
|
|
||||||
|
+static void SetMenuIndex(int index) { m_menuindex = index; }
|
||||||
|
+
|
||||||
|
wxDialog* adddlg; // These 2 ptrs are used to access their dialogs from other methods
|
||||||
|
MyBookmarkDialog* mydlg;
|
||||||
|
BMClipboard bmclip; // Stores the TreeItemData & structs for pasting
|
||||||
|
@@ -182,7 +184,8 @@ wxConfigBase* config;
|
||||||
|
MyBmTree* tree; // The treectrl used in ManageBookmarks
|
||||||
|
bool m_altered; // Do we have anything to save?
|
||||||
|
|
||||||
|
-unsigned int bookmarkID; // Actually it ID's folders & separators too
|
||||||
|
+static int m_menuindex; // Passed to wxMenuBar::GetMenu so we can ID the menu without using its label
|
||||||
|
+unsigned int bookmarkID; // Actually it ID.s folders & separators too
|
||||||
|
unsigned int GetNextID(){ if (bookmarkID == ID__LAST_BOOKMARK) bookmarkID=ID_FIRST_BOOKMARK; // Recycle
|
||||||
|
return bookmarkID++; } // Return next vacant bookmarkID
|
||||||
|
|
||||||
|
diff --git a/Tools.cpp b/Tools.cpp
|
||||||
|
index 60b5879..f5ec1fe 100644
|
||||||
|
--- a/Tools.cpp
|
||||||
|
+++ b/Tools.cpp
|
||||||
|
@@ -2678,6 +2678,8 @@ BriefLogStatus bls(msg + msgA + msgB);
|
||||||
|
}
|
||||||
|
//-----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
+int LaunchMiscTools::m_menuindex = -1;
|
||||||
|
+
|
||||||
|
void LaunchMiscTools::ClearData()
|
||||||
|
{
|
||||||
|
for (int n = (int)ToolArray.GetCount(); n > 0; --n) { UserDefinedTool* item = ToolArray.Item(n-1); delete item; ToolArray.RemoveAt(n-1); }
|
||||||
|
@@ -2691,9 +2693,9 @@ LoadArrays();
|
||||||
|
if (!FolderArray.GetCount()) return; // No data, not event the "Run a Program" menu
|
||||||
|
|
||||||
|
if (tools == NULL) // If so, we're loading the menubar menu, so find it
|
||||||
|
- { int id = MyFrame::mainframe->GetMenuBar()->FindMenu(_("Too&ls")); // Find the Tools menu id
|
||||||
|
- if (id == wxNOT_FOUND) return;
|
||||||
|
- tools = MyFrame::mainframe->GetMenuBar()->GetMenu(id); // Get ptr to the menu itself
|
||||||
|
+ { wxCHECK_RET(m_menuindex > wxNOT_FOUND, wxT("Tools menu index not set")); // Should have been set when the bar was loaded
|
||||||
|
+ tools = MyFrame::mainframe->GetMenuBar()->GetMenu(m_menuindex);
|
||||||
|
+ wxCHECK_RET(tools, wxT("Couldn't find the Tools menu"));
|
||||||
|
static bool alreadyloaded=false; if (!alreadyloaded) { tools->AppendSeparator(); alreadyloaded=true; } // We don't want multiple separators due to reloads
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2777,9 +2779,9 @@ config->DeleteGroup(wxT("/Tools/Launch")); // Delete current info (oth
|
||||||
|
Save(wxT("/Tools/Launch"), config); // Recursively save
|
||||||
|
config->Flush();
|
||||||
|
|
||||||
|
-int id = MyFrame::mainframe->GetMenuBar()->FindMenu(_("Tools")); // Find the id of the Tools menu proper
|
||||||
|
-if (id == wxNOT_FOUND) return;
|
||||||
|
-wxMenu* tools = MyFrame::mainframe->GetMenuBar()->GetMenu(id); // & hence the menu itself
|
||||||
|
+wxCHECK_RET(m_menuindex > wxNOT_FOUND, wxT("Tools menu index not set")); // Should have been set when the bar was loaded
|
||||||
|
+wxMenu* tools = MyFrame::mainframe->GetMenuBar()->GetMenu(m_menuindex);
|
||||||
|
+wxCHECK_RET(tools, wxT("Couldn't find the Tools menu"));
|
||||||
|
|
||||||
|
int sm = tools->FindItem(FolderArray[0]->Label); // Find the id menu of the relevant submenu in the Tools menu
|
||||||
|
if (sm == wxNOT_FOUND) return;
|
||||||
|
diff --git a/Tools.h b/Tools.h
|
||||||
|
index d6a7f58..6554a82 100644
|
||||||
|
--- a/Tools.h
|
||||||
|
+++ b/Tools.h
|
||||||
|
@@ -494,6 +494,8 @@ ArrayOfUserDefinedTools* GetToolarray(){ return &ToolArray; }
|
||||||
|
ArrayOfToolFolders* GetFolderArray(){ return &FolderArray; }
|
||||||
|
size_t GetLastCommand(){ return LastCommandNo; }
|
||||||
|
|
||||||
|
+static void SetMenuIndex(int index) { m_menuindex = index; }
|
||||||
|
+
|
||||||
|
protected:
|
||||||
|
void Load(wxString name); // Load (sub)menu 'name' from config
|
||||||
|
void ClearData();
|
||||||
|
@@ -505,6 +507,7 @@ bool SetCorrectPaneptrs(const wxChar* &pc, MyGenericDirCtrl* &first, MyGenericDi
|
||||||
|
ArrayOfUserDefinedTools ToolArray;
|
||||||
|
ArrayOfToolFolders FolderArray;
|
||||||
|
int EventId; // Holds the first spare ID, from SHCUT_TOOLS_LAUNCH to SHCUT_TOOLS_LAUNCH_LAST-1
|
||||||
|
+static int m_menuindex; // Passed to wxMenuBar::GetMenu so we can ID the menu without using its label
|
||||||
|
size_t EntriesIndex;
|
||||||
|
size_t FolderIndex;
|
||||||
|
size_t LastCommandNo; // Holds the last tool used, so it can be repeated
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
||||||
65
4Pane-HEAD-0002-Add-the-man-page-to-git.patch
Normal file
65
4Pane-HEAD-0002-Add-the-man-page-to-git.patch
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
From 12dcd5315f7c5b8c9487b81ad73a577959633ceb Mon Sep 17 00:00:00 2001
|
||||||
|
From: dghart <dghart@users.sourceforge.net>
|
||||||
|
Date: Fri, 12 Dec 2014 16:43:28 +0000
|
||||||
|
Subject: [PATCH 2/4] Add the man page to git
|
||||||
|
|
||||||
|
See https://sourceforge.net/p/fourpane/feature-requests/9/
|
||||||
|
---
|
||||||
|
4Pane.1 | 45 +++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
1 file changed, 45 insertions(+)
|
||||||
|
create mode 100755 4Pane.1
|
||||||
|
|
||||||
|
diff --git a/4Pane.1 b/4Pane.1
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..f7a7644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/4Pane.1
|
||||||
|
@@ -0,0 +1,45 @@
|
||||||
|
+.\" Hey, EMACS: -*- nroff -*-
|
||||||
|
+.\" First parameter, NAME, should be all caps
|
||||||
|
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
|
+.\" other parameters are allowed: see man(7), man(1)
|
||||||
|
+.TH 4PANE 1 "October 27, 2007"
|
||||||
|
+.\" Please adjust this date whenever revising the manpage.
|
||||||
|
+.\"
|
||||||
|
+.\" Some roff macros, for reference:
|
||||||
|
+.\" .nh disable hyphenation
|
||||||
|
+.\" .hy enable hyphenation
|
||||||
|
+.\" .ad l left justify
|
||||||
|
+.\" .ad b justify to both left and right margins
|
||||||
|
+.\" .nf disable filling
|
||||||
|
+.\" .fi enable filling
|
||||||
|
+.\" .br insert line break
|
||||||
|
+.\" .sp <n> insert n+1 empty lines
|
||||||
|
+.\" for manpage-specific macros, see man(7)
|
||||||
|
+.SH NAME
|
||||||
|
+4Pane - a detailed-view quad-pane file manager for GTK+
|
||||||
|
+.SH SYNOPSIS
|
||||||
|
+.B 4Pane
|
||||||
|
+[-d <str>] [-c <str>] [-h] [Display from this filepath (optional)...]
|
||||||
|
+.br
|
||||||
|
+
|
||||||
|
+.SH DESCRIPTION
|
||||||
|
+This manual page documents only 4Pane\'s rarely-used invocation options (generally you'll just type '4Pane').
|
||||||
|
+.br
|
||||||
|
+A detailed manual is available from within 4Pane, either from the help menu or by pressing F1; and also online at http://4pane.co.uk
|
||||||
|
+.PP
|
||||||
|
+.SH OPTIONS
|
||||||
|
+.TP
|
||||||
|
+.B \-d, \-\-home\-dir=<str>
|
||||||
|
+Use <str> as the home directory (optional)
|
||||||
|
+.TP
|
||||||
|
+.B \-c, \-\-config\-fpath=<str>
|
||||||
|
+Use this filepath as 4Pane's configuration file (optional. If the filepath doesn't exist, it will be created)
|
||||||
|
+.TP
|
||||||
|
+.B \-h, \-\-help
|
||||||
|
+Show a summary of options
|
||||||
|
+.br
|
||||||
|
+.SH AUTHOR
|
||||||
|
+4Pane was written by David Hart <david@4pane.co.uk>.
|
||||||
|
+.PP
|
||||||
|
+This manual page was written by David Hart <david@4pane.co.uk>,
|
||||||
|
+(but may be used by others).
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
From 3b55430a83dd521dbc7633b3416c2cb54849f243 Mon Sep 17 00:00:00 2001
|
||||||
|
From: dghart <dghart@users.sourceforge.net>
|
||||||
|
Date: Thu, 18 Dec 2014 12:06:26 +0000
|
||||||
|
Subject: [PATCH 3/4] Add an appdata file: see
|
||||||
|
https://sourceforge.net/p/fourpane/feature-requests/10/
|
||||||
|
|
||||||
|
---
|
||||||
|
.build/4Pane.bkl | 15 ++++++++++++---
|
||||||
|
4Pane.appdata.xml | 28 ++++++++++++++++++++++++++++
|
||||||
|
Makefile.in | 4 ++++
|
||||||
|
3 files changed, 44 insertions(+), 3 deletions(-)
|
||||||
|
create mode 100644 4Pane.appdata.xml
|
||||||
|
|
||||||
|
diff --git a/.build/4Pane.bkl b/.build/4Pane.bkl
|
||||||
|
index 6ec38d9..8b184da 100755
|
||||||
|
--- a/.build/4Pane.bkl
|
||||||
|
+++ b/.build/4Pane.bkl
|
||||||
|
@@ -153,6 +153,12 @@
|
||||||
|
ln -fs 4Pane $(DESTDIR)$(BINDIR)/4pane ;\
|
||||||
|
fi;
|
||||||
|
</command>
|
||||||
|
+ <!-- Install 4Pane.appdata.xml if the destination dir exists -->
|
||||||
|
+ <command>
|
||||||
|
+ @if test -d /usr/share/appdata/ ; then \
|
||||||
|
+ cp $(DESTDIR)4Pane.appdata.xml /usr/share/appdata/ ;\
|
||||||
|
+ fi;
|
||||||
|
+ </command>
|
||||||
|
<!-- Since 2009, .desktops without exec permissions are considered insecure, so chmod it too -->
|
||||||
|
<command>
|
||||||
|
@if test $(desktop) = yes || test $(desktop) = install_only ; then \
|
||||||
|
@@ -164,18 +170,21 @@
|
||||||
|
</command>
|
||||||
|
</modify-target>
|
||||||
|
|
||||||
|
- <!-- Extend "uninstall" to delete the symlink and desktop shortcut -->
|
||||||
|
+ <!-- Extend "uninstall" to delete the symlink, desktop shortcut and 4Pane.appdata.xml -->
|
||||||
|
<modify-target target="uninstall">
|
||||||
|
<command>
|
||||||
|
@if test $(symlink) = yes || test $(symlink) = uninstall_only; then \
|
||||||
|
rm -f $(DESTDIR)$(BINDIR)/4pane ;\
|
||||||
|
fi;
|
||||||
|
- </command>
|
||||||
|
+ </command>
|
||||||
|
+ <command>
|
||||||
|
+ @rm -f /usr/share/appdata/4Pane.appdata.xml ;
|
||||||
|
+ </command>
|
||||||
|
<command>
|
||||||
|
@if test $(desktop) = yes || test $(desktop) = uninstall_only; then \
|
||||||
|
rm -f ~/Desktop/4Pane.desktop ;\
|
||||||
|
fi;
|
||||||
|
- </command>
|
||||||
|
+ </command>
|
||||||
|
</modify-target>
|
||||||
|
</my_exe>
|
||||||
|
|
||||||
|
diff --git a/4Pane.appdata.xml b/4Pane.appdata.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..918ecf5
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/4Pane.appdata.xml
|
||||||
|
@@ -0,0 +1,28 @@
|
||||||
|
+<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
+<!-- Copyright 2014 David Hart <david@4Pane.co.uk> -->
|
||||||
|
+<component type="desktop">
|
||||||
|
+ <id>4Pane.desktop</id>
|
||||||
|
+ <metadata_license>CC0-1.0</metadata_license>
|
||||||
|
+ <project_license>GPL-3.0</project_license>
|
||||||
|
+ <name>4Pane</name>
|
||||||
|
+ <summary>File manager</summary>
|
||||||
|
+ <description>
|
||||||
|
+ <p>
|
||||||
|
+ 4Pane is a highly configurable Linux filemanager. It has dual twin-panes,
|
||||||
|
+ each of which has a directory tree-view pane and a detailed-list pane for
|
||||||
|
+ files.
|
||||||
|
+ </p>
|
||||||
|
+ <p>
|
||||||
|
+ In addition to standard file manager things, it offers multiple undo and redo
|
||||||
|
+ of most operations (including deletions), archive management including
|
||||||
|
+ 'virtual browsing' inside archives, multiple renaming/duplication of files,
|
||||||
|
+ a terminal emulator and user-defined tools.
|
||||||
|
+ </p>
|
||||||
|
+ </description>
|
||||||
|
+ <screenshots>
|
||||||
|
+ <screenshot type="default">
|
||||||
|
+ <image>http://www.4Pane.co.uk/4Pane624x351.png</image>
|
||||||
|
+ </screenshot>
|
||||||
|
+ </screenshots>
|
||||||
|
+ <url type="homepage">http://www.4pane.co.uk</url>
|
||||||
|
+</component>
|
||||||
|
diff --git a/Makefile.in b/Makefile.in
|
||||||
|
index 7a7b8b2..19ae920 100644
|
||||||
|
--- a/Makefile.in
|
||||||
|
+++ b/Makefile.in
|
||||||
|
@@ -106,6 +106,9 @@ install: install_4Pane
|
||||||
|
@if test $(symlink) = yes || test $(symlink) = install_only ; then \
|
||||||
|
ln -fs 4Pane $(DESTDIR)$(bindir)/4pane ;\
|
||||||
|
fi;
|
||||||
|
+ @if test -d /usr/share/appdata/ ; then \
|
||||||
|
+ cp $(DESTDIR)4Pane.appdata.xml /usr/share/appdata/ ;\
|
||||||
|
+ fi;
|
||||||
|
@if test $(desktop) = yes || test $(desktop) = install_only ; then \
|
||||||
|
if test -d ~/Desktop/ ; then \
|
||||||
|
cp -up rc/4Pane.desktop ~/Desktop/4Pane.desktop ;\
|
||||||
|
@@ -142,6 +145,7 @@ uninstall: uninstall_4Pane
|
||||||
|
@if test $(symlink) = yes || test $(symlink) = uninstall_only; then \
|
||||||
|
rm -f $(DESTDIR)$(bindir)/4pane ;\
|
||||||
|
fi;
|
||||||
|
+ @rm -f /usr/share/appdata/4Pane.appdata.xml ;
|
||||||
|
@if test $(desktop) = yes || test $(desktop) = uninstall_only; then \
|
||||||
|
rm -f ~/Desktop/4Pane.desktop ;\
|
||||||
|
fi;
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
From 1147a5bfa2283df5b98df01c6174203b801e04ea Mon Sep 17 00:00:00 2001
|
||||||
|
From: dghart <dghart@users.sourceforge.net>
|
||||||
|
Date: Fri, 19 Dec 2014 12:34:08 +0000
|
||||||
|
Subject: [PATCH 4/4] Correct the use of DESTDIR in the last commit
|
||||||
|
|
||||||
|
---
|
||||||
|
.build/4Pane.bkl | 17 +++++++++--------
|
||||||
|
Makefile.in | 5 +++--
|
||||||
|
2 files changed, 12 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/.build/4Pane.bkl b/.build/4Pane.bkl
|
||||||
|
index 8b184da..f018318 100755
|
||||||
|
--- a/.build/4Pane.bkl
|
||||||
|
+++ b/.build/4Pane.bkl
|
||||||
|
@@ -136,9 +136,9 @@
|
||||||
|
<!-- Extra compilation targets for non-system bzip2 builds -->
|
||||||
|
<!-- In theory this should 'ifdef' the bz targets and object. In practice it doesn't: -->
|
||||||
|
<!-- the if...endif follow the targets, not surround them; and the objects aren't affected at all -->
|
||||||
|
- <fragment format="autoconf">ifneq ($(BZIP2_FLAGS),-DUSE_SYSTEM_BZIP2)</fragment>
|
||||||
|
- <sources>$(fileList(['sdk/bzip/*.c']))</sources>
|
||||||
|
- <fragment format="autoconf">endif</fragment>
|
||||||
|
+ <fragment format="autoconf">ifneq ($(BZIP2_FLAGS),-DUSE_SYSTEM_BZIP2)</fragment>
|
||||||
|
+ <sources>$(fileList(['sdk/bzip/*.c']))</sources>
|
||||||
|
+ <fragment format="autoconf">endif</fragment>
|
||||||
|
|
||||||
|
<!-- This is the altered "install to", that doesn't happen if the install_app option is 'no' or 'uninstall_only' -->
|
||||||
|
<cond-install-to>$(BINDIR)</cond-install-to>
|
||||||
|
@@ -156,7 +156,8 @@
|
||||||
|
<!-- Install 4Pane.appdata.xml if the destination dir exists -->
|
||||||
|
<command>
|
||||||
|
@if test -d /usr/share/appdata/ ; then \
|
||||||
|
- cp $(DESTDIR)4Pane.appdata.xml /usr/share/appdata/ ;\
|
||||||
|
+ $(INSTALL_DIR) $(DESTDIR)/usr/share/appdata/ ;\
|
||||||
|
+ cp 4Pane.appdata.xml $(DESTDIR)/usr/share/appdata/ ;\
|
||||||
|
fi;
|
||||||
|
</command>
|
||||||
|
<!-- Since 2009, .desktops without exec permissions are considered insecure, so chmod it too -->
|
||||||
|
@@ -177,10 +178,10 @@
|
||||||
|
rm -f $(DESTDIR)$(BINDIR)/4pane ;\
|
||||||
|
fi;
|
||||||
|
</command>
|
||||||
|
- <command>
|
||||||
|
- @rm -f /usr/share/appdata/4Pane.appdata.xml ;
|
||||||
|
- </command>
|
||||||
|
- <command>
|
||||||
|
+ <command>
|
||||||
|
+ @rm -f $(DESTDIR)/usr/share/appdata/4Pane.appdata.xml ;
|
||||||
|
+ </command>
|
||||||
|
+ <command>
|
||||||
|
@if test $(desktop) = yes || test $(desktop) = uninstall_only; then \
|
||||||
|
rm -f ~/Desktop/4Pane.desktop ;\
|
||||||
|
fi;
|
||||||
|
diff --git a/Makefile.in b/Makefile.in
|
||||||
|
index 19ae920..c11e531 100644
|
||||||
|
--- a/Makefile.in
|
||||||
|
+++ b/Makefile.in
|
||||||
|
@@ -107,7 +107,8 @@ install: install_4Pane
|
||||||
|
ln -fs 4Pane $(DESTDIR)$(bindir)/4pane ;\
|
||||||
|
fi;
|
||||||
|
@if test -d /usr/share/appdata/ ; then \
|
||||||
|
- cp $(DESTDIR)4Pane.appdata.xml /usr/share/appdata/ ;\
|
||||||
|
+ $(INSTALL_DIR) $(DESTDIR)/usr/share/appdata/ ;\
|
||||||
|
+ cp 4Pane.appdata.xml $(DESTDIR)/usr/share/appdata/ ;\
|
||||||
|
fi;
|
||||||
|
@if test $(desktop) = yes || test $(desktop) = install_only ; then \
|
||||||
|
if test -d ~/Desktop/ ; then \
|
||||||
|
@@ -145,7 +146,7 @@ uninstall: uninstall_4Pane
|
||||||
|
@if test $(symlink) = yes || test $(symlink) = uninstall_only; then \
|
||||||
|
rm -f $(DESTDIR)$(bindir)/4pane ;\
|
||||||
|
fi;
|
||||||
|
- @rm -f /usr/share/appdata/4Pane.appdata.xml ;
|
||||||
|
+ @rm -f $(DESTDIR)/usr/share/appdata/4Pane.appdata.xml ;
|
||||||
|
@if test $(desktop) = yes || test $(desktop) = uninstall_only; then \
|
||||||
|
rm -f ~/Desktop/4Pane.desktop ;\
|
||||||
|
fi;
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
||||||
|
|
@ -0,0 +1,93 @@
|
||||||
|
From 712bf13e3fb2039cde3b4ee0c2d8c2e49f003a02 Mon Sep 17 00:00:00 2001
|
||||||
|
From: dghart <dghart@users.sourceforge.net>
|
||||||
|
Date: Sun, 21 Dec 2014 15:20:02 +0000
|
||||||
|
Subject: [PATCH 1/2] Make the toolbar the correct size for its tools in gtk3
|
||||||
|
builds too
|
||||||
|
|
||||||
|
When built against wxWidgets using gtk3, the toolbar was clipping the icons of its tools. This was caused by old code designed to ease the transition between gtk1.2 and 2.0!
|
||||||
|
Fixed by removing that old code, and allowing the toolbar to size itself naturally.
|
||||||
|
---
|
||||||
|
Externs.h | 2 --
|
||||||
|
MyFrame.cpp | 4 ++--
|
||||||
|
Redo.cpp | 4 ++--
|
||||||
|
config.h | 7 -------
|
||||||
|
4 files changed, 4 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Externs.h b/Externs.h
|
||||||
|
index c5213c2..2f0223d 100644
|
||||||
|
--- a/Externs.h
|
||||||
|
+++ b/Externs.h
|
||||||
|
@@ -86,8 +86,6 @@ extern wxString BITMAPSDIR;
|
||||||
|
extern wxString RCDIR;
|
||||||
|
extern wxString HELPDIR;
|
||||||
|
|
||||||
|
-extern int MAINTOOLBARWIDTH;
|
||||||
|
-
|
||||||
|
extern wxWindowID NextID;
|
||||||
|
|
||||||
|
#if defined(__WXGTK20__)
|
||||||
|
diff --git a/MyFrame.cpp b/MyFrame.cpp
|
||||||
|
index ebae40f..757c043 100644
|
||||||
|
--- a/MyFrame.cpp
|
||||||
|
+++ b/MyFrame.cpp
|
||||||
|
@@ -547,7 +547,7 @@ CreateMenuBar(MenuBar); SetMenuBar(MenuBar);
|
||||||
|
|
||||||
|
toolbar = NULL; LoadToolbarButtons(); // Toolbar pt1
|
||||||
|
|
||||||
|
-panelette = new wxPanel(this, -1, wxDefaultPosition, wxSize(-1,MAINTOOLBARWIDTH), wxTAB_TRAVERSAL, wxT("TBPanel")); // & pt2, for MyBitmapButtons
|
||||||
|
+panelette = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, wxT("TBPanel")); // & pt2, for MyBitmapButtons
|
||||||
|
sizerTB = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
sizerTB->Add(toolbar, 0, wxEXPAND);
|
||||||
|
sizerTB->Add(panelette, 1, wxEXPAND);
|
||||||
|
@@ -666,7 +666,7 @@ if (recreating)
|
||||||
|
toolbar->Destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
-toolbar = new wxToolBar(this, ID_FRAMETOOLBAR ,wxPoint(0,0), wxSize(-1,MAINTOOLBARWIDTH));
|
||||||
|
+toolbar = new wxToolBar(this, ID_FRAMETOOLBAR);
|
||||||
|
|
||||||
|
wxBitmap toolBarBitmaps[8];
|
||||||
|
|
||||||
|
diff --git a/Redo.cpp b/Redo.cpp
|
||||||
|
index f3cc6bc..f55928e 100644
|
||||||
|
--- a/Redo.cpp
|
||||||
|
+++ b/Redo.cpp
|
||||||
|
@@ -295,7 +295,7 @@ int offset = 0; // This copes with displays of >
|
||||||
|
|
||||||
|
// We need to pop-up the sidebar menu below the Undo button. WxWidgets doesn't let us locate this, & the mouse pos could be anywhere within the button.
|
||||||
|
wxPoint pt; // The solution is to cheat, & place it where calcs say it ought to be. This may fail on future resizes etc
|
||||||
|
-pt.y = MAINTOOLBARWIDTH + 2; // The y pos could be anywhere within the button, so replace with the known toolbar-width, plus a fiddle-factor
|
||||||
|
+pt.y = MyFrame::mainframe->toolbar->GetSize().GetHeight() + 2; // The y pos could be anywhere within the button, so replace with the known toolbar-height, plus a fiddle-factor
|
||||||
|
pt.x = (MyFrame::mainframe->buttonsbeforesidebar * 30) + (MyFrame::mainframe->separatorsbeforesidebar * 7); // & we counted the tools as we inserted them
|
||||||
|
|
||||||
|
do
|
||||||
|
@@ -379,7 +379,7 @@ int offset = 0; // This copes with displays of >1 pa
|
||||||
|
|
||||||
|
// We need to pop-up the sidebar menu below the Redo button. WxWidgets doesn't let us locate this, & the mouse pos could be anywhere within the button.
|
||||||
|
wxPoint pt; // The solution is to cheat, & place it where calcs say it ought to be. This may fail on future resizes etc
|
||||||
|
-pt.y = MAINTOOLBARWIDTH + 2; // The y pos could be anywhere within the button, so replace with the known toolbar-width, plus a fiddle-factor
|
||||||
|
+pt.y = MyFrame::mainframe->toolbar->GetSize().GetHeight() + 2; // The y pos could be anywhere within the button, so replace with the known toolbar-height, plus a fiddle-factor
|
||||||
|
pt.x = (MyFrame::mainframe->buttonsbeforesidebar * 30) + 30 + 13 // (The extra 30 is for the Undo button, the 13 for the Undo sidebar buttton)
|
||||||
|
+ (MyFrame::mainframe->separatorsbeforesidebar* 7); // We counted the other tools as we inserted them
|
||||||
|
|
||||||
|
diff --git a/config.h b/config.h
|
||||||
|
index 641d694..b2b7c46 100644
|
||||||
|
--- a/config.h
|
||||||
|
+++ b/config.h
|
||||||
|
@@ -47,13 +47,6 @@ wxString BITMAPSDIR;
|
||||||
|
wxString RCDIR;
|
||||||
|
wxString HELPDIR;
|
||||||
|
|
||||||
|
-#ifdef __WXGTK20__
|
||||||
|
-int MAINTOOLBARWIDTH = 38;
|
||||||
|
-#else
|
||||||
|
-int MAINTOOLBARWIDTH = 30;
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
-
|
||||||
|
size_t MAX_COMMAND_HISTORY = 25; // How many recent commands from eg grep or locate, should be stored
|
||||||
|
wxArrayString FilterHistory;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
commit d8b74e4df86fb526ee9caad284b9eb3efe528ac5
|
|
||||||
Author: dghart <dghart@users.sourceforge.net>
|
|
||||||
Date: Thu Jan 9 14:14:10 2025 +0000
|
|
||||||
|
|
||||||
When previewing an svg file, make the string name unguessable; see https://sourceforge.net/p/fourpane/bugs/22/
|
|
||||||
|
|
||||||
Previewing an svg called foo.svg was creating (briefly) in /tmp a file predictably called foo.png. This might have allowed an attacker to overwrite genuine files. Prevent this by prepending a random string to each name.
|
|
||||||
|
|
||||||
diff --git a/MyTreeCtrl.cpp b/MyTreeCtrl.cpp
|
|
||||||
index fd19465..d82cfc8 100644
|
|
||||||
--- a/MyTreeCtrl.cpp
|
|
||||||
+++ b/MyTreeCtrl.cpp
|
|
||||||
@@ -1890,15 +1890,20 @@ void PreviewPopup::DisplayImage(const wxString& fpath)
|
|
||||||
{
|
|
||||||
wxLogNull NoErrorMessages;
|
|
||||||
wxString filepath(fpath);
|
|
||||||
-wxString pngfilepath;
|
|
||||||
+wxString pngfilepath, rndstr;
|
|
||||||
wxImage image;
|
|
||||||
|
|
||||||
if (filepath.Right(4) == ".svg")
|
|
||||||
{ void* handle = wxGetApp().GetRsvgHandle();
|
|
||||||
if (!handle) return; // Presumably librsvg is not available at present
|
|
||||||
|
|
||||||
- wxFileName fn(filepath); // Create a filepath in /tmp/ to store the .png
|
|
||||||
- pngfilepath = "/tmp/" + fn.GetName() + ".png";
|
|
||||||
+ // Create a filepath in /tmp/ to store the .png
|
|
||||||
+ rndstr = ""; srand(time(NULL));
|
|
||||||
+ wxString allowedchars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
|
||||||
+ for (size_t n=0; n < 9; ++n) // Make the string name unguessable; see https://sourceforge.net/p/fourpane/bugs/22/
|
|
||||||
+ rndstr << wxString::Format("%c", allowedchars[(char)(rand() % 52)]);
|
|
||||||
+ wxFileName fn(filepath);
|
|
||||||
+ pngfilepath = "/tmp/" + rndstr + fn.GetName() + ".png";
|
|
||||||
if (SvgToPng(filepath, pngfilepath, handle))
|
|
||||||
image = wxImage(pngfilepath);
|
|
||||||
wxRemoveFile(pngfilepath);
|
|
||||||
188
4Pane.spec
188
4Pane.spec
|
|
@ -7,32 +7,28 @@
|
||||||
%define _docdir_fmt %{NAME}
|
%define _docdir_fmt %{NAME}
|
||||||
|
|
||||||
Name: 4Pane
|
Name: 4Pane
|
||||||
Version: 8.0
|
Version: 3.0
|
||||||
Release: 14%{?dist}
|
Release: 6%{?dist}
|
||||||
Summary: Multi-pane, detailed-list file manager
|
Summary: Multi-pane, detailed-list file manager
|
||||||
|
|
||||||
# Overall GPL-3.0-only
|
License: GPLv3
|
||||||
# 4Pane.appdata.xml CC0-1.0
|
|
||||||
# Accelerators.cpp and etc LGPL-2.0-or-later (wxWindows)
|
|
||||||
# sdk/bzip/LICENSE bzip2-1.0.6 (unused)
|
|
||||||
# SPDX confirmed
|
|
||||||
License: GPL-3.0-only AND LGPL-2.0-or-later AND CC0-1.0
|
|
||||||
URL: http://www.4pane.co.uk/
|
URL: http://www.4pane.co.uk/
|
||||||
Source0: http://downloads.sourceforge.net/fourpane/4pane-%{version}.tar.gz
|
Source0: http://downloads.sourceforge.net/fourpane/4pane-%{version}.tar.gz
|
||||||
# https://sourceforge.net/p/fourpane/bugs/22/
|
# https://sourceforge.net/p/fourpane/discussion/767206/thread/9daf0cda/
|
||||||
# https://sourceforge.net/p/fourpane/git4pane/ci/d8b74e4df86fb526ee9caad284b9eb3efe528ac5/
|
Patch1: 4Pane-HEAD-0001-When-getting-a-pointer-to-a-menubar-menu-don-t-searc.patch
|
||||||
# Make files under /tmp unpredictable
|
# http://sourceforge.net/p/fourpane/feature-requests/9/
|
||||||
Patch0: 4Pane-d8b74e4-tmp-file-name.patch
|
Patch2: 4Pane-HEAD-0002-Add-the-man-page-to-git.patch
|
||||||
|
# http://sourceforge.net/p/fourpane/feature-requests/10/
|
||||||
|
Patch3: 4Pane-HEAD-0003-Add-an-appdata-file-see-https-sourceforge.net-p-four.patch
|
||||||
|
Patch4: 4Pane-HEAD-0004-Correct-the-use-of-DESTDIR-in-the-last-commit.patch
|
||||||
|
# Request from the upstream
|
||||||
|
Patch5: 4Pane-HEAD-0005-Make-the-toolbar-the-correct-size-for-its-tools-in-g.patch
|
||||||
|
|
||||||
BuildRequires: gcc-c++
|
|
||||||
BuildRequires: bzip2-devel
|
BuildRequires: bzip2-devel
|
||||||
BuildRequires: xz-devel
|
BuildRequires: xz-devel
|
||||||
BuildRequires: wxGTK-devel
|
BuildRequires: wxGTK3-devel
|
||||||
BuildRequires: /usr/bin/desktop-file-install
|
BuildRequires: desktop-file-utils
|
||||||
BuildRequires: /usr/bin/appstream-util
|
|
||||||
BuildRequires: gettext
|
|
||||||
BuildRequires: git
|
BuildRequires: git
|
||||||
BuildRequires: make
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
4Pane is a multi-pane, detailed-list file manager. It is designed
|
4Pane is a multi-pane, detailed-list file manager. It is designed
|
||||||
|
|
@ -46,9 +42,7 @@ tools.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n 4pane-%{version}
|
%setup -q -n 4pane-%{version}
|
||||||
%patch -P0 -p1 -b .tmpfile
|
|
||||||
|
|
||||||
%if 0
|
|
||||||
cat > .gitignore <<EOF
|
cat > .gitignore <<EOF
|
||||||
configure
|
configure
|
||||||
config.guess
|
config.guess
|
||||||
|
|
@ -58,28 +52,33 @@ config.h.in
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
git init
|
git init
|
||||||
git config user.email "4Pane-maintainers@fedoraproject.org"
|
git config user.email "4Pane-owner@fedoraproject.org"
|
||||||
git config user.name "4Pane owners"
|
git config user.name "4Pane owners"
|
||||||
git add .
|
git add .
|
||||||
git commit -m "base" -q
|
git commit -m "base" -q
|
||||||
%endif
|
|
||||||
|
|
||||||
sed -i.cflags configure \
|
cat %PATCH1 | git am
|
||||||
-e '\@[ \t]\{5,\}C.*FLAGS[ \t]*=[ \t]*$@d'
|
cat %PATCH2 | git am
|
||||||
|
cat %PATCH3 | git am
|
||||||
|
cat %PATCH4 | git am
|
||||||
|
cat %PATCH5 | git am
|
||||||
|
|
||||||
|
sed -i -e '\@Icon=@s|^.*$|Icon=%{name}|' rc/%{name}.desktop
|
||||||
|
git commit -m "Fix icon entry in desktop file" -a
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export WX_CONFIG_NAME=$(ls -1 %{_bindir}/wx-config-3.* | sort | tail -n 1)
|
export WX_CONFIG_NAME=wx-config-3.0
|
||||||
export EXTRA_CXXFLAGS="%{optflags}"
|
export EXTRA_CXXFLAGS="%{optflags}"
|
||||||
|
|
||||||
# --without-builtin_bzip2 means using system bzip2
|
# --without-builtin_bzip2 means using system bzip2
|
||||||
%configure\
|
%configure\
|
||||||
--disable-desktop \
|
--disable-desktop \
|
||||||
--without-builtin_bzip2 || \
|
--without-builtin_bzip2
|
||||||
{ sleep 5 ; cat config.log ; sleep 10 ; exit 1; }
|
make %{?_smp_mflags}
|
||||||
%make_build
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install
|
%make_install \
|
||||||
|
INSTALL="install -p"
|
||||||
|
|
||||||
# Some manual installation
|
# Some manual installation
|
||||||
mkdir -p %{buildroot}%{_datadir}/applications
|
mkdir -p %{buildroot}%{_datadir}/applications
|
||||||
|
|
@ -89,6 +88,8 @@ install -cpm 644 rc/%{name}.desktop %{buildroot}%{_datadir}/applications/
|
||||||
install -cpm 644 bitmaps/%{name}Icon32.xpm %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.xpm
|
install -cpm 644 bitmaps/%{name}Icon32.xpm %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.xpm
|
||||||
install -cpm 644 bitmaps/%{name}Icon48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
|
install -cpm 644 bitmaps/%{name}Icon48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
|
||||||
|
|
||||||
|
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
|
||||||
|
|
||||||
mkdir -p %{buildroot}%{_mandir}/man1
|
mkdir -p %{buildroot}%{_mandir}/man1
|
||||||
install -cpm 644 4Pane.1 %{buildroot}%{_mandir}/man1/
|
install -cpm 644 4Pane.1 %{buildroot}%{_mandir}/man1/
|
||||||
|
|
||||||
|
|
@ -97,10 +98,17 @@ install -cpm 644 4Pane.1 %{buildroot}%{_mandir}/man1/
|
||||||
# Once remove document and let %%doc re-install them
|
# Once remove document and let %%doc re-install them
|
||||||
rm -rf %{buildroot}%{_docdir}/%{name}
|
rm -rf %{buildroot}%{_docdir}/%{name}
|
||||||
|
|
||||||
%check
|
%post
|
||||||
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
|
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
|
||||||
appstream-util validate-relax --nonet \
|
|
||||||
%{buildroot}%{_datadir}/metainfo/%{name}.appdata.xml
|
%postun
|
||||||
|
if [ $1 -eq 0 ] ; then
|
||||||
|
touch --no-create %{_datadir}/icons/hicolor &>/dev/null
|
||||||
|
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
%posttrans
|
||||||
|
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||||
|
|
||||||
%files -f %{name}.lang
|
%files -f %{name}.lang
|
||||||
%license LICENCE
|
%license LICENCE
|
||||||
|
|
@ -112,123 +120,15 @@ appstream-util validate-relax --nonet \
|
||||||
%{_bindir}/%{name}
|
%{_bindir}/%{name}
|
||||||
|
|
||||||
%{_mandir}/man1/%{name}.1*
|
%{_mandir}/man1/%{name}.1*
|
||||||
%{_datadir}/metainfo/%{name}.appdata.xml
|
%if 0%{?fedora} >= 21
|
||||||
|
%{_datadir}/appdata/%{name}.appdata.xml
|
||||||
|
%endif
|
||||||
|
|
||||||
%{_datadir}/%{name}/
|
%{_datadir}/%{name}/
|
||||||
%{_datadir}/applications/%{name}.desktop
|
%{_datadir}/applications/%{name}.desktop
|
||||||
%{_datadir}/icons/hicolor/*/apps/%{name}*
|
%{_datadir}/icons/hicolor/*/apps/%{name}*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 8.0-14
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 8.0-13
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Jan 20 2025 Fedora Release Engineering <releng@fedoraproject.org> - 8.0-12
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 8.0-11
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jan 10 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 8.0-10
|
|
||||||
- Upstream fix to make files under /tmp unpredictable
|
|
||||||
|
|
||||||
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8.0-9
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jan 26 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 8.0-8
|
|
||||||
- SPDX migration
|
|
||||||
|
|
||||||
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8.0-7
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8.0-6
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jan 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8.0-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.0-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.0-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Nov 25 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 8.0-2
|
|
||||||
- 8.0
|
|
||||||
|
|
||||||
* Thu Aug 04 2022 Scott Talbert <swt@techie.net> - 7.0-6
|
|
||||||
- Rebuild with wxWidgets 3.2
|
|
||||||
|
|
||||||
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.0-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.0-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 7.0-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 7.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Dec 8 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 7.0-1
|
|
||||||
- 7.0
|
|
||||||
|
|
||||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.0-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Dec 30 2010 Mamoru TASAKA <mtasaka@fedoraproject.org> - 6.0-1
|
|
||||||
- 6.0
|
|
||||||
|
|
||||||
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-8
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-7
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-6
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sun Jan 07 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 5.0-4
|
|
||||||
- Remove obsolete scriptlets
|
|
||||||
|
|
||||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 19 2017 Mamoru TASAKA <mtasaka@fedoraproject.org> - 5.0-1
|
|
||||||
- 5.0
|
|
||||||
|
|
||||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.0-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sun Jun 19 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 4.0-2
|
|
||||||
- Patch from the upstream to fix sizing and color issue with
|
|
||||||
GTK 3.20 (bug 1345924)
|
|
||||||
|
|
||||||
* Thu Apr 07 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 4.0-1
|
|
||||||
- 4.0
|
|
||||||
- Enable hardened build again
|
|
||||||
|
|
||||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-9
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0-8
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon May 4 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.0-7
|
|
||||||
- Kill hardened build, does not build
|
|
||||||
|
|
||||||
* Mon Dec 22 2014 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.0-6
|
* Mon Dec 22 2014 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.0-6
|
||||||
- Patch for toolbar issue, requested by the upstream
|
- Patch for toolbar issue, requested by the upstream
|
||||||
|
|
||||||
|
|
|
||||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
||||||
SHA512 (4pane-8.0.tar.gz) = 65c7575a08b9dad28c86a71c30c7671ebaf80cd7f89a81b94402ea3a522f0d9922221ac0f0714b851839d51cca70b8905fb109469aab254f2b574863be537fa8
|
396f968e3cd77c0d8f56c3d687b9ee32 4pane-3.0.tar.gz
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue