Compare commits

10 Commits

13 changed files with 752 additions and 33 deletions

View File

@@ -11,6 +11,7 @@ dev-db
dev-dotnet
dev-games
dev-haskell
dev-java
dev-lang
dev-libs
dev-ocaml

View File

@@ -2,4 +2,4 @@ layout = exheres
eapi_when_unknown = exheres-0
eapi_when_unspecified = exheres-0
profile_eapi_when_unspecified = exheres-0
masters = arbor ocaml-unofficial
masters = arbor ocaml-unofficial java

View File

@@ -0,0 +1,46 @@
From 4f94810a75ba89936c0b67ace13ff0e171f3649e Mon Sep 17 00:00:00 2001
From: Julian Ospald <hasufell@posteo.de>
Date: Sun, 16 Sep 2018 19:13:05 +0800
Subject: [PATCH 1/2] Fix build with LibreSSL
This check is useless. If the library depends on specific
features of SSL, it must check for those. Checking for
version is not reliable and breaks LibreSSL compatibility.
---
cdk/cmake/ssl.cmake | 6 +-----
cdk/foundation/connection_openssl.cc | 2 +-
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/cdk/cmake/ssl.cmake b/cdk/cmake/ssl.cmake
index 494f0fe..1e7adca 100644
--- a/cdk/cmake/ssl.cmake
+++ b/cdk/cmake/ssl.cmake
@@ -251,11 +251,7 @@ function(MYSQL_CHECK_SSL)
return()
endif()
- if(NOT OPENSSL_VERSION_MAJOR EQUAL 1)
- message(SEND_ERROR "OpenSSL version 1.x is required but version ${OPENSSL_VERSION} was found")
- else()
- message(STATUS "Using OpenSSL version: ${OPENSSL_VERSION}")
- endif()
+ message(STATUS "Using OpenSSL version: ${OPENSSL_VERSION}")
#
# We assume that FindOpenSSL finds 2 libraries in this order.
diff --git a/cdk/foundation/connection_openssl.cc b/cdk/foundation/connection_openssl.cc
index f7fe28c..200d710 100644
--- a/cdk/foundation/connection_openssl.cc
+++ b/cdk/foundation/connection_openssl.cc
@@ -188,7 +188,7 @@ static void throw_ssl_error(SSL* tls, int err)
case SSL_ERROR_WANT_CONNECT:
case SSL_ERROR_WANT_ACCEPT:
case SSL_ERROR_WANT_X509_LOOKUP:
-# if OPENSSL_VERSION_NUMBER >= 0x10100000L
+# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
case SSL_ERROR_WANT_ASYNC:
case SSL_ERROR_WANT_ASYNC_JOB:
# endif
--
2.19.0

View File

@@ -0,0 +1,25 @@
From 3594a934f7f142efeadaea41ee5be53983795899 Mon Sep 17 00:00:00 2001
From: Julian Ospald <hasufell@posteo.de>
Date: Sun, 16 Sep 2018 19:47:03 +0800
Subject: [PATCH 2/2] Don't call ar directly, use CMAKE_AR
---
cdk/cmake/libutils/merge_archives.cmake.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cdk/cmake/libutils/merge_archives.cmake.in b/cdk/cmake/libutils/merge_archives.cmake.in
index fc58df4..e56c4b4 100644
--- a/cdk/cmake/libutils/merge_archives.cmake.in
+++ b/cdk/cmake/libutils/merge_archives.cmake.in
@@ -101,7 +101,7 @@ else()
# extract object from the library ...
execute_process(
- COMMAND ar x ../lib.a ${obj}
+ COMMAND ${CMAKE_AR} x ../lib.a ${obj}
WORKING_DIRECTORY ${MERGELIBS_DIR}/${lib}/objs
)
--
2.19.0

View File

