Index: devel/git-cvs/Makefile =================================================================== --- /dev/null +++ devel/git-cvs/Makefile @@ -0,0 +1,8 @@ +COMMENT= CVS emulation and import/export for git + +SUBPORT= cvs + +MASTERDIR= ${.CURDIR}/../git +DESCR= ${.CURDIR}/pkg-descr + +.include "${MASTERDIR}/Makefile" Index: devel/git-cvs/pkg-descr =================================================================== --- /dev/null +++ devel/git-cvs/pkg-descr @@ -0,0 +1,5 @@ +Various commands to support CVS in git: +- git-cvsexportcommit - Export a single commit to a CVS checkout +- git-cvsimport - Salvage your data out of another SCM people + love to hate +- git-cvsserver - A CVS server emulator for Git Index: devel/git-p4/Makefile =================================================================== --- /dev/null +++ devel/git-p4/Makefile @@ -0,0 +1,8 @@ +COMMENT= Import from and submit to Perforce repositories using git + +SUBPORT= p4 + +MASTERDIR= ${.CURDIR}/../git +DESCR= ${.CURDIR}/pkg-descr + +.include "${MASTERDIR}/Makefile" Index: devel/git-p4/pkg-descr =================================================================== --- /dev/null +++ devel/git-p4/pkg-descr @@ -0,0 +1,3 @@ +Import from and submit to Perforce repositories + +This command provides a way to interact with p4 repositories using Git. Index: devel/git-svn/Makefile =================================================================== --- /dev/null +++ devel/git-svn/Makefile @@ -0,0 +1,8 @@ +COMMENT= Bidirectional operation between a Subversion repository and Git + +SUBPORT= svn + +MASTERDIR= ${.CURDIR}/../git +DESCR= ${.CURDIR}/pkg-descr + +.include "${MASTERDIR}/Makefile" Index: devel/git-svn/pkg-descr =================================================================== --- /dev/null +++ devel/git-svn/pkg-descr @@ -0,0 +1,5 @@ +Bidirectional operation between a Subversion repository and Git + +git svn is a simple conduit for changesets between Subversion and Git. It +provides a bidirectional flow of changes between a Subversion and a Git +repository. Index: devel/git/Makefile =================================================================== --- devel/git/Makefile +++ devel/git/Makefile @@ -2,7 +2,7 @@ PORTNAME= git DISTVERSION= 2.31.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= devel MASTER_SITES= KERNEL_ORG/software/scm/git DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ @@ -14,33 +14,40 @@ MAINTAINER= garga@FreeBSD.org COMMENT= Distributed source code management tool ${COMMENT_${FLAVOR}} +SUBPORT?= core + +.if ${SUBPORT} != core +PKGNAMESUFFIX= -${SUBPORT} +.endif + LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING -FLAVORS= default gui lite svn tiny -default_CONFLICTS_INSTALL= git-gui git-lite git-svn git-tiny -gui_CONFLICTS_INSTALL= git git-lite git-svn git-tiny +.if ${SUBPORT} == core +FLAVORS= default gui lite tiny +default_CONFLICTS_INSTALL= git-gui git-lite git-tiny +gui_CONFLICTS_INSTALL= git git-lite git-tiny gui_DESCR= ${.CURDIR}/pkg-descr-gui gui_PKGNAMESUFFIX= -gui -lite_CONFLICTS_INSTALL= git git-gui git-svn git-tiny +lite_CONFLICTS_INSTALL= git git-gui git-tiny lite_DESCR= ${.CURDIR}/pkg-descr-lite lite_PKGNAMESUFFIX= -lite -svn_CONFLICTS_INSTALL= git git-gui git-lite git-tiny -svn_DESCR= ${.CURDIR}/pkg-descr-svn -svn_PKGNAMESUFFIX= -svn -tiny_CONFLICTS_INSTALL= git git-gui git-svn git-lite +tiny_CONFLICTS_INSTALL= git git-gui git-lite tiny_DESCR= ${.CURDIR}/pkg-descr-tiny tiny_PKGNAMESUFFIX= -tiny +.endif -USES= autoreconf gmake iconv shebangfix ssl tar:xz +USES= autoreconf gmake iconv shebangfix tar:xz +.if ${SUBPORT} == core +USES+= ssl COMMENT_gui= (GUI enabled flavor) COMMENT_lite= (lite flavor) -COMMENT_svn= (SVN enabled flavor) COMMENT_tiny= (tiny flavor) USERS= git_daemon GROUPS= git_daemon +.endif SUB_FILES= pkg-message gitweb.conf @@ -49,7 +56,9 @@ LDFLAGS+= -L${LOCALBASE}/lib MAKE_ARGS+= DEVELOPER= MAKE_ENV+= V=1 +.if ${SUBPORT} == core USE_RC_SUBR= git_daemon +.endif SHEBANG_FILES= *.perl */*.perl */*/*.perl */*.pl */*/*.pl */*/*/*.pl \ t/*/*/pre t/*/*/post t/Git-SVN/Utils/*.t \ git-p4.py \ @@ -68,21 +77,23 @@ CONFIGURE_ARGS= --enable-pthreads=-pthread ac_cv_header_libcharset_h=no -OPTIONS_DEFINE= CONTRIB CURL CVS GITWEB GUI HTMLDOCS ICONV NLS P4 PCRE2 PERL \ - SEND_EMAIL SUBTREE SVN -OPTIONS_DEFAULT=CONTRIB CURL CVS GITWEB ICONV P4 PCRE2 PERL SEND_EMAIL \ +OPTIONS_DEFINE= CONTRIB CURL GITWEB GUI HTMLDOCS ICONV NLS PCRE2 PERL \ + SEND_EMAIL SUBTREE +OPTIONS_DEFAULT=CONTRIB CURL GITWEB ICONV PCRE2 PERL SEND_EMAIL \ SUBTREE + +.if ${SUBPORT} == core + .if ${FLAVOR:U} == gui OPTIONS_SLAVE+= GUI .elif ${FLAVOR:U} == lite -OPTIONS_EXCLUDE= GUI SVN GITWEB CONTRIB P4 CVS PERL -.elif ${FLAVOR:U} == svn -OPTIONS_SLAVE+= SVN +OPTIONS_EXCLUDE+= GUI GITWEB CONTRIB PERL .elif ${FLAVOR:U} == tiny OPTIONS_EXCLUDE:= ${OPTIONS_DEFINE:NCURL} OPTIONS_SLAVE= CURL .endif + OPTIONS_SUB= yes .if !empty(FLAVOR) && ${FLAVOR:U} != default @@ -91,10 +102,8 @@ CONTRIB_DESC= Install contributed scripts CURL_DESC= Install curl support (provides HTTPS transport) -CVS_DESC= Enable CVS support GITWEB_DESC= Install gitweb HTMLDOCS_DESC= Install additional documentation -P4_DESC= Enable Perforce support PCRE2_DESC= Use Perl Compatible Regular Expressions (v2) SEND_EMAIL_DESC=Enable the git-send-email(1) script SUBTREE_DESC= Install git-subtree @@ -132,17 +141,37 @@ GUI_MAKE_ARGS= TCL_PATH=${TCLSH} TCLTK_PATH=${WISH} GUI_MAKE_ARGS_OFF= NO_TCLTK=yes -SVN_RUN_DEPENDS= p5-Term-ReadKey>=0:devel/p5-Term-ReadKey + +SUBTREE_BUILD_DEPENDS= asciidoctor:textproc/rubygem-asciidoctor\ + xmlto:textproc/xmlto + + +.else + +OPTIONS_DEFINE= +OPTIONS_DEFAULT= + +USES+= perl5 +CONFIGURE_WITH+= perl=${PERL} +MAKE_ARGS+= NO_GETTEXT=yes NO_TCLTK=yes + +RUN_DEPENDS+= git=${PKGVERSION}:devel/git + +.if ${SUBPORT} == cvs +RUN_DEPENDS+= cvsps:devel/cvsps +.elif ${SUBPORT} == svn +RUN_DEPENDS+= p5-Term-ReadKey>=0:devel/p5-Term-ReadKey .if ${WITH_SUBVERSION_VER:U} == LTS -SVN_RUN_DEPENDS+= p5-subversion-lts>=0:devel/p5-subversion +RUN_DEPENDS+= p5-subversion-lts>=0:devel/p5-subversion .else -SVN_RUN_DEPENDS+= p5-subversion>=0:devel/p5-subversion +RUN_DEPENDS+= p5-subversion>=0:devel/p5-subversion +.endif + +.endif + .endif -SUBTREE_BUILD_DEPENDS= asciidoctor:textproc/rubygem-asciidoctor\ - xmlto:textproc/xmlto -CVS_RUN_DEPENDS= cvsps:devel/cvsps .include @@ -151,7 +180,7 @@ ALL_TARGET= all strip .endif -.if ${PORT_OPTIONS:MP4} || ${PORT_OPTIONS:MCONTRIB} +.if ${SUBPORT} == p4 || ${PORT_OPTIONS:MCONTRIB} USES+= python CONFIGURE_ARGS+= --with-python=${PYTHON_CMD} .else @@ -164,11 +193,15 @@ gitk.1 .endif -.if empty(PORT_OPTIONS:MSVN) +.if ${SUBPORT} != p4 +RMMAN1+= git-p4.1 +.endif + +.if ${SUBPORT} != svn RMMAN1+= git-svn.1 .endif -.if empty(PORT_OPTIONS:MCVS) +.if ${SUBPORT} != cvs RMMAN1+= git-cvsimport.1 \ git-cvsexportcommit.1 \ git-cvsserver.1 @@ -189,34 +222,35 @@ @${RM} ${WRKDIR}/man7/${FILE} .endfor @${REINPLACE_CMD} -e "s,%%SITE_PERL%%,${SITE_PERL},g" ${WRKSRC}/Makefile - -post-patch-CONTRIB-on: - @${REINPLACE_CMD} -e "s,/usr/bin/perl,${PERL}," \ - ${WRKSRC}/contrib/diff-highlight/Makefile - -post-patch-CVS-off: +.if ${SUBPORT} != cvs @${REINPLACE_CMD} -e '/git-cvsexportcommit.perl/d; \ /git-cvsimport.perl/d; \ /git-cvsserver.perl/d; \ /documented,gitcvs-migration/d; \ s/git-cvsserver//' \ ${WRKSRC}/Makefile - -post-patch-SVN-off: +.endif +.if ${SUBPORT} != p4 + @${REINPLACE_CMD} -e '/^SCRIPT_PYTHON += git-p4.py$$/d' ${WRKSRC}/Makefile +.endif +.if ${SUBPORT} != svn @${REINPLACE_CMD} -e '/git-svn.perl/d' ${WRKSRC}/Makefile +.endif + +post-patch-CONTRIB-on: + @${REINPLACE_CMD} -e "s,/usr/bin/perl,${PERL}," \ + ${WRKSRC}/contrib/diff-highlight/Makefile post-patch-GITWEB-off: @${REINPLACE_CMD} -e '/$$(MAKE) -C gitweb install/d' ${WRKSRC}/Makefile @${REINPLACE_CMD} -e "s,/usr/bin/perl,${PERL}," ${WRKSRC}/t/lib-gitweb.sh -post-patch-P4-off: - @${REINPLACE_CMD} -e '/^SCRIPT_PYTHON += git-p4.py$$/d' ${WRKSRC}/Makefile - -.if ${PORT_OPTIONS:MP4} || ${PORT_OPTIONS:MCONTRIB} +.if ${SUBPORT} == p4 || ${PORT_OPTIONS:MCONTRIB} post-build: @${FIND} ${WRKSRC} -name "*.bak" -delete .endif +.if ${SUBPORT} == core post-build-CONTRIB-on: ${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC}/contrib/diff-highlight ${RM} ${WRKSRC}/contrib/diff-highlight/shebang.perl @@ -253,12 +287,54 @@ ${MKDIR} ${STAGEDIR}${PREFIX}/share/git-core/contrib ${CP} -R ${WRKSRC}/contrib/* ${STAGEDIR}${PREFIX}/share/git-core/contrib -post-install-P4-on: - ${INSTALL_SCRIPT} ${WRKSRC}/git-p4.py ${STAGEDIR}${PREFIX}/bin/ - post-install-GITWEB-on: ${MKDIR} ${STAGEDIR}${ETCDIR} ${INSTALL_DATA} ${WRKDIR}/gitweb.conf \ ${STAGEDIR}${ETCDIR}/gitweb.conf.sample +.elif ${SUBPORT} == cvs + +PLIST= ${MASTERDIR}/pkg-plist.cvs + +do-install: + ${MKDIR} ${STAGEDIR}${PREFIX}/libexec/git-core + ${INSTALL_SCRIPT} ${WRKSRC}/git-cvsserver ${STAGEDIR}${PREFIX}/bin + ${INSTALL_SCRIPT} ${WRKSRC}/git-cvsexportcommit \ + ${STAGEDIR}${PREFIX}/libexec/git-core/ + ${INSTALL_SCRIPT} ${WRKSRC}/git-cvsimport \ + ${STAGEDIR}${PREFIX}/libexec/git-core/ + ${INSTALL_SCRIPT} ${WRKSRC}/git-cvsserver \ + ${STAGEDIR}${PREFIX}/libexec/git-core/ + ${INSTALL_DATA} ${WRKDIR}/man1/git-cvsimport.1 \ + ${STAGEDIR}${MANPREFIX}/man/man1/ + ${INSTALL_DATA} ${WRKDIR}/man1/git-cvsexportcommit.1 \ + ${STAGEDIR}${MANPREFIX}/man/man1/ + ${INSTALL_DATA} ${WRKDIR}/man1/git-cvsserver.1 \ + ${STAGEDIR}${MANPREFIX}/man/man1/ + ${INSTALL_DATA} ${WRKDIR}/man7/gitcvs-migration.7 \ + ${STAGEDIR}${MANPREFIX}/man/man7/ + +.elif ${SUBPORT} == p4 + +PLIST= ${MASTERDIR}/pkg-plist.p4 + +do-install: + ${MKDIR} ${STAGEDIR}${PREFIX}/libexec/git-core + ${INSTALL_SCRIPT} ${WRKSRC}/git-p4.py \ + ${STAGEDIR}${PREFIX}/libexec/git-core/git-p4 + ${INSTALL_DATA} ${WRKDIR}/man1/git-p4.1 \ + ${STAGEDIR}${MANPREFIX}/man/man1/ + +.elif ${SUBPORT} == svn + +PLIST= ${MASTERDIR}/pkg-plist.svn + +do-install: + ${MKDIR} ${STAGEDIR}${PREFIX}/libexec/git-core + ${INSTALL_SCRIPT} ${WRKSRC}/git-svn \ + ${STAGEDIR}${PREFIX}/libexec/git-core/ + ${INSTALL_DATA} ${WRKDIR}/man1/git-svn.1 \ + ${STAGEDIR}${MANPREFIX}/man/man1/ +.endif + .include Index: devel/git/pkg-descr-svn =================================================================== --- devel/git/pkg-descr-svn +++ /dev/null @@ -1,6 +0,0 @@ -Git is a free and open source distributed version control system designed to -handle everything from small to very large projects with speed and efficiency. - -This version provides a package with SVN option enabled. - -WWW: https://git-scm.com/ Index: devel/git/pkg-plist =================================================================== --- devel/git/pkg-plist +++ devel/git/pkg-plist @@ -1,6 +1,4 @@ bin/git -%%CVS%%bin/git-cvsserver -%%P4%%bin/git-p4.py bin/git-receive-pack bin/git-shell bin/git-upload-archive @@ -62,9 +60,6 @@ libexec/git-core/git-credential-cache libexec/git-core/git-credential-cache--daemon libexec/git-core/git-credential-store -%%CVS%%libexec/git-core/git-cvsexportcommit -%%CVS%%libexec/git-core/git-cvsimport -%%CVS%%libexec/git-core/git-cvsserver libexec/git-core/git-daemon libexec/git-core/git-describe libexec/git-core/git-diff @@ -127,7 +122,6 @@ libexec/git-core/git-multi-pack-index libexec/git-core/git-name-rev libexec/git-core/git-notes -%%P4%%libexec/git-core/git-p4 libexec/git-core/git-pack-objects libexec/git-core/git-pack-redundant libexec/git-core/git-pack-refs @@ -179,7 +173,6 @@ libexec/git-core/git-submodule libexec/git-core/git-submodule--helper %%SUBTREE%%libexec/git-core/git-subtree -%%SVN%%libexec/git-core/git-svn libexec/git-core/git-switch libexec/git-core/git-symbolic-ref libexec/git-core/git-tag @@ -254,9 +247,6 @@ man/man1/git-credential-cache.1.gz man/man1/git-credential-store.1.gz man/man1/git-credential.1.gz -%%CVS%%man/man1/git-cvsexportcommit.1.gz -%%CVS%%man/man1/git-cvsimport.1.gz -%%CVS%%man/man1/git-cvsserver.1.gz man/man1/git-daemon.1.gz man/man1/git-describe.1.gz man/man1/git-diff-files.1.gz @@ -311,7 +301,6 @@ man/man1/git-multi-pack-index.1.gz man/man1/git-name-rev.1.gz man/man1/git-notes.1.gz -man/man1/git-p4.1.gz man/man1/git-pack-objects.1.gz man/man1/git-pack-redundant.1.gz man/man1/git-pack-refs.1.gz @@ -357,7 +346,6 @@ man/man1/git-stripspace.1.gz man/man1/git-submodule.1.gz %%SUBTREE%%man/man1/git-subtree.1.gz -%%SVN%%man/man1/git-svn.1.gz man/man1/git-switch.1.gz man/man1/git-symbolic-ref.1.gz man/man1/git-tag.1.gz @@ -389,7 +377,6 @@ man/man7/gitcli.7.gz man/man7/gitcore-tutorial.7.gz man/man7/gitcredentials.7.gz -%%CVS%%man/man7/gitcvs-migration.7.gz man/man7/gitdiffcore.7.gz man/man7/giteveryday.7.gz man/man7/gitfaq.7.gz Index: devel/git/pkg-plist.cvs =================================================================== --- /dev/null +++ devel/git/pkg-plist.cvs @@ -0,0 +1,8 @@ +bin/git-cvsserver +libexec/git-core/git-cvsexportcommit +libexec/git-core/git-cvsimport +libexec/git-core/git-cvsserver +man/man1/git-cvsexportcommit.1.gz +man/man1/git-cvsimport.1.gz +man/man1/git-cvsserver.1.gz +man/man7/gitcvs-migration.7.gz Index: devel/git/pkg-plist.p4 =================================================================== --- /dev/null +++ devel/git/pkg-plist.p4 @@ -0,0 +1,2 @@ +libexec/git-core/git-p4 +man/man1/git-p4.1.gz Index: devel/git/pkg-plist.svn =================================================================== --- /dev/null +++ devel/git/pkg-plist.svn @@ -0,0 +1,2 @@ +libexec/git-core/git-svn +man/man1/git-svn.1.gz