diff --git a/biology/ucsc-userapps/Makefile b/biology/ucsc-userapps/Makefile index c7e44cc879ed..da61329ba20b 100644 --- a/biology/ucsc-userapps/Makefile +++ b/biology/ucsc-userapps/Makefile @@ -1,75 +1,78 @@ # Created by: J. Bacon PORTNAME= ucsc-userapps DISTVERSION= 414 +PORTREVISION= 1 CATEGORIES= biology perl5 python MASTER_SITES= http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/ DISTNAME= userApps.v${PORTVERSION}.src MAINTAINER= jwb@FreeBSD.org COMMENT= Command line tools from the UCSC Genome Browser project LICENSE= UCSC-GB LICENSE_NAME= UCSC Genome Browser License LICENSE_TEXT= Some tools installed by this port require a license for\ commercial use.\n\nContact UCSC directly if you are using\ these tools for commercial purposes.\n\nSee\ https://genome.ucsc.edu/license/ for full terms. LICENSE_PERMS= no-dist-mirror no-dist-sell no-pkg-mirror no-pkg-sell ONLY_FOR_ARCHS= amd64 ONLY_FOR_ARCHS_REASON= _mm_popcnt_u64 BUILD_DEPENDS= bash:shells/bash LIB_DEPENDS= libiconv.so:converters/libiconv \ libmysqlclient.so:databases/mysql57-client \ libpng.so:graphics/png RUN_DEPENDS= bash:shells/bash USES= gmake localbase:ldflags shebangfix perl5 python:3.6+ ssl tar:tgz RESTRICTED= Redistribution is limited, see license SHEBANG_FILES= kent/src/checkUmask.sh \ kent/src/utils/bigHeat \ kent/src/utils/chromToUcsc/chromToUcsc \ kent/src/utils/tdbRename \ kent/src/utils/tdbSort \ kent/src/utils/trackDbIndexBb/trackDbIndexBb \ kent/src/utils/ucscApiClient \ kent/src/utils/webSync WRKSRC= ${WRKDIR}/userApps CFLAGS+= -fcommon MAKEFILE= [Mm]akefile MAKE_ENV= BINDIR=${WRKSRC}/bin SUB_FILES= ucsc-shell # Build mostly non-commercial tools. There is some leakage of proprietary # code from the libraries per conversation with UCSC. Work to resolve this # is ongoing. do-build: @${MV} ${WRKSRC}/kent/src/inc/uuid.h ${WRKSRC}/kent/src/inc/my_uuid.h @${MKDIR} ${WRKSRC}/bin @(cd ${WRKSRC}/kent/src/lib && ${DO_MAKE_BUILD}) @(cd ${WRKSRC}/kent/src/htslib && ${DO_MAKE_BUILD}) @(cd ${WRKSRC}/kent/src/jkOwnLib && ${DO_MAKE_BUILD}) @(cd ${WRKSRC}/kent/src/hg/lib && ${DO_MAKE_BUILD}) @(cd ${WRKSRC}/kent/src/utils && ${DO_MAKE_BUILD}) + ${CC} -DUCSC_PREFIX="\"${PREFIX}/userapps\"" ${FILESDIR}/kent.c -o ${WRKDIR}/kent do-install: @${MKDIR} ${WRKSRC}/scripts ${WRKSRC}/binaries @${CP} $$(file ${WRKSRC}/bin/* | fgrep ELF | cut -d : -f 1) \ ${WRKSRC}/binaries @${CP} $$(file ${WRKSRC}/bin/* | fgrep -v ELF | cut -d : -f 1) \ ${WRKSRC}/scripts @${MKDIR} ${STAGEDIR}${PREFIX}/userapps/bin ${INSTALL_PROGRAM} ${WRKSRC}/binaries/* \ ${STAGEDIR}${PREFIX}/userapps/bin ${INSTALL_SCRIPT} ${WRKSRC}/scripts/* \ ${STAGEDIR}${PREFIX}/userapps/bin ${INSTALL_SCRIPT} ${WRKDIR}/ucsc-shell \ ${STAGEDIR}${PREFIX}/bin + ${INSTALL_PROGRAM} ${WRKDIR}/kent ${STAGEDIR}${LOCALBASE}/bin .include diff --git a/biology/ucsc-userapps/files/kent.c b/biology/ucsc-userapps/files/kent.c new file mode 100644 index 000000000000..f1c8887068f5 --- /dev/null +++ b/biology/ucsc-userapps/files/kent.c @@ -0,0 +1,59 @@ +/*************************************************************************** + * Description: + * Wrapper to turn ucsc kent commands into subcommands. The kent suite + * contains executables that conflict with multiple other software + * packages and therefore cannot be safely installed directly under a + * standard prefix. This wrapper can be installed under the standard + * PATH and used to to execute kent commands installed under a + * private prefix, without altering PATH, activating a special + * environment, opening a container, etc. This sub-command paradigm + * is already familiar to bioinformaticians thanks to other suites + * like samtools, bedtools, etc. + * + * Example: + * + * kent bigWigToBedGraph args + * + * instead of one of the following: + * + * prefix/bin/bigWigToBedGraph args + * + * env PATH=prefix/bin:$PATH bigWigToBedGraph args + * + * conda activate kent + * bigWigToBedGraph args + * + * Arguments: + * The full kent utils command you would use if it were in PATH. + * + * Compile with UCSC_PREFIX set to the parent of the bin directory + * containing the kent binaries. + * + * History: + * Date Name Modification + * 2021-09-13 Jason Bacon Begin + ***************************************************************************/ + +#include +#include +#include +#include + +#ifndef UCSC_PREFIX +#define UCSC_PREFIX "/usr/local/userapps" +#endif + +int main(int argc,char *argv[]) + +{ + char cmd[PATH_MAX + 1]; + + if ( argc < 2 ) + { + fprintf(stderr, "Usage: %s UCSC-userapps-command [args]\n", argv[0]); + return EX_USAGE; + } + + snprintf(cmd, PATH_MAX, "%s/bin/%s", UCSC_PREFIX, argv[1]); + execv(cmd, argv + 1); +} diff --git a/biology/ucsc-userapps/pkg-plist b/biology/ucsc-userapps/pkg-plist index e8304be64af2..f8605fc771d0 100644 --- a/biology/ucsc-userapps/pkg-plist +++ b/biology/ucsc-userapps/pkg-plist @@ -1,136 +1,137 @@ +bin/kent bin/ucsc-shell userapps/bin/aNotB userapps/bin/addCols userapps/bin/ave userapps/bin/aveCols userapps/bin/bamToPsl userapps/bin/bedClip userapps/bin/bedCommonRegions userapps/bin/bedGeneParts userapps/bin/bedGraphPack userapps/bin/bedGraphToBigWig userapps/bin/bedJoinTabOffset userapps/bin/bedPileUps userapps/bin/bedRemoveOverlap userapps/bin/bedRestrictToPositions userapps/bin/bedToBigBed userapps/bin/bigBedInfo userapps/bin/bigBedNamedItems userapps/bin/bigBedSummary userapps/bin/bigBedToBed userapps/bin/bigWigAverageOverBed userapps/bin/bigWigCat userapps/bin/bigWigCluster userapps/bin/bigWigCorrelate userapps/bin/bigWigInfo userapps/bin/bigWigMerge userapps/bin/bigWigSummary userapps/bin/bigWigToBedGraph userapps/bin/bigWigToWig userapps/bin/calc userapps/bin/catDir userapps/bin/catUncomment userapps/bin/ccCp userapps/bin/chopFaLines userapps/bin/clusterMatrixToBarChartBed userapps/bin/colTransform userapps/bin/convolve userapps/bin/countChars userapps/bin/cpg_lh userapps/bin/detab userapps/bin/dnsInfo userapps/bin/endsInLf userapps/bin/faAlign userapps/bin/faCmp userapps/bin/faCount userapps/bin/faFilter userapps/bin/faFilterN userapps/bin/faFlyBaseToUcsc userapps/bin/faFrag userapps/bin/faGapLocs userapps/bin/faGapSizes userapps/bin/faNcbiToUcsc userapps/bin/faNoise userapps/bin/faOneRecord userapps/bin/faPolyASizes userapps/bin/faRandomize userapps/bin/faRc userapps/bin/faRenameRecords userapps/bin/faSimplify userapps/bin/faSize userapps/bin/faSomeRecords userapps/bin/faSplit userapps/bin/faToFastq userapps/bin/faToNib userapps/bin/faToTab userapps/bin/faToTwoBit userapps/bin/faTrans userapps/bin/faTrimPolyA userapps/bin/faTrimRead userapps/bin/fastqStatsAndSubsample userapps/bin/fastqToFa userapps/bin/findMotif userapps/bin/fixCr userapps/bin/gapSplit userapps/bin/gffPeek userapps/bin/git-reports userapps/bin/gmtime userapps/bin/headRest userapps/bin/htmlCheck userapps/bin/htmlPics userapps/bin/jkUniq userapps/bin/lineCount userapps/bin/linesToRa userapps/bin/localtime userapps/bin/mktime userapps/bin/newProg userapps/bin/newPythonProg userapps/bin/nibFrag userapps/bin/nibSize userapps/bin/nt4Frag userapps/bin/paraFetch userapps/bin/paraSync userapps/bin/pslLiftSubrangeBlat userapps/bin/pslPosTarget userapps/bin/pslRemoveFrameShifts userapps/bin/pslScore userapps/bin/pslToPslx userapps/bin/pslToXa userapps/bin/raSqlQuery userapps/bin/raToLines userapps/bin/raToTab userapps/bin/randomLines userapps/bin/rmFaDups userapps/bin/rowsToCols userapps/bin/scaffoldFaToAgp userapps/bin/scrambleFa userapps/bin/sizeof userapps/bin/spacedToTab userapps/bin/splitFile userapps/bin/splitFileByColumn userapps/bin/strexCalc userapps/bin/stringify userapps/bin/subChar userapps/bin/subColumn userapps/bin/subs userapps/bin/tableSum userapps/bin/tailLines userapps/bin/textHist2 userapps/bin/textHistogram userapps/bin/tickToDate userapps/bin/toLower userapps/bin/toUpper userapps/bin/trackDbIndexBb userapps/bin/twoBitDup userapps/bin/twoBitInfo userapps/bin/twoBitToFa userapps/bin/udcCleanup userapps/bin/undupFa userapps/bin/upper userapps/bin/vcfFilter userapps/bin/venn userapps/bin/verticalSplitSqlTable userapps/bin/weedLines userapps/bin/wigCorrelate userapps/bin/wigToBigWig userapps/bin/wordLine