@@ -1,11 +1,13 @@
# Copyright 2017 Julian Ospald <hasufell@posteo.de>
# Distributed under the terms of the GNU General Public License v2
CMAKE_SOURCE=${WORK}-src
require cmake [ api=2 ]
SUMMARY="MySQL database connector for C++ (mimics JDBC 4.0 API)"
HOMEPAGE="http://dev.mysql.com/downloads/connector/cpp/"
DOWNLOADS="https://dev.mysql.com/get/Downloads/Connector-C++/${PNV}.tar.gz"
DOWNLOADS="https://dev.mysql.com/get/Downloads/Connector-C++/${PNV}-src.tar.gz"
LICENCES="GPL-2"
SLOT="0"
@@ -25,26 +27,27 @@ DEPENDENCIES="
BUGS_TO="hasufell@posteo.de"
DEFAULT_SRC_PREPARE_PATCHES=(
"${FILES}"/0001-Fix-build-with-LibreSSL.patch
"${FILES}"/0002-Don-t-call-ar-directly-use-CMAKE_AR.patch
)
src_configure() {
CMAKE_SRC_CONFIGURE_PARAMS=(
-DINSTALL_DOCS="/usr/share/doc/${PNVR}"
-DMYSQLCPPCONN_BUILD_EXAMPLES=OFF
-DMYSQLCPPCONN_ICU_ENABLE=OFF
-DMYSQL_CXX_LINKAGE=0
-DMYSQL_INCLUDE_DIR="$(mysql_config --variable=pkgincludedir)"
-DUSE_MYSQLCPPCONN_GCOV_ENABLE=OFF
-DUSE_MYSQLCPPCONN_TRACE_ENABLE=OFF
-DCMAKE_BUILD_TYPE=Release
-DINSTALL_DOC_DIR="/usr/share/doc/${PNVR}"
-DINSTALL_LIB_DIR="lib"
-DWITH_JDBC=ON
)
cmake_src_configure
}
src_prepare() {
edo sed -i \
-e '/ADD_SUBDIRECTORY(test/d' \
-e 's#DOC_DESTINATION "."#DOC_DESTINATION ${INSTALL_DOCS}#' \
"${CMAKE_SOURCE}"/CMakeLists.txt
cmake_src_prepare
}
src_install() {
cmake_src_install
edo rm "${IMAGE}"/usr/$(exhost --target)/BUILDINFO.txt
}

View File

