From 306378c90d61efb845545ec18eef196b5a441c28 Mon Sep 17 00:00:00 2001 From: Peter Wagner Date: Mon, 16 Jun 2014 11:39:30 +0200 Subject: [PATCH] git: import from packages Signed-off-by: Peter Wagner --- net/git/Makefile | 70 +++++++ net/git/patches/100-convert_builtin.patch | 233 +++++++++++++++++++++ net/git/patches/200-disable_fasthash.patch | 12 ++ 3 files changed, 315 insertions(+) create mode 100644 net/git/Makefile create mode 100644 net/git/patches/100-convert_builtin.patch create mode 100644 net/git/patches/200-disable_fasthash.patch diff --git a/net/git/Makefile b/net/git/Makefile new file mode 100644 index 000000000..05ddfabf0 --- /dev/null +++ b/net/git/Makefile @@ -0,0 +1,70 @@ +# +# Copyright (C) 2009-2014 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=git +PKG_VERSION:=2.0.0 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE_URL:=@KERNEL/software/scm/git/ +PKG_MD5SUM:=0646202ae979e4339f3e47f2375b5773 + +PKG_INSTALL:=1 +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/git + SECTION:=net + CATEGORY:=Network + SUBMENU:=Version Control Systems + DEPENDS:=+libopenssl +libpthread + TITLE:=The fast version control system + URL:=http://git-scm.com +endef + +define Package/git/description + Git is a free & open source, distributed version control system + designed to handle everything from small to very large projects + with speed and efficiency. +endef + +MAKE_FLAGS := \ + CC="$(TARGET_CC)" \ + CFLAGS="$(TARGET_CFLAGS)" \ + CPPFLAGS="$(TARGET_CPPFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + NO_CURL="YesPlease" \ + NO_EXPAT="YesPlease" \ + NO_MKSTEMPS="YesPlease" \ + NO_GETTEXT="YesPlease" \ + NO_UNIX_SOCKETS="YesPlease" \ + NO_IPV6="YesPlease" \ + NO_ICONV="YesPlease" \ + NO_NSEC="YesPlease" \ + NO_PERL="YesPlease" \ + NO_PYTHON="YesPlease" \ + NO_TCLTK="YesPlease" + +define Build/Configure + $(MAKE) -C $(PKG_BUILD_DIR) \ + configure + + ( cd $(PKG_BUILD_DIR); \ + ./configure --prefix=/usr \ + ); +endef + +define Package/git/install + $(INSTALL_DIR) $(1) + $(RM) $(PKG_INSTALL_DIR)/usr/bin/git-cvsserver + $(CP) $(PKG_INSTALL_DIR)/* $(1)/ +endef + +$(eval $(call BuildPackage,git)) diff --git a/net/git/patches/100-convert_builtin.patch b/net/git/patches/100-convert_builtin.patch new file mode 100644 index 000000000..6714788e0 --- /dev/null +++ b/net/git/patches/100-convert_builtin.patch @@ -0,0 +1,233 @@ +--- a/Makefile ++++ b/Makefile +@@ -532,16 +532,7 @@ EXTRA_PROGRAMS = + # ... and all the rest that could be moved out of bindir to gitexecdir + PROGRAMS += $(EXTRA_PROGRAMS) + +-PROGRAM_OBJS += credential-store.o +-PROGRAM_OBJS += daemon.o +-PROGRAM_OBJS += fast-import.o +-PROGRAM_OBJS += http-backend.o +-PROGRAM_OBJS += imap-send.o +-PROGRAM_OBJS += sh-i18n--envsubst.o +-PROGRAM_OBJS += shell.o +-PROGRAM_OBJS += show-index.o +-PROGRAM_OBJS += upload-pack.o +-PROGRAM_OBJS += remote-testsvn.o ++PROGRAM_OBJS = + + # Binary suffix, set to .exe for Windows builds + X = +@@ -1002,6 +993,12 @@ BUILTIN_OBJS += builtin/var.o + BUILTIN_OBJS += builtin/verify-pack.o + BUILTIN_OBJS += builtin/verify-tag.o + BUILTIN_OBJS += builtin/write-tree.o ++BUILTIN_OBJS += builtin/daemon.o ++BUILTIN_OBJS += builtin/fast-import.o ++BUILTIN_OBJS += builtin/http-backend.o ++BUILTIN_OBJS += builtin/imap-send.o ++BUILTIN_OBJS += builtin/shell.o ++BUILTIN_OBJS += builtin/upload-pack.o + + GITLIBS = $(LIB_FILE) $(XDIFF_LIB) + EXTLIBS = +@@ -1165,7 +1162,7 @@ endif + EXTLIBS += -lz + + ifndef NO_OPENSSL +- OPENSSL_LIBSSL = -lssl ++ EXTLIBS += -lssl + ifdef OPENSSLDIR + BASIC_CFLAGS += -I$(OPENSSLDIR)/include + OPENSSL_LINK = -L$(OPENSSLDIR)/$(lib) $(CC_LD_DYNPATH)$(OPENSSLDIR)/$(lib) +@@ -2049,10 +2046,6 @@ endif + git-%$X: %.o GIT-LDFLAGS $(GITLIBS) + $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS) + +-git-imap-send$X: imap-send.o GIT-LDFLAGS $(GITLIBS) +- $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \ +- $(LIBS) $(OPENSSL_LINK) $(OPENSSL_LIBSSL) $(LIB_4_CRYPTO) +- + git-http-fetch$X: http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS) + $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \ + $(LIBS) $(CURL_LIBCURL) +@@ -2364,24 +2357,22 @@ endif + bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \ + execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \ + { test "$$bindir/" = "$$execdir/" || \ +- for p in git$X $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \ ++ for p in $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \ + $(RM) "$$execdir/$$p" && \ + test -z "$(NO_INSTALL_HARDLINKS)$(NO_CROSS_DIRECTORY_HARDLINKS)" && \ +- ln "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \ ++ ln -s git "$$execdir/$$p" 2>/dev/null || \ + cp "$$bindir/$$p" "$$execdir/$$p" || exit; \ + done; \ + } && \ + for p in $(filter $(install_bindir_programs),$(BUILT_INS)); do \ + $(RM) "$$bindir/$$p" && \ + test -z "$(NO_INSTALL_HARDLINKS)" && \ +- ln "$$bindir/git$X" "$$bindir/$$p" 2>/dev/null || \ + ln -s "git$X" "$$bindir/$$p" 2>/dev/null || \ + cp "$$bindir/git$X" "$$bindir/$$p" || exit; \ + done && \ + for p in $(BUILT_INS); do \ + $(RM) "$$execdir/$$p" && \ + test -z "$(NO_INSTALL_HARDLINKS)" && \ +- ln "$$execdir/git$X" "$$execdir/$$p" 2>/dev/null || \ + ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \ + cp "$$execdir/git$X" "$$execdir/$$p" || exit; \ + done && \ +--- a/builtin.h ++++ b/builtin.h +@@ -136,5 +136,11 @@ extern int cmd_verify_pack(int argc, con + extern int cmd_show_ref(int argc, const char **argv, const char *prefix); + extern int cmd_pack_refs(int argc, const char **argv, const char *prefix); + extern int cmd_replace(int argc, const char **argv, const char *prefix); ++extern int cmd_daemon(int argc, char **argv, const char *prefix); ++extern int cmd_fast_import(int argc, char **argv, const char *prefix); ++extern int cmd_http_backend(int argc, char **argv, const char *prefix); ++extern int cmd_imap_send(int argc, char **argv, const char *prefix); ++extern int cmd_shell(int argc, char **argv, const char *prefix); ++extern int cmd_upload_pack(int argc, char **argv, const char *prefix); + + #endif +--- /dev/null ++++ b/builtin/daemon.c +@@ -0,0 +1 @@ ++#include "../daemon.c" +--- /dev/null ++++ b/builtin/fast-import.c +@@ -0,0 +1 @@ ++#include "../fast-import.c" +--- /dev/null ++++ b/builtin/http-backend.c +@@ -0,0 +1 @@ ++#include "../http-backend.c" +--- /dev/null ++++ b/builtin/imap-send.c +@@ -0,0 +1 @@ ++#include "../imap-send.c" +--- /dev/null ++++ b/builtin/shell.c +@@ -0,0 +1 @@ ++#include "../shell.c" +--- /dev/null ++++ b/builtin/upload-pack.c +@@ -0,0 +1 @@ ++#include "../upload-pack.c" +--- a/daemon.c ++++ b/daemon.c +@@ -1125,7 +1125,7 @@ static int serve(struct string_list *lis + return service_loop(&socklist); + } + +-int main(int argc, char **argv) ++int cmd_daemon(int argc, char **argv, const char *prefix) + { + int listen_port = 0; + struct string_list listen_addr = STRING_LIST_INIT_NODUP; +--- a/fast-import.c ++++ b/fast-import.c +@@ -3356,7 +3356,7 @@ static void parse_argv(void) + read_marks(); + } + +-int main(int argc, char **argv) ++int cmd_fast_import(int argc, char **argv, const char *prefix) + { + unsigned int i; + +--- a/git.c ++++ b/git.c +@@ -275,11 +275,11 @@ static int handle_alias(int *argcp, cons + + struct cmd_struct { + const char *cmd; +- int (*fn)(int, const char **, const char *); ++ int (*fn)(int, char **, const char *); + int option; + }; + +-static int run_builtin(struct cmd_struct *p, int argc, const char **argv) ++static int run_builtin(struct cmd_struct *p, int argc, char **argv) + { + int status, help; + struct stat st; +@@ -359,6 +359,7 @@ static struct cmd_struct commands[] = { + { "config", cmd_config, RUN_SETUP_GENTLY }, + { "count-objects", cmd_count_objects, RUN_SETUP }, + { "credential", cmd_credential, RUN_SETUP_GENTLY }, ++ { "daemon", cmd_daemon }, + { "describe", cmd_describe, RUN_SETUP }, + { "diff", cmd_diff }, + { "diff-files", cmd_diff_files, RUN_SETUP | NEED_WORK_TREE }, +@@ -377,6 +378,8 @@ static struct cmd_struct commands[] = { + { "grep", cmd_grep, RUN_SETUP_GENTLY }, + { "hash-object", cmd_hash_object }, + { "help", cmd_help }, ++ { "http-backend", cmd_http_backend }, ++ { "imap-send", cmd_imap_send }, + { "index-pack", cmd_index_pack, RUN_SETUP_GENTLY }, + { "init", cmd_init_db }, + { "init-db", cmd_init_db }, +@@ -424,6 +427,7 @@ static struct cmd_struct commands[] = { + { "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE }, + { "rm", cmd_rm, RUN_SETUP }, + { "send-pack", cmd_send_pack, RUN_SETUP }, ++ { "shell", cmd_shell }, + { "shortlog", cmd_shortlog, RUN_SETUP_GENTLY | USE_PAGER }, + { "show", cmd_show, RUN_SETUP }, + { "show-branch", cmd_show_branch, RUN_SETUP }, +@@ -440,6 +444,7 @@ static struct cmd_struct commands[] = { + { "update-server-info", cmd_update_server_info, RUN_SETUP }, + { "upload-archive", cmd_upload_archive }, + { "upload-archive--writer", cmd_upload_archive_writer }, ++ { "upload-pack", cmd_upload_pack }, + { "var", cmd_var, RUN_SETUP_GENTLY }, + { "verify-pack", cmd_verify_pack }, + { "verify-tag", cmd_verify_tag, RUN_SETUP }, +--- a/http-backend.c ++++ b/http-backend.c +@@ -563,7 +563,7 @@ static struct service_cmd { + {"POST", "/git-receive-pack$", service_rpc} + }; + +-int main(int argc, char **argv) ++int cmd_http_backend(int argc, char **argv, const char *prefix) + { + char *method = getenv("REQUEST_METHOD"); + char *dir; +--- a/imap-send.c ++++ b/imap-send.c +@@ -1362,7 +1362,7 @@ static int git_imap_config(const char *k + return 0; + } + +-int main(int argc, char **argv) ++int cmd_imap_send(int argc, char **argv, const char *prefix) + { + struct strbuf all_msgs = STRBUF_INIT; + struct strbuf msg = STRBUF_INIT; +--- a/shell.c ++++ b/shell.c +@@ -142,7 +142,7 @@ static struct commands { + { NULL }, + }; + +-int main(int argc, char **argv) ++int cmd_shell(int argc, char **argv, const char *prefix) + { + char *prog; + const char **user_argv; +--- a/upload-pack.c ++++ b/upload-pack.c +@@ -790,7 +790,7 @@ static int upload_pack_config(const char + return parse_hide_refs_config(var, value, "uploadpack"); + } + +-int main(int argc, char **argv) ++int cmd_upload_pack(int argc, char **argv, const char *prefix) + { + char *dir; + int i; diff --git a/net/git/patches/200-disable_fasthash.patch b/net/git/patches/200-disable_fasthash.patch new file mode 100644 index 000000000..91f255f80 --- /dev/null +++ b/net/git/patches/200-disable_fasthash.patch @@ -0,0 +1,12 @@ +--- a/config.mak.uname ++++ b/config.mak.uname +@@ -17,9 +17,6 @@ endif + # because maintaining the nesting to match is a pain. If + # we had "elif" things would have been much nicer... + +-ifeq ($(uname_M),x86_64) +- XDL_FAST_HASH = YesPlease +-endif + ifeq ($(uname_S),OSF1) + # Need this for u_short definitions et al + BASIC_CFLAGS += -D_OSF_SOURCE