Solaris上でlibidn2にパッチを適用する必要があります。 libidn2は、GNUのWebサイトからwgetで取得されました。 Sunによって提供されておらず、ソース管理でも提供されていません。ソース管理なしでフリースタンディングパッチを作成するにはどうすればいいですか?
ライブラリにはglibc
が使用されておらず、機能はerror (int status, int errnum, const char *format, ...)
ではありません。私は、元のソースファイルのコピーを作って、私は同様の機能とのdiffを持っている:
solaris:libidn2-0.16$ diff -u src/idn2.c.bu src/idn2.c
--- src/idn2.c.bu 2017-03-29 00:20:08.621934160 -0400
+++ src/idn2.c 2017-03-29 01:25:12.488402745 -0400
@@ -31,7 +31,9 @@
#include <unistr.h>
/* Gnulib headers. */
+#ifndef __sun__
#include "error.h"
+#endif
#include "gettext.h"
#define _(String) dgettext (PACKAGE, String)
#include "progname.h"
@@ -48,6 +50,18 @@
year. */
"Copyright %s %d Simon Josefsson.";
+#if defined(__sun__)
+static void
+error (int status, int errnum, const char *format, ...)
+{
+ va_list args;
+ va_start(args, format);
+ vfprintf(stderr, format, args);
+ va_end(args);
+ exit(status);
+}
+#endif
+
static void
usage (int status)
{
私はdiff(1)
とpatch(1)
のmanページを読んでいるが、私は非常にする必要があるもの届きません完了しました。私はその仕事についての議論を見つけたとは思わない(多分私は木々の中で森を見ていないだろう)。
私の質問は、これをフリースタンディングパッチにするにはどうすればいいですか?つまり、libidn2を新しくダウンロードして解凍した後、どのように適用するには?
ありがとうございました。 Gitからチェックアウトするのはワークフローではありません。実際には、スクリプトはCentOS 5とFedora 10で実行されることを意図しています。このスクリプトはGitを持っていないマシンにGitをインストールします。最初のスクリプトが書かれると、Solarisに向けて指摘されました。 Oracleは非常に古いGit(Solaris 11)またはGit(Solaris 10)を提供していません。 Oracleは更新されたGitへのアクセスを許可します。 – jww
しかし、gitはまだ "これをフリースタンディングパッチに変えることはできますか?"という答えです。 gitをSolarisマシンにインストールする必要はありません.Centos/Fedoraマシンのいずれかに格納しておき、 'git format-patch upstream downstream'を実行するSolarisマシンのパッチが必要な場合は、 patch(1)プログラムで適用可能な最新のフリースタンディングパッチを作成します。 – hlovdal