@@ -7,8 +7,7 @@ require cmake [ api=2 ]
SUMMARY="MySQL Workbench"
HOMEPAGE="https://www.mysql.com/products/workbench/"
DOWNLOADS="https://dev.mysql.com/get/Downloads/MySQLGUITools/${PN}-community-${PV}-src.tar.gz
http://www.antlr3.org/download/antlr-3.4-complete.jar"
DOWNLOADS="https://dev.mysql.com/get/Downloads/MySQLGUITools/${PN}-community-${PV}-src.tar.gz"
LICENCES="GPL-2"
SLOT="0"
@@ -27,16 +26,18 @@ DEPENDENCIES="
dev-cpp/ctemplate
dev-cpp/libsigc++:2
dev-db/libiodbc
dev-db/mysql-connector-c++
dev-db/mysql-connector-c++[>=${PV}]
dev-db/vsqlite++
dev-java/antlr:4
dev-lang/python:2.7[sqlite]
dev-libs/antlr4-cpp
dev-libs/boost
dev-libs/glib:2
dev-libs/libsecret:1
dev-libs/libxml2:2.0
dev-libs/pcre
dev-libs/tinyxml
dev-python/paramiko[python_abis:2.7]
dev-python/pexpect[python_abis:2.7]
dev-python/pycairo[python_abis:2.7]
gnome-bindings/atkmm:1.6
gnome-bindings/glibmm:2.4
@@ -44,6 +45,7 @@ DEPENDENCIES="
gnome-bindings/pangomm:1.4
gnome-desktop/libgnome-keyring
gnome-platform/libglade:2
net-libs/libssh
sci-libs/gdal
virtual/mysql
x11-dri/mesa
@@ -59,9 +61,6 @@ DEPENDENCIES="
BUGS_TO="hasufell@posteo.de"
src_prepare() {
edo install -D "${FETCHEDDIR}"/antlr-3.4-complete.jar \
"${WORKBASE}"/linux-res/bin/antlr-3.4-complete.jar
# fix gdal includes
edo sed -i \
-e 's|#include <gdal/|#include <|' \
@@ -80,6 +79,16 @@ src_prepare() {
-e 's/\-Werror//' \
"${CMAKE_SOURCE}"/CMakeLists.txt
# fix mysql-connector-c++ detection
edo sed -i \
-e '/MySQLCppConn_INCLUDE_DIR NAMES/s#/usr/include#/usr/include/jdbc#' \
"${CMAKE_SOURCE}"/build/cmake/Modules/FindMySQLCppConn.cmake
# fix antl4 jar detection
edo sed -i \
-e '/ANTLR_JAR_FILENAME/s/antlr-4.7.1-complete.jar/antlr-complete.jar/' \
"${CMAKE_SOURCE}"/CMakeLists.txt
cmake_src_prepare
}
@@ -88,6 +97,8 @@ src_configure() {
-DIODBC_CONFIG_PATH="/usr/$(exhost --target)/bin/iodbc-config"
-DLIB_INSTALL_DIR="/usr/$(exhost --target)/lib"
-DSHARE_INSTALL_PREFIX=/usr/share
-DANTLR_JAR_PATH="/usr/share/antlr-4"
-DANTLR_JAR_FILENAME="antlr-complete.jar"
)
cmake_src_configure

View File

@@ -0,0 +1,25 @@
# Copyright 2018 Julian Ospald <hasufell@posteo>
# Distributed under the terms of the GNU General Public License v2
require java
SUMMARY="A powerful parser generator for reading, processing, executing, or translating structured text or binary files (Java target)"
HOMEPAGE="http://www.antlr.org"
DOWNLOADS="http://www.antlr.org/download/antlr-${PV}-complete.jar"
LICENCES="BSD-3"
SLOT="4"
PLATFORMS="~amd64 ~x86"
MYOPTIONS=""
DEPENDENCIES="
"
BUGS_TO="hasufell@posteo"
WORK=${WORKBASE}
src_install() {
insinto /usr/share/${PN}-${SLOT}
newins "${FETCHEDDIR}"/antlr-${PV}-complete.jar antlr-complete.jar
}

View File

@@ -0,0 +1,180 @@
# Copyright 2008 Santiago M. Mola
# Copyright 2008, 2009, 2010, 2011 Ingmar Vanhassel
# Copyright 2011 Markus Rothe
# Distributed under the terms of the GNU General Public License v2
# Based in part upon 'ghc-6.8.2.ebuild' from Gentoo, which is:
# Copyright 1999-2008 Gentoo Foundation
# Copyright 2018 Julian Ospald <hasufell@posteo.de>
MY_PN="ghc"
MY_PNV="${MY_PN}-${PV}"
MY_PNVR="${MY_PN}-${PVR}"
require bash-completion flag-o-matic alternatives
require autotools [ supported_autoconf=[ 2.5 ] supported_automake=[ 1.15 ] ]
SUMMARY="The Glorious Glasgow Haskell Compilation System (non-haskell packages version)"
DESCRIPTION="
GHC is a state-of-the-art, open source, compiler and interactive environment for the functional
language Haskell.
"
HOMEPAGE="https://www.haskell.org/ghc/"
DOWNLOADS="
https://downloads.haskell.org/~ghc/${PV}/${MY_PNV}-src.tar.xz
https://downloads.haskell.org/~ghc/${PV}/${MY_PNV}-testsuite.tar.xz
https://downloads.haskell.org/~ghc/${PV}/ghc-${PV}-x86_64-deb7-linux.tar.xz
"
PLATFORMS="-* ~amd64"
BUGS_TO=""
REMOTE_IDS="freecode:${MY_PN}"
UPSTREAM_RELEASE_NOTES="http://www.haskell.org/${MY_PN}/docs/${PV}/html/users_guide/release-${PV//./-}.html"
LICENCES="BSD-3"
SLOT="${PV}"
MYOPTIONS="
doc
llvm [[ description = [ Code generation using LLVM ] ]]
"
# `make test` takes really long, so disable it. It also succeeds (i.e. returned value is zero) in
# case of unexpected failures. There are always unexpected failures.
# If you really want to run the tests, then enable expensive tests in order to run `make fulltest`,
# which runs the same tests as `make test`, but includes more test cases per test.
RESTRICT="test"
DEPENDENCIES="
build:
dev-libs/libxslt[>=1.1.2]
dev-python/Sphinx
build+run:
dev-lang/perl:*[>=5.6.1]
dev-libs/gmp:=[>=5]
dev-libs/libedit
dev-libs/libffi
llvm? ( dev-lang/llvm[>=2.7] )
!dev-lang/ghc [[ resolution = uninstall-blocked-before ]]
!dev-lang/ghc-bin [[ resolution = uninstall-blocked-before ]]
"
WORK=${WORKBASE}/${MY_PNV}
src_unpack() {
unpack ghc-${PV}-x86_64-deb7-linux.tar.xz
edo mv "${WORK}" "${WORK}-pre"
unpack ${MY_PNV}-src.tar.xz
unpack ${MY_PNV}-testsuite.tar.xz
}
src_prepare() {
# prepare pre-built ghc
# we are not building, shut up already
edo mkdir "${TEMP}"/bin
edo ln -s /usr/$(exhost --target)/bin/$(exhost --tool-prefix)ar "${TEMP}/bin/ar"
edo ln -s /usr/$(exhost --target)/bin/true "${TEMP}"/bin/strip
edo pushd "${WORK}-pre"
PATH="${TEMP}/bin:$PATH" edo ./configure \
--prefix="${TEMP}/ghc-pre" \
--target=$(exhost --target)
PATH="${TEMP}/bin:$PATH" emake install
edo popd
autotools_src_prepare
}
src_configure() {
# Initialize build.mk
echo '# Exherbo changes' > mk/build.mk
cat <<EOF >> mk/build.mk
# Put docs into the right place
docdir = /usr/share/doc/${MY_PNVR}
htmldir = /usr/share/doc/${MY_PNVR}/html
EOF
if option doc; then
echo "BUILD_SPHINX_HTML=YES" >> mk/build.mk
echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
echo "HADDOCK_DOCS=YES" >> mk/build.mk
else
echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
echo "HADDOCK_DOCS=NO" >> mk/build.mk
fi
GHC_SRC_CONFIGURE_OPTIONS+=( --with-ghc=${TEMP}/ghc-pre/bin/ghc )
export PATH="${WORKBASE}/usr/bin:${PATH}"
if option llvm; then
echo "GhcWithLlvmCodeGen=YES" >> mk/build.mk
else
echo "GhcWithLlvmCodeGen=NO" >> mk/build.mk
fi
GHC_SRC_CONFIGURE_OPTIONS+=(
--with-system-libffi
--with-ffi-includes=$(${PKG_CONFIG} --variable includedir libffi)
)
# host and build cause compilation (at least for 7.6.1) to fail, as they're intended for
# cross-compilation.
econf \
AR=${AR} \
CC=${CC} \
--target=$(exhost --target) \
"${GHC_SRC_CONFIGURE_OPTIONS[@]}"
# don't strip anything. Very useful when stage2 SIGSEGVs on you
echo "STRIP_CMD = :" >> mk/build.mk
}
src_install() {
default
# libraries/ is a partial dupe of the html/ dir hierarchy, but
# containing only LICENSE files
edo rm -rf "${IMAGE}"/usr/share/doc/${MY_PNVR}/{LICENSE,libraries}
dobashcompletion "${FILES}/ghc-bash-completion"
alternatives_for ghc ${SLOT} ${SLOT} \
/usr/share/bash-completion/completions/ghc-bin{,-${SLOT}}
# some scripts are not versioned, move
edo mv "${IMAGE}"/usr/$(exhost --target)/bin/{hp2ps,hp2ps-${SLOT}}
edo mv "${IMAGE}"/usr/$(exhost --target)/bin/{hpc,hpc-${SLOT}}
edo mv "${IMAGE}"/usr/$(exhost --target)/bin/{hsc2hs,hsc2hs-${SLOT}}
# remove unversioned symlinks, we create alternatives later
local ghc_bin
for ghc_bin in ghc ghci ghc-pkg $(optionq doc && echo "haddock") runghc runhaskell ; do
edo rm "${IMAGE}"/usr/$(exhost --target)/bin/${ghc_bin}
done
unset ghc_bin
# create alternatives for scripts/binaries
alternatives_for ghc ${SLOT} ${SLOT} \
/usr/$(exhost --target)/bin/ghc{,-${SLOT}} \
/usr/$(exhost --target)/bin/ghci{,-${SLOT}} \
/usr/$(exhost --target)/bin/ghc-pkg{,-${SLOT}} \
$(optionq doc && echo "/usr/$(exhost --target)/bin/haddock{,-ghc-${SLOT}}") \
/usr/$(exhost --target)/bin/hp2ps{,-${SLOT}} \
/usr/$(exhost --target)/bin/hpc{,-${SLOT}} \
/usr/$(exhost --target)/bin/hsc2hs{,-${SLOT}} \
/usr/$(exhost --target)/bin/runghc{,-${SLOT}} \
/usr/$(exhost --target)/bin/runhaskell /usr/$(exhost --target)/bin/runghc-${SLOT}
# alternatives for manpages
local file alternatives=()
for file in "${IMAGE}"/usr/share/man/*/*; do
alternatives+=(
${file#${IMAGE}}
${file#${IMAGE}}-${SLOT}
)
done
}
src_test_expensive() {
emake fulltest
}

View File

@@ -0,0 +1,176 @@
# Copyright 2008 Santiago M. Mola
# Copyright 2008, 2009, 2010, 2011 Ingmar Vanhassel
# Copyright 2011 Markus Rothe
# Distributed under the terms of the GNU General Public License v2
# Based in part upon 'ghc-6.8.2.ebuild' from Gentoo, which is:
# Copyright 1999-2008 Gentoo Foundation
# Copyright 2018 Julian Ospald <hasufell@posteo.de>
MY_PN="ghc"
MY_PNV="${MY_PN}-${PV}"
MY_PNVR="${MY_PN}-${PVR}"
require bash-completion flag-o-matic alternatives
require autotools [ supported_autoconf=[ 2.5 ] supported_automake=[ 1.15 ] ]
SUMMARY="The Glorious Glasgow Haskell Compilation System (non-haskell packages version)"
DESCRIPTION="
GHC is a state-of-the-art, open source, compiler and interactive environment for the functional
language Haskell.
"
HOMEPAGE="https://www.haskell.org/ghc/"
DOWNLOADS="
https://downloads.haskell.org/~ghc/${PV}/${MY_PNV}-src.tar.xz
https://downloads.haskell.org/~ghc/${PV}/${MY_PNV}-testsuite.tar.xz
https://downloads.haskell.org/~ghc/${PV}/ghc-${PV}-x86_64-fedora27-linux.tar.xz
"
PLATFORMS="-* ~amd64"
BUGS_TO=""
REMOTE_IDS="freecode:${MY_PN}"
UPSTREAM_RELEASE_NOTES="http://www.haskell.org/${MY_PN}/docs/${PV}/html/users_guide/release-${PV//./-}.html"
LICENCES="BSD-3"
SLOT="${PV}"
MYOPTIONS="
doc
llvm [[ description = [ Code generation using LLVM ] ]]
"
# `make test` takes really long, so disable it. It also succeeds (i.e. returned value is zero) in
# case of unexpected failures. There are always unexpected failures.
# If you really want to run the tests, then enable expensive tests in order to run `make fulltest`,
# which runs the same tests as `make test`, but includes more test cases per test.
RESTRICT="test"
DEPENDENCIES="
build:
dev-libs/libxslt[>=1.1.2]
dev-python/Sphinx
build+run:
dev-lang/perl:*[>=5.6.1]
dev-libs/gmp:=[>=5]
dev-libs/libedit
dev-libs/libffi
llvm? ( dev-lang/llvm[>=2.7] )
!dev-lang/ghc [[ resolution = uninstall-blocked-before ]]
!dev-lang/ghc-bin [[ resolution = uninstall-blocked-before ]]
"
WORK=${WORKBASE}/${MY_PNV}
src_unpack() {
unpack ghc-${PV}-x86_64-fedora27-linux.tar.xz
edo mv "${WORK}" "${WORK}-pre"
unpack ${MY_PNV}-src.tar.xz
unpack ${MY_PNV}-testsuite.tar.xz
}
src_prepare() {
# prepare pre-built ghc
edo pushd "${WORK}-pre"
edo ./configure \
--prefix="${TEMP}/ghc-pre" \
--target=$(exhost --target)
emake install
edo popd
autotools_src_prepare
}
src_configure() {
# Initialize build.mk
echo '# Exherbo changes' > mk/build.mk
cat <<EOF >> mk/build.mk
# Put docs into the right place
docdir = /usr/share/doc/${MY_PNVR}
htmldir = /usr/share/doc/${MY_PNVR}/html
EOF
if option doc; then
echo "BUILD_SPHINX_HTML=YES" >> mk/build.mk
echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
echo "HADDOCK_DOCS=YES" >> mk/build.mk
else
echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
echo "HADDOCK_DOCS=NO" >> mk/build.mk
fi
GHC_SRC_CONFIGURE_OPTIONS+=( --with-ghc=${TEMP}/ghc-pre/bin/ghc )
export PATH="${WORKBASE}/usr/bin:${PATH}"
if option llvm; then
echo "GhcWithLlvmCodeGen=YES" >> mk/build.mk
else
echo "GhcWithLlvmCodeGen=NO" >> mk/build.mk
fi
GHC_SRC_CONFIGURE_OPTIONS+=(
--with-system-libffi
--with-ffi-includes=$(${PKG_CONFIG} --variable includedir libffi)
)
# host and build cause compilation (at least for 7.6.1) to fail, as they're intended for
# cross-compilation.
econf \
AR=${AR} \
CC=${CC} \
--target=$(exhost --target) \
"${GHC_SRC_CONFIGURE_OPTIONS[@]}"
# don't strip anything. Very useful when stage2 SIGSEGVs on you
echo "STRIP_CMD = :" >> mk/build.mk
}
src_install() {
default
# libraries/ is a partial dupe of the html/ dir hierarchy, but
# containing only LICENSE files
edo rm -rf "${IMAGE}"/usr/share/doc/${MY_PNVR}/{LICENSE,libraries}
dobashcompletion "${FILES}/ghc-bash-completion"
alternatives_for ghc ${SLOT} ${SLOT} \
/usr/share/bash-completion/completions/ghc-bin{,-${SLOT}}
# some scripts are not versioned, move
edo mv "${IMAGE}"/usr/$(exhost --target)/bin/{hp2ps,hp2ps-${SLOT}}
edo mv "${IMAGE}"/usr/$(exhost --target)/bin/{hpc,hpc-${SLOT}}
edo mv "${IMAGE}"/usr/$(exhost --target)/bin/{hsc2hs,hsc2hs-${SLOT}}
# remove unversioned symlinks, we create alternatives later
local ghc_bin
for ghc_bin in ghc ghci ghc-pkg $(optionq doc && echo "haddock") runghc runhaskell ; do
edo rm "${IMAGE}"/usr/$(exhost --target)/bin/${ghc_bin}
done
unset ghc_bin
# create alternatives for scripts/binaries
alternatives_for ghc ${SLOT} ${SLOT} \
/usr/$(exhost --target)/bin/ghc{,-${SLOT}} \
/usr/$(exhost --target)/bin/ghci{,-${SLOT}} \
/usr/$(exhost --target)/bin/ghc-pkg{,-${SLOT}} \
$(optionq doc && echo "/usr/$(exhost --target)/bin/haddock{,-ghc-${SLOT}}") \
/usr/$(exhost --target)/bin/hp2ps{,-${SLOT}} \
/usr/$(exhost --target)/bin/hpc{,-${SLOT}} \
/usr/$(exhost --target)/bin/hsc2hs{,-${SLOT}} \
/usr/$(exhost --target)/bin/runghc{,-${SLOT}} \
/usr/$(exhost --target)/bin/runhaskell /usr/$(exhost --target)/bin/runghc-${SLOT}
# alternatives for manpages
local file alternatives=()
for file in "${IMAGE}"/usr/share/man/*/*; do
alternatives+=(
${file#${IMAGE}}
${file#${IMAGE}}-${SLOT}
)
done
}
src_test_expensive() {
emake fulltest
}

View File

@@ -0,0 +1,218 @@
# ghc-pkg command line completion for bash
#
# Copyright 2006-2007 Lennart Kolmodin <kolmodin@dtek.chalmers.se>
_ghc-pkg-get-ghc-pkg()
{
echo ghc-pkg
}
_ghc-pkg-pkg-fields()
{
# usage: _ghc-pkg-pkg-fields pkg-id
#
# list all fields of the pkg-id
# same fields for all packages but different in different versions of
# ghc-pkg? this can probably be done better/faster
if [[ -z "$1" ]]; then
echo "usage: _ghc-pkg-pkg-fields pkg-id"
return 1
fi
local fields
fields="$( $(_ghc-pkg-get-ghc-pkg) describe $1 )"
#if [[ fields != *"cannot find package"* ]]; then
echo "$fields" | grep ".*:.*" | sed "s/^\(.*\):.*\$/\1/"
#fi
}
_ghc-pkg-pkg-ids()
{
# usage: _ghc-pkg-pkg-ids
#
# simply lists all package ids known by ghc-pkg.
$(_ghc-pkg-get-ghc-pkg) list --simple-output
}
_ghc-pkg-pkgs()
{
# usage: _ghc-pkg-pkgs [include-pkgs] [include-ids]
#
# with optional parameter include-pkgs it will list all packages known
# to ghc-pkg.
# with optional parameter include-ids it will list all package-ids known
# to ghc-pkg.
local pkgs
local result
pkgs=( $( _ghc-pkg-pkg-ids ) )
result=( )
local withPkgs="no" withIds="no"
while [[ -n "$1" ]]; do
case "$1" in
include-pkgs)
withPkgs="yes" ;;
include-ids)
withIds="yes" ;;
*)
echo "unknown parameter '$1' to _ghc-pkg-pkgs"
return 1 ;;
esac
shift
done
# user must supply either include-pkgs, include-ids or both
if [[ $withPkgs != "yes" && $withIds != "yes" ]]; then
echo "usage: _ghc-pkg-pkgs [include-pkgs] [include-ids]"
return 1
fi
# find all packages if the user requested them
if [[ $withPkgs == "yes" ]]; then
# O(n^2) algorithm to exclude duplicates
for p in ${pkgs[*]}; do
p="${p//-[0-9.]*/}"
for existing in ${result[*]}; do
if [[ "$existing" == "$p" ]]; then
continue 2
fi
done
result=( "${result[@]}" "${p}" )
done
fi
# include all pkg-ids if requested
if [[ $withIds == "yes" ]]; then
result=( "${result[@]}" "${pkgs[@]}" )
fi
# we are finished, echo the result
echo "${result[*]}"
# happy ending
return 0
}
_ghc-pkg()
{
local cur
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=()
local actions flags
actions='register update unregister expose hide list latest describe field'
dbflags="--user \
--global \
-f --package-conf= \
--global-conf="
registerflags="--force \
-g --auto-ghci-libs \
-D --define-name="
listflags="--simple-output"
flags="$dbflags \
$registerflags \
$listflags \
-? --help \
-V --version"
# if it's the users first word; complete it and return
if (($COMP_CWORD == 1)); then
COMPREPLY=( $( compgen -W "$actions $flags" -- $cur ) )
return 0
fi
# now we know we have at least one word written
local action="unknown" \
prev numwords \
cword act
prev=${COMP_WORDS[COMP_CWORD-1]}
numwords=${#COMP_WORDS[@]}
# find the action with O(n*m) algorithm
# where n = ${#COMP_WORDS[*]}
# m = number of actions
for cword in ${COMP_WORDS[*]}; do
for act in $actions; do
if [[ "$cword" == "$act" ]]; then
action=$cword
fi
done
done
case $action in
register|update)
# we want to complete both flags and paths, how?
# we do it by checking if the user has started to write a flag
# or a path, and then decide what to complete.
# that is, to complete a flag, the user must start to write a '-'
if [[ "$cur" == -* ]]; then
# (we assume) it's the start of a flag
# set COMPREPLY to flags relevant to these actions
COMPREPLY=( $( compgen -W "$dbflags $registerflags" -- $cur ) )
fi
;;
unregister|expose|hide|list|describe)
# all these actions can be completed with exactly one argument,
# a pkg-id.
COMPREPLY=( $( compgen -W "$dbflags" -- $cur ) )
# add special flags for some actions
if [[ "$action" == "list" ]]; then
COMPREPLY+=( $( compgen -W "$listflags" -- $cur ) )
fi
COMPREPLY+=( $( compgen -W "$( _ghc-pkg-pkgs include-ids )" -- $cur ) )
;;
latest)
# complete only packages, not package ids
COMPREPLY=( $( compgen -W "$( _ghc-pkg-pkgs include-pkgs )" -- $cur ) )
;;
field)
# we should always complete on the flags...
COMPREPLY=( $( compgen -W "$dbflags" -- $cur ) )
# then, we should either complete the package name or the field
# lets find out which one
# find the number of words in COMP_WORDS before COMP_CWORD that
# isn't flags. it should be 2 or 3 for us to complete it,
# exactly 2 if we should complete the package name
# exactly 3 if we should complete the field name
# otherwise, don't do any additional completion except the
# flags
# count the number of non flags up till the current word
local numnonflags=0 lastword i
for (( i=0 ; $i < $COMP_CWORD ; i++ )); do
if [[ ${COMP_WORDS[$i]} != -* ]]; then
lastword=${COMP_WORDS[$i]}
numnonflags=$(( ++numnonflags ))
fi
done
case $numnonflags in
2)
# complete on pkg-ids
COMPREPLY+=( $( compgen -W "$( _ghc-pkg-pkgs include-ids )" -- $cur ) ) ;;
3)
# complete on fields
COMPREPLY+=( $( compgen -W "$( _ghc-pkg-pkg-fields $lastword )" -- $cur ) ) ;;
esac
;;
*)
# unknown action, not yet given by the user
# return all possible completions
COMPREPLY=( $( compgen -W "$actions $flags" -- $cur ) )
;;
esac
}
complete -F _ghc-pkg -o default ghc-pkg
# vim: set ft=sh tw=80 sw=4 et :

