Merge pull request #585 from chewi/master
[feed/packages.git] / net / git / patches / 100-convert_builtin.patch
1 --- a/Makefile
2 +++ b/Makefile
3 @@ -529,16 +529,7 @@ EXTRA_PROGRAMS =
4 # ... and all the rest that could be moved out of bindir to gitexecdir
5 PROGRAMS += $(EXTRA_PROGRAMS)
6
7 -PROGRAM_OBJS += credential-store.o
8 -PROGRAM_OBJS += daemon.o
9 -PROGRAM_OBJS += fast-import.o
10 -PROGRAM_OBJS += http-backend.o
11 -PROGRAM_OBJS += imap-send.o
12 -PROGRAM_OBJS += sh-i18n--envsubst.o
13 -PROGRAM_OBJS += shell.o
14 -PROGRAM_OBJS += show-index.o
15 -PROGRAM_OBJS += upload-pack.o
16 -PROGRAM_OBJS += remote-testsvn.o
17 +PROGRAM_OBJS =
18
19 # Binary suffix, set to .exe for Windows builds
20 X =
21 @@ -887,6 +878,12 @@ BUILTIN_OBJS += builtin/verify-commit.o
22 BUILTIN_OBJS += builtin/verify-pack.o
23 BUILTIN_OBJS += builtin/verify-tag.o
24 BUILTIN_OBJS += builtin/write-tree.o
25 +BUILTIN_OBJS += builtin/daemon.o
26 +BUILTIN_OBJS += builtin/fast-import.o
27 +BUILTIN_OBJS += builtin/http-backend.o
28 +BUILTIN_OBJS += builtin/imap-send.o
29 +BUILTIN_OBJS += builtin/shell.o
30 +BUILTIN_OBJS += builtin/upload-pack.o
31
32 GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
33 EXTLIBS =
34 @@ -1049,7 +1046,7 @@ endif
35 EXTLIBS += -lz
36
37 ifndef NO_OPENSSL
38 - OPENSSL_LIBSSL = -lssl
39 + EXTLIBS += -lssl
40 ifdef OPENSSLDIR
41 BASIC_CFLAGS += -I$(OPENSSLDIR)/include
42 OPENSSL_LINK = -L$(OPENSSLDIR)/$(lib) $(CC_LD_DYNPATH)$(OPENSSLDIR)/$(lib)
43 @@ -1895,10 +1892,6 @@ endif
44 git-%$X: %.o GIT-LDFLAGS $(GITLIBS)
45 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
46
47 -git-imap-send$X: imap-send.o GIT-LDFLAGS $(GITLIBS)
48 - $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
49 - $(LIBS) $(OPENSSL_LINK) $(OPENSSL_LIBSSL) $(LIB_4_CRYPTO)
50 -
51 git-http-fetch$X: http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)
52 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
53 $(LIBS) $(CURL_LIBCURL)
54 @@ -2216,24 +2209,22 @@ endif
55 bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
56 execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
57 { test "$$bindir/" = "$$execdir/" || \
58 - for p in git$X $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \
59 + for p in $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \
60 $(RM) "$$execdir/$$p" && \
61 test -z "$(NO_INSTALL_HARDLINKS)$(NO_CROSS_DIRECTORY_HARDLINKS)" && \
62 - ln "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \
63 + ln -s git "$$execdir/$$p" 2>/dev/null || \
64 cp "$$bindir/$$p" "$$execdir/$$p" || exit; \
65 done; \
66 } && \
67 for p in $(filter $(install_bindir_programs),$(BUILT_INS)); do \
68 $(RM) "$$bindir/$$p" && \
69 test -z "$(NO_INSTALL_HARDLINKS)" && \
70 - ln "$$bindir/git$X" "$$bindir/$$p" 2>/dev/null || \
71 ln -s "git$X" "$$bindir/$$p" 2>/dev/null || \
72 cp "$$bindir/git$X" "$$bindir/$$p" || exit; \
73 done && \
74 for p in $(BUILT_INS); do \
75 $(RM) "$$execdir/$$p" && \
76 test -z "$(NO_INSTALL_HARDLINKS)" && \
77 - ln "$$execdir/git$X" "$$execdir/$$p" 2>/dev/null || \
78 ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \
79 cp "$$execdir/git$X" "$$execdir/$$p" || exit; \
80 done && \
81 --- a/builtin.h
82 +++ b/builtin.h
83 @@ -138,5 +138,11 @@ extern int cmd_verify_pack(int argc, con
84 extern int cmd_show_ref(int argc, const char **argv, const char *prefix);
85 extern int cmd_pack_refs(int argc, const char **argv, const char *prefix);
86 extern int cmd_replace(int argc, const char **argv, const char *prefix);
87 +extern int cmd_daemon(int argc, char **argv, const char *prefix);
88 +extern int cmd_fast_import(int argc, char **argv, const char *prefix);
89 +extern int cmd_http_backend(int argc, char **argv, const char *prefix);
90 +extern int cmd_imap_send(int argc, char **argv, const char *prefix);
91 +extern int cmd_shell(int argc, char **argv, const char *prefix);
92 +extern int cmd_upload_pack(int argc, char **argv, const char *prefix);
93
94 #endif
95 --- /dev/null
96 +++ b/builtin/daemon.c
97 @@ -0,0 +1 @@
98 +#include "../daemon.c"
99 --- /dev/null
100 +++ b/builtin/fast-import.c
101 @@ -0,0 +1 @@
102 +#include "../fast-import.c"
103 --- /dev/null
104 +++ b/builtin/http-backend.c
105 @@ -0,0 +1 @@
106 +#include "../http-backend.c"
107 --- /dev/null
108 +++ b/builtin/imap-send.c
109 @@ -0,0 +1 @@
110 +#include "../imap-send.c"
111 --- /dev/null
112 +++ b/builtin/shell.c
113 @@ -0,0 +1 @@
114 +#include "../shell.c"
115 --- /dev/null
116 +++ b/builtin/upload-pack.c
117 @@ -0,0 +1 @@
118 +#include "../upload-pack.c"
119 --- a/daemon.c
120 +++ b/daemon.c
121 @@ -1096,7 +1096,7 @@ static int serve(struct string_list *lis
122 return service_loop(&socklist);
123 }
124
125 -int main(int argc, char **argv)
126 +int cmd_daemon(int argc, char **argv, const char *prefix)
127 {
128 int listen_port = 0;
129 struct string_list listen_addr = STRING_LIST_INIT_NODUP;
130 @@ -1292,12 +1292,13 @@ int main(int argc, char **argv)
131 store_pid(pid_file);
132
133 /* prepare argv for serving-processes */
134 - cld_argv = xmalloc(sizeof (char *) * (argc + 2));
135 - cld_argv[0] = argv[0]; /* git-daemon */
136 - cld_argv[1] = "--serve";
137 + cld_argv = xmalloc(sizeof (char *) * (argc + 3));
138 + cld_argv[0] = "git";
139 + cld_argv[1] = argv[0]; /* daemon */
140 + cld_argv[2] = "--serve";
141 for (i = 1; i < argc; ++i)
142 - cld_argv[i+1] = argv[i];
143 - cld_argv[argc+1] = NULL;
144 + cld_argv[i+2] = argv[i];
145 + cld_argv[argc+2] = NULL;
146
147 return serve(&listen_addr, listen_port, cred);
148 }
149 --- a/fast-import.c
150 +++ b/fast-import.c
151 @@ -3350,7 +3350,7 @@ static void parse_argv(void)
152 read_marks();
153 }
154
155 -int main(int argc, char **argv)
156 +int cmd_fast_import(int argc, char **argv, const char *prefix)
157 {
158 unsigned int i;
159
160 --- a/git.c
161 +++ b/git.c
162 @@ -312,11 +312,11 @@ static int handle_alias(int *argcp, cons
163
164 struct cmd_struct {
165 const char *cmd;
166 - int (*fn)(int, const char **, const char *);
167 + int (*fn)(int, char **, const char *);
168 int option;
169 };
170
171 -static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
172 +static int run_builtin(struct cmd_struct *p, int argc, char **argv)
173 {
174 int status, help;
175 struct stat st;
176 @@ -396,6 +396,7 @@ static struct cmd_struct commands[] = {
177 { "config", cmd_config, RUN_SETUP_GENTLY },
178 { "count-objects", cmd_count_objects, RUN_SETUP },
179 { "credential", cmd_credential, RUN_SETUP_GENTLY },
180 + { "daemon", cmd_daemon },
181 { "describe", cmd_describe, RUN_SETUP },
182 { "diff", cmd_diff },
183 { "diff-files", cmd_diff_files, RUN_SETUP | NEED_WORK_TREE },
184 @@ -414,6 +415,8 @@ static struct cmd_struct commands[] = {
185 { "grep", cmd_grep, RUN_SETUP_GENTLY },
186 { "hash-object", cmd_hash_object },
187 { "help", cmd_help },
188 + { "http-backend", cmd_http_backend },
189 + { "imap-send", cmd_imap_send },
190 { "index-pack", cmd_index_pack, RUN_SETUP_GENTLY },
191 { "init", cmd_init_db, NO_SETUP },
192 { "init-db", cmd_init_db, NO_SETUP },
193 @@ -462,6 +465,7 @@ static struct cmd_struct commands[] = {
194 { "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
195 { "rm", cmd_rm, RUN_SETUP },
196 { "send-pack", cmd_send_pack, RUN_SETUP },
197 + { "shell", cmd_shell },
198 { "shortlog", cmd_shortlog, RUN_SETUP_GENTLY | USE_PAGER },
199 { "show", cmd_show, RUN_SETUP },
200 { "show-branch", cmd_show_branch, RUN_SETUP },
201 @@ -478,6 +482,7 @@ static struct cmd_struct commands[] = {
202 { "update-server-info", cmd_update_server_info, RUN_SETUP },
203 { "upload-archive", cmd_upload_archive },
204 { "upload-archive--writer", cmd_upload_archive_writer },
205 + { "upload-pack", cmd_upload_pack },
206 { "var", cmd_var, RUN_SETUP_GENTLY },
207 { "verify-commit", cmd_verify_commit, RUN_SETUP },
208 { "verify-pack", cmd_verify_pack },
209 --- a/http-backend.c
210 +++ b/http-backend.c
211 @@ -557,7 +557,7 @@ static struct service_cmd {
212 {"POST", "/git-receive-pack$", service_rpc}
213 };
214
215 -int main(int argc, char **argv)
216 +int cmd_http_backend(int argc, char **argv, const char *prefix)
217 {
218 char *method = getenv("REQUEST_METHOD");
219 char *dir;
220 --- a/imap-send.c
221 +++ b/imap-send.c
222 @@ -1338,7 +1338,7 @@ static void git_imap_config(void)
223 git_config_get_string("imap.authmethod", &server.auth_method);
224 }
225
226 -int main(int argc, char **argv)
227 +int cmd_imap_send(int argc, char **argv, const char *prefix)
228 {
229 struct strbuf all_msgs = STRBUF_INIT;
230 struct strbuf msg = STRBUF_INIT;
231 --- a/shell.c
232 +++ b/shell.c
233 @@ -138,7 +138,7 @@ static struct commands {
234 { NULL },
235 };
236
237 -int main(int argc, char **argv)
238 +int cmd_shell(int argc, char **argv, const char *prefix)
239 {
240 char *prog;
241 const char **user_argv;
242 --- a/upload-pack.c
243 +++ b/upload-pack.c
244 @@ -791,7 +791,7 @@ static int upload_pack_config(const char
245 return parse_hide_refs_config(var, value, "uploadpack");
246 }
247
248 -int main(int argc, char **argv)
249 +int cmd_upload_pack(int argc, char **argv, const char *prefix)
250 {
251 char *dir;
252 int i;