Index: print/miktex/Makefile =================================================================== --- /dev/null +++ print/miktex/Makefile @@ -0,0 +1,48 @@ +# $FreeBSD$ + +PORTNAME= miktex +PORTVERSION= 2.9.6930 +CATEGORIES= print +MASTER_SITES= http://ctan.org/tex-archive/systems/win32/miktex/tm/packages/:bootstrap +DISTFILES= miktex-fontconfig.tar.lzma:bootstrap \ + miktex-dvips.tar.lzma:bootstrap \ + tetex.tar.lzma:bootstrap \ + miktex-zzdb1-2.9.tar.lzma:bootstrap \ + miktex-zzdb3-2.9.tar.lzma:bootstrap \ + miktex-config-2.9.tar.lzma:bootstrap \ + miktex-misc.tar.lzma:bootstrap +EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} + +MAINTAINER= arrowd@FreeBSD.org +COMMENT= Implementation of TeX/LaTeX + +#LICENSE= ??? + +LIB_DEPENDS= libapr-1.so:devel/apr1 \ + libfribidi.so:converters/fribidi \ + libgd.so:graphics/gd \ + libharfbuzz.so:print/harfbuzz \ + libharfbuzz-icu.so:print/harfbuzz-icu \ + libhunspell-1.6.so:textproc/hunspell \ + liblog4cxx.so:devel/log4cxx \ + libmpfr.so:math/mpfr \ + libmspack.so:archivers/libmspack \ + libpopt.so:devel/popt \ + liburiparser.so:net/uriparser \ + libzzip.so:devel/zziplib + +USES= bison cmake:noninja gmake gnome pkgconfig qt:5 + +USE_GITHUB= yes +GH_ACCOUNT= MiKTeX + +USE_GNOME= libxslt +USE_QT= buildtools_build core concurrent gui printsupport script scripttools uitools qmake_build xml + +post-extract: + ${MKDIR} ${BUILD_WRKSRC} +. for f in ${DISTFILES:M*bootstrap} + ${CP} ${DISTDIR}/${f:S/:bootstrap//} ${BUILD_WRKSRC} +. endfor + +.include Index: print/miktex/distinfo =================================================================== --- /dev/null +++ print/miktex/distinfo @@ -0,0 +1,17 @@ +TIMESTAMP = 1547748024 +SHA256 (miktex-fontconfig.tar.lzma) = 7711ffd2220bdd29e30925cb18070d4dbe5c1896f9010995fc96c7e4270f1dd9 +SIZE (miktex-fontconfig.tar.lzma) = 3555 +SHA256 (miktex-dvips.tar.lzma) = 78941d2e161eb4d957032ca2183fc94430377efd016c02f05ed35f47190b33ba +SIZE (miktex-dvips.tar.lzma) = 4195 +SHA256 (tetex.tar.lzma) = 0c4d68ebaaf6485c71c6e61e091b859fa2f5b819f6e881678def5bfea79597a4 +SIZE (tetex.tar.lzma) = 13084 +SHA256 (miktex-zzdb1-2.9.tar.lzma) = c8e047390011758c7b68489d3eed6fc1f2965e405be52e39250049c6a3318266 +SIZE (miktex-zzdb1-2.9.tar.lzma) = 183966 +SHA256 (miktex-zzdb3-2.9.tar.lzma) = a668bdca3a2da175fbb05ed0bfc95f8b74830650bf8fd2ebd287e351367df742 +SIZE (miktex-zzdb3-2.9.tar.lzma) = 988218 +SHA256 (miktex-config-2.9.tar.lzma) = 901aedec375a144ef998b30925e6f6feb4d1167b1a258b5e18466991cc6b9b5f +SIZE (miktex-config-2.9.tar.lzma) = 4956 +SHA256 (miktex-misc.tar.lzma) = 929dfb864bf986e101d1044b71e204cbeba420a64129dffdafbb8c0a4fe520cb +SIZE (miktex-misc.tar.lzma) = 22057 +SHA256 (MiKTeX-miktex-2.9.6930_GH0.tar.gz) = e086377047c938c013708afb60d75fc08d0e3444a158fc81a85503ff0dab0f70 +SIZE (MiKTeX-miktex-2.9.6930_GH0.tar.gz) = 39428219 Index: print/miktex/files/patch-freebsd-support.diff =================================================================== --- /dev/null +++ print/miktex/files/patch-freebsd-support.diff @@ -0,0 +1,209 @@ +diff --git Libraries/MiKTeX/Core/Process/unx/unxProcess.cpp Libraries/MiKTeX/Core/Process/unx/unxProcess.cpp +index 80254c09..e71c3d0d 100644 +--- Libraries/MiKTeX/Core/Process/unx/unxProcess.cpp ++++ Libraries/MiKTeX/Core/Process/unx/unxProcess.cpp +@@ -30,6 +30,17 @@ + # include + #endif + ++#if defined(__FreeBSD__) ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++#endif ++ + #include + + #include +@@ -624,6 +635,44 @@ string unxProcess::get_ProcessName() + MIKTEX_FATAL_CRT_ERROR("proc_pidpath") + } + return PathName(path).GetFileName().ToString(); ++#elif defined(__FreeBSD__) ++ std::string nameFromProcstat; ++ kvm_t *kvm = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, ""); ++ if (kvm) ++ { ++ int cnt; ++ struct kinfo_proc *kp = kvm_getprocs(kvm, KERN_PROC_PID, pid, &cnt); ++ if (kp) ++ { ++ struct procstat *ps = procstat_open_sysctl(); ++ char **argv = procstat_getargv(ps, kp, 0); ++ if (argv != nullptr && argv[0] != nullptr) ++ nameFromProcstat = std::string(argv[0]); ++ procstat_close(ps); ++ } ++ kvm_close(kvm); ++ } ++ ++ if (!nameFromProcstat.empty()) ++ { ++ return std::string(std::find_if(nameFromProcstat.rbegin(), nameFromProcstat.rend(), ++ [](char c) {return c == '\\' || c == '/'; }) ++ .base(), nameFromProcstat.end()); ++ } ++ ++ struct kinfo_proc kp; ++ int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, (int)pid }; ++ size_t len = sizeof(kp); ++ u_int mib_len = sizeof(mib)/sizeof(u_int); ++ ++ if (sysctl(mib, mib_len, &kp, &len, NULL, 0) < 0) ++ MIKTEX_FATAL_CRT_ERROR("get_ProcessName:sysctl"); ++ ++ if (kp.ki_pid != pid) ++ MIKTEX_FATAL_CRT_ERROR("get_ProcessName: ki_pid != pid"); ++ ++ return std::string(kp.ki_comm); ++ + #else + #error Unimplemented: unxProcess::get_ProcessName() + #endif +@@ -706,6 +755,37 @@ ProcessInfo unxProcess::GetProcessInfo() + break; + } + processInfo.parent = pbi.pbi_ppid; ++#elif defined(__FreeBSD__) ++ processInfo.parent = getppid(); ++ ++ kvm_t *kvm = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, ""); ++ if (kvm) ++ { ++ int cnt; ++ struct kinfo_proc *kp = kvm_getprocs(kvm, KERN_PROC_PID, pid, &cnt); ++ if (kp) ++ { ++ switch (kp->ki_stat) ++ { ++ case SRUN: ++ processInfo.status = ProcessStatus::Runnable; ++ break; ++ case SSLEEP: ++ processInfo.status = ProcessStatus::Sleeping; ++ break; ++ case SSTOP: ++ processInfo.status = ProcessStatus::Stoped; ++ break; ++ case SZOMB: ++ processInfo.status = ProcessStatus::Zombie; ++ break; ++ default: ++ processInfo.status = ProcessStatus::Other; ++ break; ++ } ++ } ++ kvm_close(kvm); ++ } + #else + #error Unimplemented: unxProcess::GetProcessInfo() + #endif +diff --git Libraries/MiKTeX/Core/shared/CMakeLists.txt Libraries/MiKTeX/Core/shared/CMakeLists.txt +index 08aaad87..de2ef8d8 100644 +--- Libraries/MiKTeX/Core/shared/CMakeLists.txt ++++ Libraries/MiKTeX/Core/shared/CMakeLists.txt +@@ -1,17 +1,17 @@ + ## CMakeLists.txt -*- CMake -*- + ## + ## Copyright (C) 2006-2018 Christian Schenk +-## ++## + ## This file is free software; you can redistribute it and/or modify + ## it under the terms of the GNU General Public License as published + ## by the Free Software Foundation; either version 2, or (at your + ## option) any later version. +-## ++## + ## This file is distributed in the hope that it will be useful, but + ## WITHOUT ANY WARRANTY; without even the implied warranty of + ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ## General Public License for more details. +-## ++## + ## You should have received a copy of the GNU General Public License + ## along with this file; if not, write to the Free Software + ## Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +@@ -65,7 +65,7 @@ set_shared_library_version( + ${MIKTEX_COMP_INTERFACE_VERSION} + ${MIKTEX_COMP_J2000_VERSION} + ) +- ++ + target_compile_definitions(${core_dll_name} + PUBLIC + -DMIKTEX_CORE_SHARED +@@ -129,6 +129,14 @@ if(MIKTEX_NATIVE_WINDOWS) + endif() + endif() + ++if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) ++ target_link_libraries(${core_dll_name} ++ PUBLIC ++ kvm ++ procstat ++ ) ++endif() ++ + if(USE_SYSTEM_OPENSSL_CRYPTO) + target_link_libraries(${core_dll_name} PRIVATE MiKTeX::Imported::OPENSSL::CRYPTO) + elseif(WITH_LIBRESSL_CRYPTO) +diff --git Libraries/MiKTeX/Core/static/CMakeLists.txt Libraries/MiKTeX/Core/static/CMakeLists.txt +index 4d38a307..dc5047a4 100644 +--- Libraries/MiKTeX/Core/static/CMakeLists.txt ++++ Libraries/MiKTeX/Core/static/CMakeLists.txt +@@ -1,17 +1,17 @@ + ## CMakeLists.txt -*- CMake -*- + ## + ## Copyright (C) 2006-2018 Christian Schenk +-## ++## + ## This file is free software; you can redistribute it and/or modify + ## it under the terms of the GNU General Public License as published + ## by the Free Software Foundation; either version 2, or (at your + ## option) any later version. +-## ++## + ## This file is distributed in the hope that it will be useful, but + ## WITHOUT ANY WARRANTY; without even the implied warranty of + ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ## General Public License for more details. +-## ++## + ## You should have received a copy of the GNU General Public License + ## along with this file; if not, write to the Free Software + ## Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +@@ -93,6 +93,14 @@ if(MIKTEX_NATIVE_WINDOWS) + endif() + endif() + ++if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) ++ target_link_libraries(${core_lib_name} ++ PUBLIC ++ kvm ++ procstat ++ ) ++endif() ++ + if(USE_SYSTEM_OPENSSL_CRYPTO) + target_link_libraries(${core_lib_name} PUBLIC MiKTeX::Imported::OPENSSL::CRYPTO) + elseif(WITH_LIBRESSL_CRYPTO) +diff --git Libraries/MiKTeX/Extractor/CabExtractor.cpp Libraries/MiKTeX/Extractor/CabExtractor.cpp +index 4bd31976..d50cf5af 100644 +--- Libraries/MiKTeX/Extractor/CabExtractor.cpp ++++ Libraries/MiKTeX/Extractor/CabExtractor.cpp +@@ -25,6 +25,10 @@ + #include + #endif + ++#ifdef __FreeBSD__ ++#include ++#endif ++ + #include + #include + Index: print/miktex/pkg-descr =================================================================== --- /dev/null +++ print/miktex/pkg-descr @@ -0,0 +1,5 @@ +MiKTeX is a cross-platform implementation of TeX/LaTeX and related programs. +Its main features include an integrated package manager that installs missing +components from the Internet, if required. + +WWW: https://miktex.org Index: print/miktex/pkg-plist =================================================================== --- /dev/null +++ print/miktex/pkg-plist @@ -0,0 +1,200 @@ +bin/cjklatex +bin/findtexmf +bin/gsf2pk +bin/initexmf +bin/md5walk +bin/miktex-afm2tfm +bin/miktex-autosp +bin/miktex-axohelp +bin/miktex-bg5conv +bin/miktex-bibtex +bin/miktex-bibtex8 +bin/miktex-bibtexu +bin/miktex-cef5conv +bin/miktex-cefconv +bin/miktex-cefsconv +bin/miktex-chktex +bin/miktex-console +bin/miktex-ctangle +bin/miktex-cweave +bin/miktex-devnag +bin/miktex-dvicopy +bin/miktex-dvipdfmx +bin/miktex-dvipdft +bin/miktex-dvipng +bin/miktex-dvips +bin/miktex-dvisvgm +bin/miktex-dvitype +bin/miktex-epsffit +bin/miktex-epstopdf +bin/miktex-extconv +bin/miktex-fribidixetex +bin/miktex-gftodvi +bin/miktex-gftopk +bin/miktex-gftype +bin/miktex-gregorio +bin/miktex-hbf2gf +bin/miktex-kpsewhich +bin/miktex-lacheck +bin/miktex-lua +bin/miktex-lua53tex +bin/miktex-luac +bin/miktex-luatex +bin/miktex-makebase +bin/miktex-makefmt +bin/miktex-makeindex +bin/miktex-makemf +bin/miktex-makepk +bin/miktex-maketfm +bin/miktex-mf +bin/miktex-mft +bin/miktex-mkocp +bin/miktex-mpost +bin/miktex-odvicopy +bin/miktex-ofm2opl +bin/miktex-omega +bin/miktex-opl2ofm +bin/miktex-otp2ocp +bin/miktex-outocp +bin/miktex-ovf2ovp +bin/miktex-ovp2ovf +bin/miktex-pdfdetach +bin/miktex-pdffonts +bin/miktex-pdfimages +bin/miktex-pdfinfo +bin/miktex-pdfseparate +bin/miktex-pdftex +bin/miktex-pdftocairo +bin/miktex-pdftohtml +bin/miktex-pdftoppm +bin/miktex-pdftops +bin/miktex-pdftosrc +bin/miktex-pdftotext +bin/miktex-pdfunite +bin/miktex-pk2bm +bin/miktex-pltotf +bin/miktex-pmxab +bin/miktex-pooltype +bin/miktex-prepmx +bin/miktex-ps2pk +bin/miktex-psbook +bin/miktex-psnup +bin/miktex-psresize +bin/miktex-psselect +bin/miktex-pstops +bin/miktex-rebar +bin/miktex-scor2prt +bin/miktex-sjisconv +bin/miktex-t4ht +bin/miktex-tangle +bin/miktex-tex +bin/miktex-tex4ht +bin/miktex-texworks +bin/miktex-tftopl +bin/miktex-tie +bin/miktex-ttf2afm +bin/miktex-ttf2pk +bin/miktex-ttf2tfm +bin/miktex-vftovp +bin/miktex-vptovf +bin/miktex-weave +bin/miktex-xetex +bin/miktexsetup +bin/miktexsetup_standalone +bin/mkfntmap +bin/mpm +bin/mthelp +bin/padout +bin/tdsutil +bin/texify +lib/libMiKTeX209-app.so +lib/libMiKTeX209-app.so.4 +lib/libMiKTeX209-app.so.4.27.18 +lib/libMiKTeX209-core.so +lib/libMiKTeX209-core.so.10 +lib/libMiKTeX209-core.so.10.27.32 +lib/libMiKTeX209-extractor.so +lib/libMiKTeX209-extractor.so.1 +lib/libMiKTeX209-extractor.so.1.26.226 +lib/libMiKTeX209-fmt.so +lib/libMiKTeX209-fmt.so.1 +lib/libMiKTeX209-fmt.so.1.25.101 +lib/libMiKTeX209-kpathsea.so +lib/libMiKTeX209-kpathsea.so.2 +lib/libMiKTeX209-kpathsea.so.2.27.18 +lib/libMiKTeX209-lua52.so +lib/libMiKTeX209-lua52.so.1 +lib/libMiKTeX209-lua52.so.1.25.129 +lib/libMiKTeX209-lua53.so +lib/libMiKTeX209-lua53.so.1 +lib/libMiKTeX209-lua53.so.1.25.194 +lib/libMiKTeX209-md5.so +lib/libMiKTeX209-md5.so.1 +lib/libMiKTeX209-md5.so.1.24.156 +lib/libMiKTeX209-metapost.so +lib/libMiKTeX209-packagemanager.so +lib/libMiKTeX209-packagemanager.so.5 +lib/libMiKTeX209-packagemanager.so.5.27.26 +lib/libMiKTeX209-poppler-Qt.so +lib/libMiKTeX209-poppler-Qt.so.1 +lib/libMiKTeX209-poppler-Qt.so.2.9 +lib/libMiKTeX209-poppler.so +lib/libMiKTeX209-poppler.so.1 +lib/libMiKTeX209-poppler.so.1.25.106 +lib/libMiKTeX209-setup.so +lib/libMiKTeX209-setup.so.4 +lib/libMiKTeX209-setup.so.4.27.29 +lib/libMiKTeX209-teckit.so +lib/libMiKTeX209-teckit.so.1 +lib/libMiKTeX209-teckit.so.1.26.214 +lib/libMiKTeX209-texmf.so +lib/libMiKTeX209-texmf.so.3 +lib/libMiKTeX209-texmf.so.3.26.239 +lib/libMiKTeX209-trace.so +lib/libMiKTeX209-trace.so.2 +lib/libMiKTeX209-trace.so.2.26.226 +lib/libMiKTeX209-ui-Qt.so +lib/libMiKTeX209-ui-Qt.so.1 +lib/libMiKTeX209-ui-Qt.so.1.27.28 +lib/libMiKTeX209-util.so +lib/libMiKTeX209-util.so.1 +lib/libMiKTeX209-util.so.1.27.0 +lib/libMiKTeX209-web2c.so +lib/libMiKTeX209-web2c.so.1 +lib/libMiKTeX209-web2c.so.1.25.40 +libexec/miktex/runjava +libexec/miktex/runperl +libexec/miktex/runpython +libexec/miktex/runsh +libexec/miktex/runtexlua +libexec/miktex/runtexlua53 +libexec/miktex/tex2xindy +man/man1/findtexmf.1.gz +man/man1/initexmf.1.gz +man/man1/miktex-bibtex.1.gz +man/man1/miktex-dvicopy.1.gz +man/man1/miktex-dvips.1.gz +man/man1/miktex-gftodvi.1.gz +man/man1/miktex-luatex.1.gz +man/man1/miktex-mf.1.gz +man/man1/miktex-mpost.1.gz +man/man1/miktex-pdftex.1.gz +man/man1/miktex-tex.1.gz +man/man1/miktex-xetex.1.gz +man/man1/mpm.1.gz +man/man1/mthelp.1.gz +man/man1/texify.1.gz +man/man5/pdftex.cfg.5.gz +man/man5/updmap.cfg.5.gz +share/applications/icons/hicolor/128x128/apps/miktex-console.png +share/applications/icons/hicolor/32x32/apps/miktex-console.png +share/applications/miktex-console.desktop +%%DATADIR%%-texmf/miktex/bootstrapping/miktex-config-2.9.tar.lzma +%%DATADIR%%-texmf/miktex/bootstrapping/miktex-dvips.tar.lzma +%%DATADIR%%-texmf/miktex/bootstrapping/miktex-fontconfig.tar.lzma +%%DATADIR%%-texmf/miktex/bootstrapping/miktex-misc.tar.lzma +%%DATADIR%%-texmf/miktex/bootstrapping/miktex-zzdb1-2.9.tar.lzma +%%DATADIR%%-texmf/miktex/bootstrapping/miktex-zzdb3-2.9.tar.lzma +%%DATADIR%%-texmf/miktex/bootstrapping/tetex.tar.lzma +share/pixmaps/miktex-console.png +share/polkit-1/actions/miktex-console.policy