Compare commits

13 Commits

19 changed files with 756 additions and 150 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

@@ -1,4 +1,4 @@
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
# Copyright 2016-2018 Julian Ospald <hasufell@posteo.de>
# Distributed under the terms of the GNU General Public License v2
MY_PN=PySolFC
@@ -37,7 +37,7 @@ src_prepare() {
src_install() {
setup-py_src_install
insinto /usr/share/${MY_PN}
insinto /usr/share/${MY_PN}/cardsets
doins -r "${WORKBASE}"/${MY_PN}-Cardsets-2.0/*
doman docs/*.6

View File

@@ -1,37 +0,0 @@
Upstream: yes, will be in 0.4.8
From 618568705a0ca37ffd9e88d08cda3d3601d01d98 Mon Sep 17 00:00:00 2001
From: Dmitry Marakasov <amdmi3@amdmi3.ru>
Date: Fri, 29 Jun 2018 19:42:52 +0300
Subject: [PATCH] Fix compatibility with boost 1.67.0
---
CMakeLists.txt | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5b2fe63a7..4d26e06a2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -204,11 +204,17 @@ find_package(Boost ${MINIMUM_BOOST_VERSION}
log_setup
regex
serialization
- python
signals
system
thread
REQUIRED)
+if(${Boost_VERSION} GREATER 106699) # boost >= 1.67
+ find_package(Boost COMPONENTS python27 REQUIRED)
+ set(Boost_PYTHON_LIBRARY ${Boost_PYTHON27_LIBRARY})
+else()
+ find_package(Boost COMPONENTS python REQUIRED)
+endif()
+
find_package(ZLIB REQUIRED)
if(NOT BUILD_HEADLESS)
find_package(Freetype REQUIRED)
--
2.18.0

View File

@@ -1,27 +0,0 @@
Upstream: yes, will be in 0.4.8
From 9d55160487c658695cb86a57104e69833b287604 Mon Sep 17 00:00:00 2001
From: Jan Beich <jbeich@FreeBSD.org>
Date: Sat, 14 Jul 2018 13:33:24 +0000
Subject: [PATCH] Limit Spirit workaround for Boost < 1.67
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5b2fe63a7..adde763a8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -262,7 +262,7 @@ set_property(DIRECTORY APPEND
# boost::spirit relies on some API the old implementation provided.
# This define enables the usage of the old boost::optional
# implementation. Boost upstream tracks this bug as #12349
- $<$<VERSION_GREATER:${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION},1.60>:BOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL>
+ $<$<AND:$<VERSION_GREATER:${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION},1.60>,$<VERSION_LESS:${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION},1.67>>:BOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL>
# We don't need localized output of Boost date_time and not setting
# the define causes the inclusion of code, which contains std::tolower.
--
2.18.0

View File

@@ -1,43 +0,0 @@
Upstream: yes
Reason: Fix build with boost[>=1.66.0]
From c9b5b13fb81b1ed142dee0e843101c6b8832ca95 Mon Sep 17 00:00:00 2001
From: D Benage <dbenage.cx@gmail.com>
Date: Wed, 13 Dec 2017 18:53:55 -0600
Subject: [PATCH] Replace use of boost::system::posix_error
First deprecated in boost v1.37
---
GG/src/dialogs/FileDlg.cpp | 2 +-
UI/ClientUI.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/GG/src/dialogs/FileDlg.cpp b/GG/src/dialogs/FileDlg.cpp
index 9032aee58..17b923233 100644
--- a/GG/src/dialogs/FileDlg.cpp
+++ b/GG/src/dialogs/FileDlg.cpp
@@ -746,7 +746,7 @@ void FileDlg::OpenDirectory()
try {
SetWorkingDirectory(fs::path(directory + "\\"));
} catch (const fs::filesystem_error& e) {
- if (e.code() == boost::system::posix_error::io_error) {
+ if (e.code() == boost::system::errc::io_error) {
m_in_win32_drive_selection = true;
m_files_edit->Clear();
FilesEditChanged(m_files_edit->Text());
diff --git a/UI/ClientUI.cpp b/UI/ClientUI.cpp
index f294e9116..f9709ad4e 100644
--- a/UI/ClientUI.cpp
+++ b/UI/ClientUI.cpp
@@ -1136,7 +1136,7 @@ ClientUI::TexturesAndDist ClientUI::PrefixedTexturesAndDist(const boost::filesys
textures.push_back(ClientUI::GetTexture(*it, mipmap));
} catch (const fs::filesystem_error& e) {
// ignore files for which permission is denied, and rethrow other exceptions
- if (e.code() != boost::system::posix_error::permission_denied)
+ if (e.code() != boost::system::errc::permission_denied)
throw;
}
}
--
2.17.0

View File

@@ -1,9 +1,9 @@
# Copyright 2017 Julian Ospald <hasufell@posteo.de>
# Copyright 2017-2018 Julian Ospald <hasufell@posteo.de>
# Distributed under the terms of the GNU General Public License v2
CMAKE_SOURCE=${WORKBASE}/src-tarball
require github [ user=${PN} release=v${PV} pnv=FreeOrion_v${PV}_2017-09-03.139ffd9_Source suffix=tar.gz ]
require github [ user=${PN} release=v${PV} pnv=FreeOrion_v${PV}_2018-08-23.26f16b0_Source suffix=tar.gz ]
require cmake [ api=2 ]
require gtk-icon-cache
@@ -46,12 +46,6 @@ DEPENDENCIES="
BUGS_TO="hasufell@posteo.de"
DEFAULT_SRC_PREPARE_PATCHES=(
"${FILES}"/${PNV}-Replace-use-of-boost-system-posix_error.patch
"${FILES}"/${PNV}-Fix-compatibility-with-boost-1.67.0.patch
"${FILES}"/${PNV}-Limit-Spirit-workaround-for-Boost-1.67.patch
)
CMAKE_SRC_CONFIGURE_PARAMS=(
-DRELEASE_COMPILE_FLAGS=""
-DCMAKE_SKIP_RPATH=ON

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