View File

@@ -0,0 +1,36 @@
# Copyright 2018 Julian Ospald <hasufell@posteo>
# Distributed under the terms of the GNU General Public License v2
WORK=${WORKBASE}
require cmake [ api=2 ]
SUMMARY="A powerful parser generator for reading, processing, executing, or translating structured text or binary files (cpp target)"
HOMEPAGE="http://www.antlr.org"
DOWNLOADS="http://www.antlr.org/download/antlr4-cpp-runtime-${PV}-source.zip
http://www.antlr.org/download/antlr-${PV}-complete.jar"
LICENCES="BSD-3"
SLOT="0"
PLATFORMS="~amd64 ~x86"
MYOPTIONS=""
DEPENDENCIES="
build:
virtual/pkg-config
build+run:
dev-java/antlr:4
sys-apps/util-linux
"
BUGS_TO="hasufell@posteo.de"
src_configure() {
CMAKE_SRC_CONFIGURE_PARAMS=(
-DANTLR_JAR_LOCATION="/usr/share/antlr-4/antlr-complete.jar"
-DWITH_DEMO=False
)
cmake_src_configure
}

View File

@@ -26,27 +26,25 @@ DEPENDENCIES="
build:
dev-util/patchelf
run:
app-arch/bzip2
dev-lang/python:*[>=3]
dev-libs/glib:2
dev-libs/libffi
dev-libs/libxml2:2.0
dev-libs/libxslt
dev-libs/popt
media-libs/fontconfig
media-libs/freetype:2
net-misc/wget
sys-libs/ncurses[compat-libs]
sys-libs/zlib
x11-dri/mesa
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXinerama
x11-libs/libXxf86vm
x11-libs/pango[X]
x11-libs/libXcomposite
x11-libs/libXext
x11-libs/libXrender
x11-libs/libxcb
x11-libs/qtbase:5
x11-libs/qtdeclarative:5
x11-libs/qtwebkit:5
x11-misc/wmctrl
x11-themes/hicolor-icon-theme
providers:ijg-jpeg? ( media-libs/jpeg:= )
providers:jpeg-turbo? ( media-libs/libjpeg-turbo )
"
BUGS_TO="hasufell@posteo"

View File

@@ -66,7 +66,7 @@ src_install() {
insinto /opt
doins -r opt/*
for f in "${IMAGE}"/opt/brave.com/brave-dev/{${PN},brave-browser,brave,brave-sandbox} ; do
for f in "${IMAGE}"/opt/brave.com/brave-dev/{${PN},brave,brave-sandbox} ; do
edo chmod +x "${f}"
done