저는 Fedora 23을 실행 중이고 gedit 3.10.4 및 해당 gedit-plugins
버전 으로 다운그레이드해야 합니다 gedit-r-plugin
.
이 답변우분투에서는 이를 수행하기 위한 코드가 제공됩니다. Fedora 23에서 동일한 작업을 수행하려고 합니다.
편집하다:
아래 Serge 답변의 모든 명령과 주석의 명령을 요약했습니다. F23을 새로 설치하면 다음을 수행합니다.
sudo dnf install @development-tools fedora-packager rpmdevtools
sudo /usr/sbin/useradd makerpm
sudo usermod -a -G mock makerpm
sudo passwd makerpm
(그런 다음 makerpm 사용자에게 비밀번호를 할당하고 로그아웃한 후 makerpm으로 로그인했습니다.) 그런 다음 Fedora 아카이브에서 gedit-3.10.4를 다운로드했습니다(Serge의 답변 링크). 그 다음에
su -
cd /home/makerpm/
cd Download
sh downgradgedit.sh
이제 나는 다음을 얻습니다.
[root@localhost Downloads]# sh downgradgedit.sh
warning: gedit-3.10.4-1.fc20.src.rpm: Header V3 RSA/SHA256 Signature, key ID 246110c1: NOKEY
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
(Stripping trailing CRs from patch; use --binary to disable.)
patching file gedit.spec
downgradgedit.sh: line 32: $'\r': command not found
error: Failed build dependencies:
autoconf is needed by gedit-2:3.10.4-1.local.fc23.x86_64
automake is needed by gedit-2:3.10.4-1.local.fc23.x86_64
enchant-devel >= 1.2.0 is needed by gedit-2:3.10.4-1.local.fc23.x86_64
glib2-devel >= 2.37.5 is needed by gedit-2:3.10.4-1.local.fc23.x86_64
gnome-common is needed by gedit-2:3.10.4-1.local.fc23.x86_64
gobject-introspection-devel is needed by gedit-2:3.10.4-1.local.fc23.x86_64
gsettings-desktop-schemas-devel is needed by gedit-2:3.10.4-1.local.fc23.x86_64
gtk3-devel is needed by gedit-2:3.10.4-1.local.fc23.x86_64
gtksourceview3-devel >= 3.9.91 is needed by gedit-2:3.10.4-1.local.fc23.x86_64
intltool is needed by gedit-2:3.10.4-1.local.fc23.x86_64
iso-codes-devel >= 0.35 is needed by gedit-2:3.10.4-1.local.fc23.x86_64
itstool is needed by gedit-2:3.10.4-1.local.fc23.x86_64
libSM-devel is needed by gedit-2:3.10.4-1.local.fc23.x86_64
libattr-devel is needed by gedit-2:3.10.4-1.local.fc23.x86_64
libpeas-devel >= 1.7.0 is needed by gedit-2:3.10.4-1.local.fc23.x86_64
libtool is needed by gedit-2:3.10.4-1.local.fc23.x86_64
pygobject3-devel is needed by gedit-2:3.10.4-1.local.fc23.x86_64
python3-devel is needed by gedit-2:3.10.4-1.local.fc23.x86_64
yelp-tools is needed by gedit-2:3.10.4-1.local.fc23.x86_64
zeitgeist-devel >= 0.9.12 is needed by gedit-2:3.10.4-1.local.fc23.x86_64
그래서 나는:
dnf install autoconf automake enchant-devel glib2-devel gnome-common gobject-introspection-devel gsettings-desktop-schemas-devel gtk3-devel gtksourceview3-devel intltool iso-codes-devel itstool libSM-devel libattr-devel libpeas-devel libtool pygobject3-devel python3-devel yelp-tools zeitgeist-devel
그런 다음 sh downgradgedit.sh
(이번에는 문제 없이 종료합니다):
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.PxbsBL
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd gedit-3.10.4
+ /usr/bin/rm -rf /root/rpmbuild/BUILDROOT/gedit-3.10.4-1.local.fc23.x86_64
+ exit 0
다음으로 다음을 수행합니다.
su -
cd
sudo dnf install ~/rpmbuild/RPMS/x86_64/gedit-3.10.4-1.local.fc23.x86_64.rpm
sudo dnf install ~/rpmbuild/RPMS/x86_64/geditdevel3.10.4-1.local.fc23.x86_64.rpm.
그런 다음 디렉토리로 CD를 이동하십시오 gedit-plugins-3.10.1-1.fc20.src.rpm
.
cd /home/makerpm/Downloads/
sudo yum-builddep gedit-plugins-3.10.1-1.fc20.src.rpm
rpmbuild --rebuild gedit-plugins-3.10.1-1.fc20.src.rpm
그럼 해
sudo dnf install ~/rpmbuild/RPMS/x86_64/gedit-plugins-3.10.1-1.fc23.x86_64.rpm
지금 실행하면 gedit
필요한 버전이 실행되며 플러그인 목록에도 표시됩니다 gedit
. terminal-plugin
그러나 활성화하면 다음과 같은 결과가 발생합니다.
GLib-GIO-ERROR **: Settings schema 'org.gnome.Terminal.Legacy.Profile' does not contain a key named 'word-chars'
Trace/breakpoint trap (core dumped)
답변1
여기에 설명된 대로 시스템을 준비하십시오.https://fedoraproject.org/wiki/How_to_create_an_RPM_package#Preparing_your_system
빌드 사용자로 로그인하고 Fedora 아카이브에서 gedit-3.10.4의 소스 rpm을 다운로드하십시오.http://archives.fedoraproject.org/pub/archive/fedora/linux/updates/20/SRPMS/gedit-3.10.4-1.fc20.src.rpm
빌드 종속성을 설치합니다.
$ sudo yum-builddep gedit-3.10.4-1.fc20.src.rpm
바이너리 rpm을 빌드합니다.
$ rpmbuild --rebuild gedit-3.10.4-1.fc20.src.rpm
~/rpmbuild/RPMS/<arch>
바이너리 패키지는 폴더에 있습니다.
소스 다운로드를 반복하고 필요한 다른 패키지를 다시 빌드하세요.
원하는 경우 빌드를 위한 특별 사용자 생성을 생략하고 모든 작업에 자신의 계정을 사용할 수 있습니다.
편집하다: 당연히 플러그인을 빌드할 때 gedit-3.10.4용 개발 패키지를 설치해야 합니다. 따라서 yum-builddep을 사용하여 플러그인 src rpm의 deps를 구문 분석하기 전에 gedit 다시 빌드에서 얻은 개발 패키지를 설치하십시오.
편집 2:
댓글의 논의에 따르면 gedit-3.10.4-1은 최신 버전으로 인해 방금 빌드되었습니다 gnome
. 커밋을 위한 패치를 적용하는 스크립트는 다음과 같습니다.https://github.com/GNOME/gedit/commit/3bed781fca0f128d0c960f095aca3dfd30c0923d거부가 수정되었습니다.
#!/bin/bash
rpm -i gedit-3.10.4-1.fc20.src.rpm || exit 1
patch -d ~/rpmbuild/SPECS -p0 <<'EOF'
--- gedit.spec.orig 2014-07-21 18:27:05.000000000 +0400
+++ gedit.spec 2016-06-03 01:27:32.294149403 +0300
@@ -25,7 +25,7 @@
Name: gedit
Epoch: 2
Version: 3.10.4
-Release: 1%{?dist}
+Release: 1.local%{?dist}
License: GPLv2+ and GFDL
Group: Applications/Editors
#VCS: git:git://git.gnome.org/gedit
@@ -41,6 +41,7 @@
%endif
Patch4: gedit-disable-python3.patch
+Patch999: gedit-remove-enable-delete.patch
BuildRequires: gnome-common
BuildRequires: glib2-devel >= %{glib2_version}
@@ -124,6 +125,7 @@
%if !%{with_python3}
%patch4 -p1 -b .disable-python
%endif
+%patch999 -p1 -b .remove-enable-delete
autoreconf -i -f
intltoolize -f
EOF
cat >~/rpmbuild/SOURCES/gedit-remove-enable-delete.patch <<'EOF'
From 3bed781fca0f128d0c960f095aca3dfd30c0923d Mon Sep 17 00:00:00 2001
From: Paolo Borelli <[email protected]>
Date: Tue, 3 Mar 2015 09:05:46 +0100
Subject: [PATCH] Remove checking nautilus "enable-delete" setting
Nautilus removed this setting
---
plugins/filebrowser/gedit-file-browser-plugin.c | 15 ---------
plugins/filebrowser/gedit-file-browser-widget.c | 36 +---------------------
...ome.gedit.plugins.filebrowser.gschema.xml.in.in | 3 --
3 files changed, 1 insertion(+), 53 deletions(-)
diff --git a/plugins/filebrowser/gedit-file-browser-plugin.c b/plugins/filebrowser/gedit-file-browser-plugin.c
index 412757b..62c932f 100644
--- a/plugins/filebrowser/gedit-file-browser-plugin.c
+++ b/plugins/filebrowser/gedit-file-browser-plugin.c
@@ -52,7 +52,6 @@
#define NAUTILUS_BASE_SETTINGS "org.gnome.nautilus.preferences"
#define NAUTILUS_FALLBACK_SETTINGS "org.gnome.gedit.plugins.filebrowser.nautilus"
#define NAUTILUS_CLICK_POLICY_KEY "click-policy"
-#define NAUTILUS_ENABLE_DELETE_KEY "enable-delete"
#define NAUTILUS_CONFIRM_TRASH_KEY "confirm-trash"
#define TERMINAL_BASE_SETTINGS "org.gnome.desktop.default-applications.terminal"
@@ -72,7 +71,6 @@ struct _GeditFileBrowserPluginPrivate
gboolean confirm_trash;
guint click_policy_handle;
- guint enable_delete_handle;
guint confirm_trash_handle;
};
@@ -354,13 +352,6 @@ install_nautilus_prefs (GeditFileBrowserPlugin *plugin)
G_CALLBACK (on_click_policy_changed),
plugin);
- /* Bind enable-delete */
- g_settings_bind (priv->nautilus_settings,
- NAUTILUS_ENABLE_DELETE_KEY,
- priv->tree_widget,
- "enable-delete",
- G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
-
/* Get confirm_trash */
prefb = g_settings_get_boolean (priv->nautilus_settings,
NAUTILUS_CONFIRM_TRASH_KEY);
@@ -599,12 +590,6 @@ gedit_file_browser_plugin_deactivate (GeditWindowActivatable *activatable)
priv->click_policy_handle);
}
- if (priv->enable_delete_handle)
- {
- g_signal_handler_disconnect (priv->nautilus_settings,
- priv->enable_delete_handle);
- }
-
if (priv->confirm_trash_handle)
{
g_signal_handler_disconnect (priv->nautilus_settings,
diff --git a/plugins/filebrowser/gedit-file-browser-widget.c b/plugins/filebrowser/gedit-file-browser-widget.c
index 72a3da6..bd5a2d7 100644
--- a/plugins/filebrowser/gedit-file-browser-widget.c
+++ b/plugins/filebrowser/gedit-file-browser-widget.c
@@ -65,7 +65,6 @@ enum
PROP_0,
PROP_FILTER_PATTERN,
- PROP_ENABLE_DELETE
};
/* Signals */
@@ -152,15 +151,11 @@ struct _GeditFileBrowserWidgetPrivate
GtkWidget *location_next_menu;
GtkWidget *current_location_menu_item;
- gboolean enable_delete;
-
GCancellable *cancellable;
GdkCursor *busy_cursor;
};
-static void set_enable_delete (GeditFileBrowserWidget *obj,
- gboolean enable);
static void on_model_set (GObject *gobject,
GParamSpec *arg1,
GeditFileBrowserWidget *obj);
@@ -439,9 +434,6 @@ gedit_file_browser_widget_get_property (GObject *object,
case PROP_FILTER_PATTERN:
g_value_set_string (value, obj->priv->filter_pattern_str);
break;
- case PROP_ENABLE_DELETE:
- g_value_set_boolean (value, obj->priv->enable_delete);
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -462,9 +454,6 @@ gedit_file_browser_widget_set_property (GObject *object,
gedit_file_browser_widget_set_filter_pattern (obj,
g_value_get_string (value));
break;
- case PROP_ENABLE_DELETE:
- set_enable_delete (obj, g_value_get_boolean (value));
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -489,13 +478,6 @@ gedit_file_browser_widget_class_init (GeditFileBrowserWidgetClass *klass)
"The filter pattern",
"",
G_PARAM_READWRITE));
- g_object_class_install_property (object_class, PROP_ENABLE_DELETE,
- g_param_spec_boolean ("enable-delete",
- "Enable delete",
- "Enable permanently deleting items",
- TRUE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
signals[LOCATION_ACTIVATED] =
g_signal_new ("location-activated",
@@ -795,19 +777,6 @@
gtk_combo_box_set_active (GTK_COMBO_BOX (obj->priv->combo), 0);
}
-static void
-set_enable_delete (GeditFileBrowserWidget *obj,
- gboolean enable)
-{
- GAction *action;
- obj->priv->enable_delete = enable;
-
- action = g_simple_action_group_lookup (obj->priv->action_group,
- "delete");
-
- g_simple_action_set_enabled (G_SIMPLE_ACTION (action), enable);
-}
-
static gboolean
filter_real (GeditFileBrowserStore *model,
GtkTreeIter *iter,
@@ -1036,8 +1005,6 @@ gedit_file_browser_widget_init (GeditFileBrowserWidget *obj)
"browser",
G_ACTION_GROUP (obj->priv->action_group));
- set_enable_delete (obj, obj->priv->enable_delete);
-
gtk_widget_init_template (GTK_WIDGET (obj));
g_signal_connect (obj->priv->previous_button, "button-press-event",
@@ -2967,8 +2934,7 @@ on_treeview_key_press_event (GeditFileBrowserView *treeview,
event->keyval == GDK_KEY_KP_Delete)
{
- if ((event->state & modifiers) == GDK_SHIFT_MASK &&
- obj->priv->enable_delete)
+ if ((event->state & modifiers) == GDK_SHIFT_MASK)
{
delete_selected_files (obj, FALSE);
return TRUE;
diff --git a/plugins/filebrowser/org.gnome.gedit.plugins.filebrowser.gschema.xml.in.in b/plugins/filebrowser/org.gnome.gedit.plugins.filebrowser.gschema.xml.in.in
index cc76ab8..7a384c7 100644
--- a/plugins/filebrowser/org.gnome.gedit.plugins.filebrowser.gschema.xml.in.in
+++ b/plugins/filebrowser/org.gnome.gedit.plugins.filebrowser.gschema.xml.in.in
@@ -51,9 +51,6 @@
<key name="click-policy" enum="org.gnome.gedit.plugins.filebrowser.nautilus.ClickPolicy">
<default>'double'</default>
</key>
- <key name="enable-delete" type="b">
- <default>false</default>
- </key>
<key name="confirm-trash" type="b">
<default>true</default>
</key>
EOF
rpmbuild -ba ~/rpmbuild/SPECS/gedit.spec
스크립트는 파일이 gedit-3.10.4-1.fc20.src.rpm
현재 디렉터리에 있다고 가정합니다. 빌드가 완료되면 ~/rpmbuild/RPMS
새 패치 SRPM
패키지 와 함께 디렉터리에서 바이너리 패키지를 찾을 수 있습니다.~/rpmbuild/SRPMS
루트가 지정된 FC23 설치에서 동일한 단계를 수행한 후 터미널 플러그인에 문제가 없었습니다.
편집 3:
OP가 프로그램에 대한 질문을 갖고 있었기 때문에 빌드 스크립트와 결과가 포함된 github 저장소를 만들었습니다 RPM
.https://github.com/geditFC23/gedit-3.10.4-fc23/releases