mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-27 05:43:50 +03:00
Add texmacsDarwin
This commit is contained in:
parent
1d6f3ea265
commit
41991e09ad
68
pkgs/applications/editors/texmacs/common.nix
Normal file
68
pkgs/applications/editors/texmacs/common.nix
Normal file
@ -0,0 +1,68 @@
|
||||
{ stdenv, fetchurl, tex, extraFonts, chineseFonts, japaneseFonts, koreanFonts }:
|
||||
rec {
|
||||
extraFontsSrc = fetchurl {
|
||||
url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-extra-fonts-1.0-noarch.tar.gz";
|
||||
sha256 = "0hylgjmd95y9yahbblmawkkw0i71vb145xxv2xqrmff81301n6k7";
|
||||
};
|
||||
|
||||
fullFontsSrc = fetchurl {
|
||||
url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-windows-fonts-1.0-noarch.tar.gz";
|
||||
sha256 = "1yxzjpqpm7kvx0ly5jmfpzlfhsh41b0ibn1v84qv6xy73r2vis2f";
|
||||
};
|
||||
|
||||
chineseFontsSrc = fetchurl {
|
||||
url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-chinese-fonts.tar.gz";
|
||||
sha256 = "0yprqjsx5mfsaxr525mcm3xqwcadzxp14njm38ir1325baada2fp";
|
||||
};
|
||||
|
||||
japaneseFontsSrc = fetchurl {
|
||||
url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-japanese-fonts.tar.gz";
|
||||
sha256 = "1dn6zvsa7gk59d61xicwpbapab3rm6kz48rp5w1bhmihxixw21jn";
|
||||
};
|
||||
|
||||
koreanFontsSrc = fetchurl {
|
||||
url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-korean-fonts.tar.gz";
|
||||
sha256 = "07axg57mqm3jbnm4lawx0h3r2h56xv9acwzjppryfklw4c27f5hh";
|
||||
};
|
||||
|
||||
postPatch = (if tex == null then ''
|
||||
gunzip < ${fullFontsSrc} | (cd TeXmacs && tar xvf -)
|
||||
'' else if extraFonts then ''
|
||||
gunzip < ${extraFontsSrc} | (cd TeXmacs && tar xvf -)
|
||||
'' else "") +
|
||||
(if chineseFonts then ''
|
||||
gunzip < ${chineseFontsSrc} | (cd TeXmacs && tar xvf -)
|
||||
'' else "") +
|
||||
(if japaneseFonts then ''
|
||||
gunzip < ${japaneseFontsSrc} | (cd TeXmacs && tar xvf -)
|
||||
'' else "") +
|
||||
(if koreanFonts then ''
|
||||
gunzip < ${koreanFontsSrc} | (cd TeXmacs && tar xvf -)
|
||||
'' else "");
|
||||
|
||||
|
||||
meta = {
|
||||
description = "WYSIWYW editing platform with special features for scientists";
|
||||
longDescription =
|
||||
'' GNU TeXmacs is a free wysiwyw (what you see is what you want)
|
||||
editing platform with special features for scientists. The software
|
||||
aims to provide a unified and user friendly framework for editing
|
||||
structured documents with different types of content (text,
|
||||
graphics, mathematics, interactive content, etc.). The rendering
|
||||
engine uses high-quality typesetting algorithms so as to produce
|
||||
professionally looking documents, which can either be printed out or
|
||||
presented from a laptop.
|
||||
|
||||
The software includes a text editor with support for mathematical
|
||||
formulas, a small technical picture editor and a tool for making
|
||||
presentations from a laptop. Moreover, TeXmacs can be used as an
|
||||
interface for many external systems for computer algebra, numerical
|
||||
analysis, statistics, etc. New presentation styles can be written
|
||||
by the user and new features can be added to the editor using the
|
||||
Scheme extension language. A native spreadsheet and tools for
|
||||
collaborative authoring are planned for later.
|
||||
'';
|
||||
homepage = http://texmacs.org/;
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
};
|
||||
}
|
59
pkgs/applications/editors/texmacs/darwin.nix
Normal file
59
pkgs/applications/editors/texmacs/darwin.nix
Normal file
@ -0,0 +1,59 @@
|
||||
{ stdenv, callPackage, fetchurl, makeWrapper,
|
||||
guile_1_8, qt4, zlib, freetype, CoreFoundation, Cocoa, gettext, libiconv, ghostscript,
|
||||
tex ? null,
|
||||
aspell ? null,
|
||||
netpbm ? null,
|
||||
imagemagick ? null,
|
||||
extraFonts ? false,
|
||||
chineseFonts ? false,
|
||||
japaneseFonts ? false,
|
||||
koreanFonts ? false }:
|
||||
let
|
||||
version = "1.99.4";
|
||||
common = callPackage ./common.nix {
|
||||
inherit tex extraFonts chineseFonts japaneseFonts koreanFonts;
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "TeXmacs-${version}";
|
||||
|
||||
src= fetchurl {
|
||||
url = "http://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz";
|
||||
sha256 = "1z8sj0xd1ncbl7ipzfsib6lmc7ahgvmiw61ln5zxm2l88jf7qc1a";
|
||||
};
|
||||
|
||||
patches = [ ./darwin.patch ];
|
||||
|
||||
buildInputs = [ guile_1_8.dev qt4 freetype CoreFoundation Cocoa gettext libiconv ghostscript ];
|
||||
|
||||
GUILE_CPPFLAGS="-D_THREAD_SAFE -I${guile_1_8.dev}/include -I${guile_1_8.dev}/include/guile ";
|
||||
|
||||
NIX_LDFLAGS="${zlib}/lib/libz.dylib";
|
||||
|
||||
buildPhase = ''
|
||||
substituteInPlace Makefile \
|
||||
--replace 'find -d $(MACOS_PACKAGE_TEXMACS)' 'find $(MACOS_PACKAGE_TEXMACS) -depth' \
|
||||
--replace '$(MACOS_PACKAGE_SRC)/bundle-libs.sh' 'true'
|
||||
make MACOS_BUNDLE
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/Applications
|
||||
cp -R ../distr/TeXmacs-${version}.app $out/Applications
|
||||
'';
|
||||
|
||||
inherit (common) postPatch;
|
||||
|
||||
postInstall = "wrapProgram $out/Applications/TeXmacs-${version}/Contents/MacOS/TeXmacs --suffix PATH : " +
|
||||
"${ghostscript}/bin:" +
|
||||
(if aspell == null then "" else "${aspell}/bin:") +
|
||||
(if tex == null then "" else "${tex}/bin:") +
|
||||
(if netpbm == null then "" else "${netpbm}/bin:") +
|
||||
(if imagemagick == null then "" else "${imagemagick}/bin:");
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = common.meta // {
|
||||
platforms = stdenv.lib.platforms.darwin;
|
||||
};
|
||||
}
|
29
pkgs/applications/editors/texmacs/darwin.patch
Normal file
29
pkgs/applications/editors/texmacs/darwin.patch
Normal file
@ -0,0 +1,29 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -7461,7 +7461,7 @@ $as_echo "final adjustments for cygwin host" >&6; }
|
||||
CONFIG_QTPIPES="yes"
|
||||
CONFIG_CXXFLAGS="-I${prefix}/include"
|
||||
CONFIG_BSHARED=""
|
||||
- CONFIG_BFLAGS="-framework Cocoa -framework IOKit"
|
||||
+ CONFIG_BFLAGS="-framework Cocoa -framework IOKit -framework CoreFoundation"
|
||||
CONFIG_BPATH=""
|
||||
CONFIG_SO="dylib"
|
||||
CONFIG_LIB_PATH="DYLD_LIBRARY_PATH"
|
||||
@@ -8281,6 +8281,7 @@ _ASEOF
|
||||
if $QMAKE ${additional_qmake_flags} ; then :; else
|
||||
as_fn_error $? "Calling $QMAKE failed." "$LINENO" 5
|
||||
fi
|
||||
+ echo "QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10" >> $pro_file
|
||||
# Try to compile a simple Qt app.
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can build a simple Qt app" >&5
|
||||
$as_echo_n "checking whether we can build a simple Qt app... " >&6; }
|
||||
--- a/src/Plugins/Unix/unix_sys_utils.cpp
|
||||
+++ b/src/Plugins/Unix/unix_sys_utils.cpp
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <spawn.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/wait.h>
|
||||
+#include <pthread.h>
|
||||
|
||||
// for thread safe strings
|
||||
#include <string>
|
@ -1,41 +1,21 @@
|
||||
{stdenv, fetchurl, guile_1_8, qt4, zlib, xmodmap, which, makeWrapper, freetype,
|
||||
tex ? null,
|
||||
aspell ? null,
|
||||
ghostscriptX ? null,
|
||||
extraFonts ? false,
|
||||
chineseFonts ? false,
|
||||
japaneseFonts ? false,
|
||||
koreanFonts ? false }:
|
||||
{ stdenv, callPackage,
|
||||
fetchurl, guile_1_8, qt4, zlib, xmodmap, which, makeWrapper, freetype,
|
||||
tex ? null,
|
||||
aspell ? null,
|
||||
ghostscriptX ? null,
|
||||
extraFonts ? false,
|
||||
chineseFonts ? false,
|
||||
japaneseFonts ? false,
|
||||
koreanFonts ? false }:
|
||||
|
||||
let
|
||||
let
|
||||
pname = "TeXmacs";
|
||||
version = "1.99.2";
|
||||
extraFontsSrc = fetchurl {
|
||||
url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-extra-fonts-1.0-noarch.tar.gz";
|
||||
sha256 = "0hylgjmd95y9yahbblmawkkw0i71vb145xxv2xqrmff81301n6k7";
|
||||
};
|
||||
|
||||
fullFontsSrc = fetchurl {
|
||||
url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-windows-fonts-1.0-noarch.tar.gz";
|
||||
sha256 = "1yxzjpqpm7kvx0ly5jmfpzlfhsh41b0ibn1v84qv6xy73r2vis2f";
|
||||
};
|
||||
|
||||
chineseFontsSrc = fetchurl {
|
||||
url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-chinese-fonts.tar.gz";
|
||||
sha256 = "0yprqjsx5mfsaxr525mcm3xqwcadzxp14njm38ir1325baada2fp";
|
||||
};
|
||||
|
||||
japaneseFontsSrc = fetchurl {
|
||||
url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-japanese-fonts.tar.gz";
|
||||
sha256 = "1dn6zvsa7gk59d61xicwpbapab3rm6kz48rp5w1bhmihxixw21jn";
|
||||
};
|
||||
|
||||
koreanFontsSrc = fetchurl {
|
||||
url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-korean-fonts.tar.gz";
|
||||
sha256 = "07axg57mqm3jbnm4lawx0h3r2h56xv9acwzjppryfklw4c27f5hh";
|
||||
common = callPackage ./common.nix {
|
||||
inherit tex extraFonts chineseFonts japaneseFonts koreanFonts;
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
@ -45,56 +25,21 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ guile_1_8 qt4 makeWrapper ghostscriptX freetype ];
|
||||
|
||||
patchPhase = (if tex == null then ''
|
||||
gunzip < ${fullFontsSrc} | (cd TeXmacs && tar xvf -)
|
||||
'' else if extraFonts then ''
|
||||
gunzip < ${extraFontsSrc} | (cd TeXmacs && tar xvf -)
|
||||
'' else "") +
|
||||
(if chineseFonts then ''
|
||||
gunzip < ${chineseFontsSrc} | (cd TeXmacs && tar xvf -)
|
||||
'' else "") +
|
||||
(if japaneseFonts then ''
|
||||
gunzip < ${japaneseFontsSrc} | (cd TeXmacs && tar xvf -)
|
||||
'' else "") +
|
||||
(if koreanFonts then ''
|
||||
gunzip < ${koreanFontsSrc} | (cd TeXmacs && tar xvf -)
|
||||
'' else "");
|
||||
|
||||
postInstall = "wrapProgram $out/bin/texmacs --suffix PATH : " +
|
||||
(if ghostscriptX == null then "" else "${ghostscriptX}/bin:") +
|
||||
(if aspell == null then "" else "${aspell}/bin:") +
|
||||
(if tex == null then "" else "${tex}/bin:") +
|
||||
"${xmodmap}/bin:${which}/bin";
|
||||
|
||||
inherit (common) postPatch;
|
||||
|
||||
postFixup = ''
|
||||
bin="$out/libexec/TeXmacs/bin/texmacs.bin"
|
||||
rpath=$(patchelf --print-rpath "$bin")
|
||||
patchelf --set-rpath "$rpath:${zlib.out}/lib" "$bin"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "WYSIWYW editing platform with special features for scientists";
|
||||
longDescription =
|
||||
'' GNU TeXmacs is a free wysiwyw (what you see is what you want)
|
||||
editing platform with special features for scientists. The software
|
||||
aims to provide a unified and user friendly framework for editing
|
||||
structured documents with different types of content (text,
|
||||
graphics, mathematics, interactive content, etc.). The rendering
|
||||
engine uses high-quality typesetting algorithms so as to produce
|
||||
professionally looking documents, which can either be printed out or
|
||||
presented from a laptop.
|
||||
|
||||
The software includes a text editor with support for mathematical
|
||||
formulas, a small technical picture editor and a tool for making
|
||||
presentations from a laptop. Moreover, TeXmacs can be used as an
|
||||
interface for many external systems for computer algebra, numerical
|
||||
analysis, statistics, etc. New presentation styles can be written
|
||||
by the user and new features can be added to the editor using the
|
||||
Scheme extension language. A native spreadsheet and tools for
|
||||
collaborative authoring are planned for later.
|
||||
'';
|
||||
homepage = http://texmacs.org/;
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
meta = common.meta // {
|
||||
maintainers = [ stdenv.lib.maintainers.roconnor ];
|
||||
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
|
||||
};
|
||||
|
@ -4656,10 +4656,16 @@ with pkgs;
|
||||
|
||||
telepresence = callPackage ../tools/networking/telepresence { };
|
||||
|
||||
texmacs = callPackage ../applications/editors/texmacs {
|
||||
tex = texlive.combined.scheme-small;
|
||||
extraFonts = true;
|
||||
};
|
||||
texmacs = if stdenv.isDarwin
|
||||
then callPackage ../applications/editors/texmacs/darwin.nix {
|
||||
inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa;
|
||||
tex = texlive.combined.scheme-small;
|
||||
extraFonts = true;
|
||||
} else callPackage ../applications/editors/texmacs/default.nix {
|
||||
tex = texlive.combined.scheme-small;
|
||||
extraFonts = true;
|
||||
};
|
||||
|
||||
|
||||
texmaker = callPackage ../applications/editors/texmaker { };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user