phase 1 of cleanup - purge redundant ebuilds

This commit is contained in:
Simon M 2021-04-25 22:43:46 +10:00
parent 7bc80ffaee
commit a21ba3747a
76 changed files with 4 additions and 5160 deletions
dev-python
dev-qt
games-engines
gui-apps
gui-libs/wlroots
gui-wm/sway
media-sound/quodlibet
net-im/bitlbee-facebook
net-misc/internode-quota-check
net-p2p/stig
sys-libs/libsystemd
x11-libs/vte
x11-misc
x11-terms/termite

View File

@ -1,3 +0,0 @@
DIST python-mpd-0.5.5.tar.gz 46334 BLAKE2B b0345c6ac2027e3881f3f2aaa6d7bc01dcf67b71de9bdd6d6a8b1bbd6f72ff9463100a0850db4320ce7ee818a1212537be68ecb624984e3f40f1ef4102eca075 SHA512 d5eec60045561a8a0e29eda2ec2fc341c9b81d61363260c884f0863e931077c31c32534e3c98a488ef31aa61cd3d21bdcfa625b7b062ef24bf3e8024dc1e7c5a
EBUILD python-mpd-0.5.5.ebuild 704 BLAKE2B 6a0e370d0700c2ab86b3561cceb6c6d296086d05a0e8abfd8ce9ecacf7711b1da93d7ab4bc02b78741d7c2a22cd0d4863a89c9c291ddcc4f67b343ec843a2479 SHA512 5bcfd5bbf725389279dd8205e78657a8000df91cc82079545e789dcef9149170b6d0bf3b5cbcaf09c86429b99b312ff7cc8558b814eea4029e226ee5ba89ac84
MISC metadata.xml 382 BLAKE2B ae34121b1c437cc20e28928ae2d36e19aaa399161f96fc7748d9790643f9c8705ff86f951439dee2adfcceae2f0195f1a94745655f57966cd8cc1789fb302a74 SHA512 aafaba60498499a806694356fe71b55f3e469a024aad9a74cdbfdd1e7361a7ab33b267796949e10844c25946b34ed0e43db9fada9a76f08084067f741d4ac6a1

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<upstream>
<remote-id type="pypi">python-mpd</remote-id>
<remote-id type="github">Mic92/python-mpd2</remote-id>
</upstream>
</pkgmetadata>

View File

@ -1,25 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} pypy )
inherit distutils-r1 vcs-snapshot
DESCRIPTION="Python MPD client library"
HOMEPAGE="https://github.com/Mic92/python-mpd2"
SRC_URI="https://github.com/Mic92/${PN}2/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="LGPL-3"
KEYWORDS="amd64 ~ppc ~ppc64 x86"
SLOT="0"
IUSE="test"
DEPEND="test? ( dev-python/mock[${PYTHON_USEDEP}] )
dev-python/setuptools[${PYTHON_USEDEP}]"
DOCS=( doc/changes.rst doc/topics/{advanced,commands,getting-started,logging}.rst README.rst )
python_test() {
"${PYTHON}" test.py || die "Tests fail with ${EPYTHON}"
}

View File

@ -1,2 +0,0 @@
DIST vdirsyncer-0.7.5.tar.gz 86669 BLAKE2B 4309b1539db91d34ba7508e6f5d2805b404e4c44c820bdf193d250ef4636422409e236c8a52832af600a2fca9895716b076cea145fc6e3f69dc74b6d1cbde6f0 SHA512 4df4469c8bd6f29e7250ee10407e34e2badd1b6c6260f4f71dbc090ca55837207d22edbbc83b6d7a5e332fc64dba49a9b94002bb607e39ba8cb7dbba8a5b0a28
EBUILD vdirsyncer-0.7.5.ebuild 504 BLAKE2B 594227420918fdb76243ce33af6e5974df967a575172b1a2963d5b3947d49bd7856698f97c46e22ae0dd8d297da1e1a8ea20a63db2ec71b657b8566eaf00554d SHA512 17913e074e13fca43e28fc4985e2216308c7549829579083cdf1722f23a7c430bf304c845866a02f372c0da4a0be556a8206fbee5f66662d27a517cffea209a9

View File

@ -1,22 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 python3_{6,7,8} )
inherit distutils-r1
DESCRIPTION="synchronization tool for vdir"
HOMEPAGE="https://github.com/untitaker/vdirsyncer"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="MIT-with-advertising"
SLOT="0"
KEYWORDS="amd64 x32"
IUSE=""
DEPEND=""
RDEPEND=""
DOCS=( AUTHORS.rst CHANGELOG.rst CONTRIBUTING.rst README.rst example.cfg )

View File

@ -1 +0,0 @@
EBUILD qt5-styleplugins-9999.ebuild 573 BLAKE2B 8b82eaa8db9b76c4966419bf56806af50bc794acdadf8846f6eefc999852b1dac64b3af2896e285a5e67e7087dd68537badcb4cb5533777aa2d85cf17db1884a SHA512 714e0506aadc133149281ebdc52498d762b9091a0fd401f6bdada705a8ce2e1be98af1156a71359348017ce90d950f3d4c09e9eb551b1fc289759d219827f8b1

View File

@ -1,31 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit git-r3 qmake-utils
DESCRIPTION="Additional style plugins for Qt"
HOMEPAGE="https://code.qt.io/cgit/qt/qtstyleplugins.git/"
LICENSE="LGPL"
SLOT="0"
EGIT_REPO_URI="https://code.qt.io/cgit/qt/qtstyleplugins.git"
EGIT_BRANCH="master"
SRC_URI=""
KEYWORDS=""
IUSE=""
RDEPEND="dev-qt/qtcore:5
x11-libs/gtk+:2
x11-libs/libX11"
DEPEND="${RDEPEND}"
src_configure() {
eqmake5 PREFIX="${D}"/usr
}
src_install() {
emake INSTALL_ROOT="${D}" install
}

View File

@ -1,2 +0,0 @@
DIST qt5ct-0.41.tar.bz2 73009 BLAKE2B de6360feb16a82b262c13e6a3cbe226b7be7c3e95b1f1262b3802de59fc3bb8820c935b170a15a88e80164e6167f6259777c65fda6a3f8fbf1d115a63ddcc1f2 SHA512 a94f9996dc2198d3c8c9af8610912d12b915b8c547a49c36f7bc083b6f237b318d7903e91fb6fcfe06996a319c361104c1923e6d0c49446b6fb66a1e44fae009
EBUILD qt5ct-0.41.ebuild 970 BLAKE2B 43e3708653fee103b4e69485d083a5bae38af9a6c2553a3e34fbc27509f08e1aa1894c216824aafd5a7cb350fc711a455b0076fcb3cba4d11fac3b7c9330e0b6 SHA512 26126c1707973834bbe8737eb594439b4ded25b68ac8187b1bbeda7c4241b6cfbc3fe6c63fc790dc44a79796cf50b11fca87ea8e8c09b1899f7141c581dde51a

View File

@ -1,45 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=6
inherit qmake-utils eutils
DESCRIPTION="Qt5 configuration utility"
HOMEPAGE="http://qt-apps.org/content/show.php/Qt5+Configuration+Tool?content=168066"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
DEPEND="
>=dev-qt/qtcore-5.4.0:5
>=dev-qt/qtsvg-5.4.0:5
"
RDEPEND="${DEPEND}"
S="${WORKDIR}"/"${P}"
src_configure(){
local myeqmakeargs=(
${PN}.pro
PREFIX="${EPREFIX}/usr"
DESKTOPDIR="${EPREFIX}/usr/share/applications"
ICONDIR="${EPREFIX}/usr/share/pixmaps"
)
eqmake5 ${myeqmakeargs[@]}
}
src_install(){
emake INSTALL_ROOT="${D}" install || die
}
pkg_postinst(){
elog "After install this package, please, add the following"
elog "line into the ~/.xprofile (user) or /etc/environment (system):"
elog "export QT_QPA_PLATFORMTHEME=qt5ct"
elog "and it will work."
}

View File

@ -1,3 +0,0 @@
AUX frotz-2.44-ldflags.patch 963 BLAKE2B 166f19d0363e06d00efd43e72a1c1629f1863227cb4f5704e03fe161e91563dcde53b9cdaf76814c0fc8394cc2bdc4815e8c2ffa5defbe1083d127a0d2ce8512 SHA512 e7409942b8401601e82a277afcec214b45df7f69787321ea4c5902feb2d2c87f2d905237ad44102172bd66296ab47280e61a66596ef611bda5b22506544486ef
DIST frotz-2.44.tar.gz 275534 BLAKE2B ab22a62c5b052d0f82f98cb3bd12e1486100970de668125cd8617508ab478122a602e11b4b811dadf26b6cdf1f1cb95ccb93ee52cd7d55ba89b2f5b78d5cd956 SHA512 29663971e782c3d668136c5b2a9a8c0de6a6982a8b5fe056ddab5696ca1b5dcb5d0164459c6598729dbdc41f4ef6864de43893e7b3a88c4947eca87ed6f5d98e
EBUILD frotz-2.44.ebuild 1116 BLAKE2B 1cb3a6bee4cbc4f9a982a3a1f4b81a987bfad56c1f7ae372de6c54eaa0995be75d4bc1b6b9305fd6cd08f6ed73810a6621e6862f2908ae8493e2db85e856929c SHA512 af970917f5e676cf5a61ba046c2b519b4ebcb38694cac6065bde7fe77b87c4edefbbb9b486321d73b27bee7707839c494eb4a40da87c31d922f03ee9715c2811

View File

@ -1,23 +0,0 @@
--- Makefile.old 2015-11-30 19:32:18.654202668 +1100
+++ Makefile 2015-11-30 19:32:59.965205614 +1100
@@ -195,17 +195,17 @@
$(NAME): $(NAME)-curses
curses: $(NAME)-curses
$(NAME)-curses: $(COMMON_TARGET) $(CURSES_TARGET) $(BLORB_TARGET)
- $(CC) -o $(BINNAME)$(EXTENSION) $(TARGETS) $(LIB) $(CURSES) $(SOUND_LIB)
+ $(CC) $(LDFLAGS) -o $(BINNAME)$(EXTENSION) $(TARGETS) $(LIB) $(CURSES) $(SOUND_LIB)
dumb: $(NAME)-dumb
d$(NAME): $(NAME)-dumb
$(NAME)-dumb: $(COMMON_TARGET) $(DUMB_TARGET)
- $(CC) -o d$(BINNAME)$(EXTENSION) $(COMMON_TARGET) $(DUMB_TARGET) $(LIB)
+ $(CC) $(LDFLAGS) -o d$(BINNAME)$(EXTENSION) $(COMMON_TARGET) $(DUMB_TARGET) $(LIB)
sdl: $(NAME)-sdl
s$(NAME): $(NAME)-sdl
$(NAME)-sdl: $(COMMON_TARGET) $(SDL_TARGET) $(BLORB_TARGET)
- $(CC) -o s$(BINNAME) $(COMMON_TARGET) $(SDL_TARGET) $(BLORB_TARGET) $(SDL_LIBS)
+ $(CC) $(LDFLAGS) -o s$(BINNAME) $(COMMON_TARGET) $(SDL_TARGET) $(BLORB_TARGET) $(SDL_LIBS)
all: $(NAME) d$(NAME)

View File

@ -1,50 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils games
DESCRIPTION="Curses based interpreter for Z-code based text games"
HOMEPAGE="http://frotz.sourceforge.net/"
SRC_URI="http://www.ifarchive.org/if-archive/infocom/interpreters/frotz/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ppc sparc x86"
IUSE="alsa oss"
DEPEND="sys-libs/ncurses
alsa? ( oss? ( media-libs/alsa-oss ) )"
RDEPEND="${DEPEND}"
src_prepare() {
sed -i \
-e '/^CC /d' \
Makefile \
|| die
epatch \
"${FILESDIR}"/${P}-ldflags.patch
}
src_compile() {
local OPTS="CONFIG_DIR=${GAMES_SYSCONFDIR}"
use oss && OPTS="${OPTS} SOUND_DEFS=-DOSS_SOUND SOUND_DEV=/dev/dsp"
emake ${OPTS} all
}
src_install () {
dogamesbin {d,}frotz
doman doc/*.6
dodoc AUTHORS BUGS ChangeLog HOW_TO_PLAY README TODO \
doc/{frotz.conf-big,frotz.conf-small}
prepgamesdirs
}
pkg_postinst() {
games_pkg_postinst
echo
elog "Global config file can be installed in ${GAMES_SYSCONFDIR}/frotz.conf"
elog "Sample config files are in /usr/share/doc/${PF}"
echo
}

View File

@ -1,3 +0,0 @@
AUX renpy-6.99.12-multiple-abi.patch 11945 BLAKE2B 97b4d69a820c5147a64cedd3a677223510952c8b47c3cc05817c193b7d43bbc919436d5bc66e8c9981a676d0ad8a614d0e35a8cabd054e7e6e161b7badc0f154 SHA512 4ff4926ba5e92b2e72e206093a770b5d334a0c25fd4ace48c54b0ec6d8dfcb64a137f97238793703af927906d2df0723d2e36920ed50c6686fe8ba3602880759
DIST renpy-6.99.12-source.tar.bz2 18134417 BLAKE2B d82b15f9ea168c8e291a7734f3d2f0348b2ebb5ae3bf42e66921e37162e187c829fc35c9a42cf393480725fd92c8bf3e22608ae88c70b85c7c07d07cb804355c SHA512 87708e982c9f978229c6447dc8ddb0c254743c1afe489d7c3b45feb3495a35b2975b08edefd2f87b9d43b57f053389d98face81c9be3cec86d887239094aa6e1
EBUILD renpy-6.99.12.ebuild 2537 BLAKE2B b4095825c773f6bd031a99d055e022bf724a009c00e2e5649ceb6cfd3c703b07f2f427be609649d79be3c7eed71305a64ccfbb4560138684388f7894c26e2b88 SHA512 6ba8ddcec827ffa0b9bf8f567b50ecdc1c678e341e4fc3c64a3a703e2b6d353ef8c5a74fee6f2b45536a14aafc5be5376586685020b9dd670be258f4e0f372c6

View File

@ -1,357 +0,0 @@
From 7aa51dae5eb2f2123fee9bca23a2ce2f1b1c3f10 Mon Sep 17 00:00:00 2001
From: hasufell <hasufell@gentoo.org>
Date: Thu, 20 Aug 2015 01:10:58 +0200
Subject: [PATCH] Fix multiple abi support
---
renpy.py | 128 ++--------------------------------------------------
renpy/common.py | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
renpy/main.py | 6 +--
3 files changed, 144 insertions(+), 127 deletions(-)
create mode 100644 renpy/common.py
diff --git a/renpy.py b/renpy.py
index 7548cf6..8ec7353 100644
--- a/renpy.py
+++ b/renpy.py
@@ -28,122 +28,9 @@
import os
import sys
import warnings
-
-# Functions to be customized by distributors. ################################
-
-# Given the Ren'Py base directory (usually the directory containing
-# this file), this is expected to return the path to the common directory.
-
-
-def path_to_common(renpy_base):
- return renpy_base + "/renpy/common"
-
-# Given a directory holding a Ren'Py game, this is expected to return
-# the path to a directory that will hold save files.
-
-
-def path_to_saves(gamedir, save_directory=None):
- import renpy # @UnresolvedImport
-
- if save_directory is None:
- save_directory = renpy.config.save_directory
- save_directory = renpy.exports.fsencode(save_directory)
-
- # Makes sure the permissions are right on the save directory.
- def test_writable(d):
- try:
- fn = os.path.join(d, "test.txt")
- open(fn, "w").close()
- open(fn, "r").close()
- os.unlink(fn)
- return True
- except:
- return False
-
- # Android.
- if renpy.android:
- paths = [
- os.path.join(os.environ["ANDROID_OLD_PUBLIC"], "game/saves"),
- os.path.join(os.environ["ANDROID_PRIVATE"], "saves"),
- os.path.join(os.environ["ANDROID_PUBLIC"], "saves"),
- ]
-
- for rv in paths:
- if os.path.isdir(rv) and test_writable(rv):
- break
-
- print("Saving to", rv)
-
- # We return the last path as the default.
-
- return rv
-
- if renpy.ios:
- from pyobjus import autoclass
- from pyobjus.objc_py_types import enum
-
- NSSearchPathDirectory = enum("NSSearchPathDirectory", NSDocumentDirectory=9)
- NSSearchPathDomainMask = enum("NSSearchPathDomainMask", NSUserDomainMask=1)
-
- NSFileManager = autoclass('NSFileManager')
- manager = NSFileManager.defaultManager()
- url = manager.URLsForDirectory_inDomains_(
- NSSearchPathDirectory.NSDocumentDirectory,
- NSSearchPathDomainMask.NSUserDomainMask,
- ).lastObject()
-
- # url.path seems to change type based on iOS version, for some reason.
- try:
- rv = url.path().UTF8String().decode("utf-8")
- except:
- rv = url.path.UTF8String().decode("utf-8")
-
- print("Saving to", rv)
- return rv
-
- # No save directory given.
- if not save_directory:
- return gamedir + "/saves"
-
- # Search the path above Ren'Py for a directory named "Ren'Py Data".
- # If it exists, then use that for our save directory.
- path = renpy.config.renpy_base
-
- while True:
- if os.path.isdir(path + "/Ren'Py Data"):
- return path + "/Ren'Py Data/" + save_directory
-
- newpath = os.path.dirname(path)
- if path == newpath:
- break
- path = newpath
-
- # Otherwise, put the saves in a platform-specific location.
- if renpy.macintosh:
- rv = "~/Library/RenPy/" + save_directory
- return os.path.expanduser(rv)
-
- elif renpy.windows:
- if 'APPDATA' in os.environ:
- return os.environ['APPDATA'] + "/RenPy/" + save_directory
- else:
- rv = "~/RenPy/" + renpy.config.save_directory
- return os.path.expanduser(rv)
-
- else:
- rv = "~/.renpy/" + save_directory
- return os.path.expanduser(rv)
-
-
-# Returns the path to the Ren'Py base directory (containing common and
-# the launcher, usually.)
-def path_to_renpy_base():
- renpy_base = os.path.dirname(os.path.realpath(sys.argv[0]))
- renpy_base = os.path.abspath(renpy_base)
-
- return renpy_base
-
-##############################################################################
+from distutils.sysconfig import get_python_lib
+sys.path.append(get_python_lib() + "/renpy@SLOT@")
+import renpy.common as common
# The version of the Mac Launcher and py4renpy that we require.
macos_version = (6, 14, 0)
@@ -154,21 +45,9 @@ except:
print("Ren'Py requires at least python 2.6.")
sys.exit(0)
-android = ("ANDROID_PRIVATE" in os.environ)
-
-# Android requires us to add code to the main module, and to command some
-# renderers.
-if android:
- __main__ = sys.modules["__main__"]
- __main__.path_to_renpy_base = path_to_renpy_base
- __main__.path_to_common = path_to_common
- __main__.path_to_saves = path_to_saves
- os.environ["RENPY_RENDERER"] = "gl"
-
-
def main():
- renpy_base = path_to_renpy_base()
+ renpy_base = common.path_to_renpy_base()
# Add paths.
if os.path.exists(renpy_base + "/module"):
diff --git a/renpy/common.py b/renpy/common.py
new file mode 100644
index 0000000..0d60e36
--- /dev/null
+++ b/renpy/common.py
@@ -0,0 +1,137 @@
+# This file is part of Ren'Py. The license below applies to Ren'Py only.
+# Games and other projects that use Ren'Py may use a different license.
+
+# Copyright 2004-2015 Tom Rothamel <pytom@bishoujo.us>
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+import os
+import sys
+import warnings
+from distutils.sysconfig import get_python_lib
+
+# Given the Ren'Py base directory (usually the directory containing
+# this file), this is expected to return the path to the common directory.
+def path_to_common(renpy_base):
+ return renpy_base + "/renpy/common"
+
+# Given a directory holding a Ren'Py game, this is expected to return
+# the path to a directory that will hold save files.
+def path_to_saves(gamedir, save_directory=None):
+ import renpy #@UnresolvedImport
+
+ if save_directory is None:
+ save_directory = renpy.config.save_directory
+
+ # Makes sure the permissions are right on the save directory.
+ def test_writable(d):
+ try:
+ fn = os.path.join(d, "test.txt")
+ open(fn, "w").close()
+ open(fn, "r").close()
+ os.unlink(fn)
+ return True
+ except:
+ return False
+
+
+ # Android.
+ if renpy.android:
+ paths = [
+ os.path.join(os.environ["ANDROID_OLD_PUBLIC"], "game/saves"),
+ os.path.join(os.environ["ANDROID_PRIVATE"], "saves"),
+ os.path.join(os.environ["ANDROID_PUBLIC"], "saves"),
+ ]
+
+ for rv in paths:
+ if os.path.isdir(rv) and test_writable(rv):
+ break
+
+ print "Saving to", rv
+
+ # We return the last path as the default.
+
+ return rv
+
+ if renpy.ios:
+ from pyobjus import autoclass
+ from pyobjus.objc_py_types import enum
+
+ NSSearchPathDirectory = enum("NSSearchPathDirectory", NSDocumentDirectory=9)
+ NSSearchPathDomainMask = enum("NSSearchPathDomainMask", NSUserDomainMask=1)
+
+ NSFileManager = autoclass('NSFileManager')
+ manager = NSFileManager.defaultManager()
+ url = manager.URLsForDirectory_inDomains_(
+ NSSearchPathDirectory.NSDocumentDirectory,
+ NSSearchPathDomainMask.NSUserDomainMask,
+ ).lastObject()
+
+ # url.path seems to change type based on iOS version, for some reason.
+ try:
+ rv = url.path().UTF8String().decode("utf-8")
+ except:
+ rv = url.path.UTF8String().decode("utf-8")
+
+ print "Saving to", rv
+ return rv
+
+ # No save directory given.
+ if not save_directory:
+ return gamedir + "/saves"
+
+ # Search the path above Ren'Py for a directory named "Ren'Py Data".
+ # If it exists, then use that for our save directory.
+ path = renpy.config.renpy_base
+
+ while True:
+ if os.path.isdir(path + "/Ren'Py Data"):
+ return path + "/Ren'Py Data/" + save_directory
+
+ newpath = os.path.dirname(path)
+ if path == newpath:
+ break
+ path = newpath
+
+ # Otherwise, put the saves in a platform-specific location.
+ if renpy.macintosh:
+ rv = "~/Library/RenPy/" + save_directory
+ return os.path.expanduser(rv)
+
+ elif renpy.windows:
+ if 'APPDATA' in os.environ:
+ return os.environ['APPDATA'] + "/RenPy/" + save_directory
+ else:
+ rv = "~/RenPy/" + renpy.config.save_directory
+ return os.path.expanduser(rv)
+
+ else:
+ rv = "~/.renpy/" + save_directory
+ return os.path.expanduser(rv)
+
+
+# Returns the path to the Ren'Py base directory (containing common and
+# the launcher, usually.)
+def path_to_renpy_base():
+ renpy_base = os.path.dirname(os.path.realpath(sys.argv[0]))
+ renpy_base = get_python_lib() + "/renpy@SLOT@"
+ renpy_base = os.path.abspath(renpy_base)
+
+ return renpy_base
diff --git a/renpy/main.py b/renpy/main.py
index 73e7239..6807ba1 100644
--- a/renpy/main.py
+++ b/renpy/main.py
@@ -27,7 +27,7 @@ import os
import sys
import time
import zipfile
-import __main__
+import renpy.common as common
last_clock = time.time()
@@ -273,7 +273,7 @@ def main():
renpy.config.searchpath = [ renpy.config.gamedir ]
# Find the common directory.
- commondir = __main__.path_to_common(renpy.config.renpy_base) # E1101 @UndefinedVariable
+ commondir = common.path_to_common(renpy.config.renpy_base) # E1101 @UndefinedVariable
if os.path.isdir(commondir):
renpy.config.searchpath.append(commondir)
@@ -371,7 +371,7 @@ def main():
# Find the save directory.
if renpy.config.savedir is None:
- renpy.config.savedir = __main__.path_to_saves(renpy.config.gamedir) # E1101 @UndefinedVariable
+ renpy.config.savedir = common.path_to_saves(renpy.config.gamedir) # E1101 @UndefinedVariable
if renpy.game.args.savedir: # @UndefinedVariable
renpy.config.savedir = renpy.game.args.savedir # @UndefinedVariable
diff --git a/renpy/script.py b/renpy/script.py
index 73e7239..6807ba1 100644
--- a/renpy/script.py
+++ b/renpy/script.py
@@ -150,8 +150,8 @@ import os
if renpy.loader.loadable(i):
return None
- import __main__
- backups = __main__.path_to_saves(renpy.config.gamedir, "backups") # @UndefinedVariable
+ import renpy.common as common
+ backups = common.path_to_saves(renpy.config.gamedir, "backups") # @UndefinedVariable
if backups is None:
return
--
2.5.0

View File

@ -1,111 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
DISTUTILS_IN_SOURCE_BUILD=1
inherit eutils toolchain-funcs python-r1 versionator gnome2-utils games distutils-r1
DESCRIPTION="Visual novel engine written in python"
HOMEPAGE="http://www.renpy.org"
SRC_URI="http://www.renpy.org/dl/${PV}/${P}-source.tar.bz2"
LICENSE="MIT"
SLOT="$(get_version_component_range 1-2)"
MYSLOT=$(delete_all_version_separators ${SLOT})
KEYWORDS="~amd64 ~x86"
IUSE="development doc examples"
REQUIRED_USE="examples? ( development )"
RDEPEND="
>=app-eselect/eselect-renpy-0.6
dev-libs/fribidi
~dev-python/pygame_sdl2-${PV}[${PYTHON_USEDEP}]
>=dev-lang/python-exec-0.3[${PYTHON_USEDEP}]
media-libs/glew
media-libs/libpng:0
media-libs/libsdl2[video]
media-libs/freetype:2
sys-libs/zlib
virtual/ffmpeg"
DEPEND="${RDEPEND}
dev-python/cython[${PYTHON_USEDEP}]
virtual/pkgconfig"
S=${WORKDIR}/${P}-source
pkg_setup() {
games_pkg_setup
export CFLAGS="${CFLAGS} $($(tc-getPKG_CONFIG) --cflags fribidi)"
}
python_prepare_all() {
# wooosh! this should fix multiple abi
epatch "${FILESDIR}"/${P}-multiple-abi.patch
einfo "Deleting precompiled python files"
find . -name '*.py[co]' -print -delete || die
sed -i \
-e "s/@SLOT@/${MYSLOT}/" \
renpy.py renpy/common.py || die "setting slot failed!"
distutils-r1_python_prepare_all
}
python_compile() {
cd "${S}"/module || die
distutils-r1_python_compile
}
python_install() {
cd "${S}"/module || die
distutils-r1_python_install --install-lib="$(python_get_sitedir)/renpy${MYSLOT}"
cd "${S}" || die
python_scriptinto "${GAMES_BINDIR}"
python_newscript renpy.py ${PN}-${SLOT}
python_moduleinto renpy${MYSLOT}
python_domodule renpy
if use development ; then
python_domodule launcher templates
fi
if use examples ; then
python_domodule the_question tutorial
fi
}
python_install_all() {
if use development; then
newicon -s 32 launcher/game/images/logo32.png ${P}.png
make_desktop_entry ${PN}-${SLOT} "Ren'Py ${PV}" ${P}
fi
if use doc; then
dohtml -r doc
fi
prepgamesdirs
}
pkg_preinst() {
games_pkg_preinst
use development && gnome2_icon_savelist
}
pkg_postinst() {
games_pkg_postinst
use development && gnome2_icon_cache_update
einfo "running: eselect renpy update --if-unset"
eselect renpy update --if-unset
}
pkg_postrm() {
use development && gnome2_icon_cache_update
einfo "running: eselect renpy update --if-unset"
eselect renpy update --if-unset
}

View File

@ -1 +0,0 @@
EBUILD grim-9999.ebuild 491 BLAKE2B 6577af6db7b5ea7e540655a53d838779036c7bd86f2d4665851ab8be61ae711a591804a26cc24ef12377fb4a3f1046766e73c4312729954f1af5d4111bdb639e SHA512 883fef75a11e4fd9c658f24209cfb8122d616bc24c48d0b6f8e2f36f7b165c0590b535b57ef98fb84d88dd752fd7360ed276920d1267e150d3381c0da0e00d3d

View File

@ -1,27 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit git-r3 eutils meson
DESCRIPTION="Grab images from a Wayland compositor"
HOMEPAGE="https://wayland.emersion.fr/grim"
EGIT_REPO_URI="https://github.com/emersion/grim.git"
EGIT_BRANCH="master"
SRC_URI=""
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="+slurp"
DEPEND="
dev-libs/wayland
x11-libs/cairo
slurp? ( gui-apps/slurp )"
RDEPEND="${DEPEND}"
BDEPEND=""

View File

@ -1,36 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
PYTHON_COMPAT=( python3_{6,7,8} )
inherit python-r1 distutils-r1
MY_VERSION="3.33"
DESCRIPTION="Replacement for i3status"
HOMEPAGE="http://docs.enkore.de/i3pystatus"
SRC_URI="https://github.com/enkore/${PN}/archive/${MY_VERSION}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64"
IUSE="alsa dbus psutil network parcel"
# IUSE="weather wifi pulseaudio"
DEPEND=""
RDEPEND="
${PYTHON_DEPS}
alsa? ( dev-python/pyalsaaudio )
dbus? ( dev-python/dbus-python )
psutil? ( dev-python/psutil )
network? ( dev-python/netifaces )
parcel? ( dev-python/beautifulsoup:4 dev-python/cssselect dev-python/lxml )"
# RDEPEND="
# weather? ( dev-python/pywapi )
# wifi? ( dev-python/netifaces dev-python/basiciw )
# pulseaudio? ( dev-python/colour )"
S="${WORKDIR}/${PN}-${MY_VERSION}"

View File

@ -2,16 +2,16 @@
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
EAPI=7
PYTHON_COMPAT=( python3_{6,7,8} )
PYTHON_COMPAT=( python3_{7,8,9} )
inherit python-r1 distutils-r1 git-r3
DESCRIPTION="Replacement for i3status"
HOMEPAGE="http://docs.enkore.de/i3pystatus"
EGIT_REPO_URI="https://github.com/enkore/i3pystatus.git"
EGIT_BRANCH="master"
EGIT_BRANCH="current"
LICENSE="MIT"
SLOT="0"

View File

@ -1 +0,0 @@
EBUILD mako-9999.ebuild 623 BLAKE2B e2ad02b17a1b691cb127ab917a786f0d87266cfd0a8c40fd833afb26f5c945a7f594fdd0a9762eb4c87e81b74fbbf322f8d81e59abb39c7be8ddc67e97f4ebbb SHA512 ccb3aa8eee22713589b43b8273cb2c7d706de4200bdda63fa6070bb1f352e063a091a6ae071d2b8bd0113b9a7f4f07a958d84a72231e284b8fd5333999973371

View File

@ -1,36 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit meson
DESCRIPTION="A lightweight Wayland notification daemon"
HOMEPAGE="https://mako-project.org/"
if [ ${PV} -eq "9999" ]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/emersion/mako"
EGIT_CLONE_TYPE="shallow"
else
SRC_URI=""
fi
LICENSE="MIT"
SLOT="0"
KEYWORDS="~x86 ~amd64"
IUSE="systemd elogind"
DEPEND="
dev-libs/wayland
x11-libs/pango
x11-libs/cairo
systemd? ( sys-libs/libsystemd )
elogind? ( sys-auth/elogind )
"
RDEPEND="${DEPEND}"
src_configure() {
meson_src_configure
}

View File

@ -1 +0,0 @@
EBUILD slurp-9999.ebuild 462 BLAKE2B 3ef44114b086a2f1cd599a4a1efa4674287eeaf5d3753e7032ecf2c55a9a9b497c69aa7be4628fb6341c81a5bcaca43aebe1224dab7af1144f966db108059e2f SHA512 5cf4b17ef109f2ecb032bad187b8305718990d2a875e79483a78adbc43358d5146d27ccfab199e438cc190717b47402c833037cf3f4ed9fcd8fe56fb93d0793d

View File

@ -1,26 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit git-r3 eutils meson
DESCRIPTION="Select a region in a Wayland compositor"
HOMEPAGE="https://wayland.emersion.fr/slurp"
EGIT_REPO_URI="https://github.com/emersion/slurp.git"
EGIT_BRANCH="master"
SRC_URI=""
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
DEPEND="
dev-libs/wayland
x11-libs/cairo"
RDEPEND="${DEPEND}"
BDEPEND=""

View File

@ -1 +0,0 @@
EBUILD swaybg-9999.ebuild 531 BLAKE2B bfcc65b7cd81d2b91ac0088a70c21cf80e3d5583439ada4104af159b95340ffe8c2c341d77a61418d64856ad073f24f4363fc7327de80e8430e798d012eb33dc SHA512 023874c97a3787690ebb774d14d8309c5159b9579ea17950c7fb698a71878731ebedd3b6d0f73b113716841ff6860b00542887904532aacd4bb5ba86bab12f53

View File

@ -1,27 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit git-r3 eutils meson
DESCRIPTION="wayland-compatible screen locking"
HOMEPAGE="http://swaywm.org/"
EGIT_REPO_URI="https://github.com/swaywm/swaybg.git"
EGIT_BRANCH="master"
LICENSE="MIT"
SLOT="0"
KEYWORDS=""
IUSE=""
RDEPEND="gui-libs/wlroots
dev-libs/wayland
x11-libs/gdk-pixbuf[jpeg]
x11-libs/cairo
virtual/pam
x11-libs/libxkbcommon"
DEPEND="${RDEPEND}
app-text/scdoc
dev-libs/wayland-protocols"

View File

@ -1 +0,0 @@
EBUILD swayidle-9999.ebuild 433 BLAKE2B b76e3481ee80bb4ddcfdac0c5bccc1ca997b5f9ce008b5a83399cc6ce81c266b9e90565c0d8be60a7d63a99f1d234fe38c0de9427a384cbddb4a537afeed2f5f SHA512 376a9baca08ee5e351b0a1766c91aa0304e11ecf6bd9d95d39613161fe89b107f0c86260bff0a9f2e155a67a68f29546d6fb9da5748ffbfc031dcb7946769eff

View File

@ -1,22 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit git-r3 eutils meson
DESCRIPTION="wayland-compatible DPMS idling"
HOMEPAGE="http://swaywm.org/"
EGIT_REPO_URI="https://github.com/swaywm/swayidle.git"
EGIT_BRANCH="master"
LICENSE="MIT"
SLOT="0"
KEYWORDS=""
IUSE=""
RDEPEND="dev-libs/wayland"
DEPEND="${RDEPEND}
app-text/scdoc
dev-libs/wayland-protocols"

View File

@ -1 +0,0 @@
EBUILD swaylock-9999.ebuild 533 BLAKE2B 6fa073876ef504962032e5308f99928211c006f6c3a6884037220ccfd2327ff854e6bb7de29bd299fcde25127b68cffb3db2d273fee73da5ba1c8e684fbc1164 SHA512 e0a027ffcc412992ab7119e27b7d94eeaeb3a2e7d64b621aef3a4bdf043b5312e76e535e8c452a0eda25046dfb7b22fb81452bb2ca103777263ef2f3291ea675

View File

@ -1,27 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit git-r3 eutils meson
DESCRIPTION="wayland-compatible screen locking"
HOMEPAGE="http://swaywm.org/"
EGIT_REPO_URI="https://github.com/swaywm/swaylock.git"
EGIT_BRANCH="master"
LICENSE="MIT"
SLOT="0"
KEYWORDS=""
IUSE=""
RDEPEND="gui-libs/wlroots
dev-libs/wayland
x11-libs/gdk-pixbuf[jpeg]
x11-libs/cairo
virtual/pam
x11-libs/libxkbcommon"
DEPEND="${RDEPEND}
app-text/scdoc
dev-libs/wayland-protocols"

View File

@ -1 +0,0 @@
EBUILD waybar-9999.ebuild 986 BLAKE2B f404ba25876e511c2820f9a392345c086f4d495cebc38789357e523ed7a8c2bef6f544b13e94358d6b1b0f0026ebb9d825dd19d4f3b4bdbd773ca34c10ec0de9 SHA512 0f21b1ad02f76b8bf957d4919698fe40b02019cbfd375efbf070568038ba9bed0c07fe7129d48f46bb01d52043010913b68c44653fd3c223b865b00301abe6e3

View File

@ -1,47 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit git-r3 eutils meson
DESCRIPTION="Select a region in a Wayland compositor"
HOMEPAGE="https://github.com/Alexays/Waybar/wiki"
EGIT_REPO_URI="https://github.com/Alexays/Waybar.git"
EGIT_BRANCH="master"
SRC_URI=""
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="+libnl dbusmenu pulseaudio"
DEPEND="
dev-libs/wayland
dev-libs/wayland-protocols
dev-libs/libinput
dev-libs/glib
gui-libs/wlroots
dev-cpp/gtkmm
dev-libs/libfmt
dev-libs/libsigc++
dev-libs/jsoncpp
dbusmenu? ( dev-libs/gobject-introspection )
dbusmenu? ( dev-libs/libdbusmenu )
pulseaudio? ( media-sound/pulseaudio )
libnl? ( dev-libs/libnl ) "
RDEPEND="${DEPEND}"
BDEPEND=""
src_configure() {
local emesonargs=(
-Ddbusmenu-gtk=$(usex dbusmenu enabled disabled)
-Dlibnl=$(usex libnl enabled disabled)
-Dpulseaudio=$(usex pulseaudio enabled disabled)
)
meson_src_configure
}

View File

@ -1 +0,0 @@
EBUILD wl-clipboard-9999.ebuild 497 BLAKE2B dd51b2ec8eadbbbca4c9929b131658279ecae01769cbddf4bcfe87370663ecae361032e64b4113d65d0e0ce3c93dee3c152e1b414083a1cabc10732adf9331e3 SHA512 9f005e8b23f48571098cff049d160d53dd0a8b3aadc9683f6190508491c667a66b2955429b92fc38d58f115b6c772acfdc61916f421b4953152710f99cd60b77

View File

@ -1,27 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit git-r3 eutils meson
DESCRIPTION="Select a region in a Wayland compositor"
HOMEPAGE="https://github.com/bugaevc/wl-clipboard"
EGIT_REPO_URI="https://github.com/bugaevc/wl-clipboard.git"
EGIT_BRANCH="master"
SRC_URI=""
LICENSE="MIT"
SLOT="0"
KEYWORDS=""
IUSE=""
DEPEND="
dev-libs/wayland
dev-libs/wayland-protocols
x11-misc/xdg-utils"
RDEPEND="${DEPEND}"
BDEPEND=""

View File

@ -1 +0,0 @@
EBUILD wlroots-9999.ebuild 1463 BLAKE2B 7ca625f930bf47baf7315f1c6f49b2861c9c6e05e14f537155d05fce35dace4f421b36c0083e35406f6ee29adb4dee70f0aac7899c542445cb1ce5c8b1b09e4d SHA512 96970a619847fabdc1ace0e03476d650614fd984ded1f420d71e571f4177e12447d45b1b9147dac1d9a76083768579abddad184c8d39a4cd5d4eea23ceada630

View File

@ -1,62 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit meson
DESCRIPTION="Pluggable, composable modules for building a Wayland compositor."
HOMEPAGE="https://github.com/SirCmpwn/wlroots"
if [ ${PV} -eq "9999" ]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/SirCmpwn/wlroots"
EGIT_CLONE_TYPE="shallow"
else
SRC_URI=""
fi
LICENSE="MIT"
SLOT="0"
KEYWORDS="~x86 ~amd64"
IUSE="libcap systemd xwayland xcb-errors elogind -examples"
DEPEND="
x11-libs/libxkbcommon
dev-libs/libinput
x11-libs/libdrm
dev-libs/wayland
>=dev-libs/wayland-protocols-1.15
virtual/libudev
x11-libs/pixman
media-libs/mesa[egl,gles2,gbm]
x11-libs/libxcb
x11-base/xcb-proto
libcap? ( sys-libs/libcap )
systemd? ( sys-apps/systemd )
xwayland? ( x11-base/xorg-server[wayland] )
elogind? ( sys-auth/elogind )
"
RDEPEND="${DEPEND}"
src_configure() {
local logd
if use elogind && use systemd; then echo "=-=-=- Both USE=systemd and USE=elogind have been selected, elogind preferred."; fi
if use elogind; then
logd="-Dlogind-provider=elogind -Dlogind=enabled"
elif use systemd; then
logd="-Dlogind-provider=systemd -Dlogind=enabled"
else
logd="-Dlogind=disabled"
fi
local emesonargs=(
-Dlibcap=$(usex libcap enabled disabled)
$logd
-Dxcb-errors=$(usex xcb-errors enabled disabled)
-Dxwayland=$(usex xwayland enabled disabled)
-Dexamples=$(usex examples true false)
)
meson_src_configure
}

View File

@ -1,2 +0,0 @@
EBUILD sway-9999.ebuild 1441 BLAKE2B 91442fc3d9899dace62545c92beb551da4ff356479201fa8676f1993a13688ddd76b0d354b4082c331c1be0092472302597ea9d0c5f6be28c8bd20befac747a8 SHA512 9b928bba5aeed7f25dedb1c4cf617db74cfec3ee389cdb350983b8ae15b0060a444cd83de459cba08e487e46cc8c8b019216e9c08fb407adf4cafa55623d07a5
MISC metadata.xml 1746 BLAKE2B 9d304a2ec759a15f644e6efd90bf59175c0a1d9c166ea1107bf71978f76c9bdb9f735b545b0b127d2ad55e82d9c90fafc15c292e63facb71cf70b0b6c8a0b474 SHA512 0c019a562828c5fd18d5b01f966eb3b7301ae7399e5b979708a9a31e23b056238d720aa44bff79aa21c5609d8a69d32d7733b82e3931a2bcdfcbf9ff7d8056c7

View File

@ -1,40 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>simon@simonics.net</email>
<name>Simon M</name>
</maintainer>
<maintainer type="project">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<longdescription lang="en">
"SirCmpwn's Wayland window manager" is an i3-compatible window manager
for Wayland.
sway was created to fill the need of an i3-like window manager for
Wayland. The upstream i3 developers have no intention of porting i3 to
Wayland, and projects proposed by others ended up as vaporware. Many
thanks to the i3 folks for providing such a great piece of software, so
good that your users would rather write an entirely new window manager
from scratch that behaved *exactly* like i3 rather than switch to
something else.
</longdescription>
<use>
<flag name="gdk-pixbuf">
Enable additional image format support via the
<pkg>x11-libs/gdk-pixbuf</pkg> library.
</flag>
<flag name="swaybar">Build 'swaybar': sway's status bar component.</flag>
<flag name="swaybg">Build 'swaybg': allows to set a desktop background image.</flag>
<flag name="swaygrab">Build 'swaygrab': allows taking screenshots or screencasts.</flag>
<flag name="swaylock">Build 'swaylock': sway's screen locker.</flag>
<flag name="swaymsg">Build 'swaymsg': tool for communicating with a running sway instance.</flag>
<flag name="wallpapers">Install sway's default wallpaper image.</flag>
<flag name="tray">Enable support for StatusNotifierItem tray specification.</flag>
</use>
<upstream>
<remote-id type="github">swaywm/sway</remote-id>
</upstream>
</pkgmetadata>

View File

@ -1,59 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit git-r3 eutils meson
DESCRIPTION="i3-compatible Wayland window manager"
HOMEPAGE="http://swaywm.org/"
EGIT_REPO_URI="https://github.com/swaywm/sway.git"
EGIT_BRANCH="master"
LICENSE="MIT"
SLOT="0"
KEYWORDS=""
IUSE="+gdk-pixbuf systemd swaylock swayidle +tray wallpapers zsh-completion logind +xwayland"
RDEPEND="=gui-libs/wlroots-9999[systemd=]
>=dev-libs/json-c-0.13
dev-libs/libpcre
dev-libs/wayland
sys-libs/libcap
x11-libs/cairo
x11-libs/pango
gdk-pixbuf? ( x11-libs/gdk-pixbuf[jpeg] )
swaylock? ( virtual/pam )
xwayland? ( x11-base/xorg-server[wayland] )
tray? ( sys-apps/dbus )
swaylock? ( gui-apps/swaylock )
swayidle? ( gui-apps/swayidle )"
DEPEND="${RDEPEND}
app-text/scdoc
virtual/pkgconfig"
src_configure() {
local emesonargs=(
-Dtray=$(usex tray enabled disabled)
$(meson_use wallpapers default-wallpaper)
$(meson_use zsh-completion zsh-completions)
-Dxwayland=$(usex xwayland enabled disabled)
-Dgdk-pixbuf=$(usex gdk-pixbuf enabled disabled)
$(meson_use logind logind)
)
meson_src_configure
}
src_install() {
meson_src_install
use !systemd && use !logind && fperms u+s /usr/bin/sway
}
pkg_postinst() {
optfeature "screenshot support" dev-libs/grim dev-libs/slurp
optfeature "X11 applications support" dev-libs/wlroots[xwayland] x11-base/xorg-server[wayland]
}

View File

@ -1,3 +0,0 @@
DIST quodlibet-3.9.1.tar.gz 3850929 BLAKE2B c4317521259f1d46e927276ee8bd927afd72708f7b6e260a68e2cfe6e949f44e08df5884f3613804955b18b7284f0140f9d2d409833bd0a139732728903ae978 SHA512 6d6b6380de2fc2d3ab1614b304f2d7219ff1d823e03f532baa0e9b1308fd36094ad745433494253d956182ae9914eb62846df3d3e5fea92dddccdaa725178563
EBUILD quodlibet-3.9.1.ebuild 1769 BLAKE2B 80cef352fa2378adf7a36fce92dccb3d7b4d7ba2634bcf25fec97083bfe14b3088c34b2b6e58280cff4ddd1094ed1f9dccd5db692020de2d1145c7a4d8a075b2 SHA512 2cb9d5c1e9141c219380acb9fae2db88e6f584bb37318741780b3406096aaa4a96f3249634d1277436772cf65c66517e056d21aaf8b5f2c39ccdec34d3c5b058
MISC metadata.xml 1154 BLAKE2B 96616431339f5375934dbc603e19898a500ffce9db92ff812c3aa6685c577a417b39bf8aa24090df7e78d515a9eaeafe7e3dd94dd7a6536d86b39ec05bbcaee2 SHA512 693bedf8126329d5f9e205f8d76e39d0099a0be0f6d350db9b8293e2d04ba25baf2f1b5d0e77a05baadb7ed2f0371c9a1619bb0622e0d8a83e7fb13e9f091472

View File

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>tamiko@gentoo.org</email>
<name>Matthias Maier</name>
</maintainer>
<maintainer type="person">
<email>klausman@gentoo.org</email>
<name>Tobias Klausmann</name>
</maintainer>
<maintainer type="project">
<email>sound@gentoo.org</email>
<name>Gentoo Sound project</name>
</maintainer>
<longdescription>Quod Libet is a GTK+-based audio player written in Python. It's
designed around the idea that you know better than we do how to
organize your music. It lets you make playlists based on regular
expressions (don't worry, regular searches work too). It lets you
display and edit any tags you want in the file. And it lets you do
this for all the file formats it supports -- Ogg Vorbis, FLAC, MP3,
Musepack, and MOD.</longdescription>
<upstream>
<remote-id type="google-code">quodlibet</remote-id>
<remote-id type="github">quodlibet/quodlibet</remote-id>
<remote-id type="bitbucket">lazka/quodlibet-files</remote-id>
</upstream>
</pkgmetadata>

View File

@ -1,73 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python2_7 )
inherit distutils-r1 gnome2-utils fdo-mime
DESCRIPTION="audio library tagger, manager, and player for GTK+"
HOMEPAGE="http://quodlibet.readthedocs.org"
SRC_URI="https://github.com/${PN}/${PN}/archive/release-${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ppc ppc64 x86"
IUSE="+dbus gstreamer ipod +udev"
RDEPEND="dev-libs/keybinder:3[introspection]
dev-python/feedparser[${PYTHON_USEDEP}]
dev-python/faulthandler[${PYTHON_USEDEP}]
dev-python/futures[${PYTHON_USEDEP}]
dev-python/pygobject:3[${PYTHON_USEDEP}]
>=media-libs/mutagen-1.32[${PYTHON_USEDEP}]
net-libs/libsoup[introspection]
x11-libs/gtk+[introspection]
gstreamer? (
media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0
media-libs/gst-plugins-good:1.0
media-plugins/gst-plugins-meta:1.0
)
!gstreamer? ( media-libs/xine-lib )
dbus? (
app-misc/media-player-info
dev-python/dbus-python[${PYTHON_USEDEP}]
)
ipod? ( media-libs/libgpod[python,${PYTHON_USEDEP}] )
udev? ( virtual/udev )
!media-plugins/quodlibet-plugins"
DEPEND="dev-util/intltool"
REQUIRED_USE="ipod? ( dbus )"
S="${WORKDIR}/${PN}-release-${PV}/${PN}"
src_prepare() {
local qlconfig=${PN}/config.py
if ! use gstreamer; then
sed -i -e '/backend/s:gstbe:xinebe:' ${qlconfig} || die
fi
sed -i -e '/gst_pipeline/s:"":"alsasink":' ${qlconfig} || die
distutils-r1_src_prepare
}
src_install() {
distutils-r1_src_install
dodoc NEWS README
}
pkg_preinst() {
gnome2_icon_savelist
}
pkg_postinst() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
}
pkg_postrm() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
}

View File

@ -1 +0,0 @@
EBUILD bitlbee-facebook-9999.ebuild 716 BLAKE2B dbdb2d21d9464d1583eb6f92ae9a44db7a4233cc4d51d3146dcd368e254b165a27a8c8bf90b27083172ed50e20f77428af08f0c221551409dce4020269913aed SHA512 b5d91a3dbb9ddeccdf35bbc8da3b1bc03d31a990fadf9e69fa518529214d73e4859183c9b07b195e33dd73331e19d8e6d76510f306a0a9a395721209e7dc262e

View File

@ -1,36 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
inherit git-r3 eutils autotools
DESCRIPTION="The Facebook protocol plugin for bitlbee. This plugin uses the Facebook Mobile API."
HOMEPAGE="https://github.com/jgeboski/bitlbee-facebook"
SRC_URI=""
EGIT_REPO_URI="https://github.com/jgeboski/bitlbee-facebook.git"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~x86 ~amd64"
IUSE="debug"
DEPEND="dev-libs/glib:2
>=net-im/bitlbee-3.2.2[plugins]
>=sys-libs/zlib-1.2.8-r1"
RDEPEND="${DEPEND}"
src_prepare() {
eautoreconf
}
src_configure() {
econf \
$(use_enable debug) \
--enable-minimal-flags
}
src_install() {
default
prune_libtool_files
}

View File

@ -1,2 +0,0 @@
DIST internode-quota-check 14359 BLAKE2B e871adaef4f32d150842bb72325446cd4713ed35dd845b934a182d02c66dc67afc3ee6ce8641ba8b1053bc8782b7a8afaff2c7aacac198d490409a289f560198 SHA512 74e2d66b8f4f107cd5da005654eb9d778d2d00e101ce73552f7667724cb76a1db1530a09d3f06dcd577461c31951b9a4f5b3a5b54703c36d83957d34c3b8403b
EBUILD internode-quota-check-2.3.ebuild 614 BLAKE2B 50a5bdd7301a2fb65d749dcb50ffc72baa4c182811903f083f613640bad49fecd99385bb8e47f5edbe915025b3044abe482e024316426d70f6ea832330ba7961 SHA512 259dcd8b174e24f5da52981cbb81df6ae2bdb18f0731a4d6d39139a00782e0f9cba78ce4d0edd9d96e4ffd42c0f9d2b38f6d26c52e97157c64fc26ee430164ed

View File

@ -1,29 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
DESCRIPTION="A simple internode usage meter"
HOMEPAGE="https://www.zwitterion.org/software/internode-quota-check/"
SRC_URI="https://www.zwitterion.org/software/internode-quota-check/internode-quota-check"
LICENSE="GPLv3"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
DEPEND="dev-perl/Readonly
virtual/perl-Time-Local
dev-perl/WWW-Mechanize
dev-perl/File-Slurp"
RDEPEND="${DEPEND}"
src_unpack() {
mkdir "${S}"
cp "${DISTDIR}/${PN}" "${S}"
}
src_install() {
dobin internode-quota-check
}

View File

@ -1,3 +0,0 @@
DIST v0.7.3a.tar.gz 276281 BLAKE2B 580a7d75002382d0101d67574924b276ec4fdef4b3f0bbbb5c30b98dd8bc5ab9dc4044ef9db92dc781ce89bd7dd7a2e2c9a81d475b389d930a8fe00555715745 SHA512 daadc5cffdf0c844fc8cf0c1b25741441cd968f6769f77885945c6393f8ff5714ba1e1e8b1fde8f8acec1386f2a303ab77362b4f17f77118cb537a3185caf4e7
EBUILD stig-0.7.3a.ebuild 738 BLAKE2B f53664d42aeafc560135789f85ca81b891121e05fde327dd1374d7086d16899de8571819d5e0c8c04049080697a87b84464a11d348e604a40d6f1c32de278174 SHA512 e2870490bf2e983d495258c07d507cbd5b163f6abbcfc95c79a185a1efcf58cb1281aa78172bb0c0d470343d0b7df3d206a28efb06e162fbb0560dae06934ce5
EBUILD stig-9999.ebuild 738 BLAKE2B f53664d42aeafc560135789f85ca81b891121e05fde327dd1374d7086d16899de8571819d5e0c8c04049080697a87b84464a11d348e604a40d6f1c32de278174 SHA512 e2870490bf2e983d495258c07d507cbd5b163f6abbcfc95c79a185a1efcf58cb1281aa78172bb0c0d470343d0b7df3d206a28efb06e162fbb0560dae06934ce5

View File

@ -1,33 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python3_{6,7,8} )
inherit distutils-r1
if [[ ${PV} == "9999" ]] ; then
EGIT_REPO_URI="https://github.com/rndusr/${PN}.git"
inherit git-r3
SRC_URI=""
else
SRC_URI="https://github.com/rndusr/${PN}/archive/v${PV}.tar.gz"
KEYWORDS="~x86 ~amd64 ~arm"
fi
DESCRIPTION="TUI and CLI client for the Transmission daemon"
HOMEPAGE="https://github.com/rndusr/stig"
LICENSE="GPL-3"
SLOT="0"
IUSE="+geoip"
DEPEND="geoip? ( dev-python/geoip-python )
>=dev-python/urwid-1.3.0
=dev-python/urwidtrees-9999
dev-python/aiohttp
dev-python/appdirs
dev-python/blinker
dev-python/natsort"
RDEPEND="${DEPEND}"

View File

@ -1,33 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python3_{6,7,8} )
inherit distutils-r1
if [[ ${PV} == "9999" ]] ; then
EGIT_REPO_URI="https://github.com/rndusr/${PN}.git"
inherit git-r3
SRC_URI=""
else
SRC_URI="https://github.com/rndusr/${PN}/archive/v${PV}.tar.gz"
KEYWORDS="~x86 ~amd64 ~arm"
fi
DESCRIPTION="TUI and CLI client for the Transmission daemon"
HOMEPAGE="https://github.com/rndusr/stig"
LICENSE="GPL-3"
SLOT="0"
IUSE="+geoip"
DEPEND="geoip? ( dev-python/geoip-python )
>=dev-python/urwid-1.3.0
=dev-python/urwidtrees-9999
dev-python/aiohttp
dev-python/appdirs
dev-python/blinker
dev-python/natsort"
RDEPEND="${DEPEND}"

View File

@ -1,14 +0,0 @@
AUX 238-initctl.patch 1497 BLAKE2B 7f916414a8bb92e5d8a2b47fc9adf90da73c9fb27bd32eb2a89c5d0b56215bac1ac8c7e9e011268b2f3126fa272c0a118f5e2916f6eca48f60e359a056cf6d92 SHA512 1963c653321fd69a66f75dc441e36d47d7eb15c193066845e43a6f62d436d9a7fefd98c6418cdb08fca823720fa62887c93e67de427e599ee19b1f72301cfe62
AUX 238-libmount-include.patch 2164 BLAKE2B d9d86e8affb6a6d5cc8cb42b4f1744936b0773318d466a7f76b43a382ffc6aca7d863cbfef7ea8a114615db35d1a6f57b22a2fd451a82b71cfac3383bb019870 SHA512 4f1d82195623a213b6439aec6a2ff17b027f4ed079e6917957635503125a0917d4069c8055b5b9d1be235c47d62235f4c7baa0cfb9184d48f06bac356b69706a
AUX 238-nspawn-wait.patch 3415 BLAKE2B db43b0128709bba3bd50199645e2e819d0b86eb6839f3bff34b21ce989f5e9301d541265fdb0dbaa76cae00df492581a624e9ca694d4d6d1f2d1cabf5a02612c SHA512 8f1c940da604d72948aa14e735f31ce6b349d274f18836233f15bdec7605e7a52a9ac1016cbd98fdd57d547e31ff882f3244029fba58ac4a408aad41f378a0a0
AUX libsystemd-237-libsystemd.sym 12003 BLAKE2B adcea5983c69ffb96d1a1757f4430a3b2debe4b7404f4bad50c6dbbcc1459195b50f96fea8e8598932f54a7f5be47386c58dac0ea373cff77daf0742fea1dfdf SHA512 0886119c20865fd9bb8d0f99e6355eb918ca3f70706844150def647a6e8684b423e185ba1e6dd9ab30a5503c7e33c86fdec63b2fd45829d5092a6b2d986ade1a
AUX libsystemd-237-meson.build 32283 BLAKE2B fb2914bead320c20886bdc2b9d1ce571992f26b192eb48a93fa58c832b60af4ead8612d4c9700e8ac25ceb162cc48ccc661bbc1f759811644f021eae378bcabc SHA512 352e1143463433dc63813cfbde43ecfbdaae895d1940d34903d530206658d26e6514afbb622fe964b0863dcf451f5135dd048a6c3cadc4ad651aee7689381797
AUX libsystemd-237-meson_build.patch 2091 BLAKE2B 1bfae6cec8d9dd2f5bf6b2d7cbd73920b39a08dd12a8dd4fa9fd679e5ce66c2d1ab9cabb8c2cb827bcd6544fa3b4db48b0e8d5d1d1d517fc69668e8660a480a0 SHA512 b4665c3bc69bd414014a34906b5920b32b09daa5cee94044c5ccace6b086a12e82e4b076ff63fc43ea3048a8f745d60efbb15cb885e6d2516414c6506618f98d
AUX libsystemd-238-libsystemd.sym 12116 BLAKE2B dfabaea398e19b90b5e00d7a84d799efec7f493c203ed0fef7ba70dc05897020c84f561124f3d3932bbe018448cffca4b6eb472a835e05a82c719d4a9c795a14 SHA512 9963e5a13bc093fc2163f1715d549ce3324666a3ca02167cb6a14aed4b6501197cf0fa32081a126c3bbe32c342dcc881ab8993ea95c52384e7cda55140808434
AUX libsystemd-238-meson.build 34828 BLAKE2B d45d1c0805be2d6bacef9ca36b045d90aa036720b17e94983fd73504854d9194464cb95ec871566a6fc18a838a9ff460e5b5521c4d5fc5a5b19d954dbbbc1218 SHA512 1908691eade0bb669d1ab9c10148e42864fb935012745f78f6b35b8b44edc4a3c8d0a028783f0ef68d97b0fc472444d1316d0dbeef50de46651194ecff3423d1
AUX libsystemd-238-meson_build.patch 771 BLAKE2B 5a2c98a71b672d3cf74b1b8f71fce738f638a7e4b0ca3d3f2906ecce4968019ed6939bfd1510668079db612ebe9935220ab83a81fc612d3a551b4ebb49096b47 SHA512 62405620a40bcdb9dd9abec7400bb7319b7572dcc79eda141fe6734131aac96775c8691a78378b0c2fb632f89fadf15c219968109229cb3945df2f934d8074a6
DIST systemd-237.tar.gz 6871350 BLAKE2B 4734a110a297fbbd6679bced6302fcdca55ab5d4207905e8dee9f5545f1de841d5adeaa4fd89961b9e63709d04b5c862b8bc81481311cf8e72ee327e459c9d91 SHA512 15ef4b92815a6dd9a6c51672dbc00fd7cd0f08068ef0cbeaca574f68d330b28bc67ba1946f24f75ef3d9e7b63843a73eea700db54688061dbf5c9f8470394c3b
DIST systemd-238-patches-0.tar.gz 30019 BLAKE2B 0f393865cd6bcd815c1a6e932c0e5a25e125768d2bdef072d5fa7830b9ea012d0986380a1cdea8e369e1fffe89ea7657e4d55de2bae0d785ae374796a4e7c64b SHA512 f7e6fb7bf3b5cde2717a9e5dcd779a4595d6185d1ecdad8405a075edbb55b32c2573558f6af119ff50ea0df8eacef12ae7ee710fadd269f83db0985d76eb22dc
DIST systemd-238.tar.gz 6954022 BLAKE2B 9b5cc36a7234c0d037a2656ee1e5ed54186a394b8be41771ebc29c903d3efcecf7f13f004a6d1695c022923bd0d540a243e897852f07e810f73fd3163f688dde SHA512 c0f272b022308d3bd94679184e102a8dc85de55310bda205a458ea33c77c7733e5c8c8e5b15f786ba3e0ce59e7c6a9bf0d5a0950517c6b91e0f345950129b9c8
EBUILD libsystemd-237.ebuild 4030 BLAKE2B 5c7018d976d60bd2b3b35fb544e1d0054ed6c752ae5a68fe32d1864079187a1e2f8c1d3fecdc81ac01d3eabef11cd60c1f1f7ec974d98f68670bc14a32cad111 SHA512 30f7b4dc9aaed3d1f50778b957c5e27527b768c657a2e928bda32f2181322f7e676ce3bd0cbf861f74cc3a006e8c8087688e7952fae2983bd367f57dfe3c2517
EBUILD libsystemd-238.ebuild 4603 BLAKE2B a62bd7783b2f960724fc39d1d1a805554160286368d0bacd6f20d7e154365be8fc152aab29f37c6007e3a80e307c8649678ab1191102f76ea51243521c730926 SHA512 ed61b5c66333fab2eb2f123d0edc148a5559e47e2e2a923e43c838e000e3d5afd2bc8be43b28f5ab4f34267ca3e2df96f0a824fcb0bfd647325005a01fee3edd

View File

@ -1,46 +0,0 @@
From 4d8c7c1b3a5feebca948a3b8663f5be887b57731 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Fri, 30 Mar 2018 11:00:17 -0400
Subject: [PATCH] units: initctl: move the fifo to /run/initctl to match
sysvinit
The fifo location was moved in sysvinit-2.89.
http://git.savannah.nongnu.org/cgit/sysvinit.git/commit/?id=80dbcf3de3c1b83aeaa713a8fe5b8d35d8649af2
---
units/systemd-initctl.service.in | 2 +-
units/systemd-initctl.socket | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/units/systemd-initctl.service.in b/units/systemd-initctl.service.in
index 6cfed3da11f..2b4b957dce3 100644
--- a/units/systemd-initctl.service.in
+++ b/units/systemd-initctl.service.in
@@ -8,7 +8,7 @@
# (at your option) any later version.
[Unit]
-Description=/dev/initctl Compatibility Daemon
+Description=initctl Compatibility Daemon
Documentation=man:systemd-initctl.service(8)
DefaultDependencies=no
diff --git a/units/systemd-initctl.socket b/units/systemd-initctl.socket
index 61f877ba7d2..9d975799081 100644
--- a/units/systemd-initctl.socket
+++ b/units/systemd-initctl.socket
@@ -8,12 +8,12 @@
# (at your option) any later version.
[Unit]
-Description=/dev/initctl Compatibility Named Pipe
+Description=initctl Compatibility Named Pipe
Documentation=man:systemd-initctl.service(8)
DefaultDependencies=no
Before=sockets.target
[Socket]
-ListenFIFO=/run/systemd/initctl/fifo
+ListenFIFO=/run/initctl
Symlinks=/dev/initctl
SocketMode=0600

View File

@ -1,72 +0,0 @@
From 227b8a762fea1458547be2cdf0e6e4aac0079730 Mon Sep 17 00:00:00 2001
From: Michael Olbrich <m.olbrich@pengutronix.de>
Date: Mon, 26 Mar 2018 17:34:53 +0200
Subject: [PATCH] core: don't include libmount.h in a header file (#8580)
linux/fs.h sys/mount.h, libmount.h and missing.h all include MS_*
definitions.
To avoid problems, only one of linux/fs.h, sys/mount.h and libmount.h
should be included. And missing.h must be included last.
Without this, building systemd may fail with:
In file included from [...]/libmount/libmount.h:31:0,
from ../systemd-238/src/core/manager.h:23,
from ../systemd-238/src/core/emergency-action.h:37,
from ../systemd-238/src/core/unit.h:34,
from ../systemd-238/src/core/dbus-timer.h:25,
from ../systemd-238/src/core/timer.c:26:
[...]/sys/mount.h:57:2: error: expected identifier before numeric constant
---
src/core/dbus-execute.c | 1 +
src/core/manager.h | 3 ++-
src/core/mount.c | 2 ++
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
index 7344623ebf6..c342093bca4 100644
--- a/src/core/dbus-execute.c
+++ b/src/core/dbus-execute.c
@@ -18,6 +18,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
+#include <sys/mount.h>
#include <sys/prctl.h>
#include <stdio_ext.h>
diff --git a/src/core/manager.h b/src/core/manager.h
index 28c5da225b1..e09e0cdf5e9 100644
--- a/src/core/manager.h
+++ b/src/core/manager.h
@@ -20,7 +20,6 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include <libmount.h>
#include <stdbool.h>
#include <stdio.h>
@@ -34,6 +33,8 @@
#include "list.h"
#include "ratelimit.h"
+struct libmnt_monitor;
+
/* Enforce upper limit how many names we allow */
#define MANAGER_MAX_NAMES 131072 /* 128K */
diff --git a/src/core/mount.c b/src/core/mount.c
index 0e755da5c02..0154ebda5d6 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -23,6 +23,8 @@
#include <stdio.h>
#include <sys/epoll.h>
+#include <libmount.h>
+
#include "sd-messages.h"
#include "alloc-util.h"

View File

@ -1,83 +0,0 @@
From 7511655807e90aa33ea7b71991401a79ec36bb41 Mon Sep 17 00:00:00 2001
From: Philip Sequeira <phsequei@gmail.com>
Date: Thu, 5 Apr 2018 14:04:27 +0000
Subject: [PATCH] nspawn: wait for network namespace creation before interface
setup (#8633)
Otherwise, network interfaces can be "moved" into the container's
namespace while it's still the same as the host namespace, in which case
e.g. host0 for a veth ends up on the host side instead of inside the
container.
Regression introduced in 0441378080489e4ab6704cd0a2d78cb1ceaca899.
Fixes #8599.
---
src/nspawn/nspawn.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index 810f1247ea2..a5bc50c1f4c 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -2329,6 +2329,9 @@ static int inner_child(
r = unshare(CLONE_NEWNET);
if (r < 0)
return log_error_errno(errno, "Failed to unshare network namespace: %m");
+
+ /* Tell the parent that it can setup network interfaces. */
+ (void) barrier_place(barrier); /* #3 */
}
r = mount_sysfs(NULL, arg_mount_settings);
@@ -2337,7 +2340,7 @@ static int inner_child(
/* Wait until we are cgroup-ified, so that we
* can mount the right cgroup path writable */
- if (!barrier_place_and_sync(barrier)) { /* #3 */
+ if (!barrier_place_and_sync(barrier)) { /* #4 */
log_error("Parent died too early");
return -ESRCH;
}
@@ -2448,7 +2451,7 @@ static int inner_child(
/* Let the parent know that we are ready and
* wait until the parent is ready with the
* setup, too... */
- if (!barrier_place_and_sync(barrier)) { /* #4 */
+ if (!barrier_place_and_sync(barrier)) { /* #5 */
log_error("Parent died too early");
return -ESRCH;
}
@@ -3533,6 +3536,14 @@ static int run(int master,
if (arg_private_network) {
+ if (!arg_network_namespace_path) {
+ /* Wait until the child has unshared its network namespace. */
+ if (!barrier_place_and_sync(&barrier)) { /* #3 */
+ log_error("Child died too early");
+ return -ESRCH;
+ }
+ }
+
r = move_network_interfaces(*pid, arg_network_interfaces);
if (r < 0)
return r;
@@ -3656,7 +3667,7 @@ static int run(int master,
* its setup (including cgroup-ification), and that
* the child can now hand over control to the code to
* run inside the container. */
- (void) barrier_place(&barrier); /* #3 */
+ (void) barrier_place(&barrier); /* #4 */
/* Block SIGCHLD here, before notifying child.
* process_pty() will handle it with the other signals. */
@@ -3684,7 +3695,7 @@ static int run(int master,
return r;
/* Let the child know that we are ready and wait that the child is completely ready now. */
- if (!barrier_place_and_sync(&barrier)) { /* #4 */
+ if (!barrier_place_and_sync(&barrier)) { /* #5 */
log_error("Child died too early.");
return -ESRCH;
}

View File

@ -1,405 +0,0 @@
/***
SPDX-License-Identifier: LGPL-2.1+
This file is part of systemd.
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
***/
LIBSYSTEMD_209 {
global:
/* sd-daemon */
sd_booted;
sd_is_fifo;
sd_is_mq;
sd_is_socket;
sd_is_socket_inet;
sd_is_socket_unix;
sd_is_special;
sd_listen_fds;
sd_notify;
sd_notifyf;
sd_watchdog_enabled;
/* sd-id128 */
sd_id128_to_string;
sd_id128_from_string;
sd_id128_randomize;
sd_id128_get_machine;
sd_id128_get_boot;
local:
*;
};
LIBSYSTEMD_214 {
global:
sd_pid_notify;
sd_pid_notifyf;
} LIBSYSTEMD_209;
LIBSYSTEMD_219 {
global:
sd_pid_notify_with_fds;
} LIBSYSTEMD_214;
LIBSYSTEMD_221 {
global:
/* sd-bus */
sd_bus_default;
sd_bus_default_user;
sd_bus_default_system;
sd_bus_open;
sd_bus_open_user;
sd_bus_open_system;
sd_bus_open_system_remote;
sd_bus_open_system_machine;
sd_bus_new;
sd_bus_set_address;
sd_bus_set_fd;
sd_bus_set_exec;
sd_bus_get_address;
sd_bus_set_bus_client;
sd_bus_is_bus_client;
sd_bus_set_server;
sd_bus_is_server;
sd_bus_set_anonymous;
sd_bus_is_anonymous;
sd_bus_set_trusted;
sd_bus_is_trusted;
sd_bus_set_monitor;
sd_bus_is_monitor;
sd_bus_set_description;
sd_bus_get_description;
sd_bus_negotiate_creds;
sd_bus_negotiate_timestamp;
sd_bus_negotiate_fds;
sd_bus_can_send;
sd_bus_get_creds_mask;
sd_bus_set_allow_interactive_authorization;
sd_bus_get_allow_interactive_authorization;
sd_bus_start;
sd_bus_close;
sd_bus_try_close;
sd_bus_ref;
sd_bus_unref;
sd_bus_is_open;
sd_bus_get_bus_id;
sd_bus_get_scope;
sd_bus_get_tid;
sd_bus_get_owner_creds;
sd_bus_send;
sd_bus_send_to;
sd_bus_call;
sd_bus_call_async;
sd_bus_get_fd;
sd_bus_get_events;
sd_bus_get_timeout;
sd_bus_process;
sd_bus_process_priority;
sd_bus_wait;
sd_bus_flush;
sd_bus_get_current_slot;
sd_bus_get_current_message;
sd_bus_get_current_handler;
sd_bus_get_current_userdata;
sd_bus_attach_event;
sd_bus_detach_event;
sd_bus_get_event;
sd_bus_add_filter;
sd_bus_add_match;
sd_bus_add_object;
sd_bus_add_fallback;
sd_bus_add_object_vtable;
sd_bus_add_fallback_vtable;
sd_bus_add_node_enumerator;
sd_bus_add_object_manager;
sd_bus_slot_ref;
sd_bus_slot_unref;
sd_bus_slot_get_bus;
sd_bus_slot_get_userdata;
sd_bus_slot_set_userdata;
sd_bus_slot_get_description;
sd_bus_slot_set_description;
sd_bus_slot_get_current_message;
sd_bus_slot_get_current_handler;
sd_bus_slot_get_current_userdata;
sd_bus_message_new_signal;
sd_bus_message_new_method_call;
sd_bus_message_new_method_return;
sd_bus_message_new_method_error;
sd_bus_message_new_method_errorf;
sd_bus_message_new_method_errno;
sd_bus_message_new_method_errnof;
sd_bus_message_ref;
sd_bus_message_unref;
sd_bus_message_get_type;
sd_bus_message_get_cookie;
sd_bus_message_get_reply_cookie;
sd_bus_message_get_priority;
sd_bus_message_get_expect_reply;
sd_bus_message_get_auto_start;
sd_bus_message_get_allow_interactive_authorization;
sd_bus_message_get_signature;
sd_bus_message_get_path;
sd_bus_message_get_interface;
sd_bus_message_get_member;
sd_bus_message_get_destination;
sd_bus_message_get_sender;
sd_bus_message_get_error;
sd_bus_message_get_errno;
sd_bus_message_get_monotonic_usec;
sd_bus_message_get_realtime_usec;
sd_bus_message_get_seqnum;
sd_bus_message_get_bus;
sd_bus_message_get_creds;
sd_bus_message_is_signal;
sd_bus_message_is_method_call;
sd_bus_message_is_method_error;
sd_bus_message_is_empty;
sd_bus_message_has_signature;
sd_bus_message_set_expect_reply;
sd_bus_message_set_auto_start;
sd_bus_message_set_allow_interactive_authorization;
sd_bus_message_set_destination;
sd_bus_message_set_priority;
sd_bus_message_append;
sd_bus_message_append_basic;
sd_bus_message_append_array;
sd_bus_message_append_array_space;
sd_bus_message_append_array_iovec;
sd_bus_message_append_array_memfd;
sd_bus_message_append_string_space;
sd_bus_message_append_string_iovec;
sd_bus_message_append_string_memfd;
sd_bus_message_append_strv;
sd_bus_message_open_container;
sd_bus_message_close_container;
sd_bus_message_copy;
sd_bus_message_read;
sd_bus_message_read_basic;
sd_bus_message_read_array;
sd_bus_message_read_strv;
sd_bus_message_skip;
sd_bus_message_enter_container;
sd_bus_message_exit_container;
sd_bus_message_peek_type;
sd_bus_message_verify_type;
sd_bus_message_at_end;
sd_bus_message_rewind;
sd_bus_get_unique_name;
sd_bus_request_name;
sd_bus_release_name;
sd_bus_list_names;
sd_bus_get_name_creds;
sd_bus_get_name_machine_id;
sd_bus_call_method;
sd_bus_call_method_async;
sd_bus_get_property;
sd_bus_get_property_trivial;
sd_bus_get_property_string;
sd_bus_get_property_strv;
sd_bus_set_property;
sd_bus_reply_method_return;
sd_bus_reply_method_error;
sd_bus_reply_method_errorf;
sd_bus_reply_method_errno;
sd_bus_reply_method_errnof;
sd_bus_emit_signal;
sd_bus_emit_properties_changed_strv;
sd_bus_emit_properties_changed;
sd_bus_emit_interfaces_added_strv;
sd_bus_emit_interfaces_added;
sd_bus_emit_interfaces_removed_strv;
sd_bus_emit_interfaces_removed;
sd_bus_query_sender_creds;
sd_bus_query_sender_privilege;
sd_bus_creds_new_from_pid;
sd_bus_creds_ref;
sd_bus_creds_unref;
sd_bus_creds_get_mask;
sd_bus_creds_get_augmented_mask;
sd_bus_creds_get_pid;
sd_bus_creds_get_ppid;
sd_bus_creds_get_tid;
sd_bus_creds_get_uid;
sd_bus_creds_get_euid;
sd_bus_creds_get_suid;
sd_bus_creds_get_fsuid;
sd_bus_creds_get_gid;
sd_bus_creds_get_egid;
sd_bus_creds_get_sgid;
sd_bus_creds_get_fsgid;
sd_bus_creds_get_supplementary_gids;
sd_bus_creds_get_comm;
sd_bus_creds_get_tid_comm;
sd_bus_creds_get_exe;
sd_bus_creds_get_cmdline;
sd_bus_creds_get_cgroup;
sd_bus_creds_get_unit;
sd_bus_creds_get_slice;
sd_bus_creds_get_user_unit;
sd_bus_creds_get_user_slice;
sd_bus_creds_get_session;
sd_bus_creds_get_owner_uid;
sd_bus_creds_has_effective_cap;
sd_bus_creds_has_permitted_cap;
sd_bus_creds_has_inheritable_cap;
sd_bus_creds_has_bounding_cap;
sd_bus_creds_get_selinux_context;
sd_bus_creds_get_audit_session_id;
sd_bus_creds_get_audit_login_uid;
sd_bus_creds_get_tty;
sd_bus_creds_get_unique_name;
sd_bus_creds_get_well_known_names;
sd_bus_creds_get_description;
sd_bus_error_free;
sd_bus_error_set;
sd_bus_error_setf;
sd_bus_error_set_const;
sd_bus_error_set_errno;
sd_bus_error_set_errnof;
sd_bus_error_set_errnofv;
sd_bus_error_get_errno;
sd_bus_error_copy;
sd_bus_error_is_set;
sd_bus_error_has_name;
sd_bus_error_add_map;
sd_bus_path_encode;
sd_bus_path_decode;
sd_bus_track_new;
sd_bus_track_ref;
sd_bus_track_unref;
sd_bus_track_get_bus;
sd_bus_track_get_userdata;
sd_bus_track_set_userdata;
sd_bus_track_add_sender;
sd_bus_track_remove_sender;
sd_bus_track_add_name;
sd_bus_track_remove_name;
sd_bus_track_count;
sd_bus_track_contains;
sd_bus_track_first;
sd_bus_track_next;
/* sd-event */
sd_event_default;
sd_event_new;
sd_event_ref;
sd_event_unref;
sd_event_add_io;
sd_event_add_time;
sd_event_add_signal;
sd_event_add_child;
sd_event_add_defer;
sd_event_add_post;
sd_event_add_exit;
sd_event_prepare;
sd_event_wait;
sd_event_dispatch;
sd_event_run;
sd_event_loop;
sd_event_exit;
sd_event_now;
sd_event_get_fd;
sd_event_get_state;
sd_event_get_tid;
sd_event_get_exit_code;
sd_event_set_watchdog;
sd_event_get_watchdog;
sd_event_source_ref;
sd_event_source_unref;
sd_event_source_get_event;
sd_event_source_get_userdata;
sd_event_source_set_userdata;
sd_event_source_set_description;
sd_event_source_get_description;
sd_event_source_set_prepare;
sd_event_source_get_pending;
sd_event_source_get_priority;
sd_event_source_set_priority;
sd_event_source_get_enabled;
sd_event_source_set_enabled;
sd_event_source_get_io_fd;
sd_event_source_set_io_fd;
sd_event_source_get_io_events;
sd_event_source_set_io_events;
sd_event_source_get_io_revents;
sd_event_source_get_time;
sd_event_source_set_time;
sd_event_source_set_time_accuracy;
sd_event_source_get_time_accuracy;
sd_event_source_get_time_clock;
sd_event_source_get_signal;
sd_event_source_get_child_pid;
} LIBSYSTEMD_219;
LIBSYSTEMD_222 {
global:
/* sd-bus */
sd_bus_emit_object_added;
sd_bus_emit_object_removed;
sd_bus_flush_close_unref;
} LIBSYSTEMD_221;
LIBSYSTEMD_227 {
global:
sd_bus_default_flush_close;
sd_bus_path_decode_many;
sd_bus_path_encode_many;
sd_listen_fds_with_names;
} LIBSYSTEMD_222;
LIBSYSTEMD_231 {
global:
sd_event_get_iteration;
} LIBSYSTEMD_227;
LIBSYSTEMD_232 {
global:
sd_bus_track_set_recursive;
sd_bus_track_get_recursive;
sd_bus_track_count_name;
sd_bus_track_count_sender;
sd_bus_set_exit_on_disconnect;
sd_bus_get_exit_on_disconnect;
sd_id128_get_invocation;
} LIBSYSTEMD_231;
LIBSYSTEMD_233 {
global:
sd_id128_get_machine_app_specific;
sd_is_socket_sockaddr;
} LIBSYSTEMD_232;
LIBSYSTEMD_234 {
global:
sd_bus_message_appendv;
} LIBSYSTEMD_233;
LIBSYSTEMD_236 {
global:
sd_bus_message_new;
sd_bus_message_seal;
} LIBSYSTEMD_234;
LIBSYSTEMD_237 {
global:
sd_bus_set_watch_bind;
sd_bus_get_watch_bind;
sd_bus_request_name_async;
sd_bus_release_name_async;
sd_bus_add_match_async;
sd_bus_match_signal;
sd_bus_match_signal_async;
sd_bus_is_ready;
sd_bus_set_connected_signal;
sd_bus_get_connected_signal;
sd_bus_set_sender;
sd_bus_get_sender;
sd_bus_message_set_sender;
sd_event_source_get_io_fd_own;
sd_event_source_set_io_fd_own;
} LIBSYSTEMD_236;

View File

@ -1,830 +0,0 @@
# SPDX-License-Identifier: LGPL-2.1+
#
# Copyright 2017 Zbigniew Jędrzejewski-Szmek
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# systemd 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
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
project('systemd', 'c',
version : '237',
license : 'LGPLv2+',
default_options: [
'c_std=gnu99',
'prefix=/usr',
'sysconfdir=/etc',
'localstatedir=/var',
],
meson_version : '>= 0.41',
)
libsystemd_version = '0.21.0'
libudev_version = '1.6.9'
support_url = get_option('support-url')
# We need the same data in three different formats, ugh!
# Also, for hysterical reasons, we use different variable
# names, sometimes. Not all variables are included in every
# set. Ugh, ugh, ugh!
conf = configuration_data()
conf.set_quoted('PACKAGE_STRING', meson.project_name() + ' ' + meson.project_version())
conf.set_quoted('PACKAGE_VERSION', meson.project_version())
substs = configuration_data()
substs.set('PACKAGE_URL', 'https://www.freedesktop.org/wiki/Software/systemd')
substs.set('PACKAGE_VERSION', meson.project_version())
m4_defines = []
#####################################################################
split_usr = get_option('split-usr')
conf.set10('HAVE_SPLIT_USR', split_usr)
rootprefixdir = get_option('rootprefix')
# Unusual rootprefixdir values are used by some distros
# (see https://github.com/systemd/systemd/pull/7461).
rootprefix_default = get_option('split-usr') ? '/' : '/usr'
if rootprefixdir == ''
rootprefixdir = rootprefix_default
endif
# join_paths ignore the preceding arguments if an absolute component is
# encountered, so this should canonicalize various paths when they are
# absolute or relative.
prefixdir = get_option('prefix')
if not prefixdir.startswith('/')
error('Prefix is not absolute: "@0@"'.format(prefixdir))
endif
bindir = join_paths(prefixdir, get_option('bindir'))
libdir = join_paths(prefixdir, get_option('libdir'))
sysconfdir = join_paths(prefixdir, get_option('sysconfdir'))
includedir = join_paths(prefixdir, get_option('includedir'))
datadir = join_paths(prefixdir, get_option('datadir'))
localstatedir = join_paths('/', get_option('localstatedir'))
rootbindir = join_paths(rootprefixdir, 'bin')
rootlibexecdir = join_paths(rootprefixdir, 'lib/systemd')
rootlibdir = get_option('rootlibdir')
if rootlibdir == ''
rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1])
endif
# Dirs of external packages
pkgconfigdatadir = join_paths(datadir, 'pkgconfig')
pkgconfiglibdir = join_paths(libdir, 'pkgconfig')
varlogdir = join_paths(localstatedir, 'log')
# Our own paths
pkgdatadir = join_paths(datadir, 'systemd')
pkgsysconfdir = join_paths(sysconfdir, 'systemd')
pkgincludedir = join_paths(includedir, 'systemd')
docdir = join_paths(datadir, 'doc/systemd')
systemdstatedir = join_paths(localstatedir, 'lib/systemd')
randomseeddir = join_paths(localstatedir, 'lib/systemd')
dbuspolicydir = get_option('dbuspolicydir')
if dbuspolicydir == ''
dbuspolicydir = join_paths(datadir, 'dbus-1/system.d')
endif
dbussessionservicedir = get_option('dbussessionservicedir')
if dbussessionservicedir == ''
dbussessionservicedir = join_paths(datadir, 'dbus-1/services')
endif
dbussystemservicedir = get_option('dbussystemservicedir')
if dbussystemservicedir == ''
dbussystemservicedir = join_paths(datadir, 'dbus-1/system-services')
endif
conf.set_quoted('PKGSYSCONFDIR', pkgsysconfdir)
conf.set_quoted('ROOTPREFIX', rootprefixdir)
conf.set_quoted('LIBDIR', libdir)
conf.set_quoted('ROOTLIBDIR', rootlibdir)
conf.set_quoted('ROOTLIBEXECDIR', rootlibexecdir)
conf.set_quoted('ABS_BUILD_DIR', meson.build_root())
conf.set_quoted('ABS_SRC_DIR', meson.source_root())
substs.set('prefix', prefixdir)
substs.set('exec_prefix', prefixdir)
substs.set('libdir', libdir)
substs.set('rootlibdir', rootlibdir)
substs.set('includedir', includedir)
substs.set('pkgsysconfdir', pkgsysconfdir)
substs.set('bindir', bindir)
substs.set('rootbindir', rootbindir)
substs.set('rootlibexecdir', rootlibexecdir)
substs.set('VARLOGDIR', varlogdir)
#####################################################################
cc = meson.get_compiler('c')
pkgconfig = import('pkgconfig')
check_compilation_sh = find_program('tools/meson-check-compilation.sh')
meson_build_sh = find_program('tools/meson-build.sh')
if get_option('tests') != 'false'
cxx = find_program('c++', required : false)
if cxx.found()
# Used only for tests
add_languages('cpp')
endif
endif
foreach arg : ['-Wextra',
'-Werror=undef',
'-Wlogical-op',
'-Wmissing-include-dirs',
'-Wold-style-definition',
'-Wpointer-arith',
'-Winit-self',
'-Wdeclaration-after-statement',
'-Wfloat-equal',
'-Wsuggest-attribute=noreturn',
'-Werror=missing-prototypes',
'-Werror=implicit-function-declaration',
'-Werror=missing-declarations',
'-Werror=return-type',
'-Werror=incompatible-pointer-types',
'-Werror=format=2',
'-Wstrict-prototypes',
'-Wredundant-decls',
'-Wmissing-noreturn',
'-Wimplicit-fallthrough=5',
'-Wshadow',
'-Wendif-labels',
'-Wstrict-aliasing=2',
'-Wwrite-strings',
'-Werror=overflow',
'-Wdate-time',
'-Wnested-externs',
'-ffast-math',
'-fno-common',
'-fdiagnostics-show-option',
'-fno-strict-aliasing',
'-fvisibility=hidden',
'-fstack-protector',
'-fstack-protector-strong',
'--param=ssp-buffer-size=4',
]
if cc.has_argument(arg)
add_project_arguments(arg, language : 'c')
endif
endforeach
# the oss-fuzz fuzzers are not built with -fPIE, so don't
# enable it when we are linking against them
if cc.has_argument('-fPIE')
add_project_arguments('-fPIE', language : 'c')
endif
# "negative" arguments: gcc on purpose does not return an error for "-Wno-"
# arguments, just emits a warnings. So test for the "positive" version instead.
foreach arg : ['unused-parameter',
'missing-field-initializers',
'unused-result',
'format-signedness',
'error=nonnull', # work-around for gcc 7.1 turning this on on its own
]
if cc.has_argument('-W' + arg)
add_project_arguments('-Wno-' + arg, language : 'c')
endif
endforeach
if cc.compiles('
#include <time.h>
#include <inttypes.h>
typedef uint64_t usec_t;
usec_t now(clockid_t clock);
int main(void) {
struct timespec now;
return 0;
}
', name : '-Werror=shadow with local shadowing')
add_project_arguments('-Werror=shadow', language : 'c')
endif
if cc.get_id() == 'clang'
foreach arg : ['-Wno-typedef-redefinition',
'-Wno-gnu-variable-sized-type-not-at-end',
]
if cc.has_argument(arg,
name : '@0@ is supported'.format(arg))
add_project_arguments(arg, language : 'c')
endif
endforeach
endif
link_test_c = files('tools/meson-link-test.c')
# --as-needed and --no-undefined are provided by meson by default,
# run mesonconf to see what is enabled
foreach arg : ['-Wl,-z,relro',
'-Wl,-z,now',
'-pie',
]
have = run_command(check_compilation_sh,
cc.cmd_array(), '-x', 'c', arg,
'-include', link_test_c).returncode() == 0
message('Linking with @0@ supported: @1@'.format(arg, have ? 'yes' : 'no'))
if have
add_project_link_arguments(arg, language : 'c')
endif
endforeach
# Check if various sanitizers are supported
sanitizers = []
foreach arg : ['address']
have = run_command(check_compilation_sh,
cc.cmd_array(), '-x', 'c',
'-fsanitize=@0@'.format(arg),
'-include', link_test_c).returncode() == 0
message('@0@ sanitizer supported: @1@'.format(arg, have ? 'yes' : 'no'))
if have
sanitizers += arg
endif
endforeach
if get_option('buildtype') != 'debug'
foreach arg : ['-ffunction-sections',
'-fdata-sections']
if cc.has_argument(arg,
name : '@0@ is supported'.format(arg))
add_project_arguments(arg, language : 'c')
endif
endforeach
foreach arg : ['-Wl,--gc-sections']
have = run_command(check_compilation_sh,
cc.cmd_array(), '-x', 'c', arg,
'-include', link_test_c).returncode() == 0
message('Linking with @0@ supported: @1@'.format(arg, have ? 'yes' : 'no'))
if have
add_project_link_arguments(arg, language : 'c')
endif
endforeach
endif
cpp = ' '.join(cc.cmd_array()) + ' -E'
#####################################################################
# compilation result tests
conf.set('_GNU_SOURCE', true)
conf.set('__SANE_USERSPACE_TYPES__', true)
conf.set('SIZEOF_PID_T', cc.sizeof('pid_t', prefix : '#include <sys/types.h>'))
conf.set('SIZEOF_UID_T', cc.sizeof('uid_t', prefix : '#include <sys/types.h>'))
conf.set('SIZEOF_GID_T', cc.sizeof('gid_t', prefix : '#include <sys/types.h>'))
conf.set('SIZEOF_DEV_T', cc.sizeof('dev_t', prefix : '#include <sys/types.h>'))
conf.set('SIZEOF_INO_T', cc.sizeof('ino_t', prefix : '#include <sys/types.h>'))
conf.set('SIZEOF_TIME_T', cc.sizeof('time_t', prefix : '#include <sys/time.h>'))
conf.set('SIZEOF_RLIM_T', cc.sizeof('rlim_t', prefix : '#include <sys/resource.h>'))
decl_headers = '''
#include <uchar.h>
#include <linux/ethtool.h>
#include <linux/fib_rules.h>
'''
# FIXME: key_serial_t is only defined in keyutils.h, this is bound to fail
foreach decl : ['char16_t',
'char32_t',
'key_serial_t',
'struct ethtool_link_settings',
'struct fib_rule_uid_range',
]
# We get -1 if the size cannot be determined
have = cc.sizeof(decl, prefix : decl_headers) > 0
conf.set10('HAVE_' + decl.underscorify().to_upper(), have)
endforeach
foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'],
['IN6_ADDR_GEN_MODE_STABLE_PRIVACY', 'linux/if_link.h'],
['IFLA_VRF_TABLE', 'linux/if_link.h'],
['IFLA_MACVLAN_FLAGS', 'linux/if_link.h'],
['IFLA_IPVLAN_FLAGS', 'linux/if_link.h'],
['IFLA_PHYS_PORT_ID', 'linux/if_link.h'],
['IFLA_BOND_AD_INFO', 'linux/if_link.h'],
['IFLA_VLAN_PROTOCOL', 'linux/if_link.h'],
['IFLA_VXLAN_REMCSUM_NOPARTIAL', 'linux/if_link.h'],
['IFLA_VXLAN_GPE', 'linux/if_link.h'],
['IFLA_GENEVE_LABEL', 'linux/if_link.h'],
# if_tunnel.h is buggy and cannot be included on its own
['IFLA_VTI_REMOTE', 'linux/if_tunnel.h', '#include <net/if.h>'],
['IFLA_IPTUN_ENCAP_DPORT', 'linux/if_tunnel.h', '#include <net/if.h>'],
['IFLA_GRE_ENCAP_DPORT', 'linux/if_tunnel.h', '#include <net/if.h>'],
['IFLA_BRIDGE_VLAN_INFO', 'linux/if_bridge.h'],
['IFLA_BRPORT_PROXYARP', 'linux/if_link.h'],
['IFLA_BRPORT_LEARNING_SYNC', 'linux/if_link.h'],
['IFLA_BR_VLAN_DEFAULT_PVID', 'linux/if_link.h'],
['IPVLAN_F_PRIVATE', 'linux/if_link.h'],
['NDA_IFINDEX', 'linux/neighbour.h'],
['IFA_FLAGS', 'linux/if_addr.h'],
['FRA_UID_RANGE', 'linux/fib_rules.h'],
['LO_FLAGS_PARTSCAN', 'linux/loop.h'],
['VXCAN_INFO_PEER', 'linux/can/vxcan.h'],
]
prefix = decl.length() > 2 ? decl[2] : ''
have = cc.has_header_symbol(decl[1], decl[0], prefix : prefix)
conf.set10('HAVE_' + decl[0], have)
endforeach
foreach ident : ['secure_getenv', '__secure_getenv']
conf.set10('HAVE_' + ident.to_upper(), cc.has_function(ident))
endforeach
foreach ident : [
['memfd_create', '''#include <sys/mman.h>'''],
['gettid', '''#include <sys/types.h>
#include <unistd.h>'''],
['pivot_root', '''#include <stdlib.h>
#include <unistd.h>'''], # no known header declares pivot_root
['name_to_handle_at', '''#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>'''],
['setns', '''#include <sched.h>'''],
['renameat2', '''#include <stdio.h>
#include <fcntl.h>'''],
['kcmp', '''#include <linux/kcmp.h>'''],
['keyctl', '''#include <sys/types.h>
#include <keyutils.h>'''],
['copy_file_range', '''#include <sys/syscall.h>
#include <unistd.h>'''],
['bpf', '''#include <sys/syscall.h>
#include <unistd.h>'''],
['explicit_bzero' , '''#include <string.h>'''],
]
have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
conf.set10('HAVE_' + ident[0].to_upper(), have)
endforeach
if cc.has_function('getrandom', prefix : '''#include <sys/random.h>''', args : '-D_GNU_SOURCE')
conf.set10('USE_SYS_RANDOM_H', true)
conf.set10('HAVE_GETRANDOM', true)
else
have = cc.has_function('getrandom', prefix : '''#include <linux/random.h>''')
conf.set10('USE_SYS_RANDOM_H', false)
conf.set10('HAVE_GETRANDOM', have)
endif
#####################################################################
sed = find_program('sed')
awk = find_program('awk')
m4 = find_program('m4')
stat = find_program('stat')
git = find_program('git', required : false)
env = find_program('env')
meson_make_symlink = meson.source_root() + '/tools/meson-make-symlink.sh'
mkdir_p = 'mkdir -p $DESTDIR/@0@'
test_efi_create_disk_sh = find_program('test/test-efi-create-disk.sh')
splash_bmp = files('test/splash.bmp')
# if -Dxxx-path option is found, use that. Otherwise, check in $PATH,
# /usr/sbin, /sbin, and fall back to the default from middle column.
progs = [['quotaon', '/usr/sbin/quotaon' ],
['quotacheck', '/usr/sbin/quotacheck' ],
['kill', '/usr/bin/kill' ],
['kmod', '/usr/bin/kmod' ],
['kexec', '/usr/sbin/kexec' ],
['sulogin', '/usr/sbin/sulogin' ],
['mount', '/usr/bin/mount', 'MOUNT_PATH'],
['umount', '/usr/bin/umount', 'UMOUNT_PATH'],
['loadkeys', '/usr/bin/loadkeys', 'KBD_LOADKEYS'],
['setfont', '/usr/bin/setfont', 'KBD_SETFONT'],
]
foreach prog : progs
path = get_option(prog[0] + '-path')
if path != ''
message('Using @1@ for @0@'.format(prog[0], path))
else
exe = find_program(prog[0],
'/usr/sbin/' + prog[0],
'/sbin/' + prog[0],
required: false)
path = exe.found() ? exe.path() : prog[1]
endif
name = prog.length() > 2 ? prog[2] : prog[0].to_upper()
conf.set_quoted(name, path)
substs.set(name, path)
endforeach
if run_command('ln', '--relative', '--help').returncode() != 0
error('ln does not support --relative')
endif
############################################################
gperf = find_program('gperf')
gperf_test_format = '''
#include <string.h>
const char * in_word_set(const char *, @0@);
@1@
'''
gperf_snippet_format = 'echo foo,bar | @0@ -L ANSI-C'
gperf_snippet = run_command('sh', '-c', gperf_snippet_format.format(gperf.path()))
gperf_test = gperf_test_format.format('size_t', gperf_snippet.stdout())
if cc.compiles(gperf_test)
gperf_len_type = 'size_t'
else
gperf_test = gperf_test_format.format('unsigned', gperf_snippet.stdout())
if cc.compiles(gperf_test)
gperf_len_type = 'unsigned'
else
error('unable to determine gperf len type')
endif
endif
message('gperf len type is @0@'.format(gperf_len_type))
conf.set('GPERF_LEN_TYPE', gperf_len_type,
description : 'The type of gperf "len" parameter')
############################################################
if not cc.has_header('sys/capability.h')
error('POSIX caps headers not found')
endif
foreach header : ['crypt.h',
'linux/btrfs.h',
'linux/memfd.h',
'linux/vm_sockets.h',
'sys/auxv.h',
'valgrind/memcheck.h',
'valgrind/valgrind.h',
]
conf.set10('HAVE_' + header.underscorify().to_upper(),
cc.has_header(header))
endforeach
############################################################
system_uid_max = get_option('system-uid-max')
if system_uid_max == ''
system_uid_max = run_command(
awk,
'BEGIN { uid=999 } /^\s*SYS_UID_MAX\s+/ { uid=$2 } END { print uid }',
'/etc/login.defs').stdout()
endif
system_uid_max = system_uid_max.to_int()
conf.set('SYSTEM_UID_MAX', system_uid_max)
substs.set('systemuidmax', system_uid_max)
message('maximum system UID is @0@'.format(system_uid_max))
system_gid_max = get_option('system-gid-max')
if system_gid_max == ''
system_gid_max = run_command(
awk,
'BEGIN { gid=999 } /^\s*SYS_GID_MAX\s+/ { gid=$2 } END { print gid }',
'/etc/login.defs').stdout()
endif
system_gid_max = system_gid_max.to_int()
conf.set('SYSTEM_GID_MAX', system_gid_max)
substs.set('systemgidmax', system_gid_max)
message('maximum system GID is @0@'.format(system_gid_max))
dynamic_uid_min = get_option('dynamic-uid-min').to_int()
dynamic_uid_max = get_option('dynamic-uid-max').to_int()
conf.set('DYNAMIC_UID_MIN', dynamic_uid_min)
conf.set('DYNAMIC_UID_MAX', dynamic_uid_max)
substs.set('dynamicuidmin', dynamic_uid_min)
substs.set('dynamicuidmax', dynamic_uid_max)
container_uid_base_min = get_option('container-uid-base-min').to_int()
container_uid_base_max = get_option('container-uid-base-max').to_int()
conf.set('CONTAINER_UID_BASE_MIN', container_uid_base_min)
conf.set('CONTAINER_UID_BASE_MAX', container_uid_base_max)
substs.set('containeruidbasemin', container_uid_base_min)
substs.set('containeruidbasemax', container_uid_base_max)
nobody_user = get_option('nobody-user')
nobody_group = get_option('nobody-group')
getent_result = run_command('getent', 'passwd', '65534')
if getent_result.returncode() == 0
name = getent_result.stdout().split(':')[0]
if name != nobody_user
message('WARNING:\n' +
' The local user with the UID 65534 does not match the configured user name "@0@" of the nobody user (its name is @1@).\n'.format(nobody_user, name) +
' Your build will result in an user table setup that is incompatible with the local system.')
endif
endif
id_result = run_command('id', '-u', nobody_user)
if id_result.returncode() == 0
id = id_result.stdout().to_int()
if id != 65534
message('WARNING:\n' +
' The local user with the configured user name "@0@" of the nobody user does not have UID 65534 (it has @1@).\n'.format(nobody_user, id) +
' Your build will result in an user table setup that is incompatible with the local system.')
endif
endif
getent_result = run_command('getent', 'group', '65534')
if getent_result.returncode() == 0
name = getent_result.stdout().split(':')[0]
if name != nobody_group
message('WARNING:\n' +
' The local group with the GID 65534 does not match the configured group name "@0@" of the nobody group (its name is @1@).\n'.format(nobody_group, name) +
' Your build will result in an group table setup that is incompatible with the local system.')
endif
endif
id_result = run_command('id', '-g', nobody_group)
if id_result.returncode() == 0
id = id_result.stdout().to_int()
if id != 65534
message('WARNING:\n' +
' The local group with the configured group name "@0@" of the nobody group does not have UID 65534 (it has @1@).\n'.format(nobody_group, id) +
' Your build will result in an group table setup that is incompatible with the local system.')
endif
endif
if nobody_user != nobody_group and not (nobody_user == 'nobody' and nobody_group == 'nogroup')
message('WARNING:\n' +
' The configured user name "@0@" and group name "@0@" of the nobody user/group are not equivalent.\n'.format(nobody_user, nobody_group) +
' Please re-check that both "nobody-user" and "nobody-group" options are correctly set.')
endif
conf.set_quoted('NOBODY_USER_NAME', nobody_user)
conf.set_quoted('NOBODY_GROUP_NAME', nobody_group)
substs.set('NOBODY_USER_NAME', nobody_user)
substs.set('NOBODY_GROUP_NAME', nobody_group)
tty_gid = get_option('tty-gid')
conf.set('TTY_GID', tty_gid)
substs.set('TTY_GID', tty_gid)
# Ensure provided GID argument is numeric, otherwise fallback to default assignment
if get_option('users-gid') != ''
users_gid = get_option('users-gid').to_int()
else
users_gid = '-'
endif
substs.set('USERS_GID', users_gid)
if get_option('adm-group')
m4_defines += ['-DENABLE_ADM_GROUP']
endif
if get_option('wheel-group')
m4_defines += ['-DENABLE_WHEEL_GROUP']
endif
substs.set('DEV_KVM_MODE', get_option('dev-kvm-mode'))
substs.set('GROUP_RENDER_MODE', get_option('group-render-mode'))
kill_user_processes = get_option('default-kill-user-processes')
conf.set10('KILL_USER_PROCESSES', kill_user_processes)
substs.set('KILL_USER_PROCESSES', kill_user_processes ? 'yes' : 'no')
dns_servers = get_option('dns-servers')
conf.set_quoted('DNS_SERVERS', dns_servers)
substs.set('DNS_SERVERS', dns_servers)
ntp_servers = get_option('ntp-servers')
conf.set_quoted('NTP_SERVERS', ntp_servers)
substs.set('NTP_SERVERS', ntp_servers)
conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
substs.set('SUSHELL', get_option('debug-shell'))
substs.set('DEBUGTTY', get_option('debug-tty'))
debug = get_option('debug-extra')
enable_debug_hashmap = false
enable_debug_mmap_cache = false
if debug != ''
foreach name : debug.split(',')
if name == 'hashmap'
enable_debug_hashmap = true
elif name == 'mmap-cache'
enable_debug_mmap_cache = true
else
message('unknown debug option "@0@", ignoring'.format(name))
endif
endforeach
endif
conf.set10('ENABLE_DEBUG_HASHMAP', enable_debug_hashmap)
conf.set10('ENABLE_DEBUG_MMAP_CACHE', enable_debug_mmap_cache)
#####################################################################
threads = dependency('threads')
librt = cc.find_library('rt')
libm = cc.find_library('m')
libdl = cc.find_library('dl')
libcap = dependency('libcap', required : false)
if not libcap.found()
# Compat with Ubuntu 14.04 which ships libcap w/o .pc file
libcap = cc.find_library('cap')
endif
want_audit = get_option('audit')
if want_audit != 'false'
libaudit = dependency('audit', required : want_audit == 'true')
have = libaudit.found()
else
have = false
libaudit = []
endif
conf.set10('HAVE_AUDIT', have)
want_gcrypt = get_option('gcrypt')
if want_gcrypt != 'false' and not fuzzer_build
libgcrypt = cc.find_library('gcrypt', required : want_gcrypt == 'true')
libgpg_error = cc.find_library('gpg-error', required : want_gcrypt == 'true')
have = libgcrypt.found() and libgpg_error.found()
else
have = false
endif
if not have
# link to neither of the libs if one is not found
libgcrypt = []
libgpg_error = []
endif
conf.set10('HAVE_GCRYPT', have)
conf.set_quoted('FALLBACK_HOSTNAME', get_option('fallback-hostname'))
conf.set10('ENABLE_COMPAT_GATEWAY_HOSTNAME', get_option('compat-gateway-hostname'))
default_hierarchy = get_option('default-hierarchy')
conf.set_quoted('DEFAULT_HIERARCHY_NAME', default_hierarchy,
description : 'default cgroup hierarchy as string')
if default_hierarchy == 'legacy'
conf.set('DEFAULT_HIERARCHY', 'CGROUP_UNIFIED_NONE')
elif default_hierarchy == 'hybrid'
conf.set('DEFAULT_HIERARCHY', 'CGROUP_UNIFIED_SYSTEMD')
else
conf.set('DEFAULT_HIERARCHY', 'CGROUP_UNIFIED_ALL')
endif
time_epoch = get_option('time-epoch')
if time_epoch == ''
NEWS = files('NEWS')
time_epoch = run_command(stat, '-c', '%Y', NEWS).stdout()
endif
time_epoch = time_epoch.to_int()
conf.set('TIME_EPOCH', time_epoch)
libblkid = []
libselinux = []
libxz = []
liblz4 = []
conf.set10('HAVE_LIBCRYPTSETUP', false)
conf.set10('HAVE_SELINUX', false)
conf.set10('ENABLE_IDN', false)
conf.set10('ENABLE_SMACK', false)
conf.set10('HAVE_PAM', false)
conf.set10('HAVE_APPARMOR', false)
conf.set10('ENABLE_IMA', false)
conf.set10('HAVE_SYSV_COMPAT', false)
conf.set10('ENABLE_UTMP', false)
conf.set10('HAVE_GNUTLS', false)
conf.set10('HAVE_ACL', false)
conf.set10('HAVE_XZ', false)
conf.set10('HAVE_LZ4', false)
conf.set10('HAVE_SECCOMP', false)
conf.set10('HAVE_BLKID', false)
conf.set10('HAVE_ELFUTILS', false)
conf.set10('HAVE_KMOD', false)
conf.set10('HAVE_LIBIDN2', false)
conf.set10('HAVE_LIBIDN', false)
conf.set10('HAVE_PCRE2', false)
config_h = configure_file(
output : 'config.h',
configuration : conf)
includes = include_directories('src/basic',
'src/shared',
'src/systemd',
'src/libsystemd/sd-bus',
'src/libsystemd/sd-id128',
'.')
add_project_arguments('-include', 'config.h', language : 'c')
subdir('src/systemd')
subdir('src/basic')
subdir('src/libsystemd')
libsystemd_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libsystemd_sym)
libsystemd = shared_library(
'systemd',
'src/systemd/sd-id128.h', # pick a header file at random to work around old meson bug
version : libsystemd_version,
include_directories : includes,
link_args : ['-shared',
'-Wl,--version-script=' + libsystemd_sym_path],
link_with : [libbasic,
libbasic_gcrypt],
link_whole : [libsystemd_static],
dependencies : [threads,
librt],
link_depends : libsystemd_sym,
install : true,
install_dir : rootlibdir)
############################################################
#generate_sym_test_py = find_program('src/test/generate-sym-test.py')
#test_libsystemd_sym_c = custom_target(
# 'test-libsystemd-sym.c',
# input : [libsystemd_sym_path] + systemd_headers,
# output : 'test-libsystemd-sym.c',
# command : [generate_sym_test_py, libsystemd_sym_path] + systemd_headers,
# capture : true)
#test_libsystemd_sym = executable(
# 'test-libsystemd-sym',
# test_libsystemd_sym_c,
# include_directories : includes,
# link_with : [libsystemd],
# install : install_tests,
# install_dir : testsdir)
#test('test-libsystemd-sym',
# test_libsystemd_sym)
############################################################
install_data('src/libsystemd/sd-bus/GVARIANT-SERIALIZATION',
install_dir : docdir)
############################################################
status = [
'@0@ @1@'.format(meson.project_name(), meson.project_version()),
'prefix directory: @0@'.format(prefixdir),
'rootprefix directory: @0@'.format(rootprefixdir),
'sysconf directory: @0@'.format(sysconfdir),
'include directory: @0@'.format(includedir),
'lib directory: @0@'.format(libdir),
'rootlib directory: @0@'.format(rootlibdir),
'maximum system UID: @0@'.format(system_uid_max),
'maximum system GID: @0@'.format(system_gid_max),
'support URL: @0@'.format(support_url),
'nobody user name: @0@'.format(nobody_user),
'nobody group name: @0@'.format(nobody_group)]
# TODO:
# CFLAGS: ${OUR_CFLAGS} ${CFLAGS}
# CPPFLAGS: ${OUR_CPPFLAGS} ${CPPFLAGS}
# LDFLAGS: ${OUR_LDFLAGS} ${LDFLAGS}
found = []
missing = []
foreach tuple : [
['AUDIT'],
['gcrypt'],
['split /usr', conf.get('HAVE_SPLIT_USR') == 1],
]
cond = tuple.get(1, '')
if cond == ''
ident1 = 'HAVE_' + tuple[0].underscorify().to_upper()
ident2 = 'ENABLE_' + tuple[0].underscorify().to_upper()
cond = conf.get(ident1, 0) == 1 or conf.get(ident2, 0) == 1
endif
if cond
found += [tuple[0]]
else
missing += [tuple[0]]
endif
endforeach
status += [
'',
'enabled features: @0@'.format(', '.join(found)),
'',
'disabled features: @0@'.format(', '.join(missing)),
'']
message('\n '.join(status))
if rootprefixdir != rootprefix_default
message('WARNING:\n' +
' Note that the installation prefix was changed to "@0@".\n'.format(rootprefixdir) +
' systemd used fixed names for unit file directories and other paths, so anything\n' +
' except the default ("@0@") is strongly discouraged.'.format(rootprefix_default))
endif

View File

@ -1,64 +0,0 @@
--- a/src/systemd/meson.build 2018-03-03 22:56:45.111894767 +0100
+++ b/src/systemd/meson.build 2018-03-03 22:58:09.791897314 +0100
@@ -22,9 +22,6 @@
sd-daemon.h
sd-event.h
sd-id128.h
- sd-journal.h
- sd-login.h
- sd-messages.h
'''.split()
# https://github.com/mesonbuild/meson/issues/1633
--- a/src/libsystemd/meson.build 2018-03-03 21:35:53.919748869 +0100
+++ b/src/libsystemd/meson.build 2018-03-03 22:47:53.195878770 +0100
@@ -15,8 +15,6 @@
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
-sd_login_c = files('sd-login/sd-login.c')
-
libsystemd_sources = files('''
sd-bus/bus-common-errors.c
sd-bus/bus-common-errors.h
@@ -58,39 +56,11 @@
sd-bus/bus-type.h
sd-bus/sd-bus.c
sd-daemon/sd-daemon.c
- sd-device/device-enumerator-private.h
- sd-device/device-enumerator.c
- sd-device/device-internal.h
- sd-device/device-private.c
- sd-device/device-private.h
- sd-device/device-util.h
- sd-device/sd-device.c
sd-event/sd-event.c
- sd-hwdb/hwdb-internal.h
- sd-hwdb/hwdb-util.h
- sd-hwdb/sd-hwdb.c
sd-id128/id128-util.c
sd-id128/id128-util.h
sd-id128/sd-id128.c
- sd-netlink/generic-netlink.c
- sd-netlink/local-addresses.c
- sd-netlink/local-addresses.h
- sd-netlink/netlink-internal.h
- sd-netlink/netlink-message.c
- sd-netlink/netlink-socket.c
- sd-netlink/netlink-types.c
- sd-netlink/netlink-types.h
- sd-netlink/netlink-util.c
- sd-netlink/netlink-util.h
- sd-netlink/rtnl-message.c
- sd-netlink/sd-netlink.c
- sd-network/network-util.c
- sd-network/network-util.h
- sd-network/sd-network.c
- sd-path/sd-path.c
- sd-resolve/sd-resolve.c
- sd-utf8/sd-utf8.c
-'''.split()) + sd_login_c
+'''.split())
libsystemd_static = static_library(
'systemd',

View File

@ -1,411 +0,0 @@
/***
SPDX-License-Identifier: LGPL-2.1+
This file is part of systemd.
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
***/
LIBSYSTEMD_209 {
global:
/* sd-daemon */
sd_booted;
sd_is_fifo;
sd_is_mq;
sd_is_socket;
sd_is_socket_inet;
sd_is_socket_unix;
sd_is_special;
sd_listen_fds;
sd_notify;
sd_notifyf;
sd_watchdog_enabled;
/* sd-id128 */
sd_id128_to_string;
sd_id128_from_string;
sd_id128_randomize;
sd_id128_get_machine;
sd_id128_get_boot;
local:
*;
};
LIBSYSTEMD_214 {
global:
sd_pid_notify;
sd_pid_notifyf;
} LIBSYSTEMD_209;
LIBSYSTEMD_219 {
global:
sd_pid_notify_with_fds;
} LIBSYSTEMD_214;
LIBSYSTEMD_221 {
global:
/* sd-bus */
sd_bus_default;
sd_bus_default_user;
sd_bus_default_system;
sd_bus_open;
sd_bus_open_user;
sd_bus_open_system;
sd_bus_open_system_remote;
sd_bus_open_system_machine;
sd_bus_new;
sd_bus_set_address;
sd_bus_set_fd;
sd_bus_set_exec;
sd_bus_get_address;
sd_bus_set_bus_client;
sd_bus_is_bus_client;
sd_bus_set_server;
sd_bus_is_server;
sd_bus_set_anonymous;
sd_bus_is_anonymous;
sd_bus_set_trusted;
sd_bus_is_trusted;
sd_bus_set_monitor;
sd_bus_is_monitor;
sd_bus_set_description;
sd_bus_get_description;
sd_bus_negotiate_creds;
sd_bus_negotiate_timestamp;
sd_bus_negotiate_fds;
sd_bus_can_send;
sd_bus_get_creds_mask;
sd_bus_set_allow_interactive_authorization;
sd_bus_get_allow_interactive_authorization;
sd_bus_start;
sd_bus_close;
sd_bus_try_close;
sd_bus_ref;
sd_bus_unref;
sd_bus_is_open;
sd_bus_get_bus_id;
sd_bus_get_scope;
sd_bus_get_tid;
sd_bus_get_owner_creds;
sd_bus_send;
sd_bus_send_to;
sd_bus_call;
sd_bus_call_async;
sd_bus_get_fd;
sd_bus_get_events;
sd_bus_get_timeout;
sd_bus_process;
sd_bus_process_priority;
sd_bus_wait;
sd_bus_flush;
sd_bus_get_current_slot;
sd_bus_get_current_message;
sd_bus_get_current_handler;
sd_bus_get_current_userdata;
sd_bus_attach_event;
sd_bus_detach_event;
sd_bus_get_event;
sd_bus_add_filter;
sd_bus_add_match;
sd_bus_add_object;
sd_bus_add_fallback;
sd_bus_add_object_vtable;
sd_bus_add_fallback_vtable;
sd_bus_add_node_enumerator;
sd_bus_add_object_manager;
sd_bus_slot_ref;
sd_bus_slot_unref;
sd_bus_slot_get_bus;
sd_bus_slot_get_userdata;
sd_bus_slot_set_userdata;
sd_bus_slot_get_description;
sd_bus_slot_set_description;
sd_bus_slot_get_current_message;
sd_bus_slot_get_current_handler;
sd_bus_slot_get_current_userdata;
sd_bus_message_new_signal;
sd_bus_message_new_method_call;
sd_bus_message_new_method_return;
sd_bus_message_new_method_error;
sd_bus_message_new_method_errorf;
sd_bus_message_new_method_errno;
sd_bus_message_new_method_errnof;
sd_bus_message_ref;
sd_bus_message_unref;
sd_bus_message_get_type;
sd_bus_message_get_cookie;
sd_bus_message_get_reply_cookie;
sd_bus_message_get_priority;
sd_bus_message_get_expect_reply;
sd_bus_message_get_auto_start;
sd_bus_message_get_allow_interactive_authorization;
sd_bus_message_get_signature;
sd_bus_message_get_path;
sd_bus_message_get_interface;
sd_bus_message_get_member;
sd_bus_message_get_destination;
sd_bus_message_get_sender;
sd_bus_message_get_error;
sd_bus_message_get_errno;
sd_bus_message_get_monotonic_usec;
sd_bus_message_get_realtime_usec;
sd_bus_message_get_seqnum;
sd_bus_message_get_bus;
sd_bus_message_get_creds;
sd_bus_message_is_signal;
sd_bus_message_is_method_call;
sd_bus_message_is_method_error;
sd_bus_message_is_empty;
sd_bus_message_has_signature;
sd_bus_message_set_expect_reply;
sd_bus_message_set_auto_start;
sd_bus_message_set_allow_interactive_authorization;
sd_bus_message_set_destination;
sd_bus_message_set_priority;
sd_bus_message_append;
sd_bus_message_append_basic;
sd_bus_message_append_array;
sd_bus_message_append_array_space;
sd_bus_message_append_array_iovec;
sd_bus_message_append_array_memfd;
sd_bus_message_append_string_space;
sd_bus_message_append_string_iovec;
sd_bus_message_append_string_memfd;
sd_bus_message_append_strv;
sd_bus_message_open_container;
sd_bus_message_close_container;
sd_bus_message_copy;
sd_bus_message_read;
sd_bus_message_read_basic;
sd_bus_message_read_array;
sd_bus_message_read_strv;
sd_bus_message_skip;
sd_bus_message_enter_container;
sd_bus_message_exit_container;
sd_bus_message_peek_type;
sd_bus_message_verify_type;
sd_bus_message_at_end;
sd_bus_message_rewind;
sd_bus_get_unique_name;
sd_bus_request_name;
sd_bus_release_name;
sd_bus_list_names;
sd_bus_get_name_creds;
sd_bus_get_name_machine_id;
sd_bus_call_method;
sd_bus_call_method_async;
sd_bus_get_property;
sd_bus_get_property_trivial;
sd_bus_get_property_string;
sd_bus_get_property_strv;
sd_bus_set_property;
sd_bus_reply_method_return;
sd_bus_reply_method_error;
sd_bus_reply_method_errorf;
sd_bus_reply_method_errno;
sd_bus_reply_method_errnof;
sd_bus_emit_signal;
sd_bus_emit_properties_changed_strv;
sd_bus_emit_properties_changed;
sd_bus_emit_interfaces_added_strv;
sd_bus_emit_interfaces_added;
sd_bus_emit_interfaces_removed_strv;
sd_bus_emit_interfaces_removed;
sd_bus_query_sender_creds;
sd_bus_query_sender_privilege;
sd_bus_creds_new_from_pid;
sd_bus_creds_ref;
sd_bus_creds_unref;
sd_bus_creds_get_mask;
sd_bus_creds_get_augmented_mask;
sd_bus_creds_get_pid;
sd_bus_creds_get_ppid;
sd_bus_creds_get_tid;
sd_bus_creds_get_uid;
sd_bus_creds_get_euid;
sd_bus_creds_get_suid;
sd_bus_creds_get_fsuid;
sd_bus_creds_get_gid;
sd_bus_creds_get_egid;
sd_bus_creds_get_sgid;
sd_bus_creds_get_fsgid;
sd_bus_creds_get_supplementary_gids;
sd_bus_creds_get_comm;
sd_bus_creds_get_tid_comm;
sd_bus_creds_get_exe;
sd_bus_creds_get_cmdline;
sd_bus_creds_get_cgroup;
sd_bus_creds_get_unit;
sd_bus_creds_get_slice;
sd_bus_creds_get_user_unit;
sd_bus_creds_get_user_slice;
sd_bus_creds_get_session;
sd_bus_creds_get_owner_uid;
sd_bus_creds_has_effective_cap;
sd_bus_creds_has_permitted_cap;
sd_bus_creds_has_inheritable_cap;
sd_bus_creds_has_bounding_cap;
sd_bus_creds_get_selinux_context;
sd_bus_creds_get_audit_session_id;
sd_bus_creds_get_audit_login_uid;
sd_bus_creds_get_tty;
sd_bus_creds_get_unique_name;
sd_bus_creds_get_well_known_names;
sd_bus_creds_get_description;
sd_bus_error_free;
sd_bus_error_set;
sd_bus_error_setf;
sd_bus_error_set_const;
sd_bus_error_set_errno;
sd_bus_error_set_errnof;
sd_bus_error_set_errnofv;
sd_bus_error_get_errno;
sd_bus_error_copy;
sd_bus_error_is_set;
sd_bus_error_has_name;
sd_bus_error_add_map;
sd_bus_path_encode;
sd_bus_path_decode;
sd_bus_track_new;
sd_bus_track_ref;
sd_bus_track_unref;
sd_bus_track_get_bus;
sd_bus_track_get_userdata;
sd_bus_track_set_userdata;
sd_bus_track_add_sender;
sd_bus_track_remove_sender;
sd_bus_track_add_name;
sd_bus_track_remove_name;
sd_bus_track_count;
sd_bus_track_contains;
sd_bus_track_first;
sd_bus_track_next;
/* sd-event */
sd_event_default;
sd_event_new;
sd_event_ref;
sd_event_unref;
sd_event_add_io;
sd_event_add_time;
sd_event_add_signal;
sd_event_add_child;
sd_event_add_defer;
sd_event_add_post;
sd_event_add_exit;
sd_event_prepare;
sd_event_wait;
sd_event_dispatch;
sd_event_run;
sd_event_loop;
sd_event_exit;
sd_event_now;
sd_event_get_fd;
sd_event_get_state;
sd_event_get_tid;
sd_event_get_exit_code;
sd_event_set_watchdog;
sd_event_get_watchdog;
sd_event_source_ref;
sd_event_source_unref;
sd_event_source_get_event;
sd_event_source_get_userdata;
sd_event_source_set_userdata;
sd_event_source_set_description;
sd_event_source_get_description;
sd_event_source_set_prepare;
sd_event_source_get_pending;
sd_event_source_get_priority;
sd_event_source_set_priority;
sd_event_source_get_enabled;
sd_event_source_set_enabled;
sd_event_source_get_io_fd;
sd_event_source_set_io_fd;
sd_event_source_get_io_events;
sd_event_source_set_io_events;
sd_event_source_get_io_revents;
sd_event_source_get_time;
sd_event_source_set_time;
sd_event_source_set_time_accuracy;
sd_event_source_get_time_accuracy;
sd_event_source_get_time_clock;
sd_event_source_get_signal;
sd_event_source_get_child_pid;
} LIBSYSTEMD_219;
LIBSYSTEMD_222 {
global:
/* sd-bus */
sd_bus_emit_object_added;
sd_bus_emit_object_removed;
sd_bus_flush_close_unref;
} LIBSYSTEMD_221;
LIBSYSTEMD_227 {
global:
sd_bus_default_flush_close;
sd_bus_path_decode_many;
sd_bus_path_encode_many;
sd_listen_fds_with_names;
} LIBSYSTEMD_222;
LIBSYSTEMD_231 {
global:
sd_event_get_iteration;
} LIBSYSTEMD_227;
LIBSYSTEMD_232 {
global:
sd_bus_track_set_recursive;
sd_bus_track_get_recursive;
sd_bus_track_count_name;
sd_bus_track_count_sender;
sd_bus_set_exit_on_disconnect;
sd_bus_get_exit_on_disconnect;
sd_id128_get_invocation;
} LIBSYSTEMD_231;
LIBSYSTEMD_233 {
global:
sd_id128_get_machine_app_specific;
sd_is_socket_sockaddr;
} LIBSYSTEMD_232;
LIBSYSTEMD_234 {
global:
sd_bus_message_appendv;
} LIBSYSTEMD_233;
LIBSYSTEMD_236 {
global:
sd_bus_message_new;
sd_bus_message_seal;
} LIBSYSTEMD_234;
LIBSYSTEMD_237 {
global:
sd_bus_set_watch_bind;
sd_bus_get_watch_bind;
sd_bus_request_name_async;
sd_bus_release_name_async;
sd_bus_add_match_async;
sd_bus_match_signal;
sd_bus_match_signal_async;
sd_bus_is_ready;
sd_bus_set_connected_signal;
sd_bus_get_connected_signal;
sd_bus_set_sender;
sd_bus_get_sender;
sd_bus_message_set_sender;
sd_event_source_get_io_fd_own;
sd_event_source_set_io_fd_own;
} LIBSYSTEMD_236;
LIBSYSTEMD_238 {
global:
sd_bus_get_n_queued_read;
sd_bus_get_n_queued_write;
} LIBSYSTEMD_237;

View File

@ -1,907 +0,0 @@
# SPDX-License-Identifier: LGPL-2.1+
#
# Copyright 2017 Zbigniew Jędrzejewski-Szmek
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# systemd 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
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
project('systemd', 'c',
version : '238',
license : 'LGPLv2+',
default_options: [
'c_std=gnu99',
'prefix=/usr',
'sysconfdir=/etc',
'localstatedir=/var',
],
meson_version : '>= 0.41',
)
libsystemd_version = '0.22.0'
libudev_version = '1.6.10'
support_url = get_option('support-url')
# We need the same data in three different formats, ugh!
# Also, for hysterical reasons, we use different variable
# names, sometimes. Not all variables are included in every
# set. Ugh, ugh, ugh!
conf = configuration_data()
conf.set_quoted('PACKAGE_STRING', meson.project_name() + ' ' + meson.project_version())
conf.set_quoted('PACKAGE_VERSION', meson.project_version())
substs = configuration_data()
substs.set('PACKAGE_URL', 'https://www.freedesktop.org/wiki/Software/systemd')
substs.set('PACKAGE_VERSION', meson.project_version())
m4_defines = []
#####################################################################
if get_option('split-usr') == 'auto'
split_usr = run_command('test', '-L', '/bin').returncode() != 0
else
split_usr = get_option('split-usr') == 'true'
endif
conf.set10('HAVE_SPLIT_USR', split_usr,
description : '/usr/bin and /bin directories are separate')
if get_option('split-bin') == 'auto'
split_bin = run_command('test', '-L', '/usr/sbin').returncode() != 0
else
split_bin = get_option('split-bin') == 'true'
endif
conf.set10('HAVE_SPLIT_BIN', split_bin,
description : 'bin and sbin directories are separate')
rootprefixdir = get_option('rootprefix')
# Unusual rootprefixdir values are used by some distros
# (see https://github.com/systemd/systemd/pull/7461).
rootprefix_default = split_usr ? '/' : '/usr'
if rootprefixdir == ''
rootprefixdir = rootprefix_default
endif
# join_paths ignore the preceding arguments if an absolute component is
# encountered, so this should canonicalize various paths when they are
# absolute or relative.
prefixdir = get_option('prefix')
if not prefixdir.startswith('/')
error('Prefix is not absolute: "@0@"'.format(prefixdir))
endif
bindir = join_paths(prefixdir, get_option('bindir'))
libdir = join_paths(prefixdir, get_option('libdir'))
sysconfdir = join_paths(prefixdir, get_option('sysconfdir'))
includedir = join_paths(prefixdir, get_option('includedir'))
datadir = join_paths(prefixdir, get_option('datadir'))
localstatedir = join_paths('/', get_option('localstatedir'))
rootbindir = join_paths(rootprefixdir, 'bin')
rootsbindir = join_paths(rootprefixdir, split_bin ? 'sbin' : 'bin')
rootlibexecdir = join_paths(rootprefixdir, 'lib/systemd')
rootlibdir = get_option('rootlibdir')
if rootlibdir == ''
rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1])
endif
# Dirs of external packages
pkgconfigdatadir = join_paths(datadir, 'pkgconfig')
pkgconfiglibdir = join_paths(libdir, 'pkgconfig')
varlogdir = join_paths(localstatedir, 'log')
# Our own paths
pkgdatadir = join_paths(datadir, 'systemd')
pkgsysconfdir = join_paths(sysconfdir, 'systemd')
pkgincludedir = join_paths(includedir, 'systemd')
systemdstatedir = join_paths(localstatedir, 'lib/systemd')
randomseeddir = join_paths(localstatedir, 'lib/systemd')
docdir = get_option('docdir')
if docdir == ''
docdir = join_paths(datadir, 'doc/systemd')
endif
dbuspolicydir = get_option('dbuspolicydir')
if dbuspolicydir == ''
dbuspolicydir = join_paths(datadir, 'dbus-1/system.d')
endif
dbussessionservicedir = get_option('dbussessionservicedir')
if dbussessionservicedir == ''
dbussessionservicedir = join_paths(datadir, 'dbus-1/services')
endif
dbussystemservicedir = get_option('dbussystemservicedir')
if dbussystemservicedir == ''
dbussystemservicedir = join_paths(datadir, 'dbus-1/system-services')
endif
conf.set_quoted('PKGSYSCONFDIR', pkgsysconfdir)
conf.set_quoted('ROOTPREFIX', rootprefixdir)
conf.set_quoted('LIBDIR', libdir)
conf.set_quoted('ROOTLIBDIR', rootlibdir)
conf.set_quoted('ROOTLIBEXECDIR', rootlibexecdir)
conf.set_quoted('ABS_BUILD_DIR', meson.build_root())
conf.set_quoted('ABS_SRC_DIR', meson.source_root())
substs.set('prefix', prefixdir)
substs.set('exec_prefix', prefixdir)
substs.set('libdir', libdir)
substs.set('rootlibdir', rootlibdir)
substs.set('includedir', includedir)
substs.set('pkgsysconfdir', pkgsysconfdir)
substs.set('bindir', bindir)
substs.set('rootbindir', rootbindir)
substs.set('rootlibexecdir', rootlibexecdir)
substs.set('VARLOGDIR', varlogdir)
#####################################################################
cc = meson.get_compiler('c')
pkgconfig = import('pkgconfig')
check_compilation_sh = find_program('tools/meson-check-compilation.sh')
meson_build_sh = find_program('tools/meson-build.sh')
if get_option('tests') != 'false'
cxx = find_program('c++', required : false)
if cxx.found()
# Used only for tests
add_languages('cpp')
endif
endif
foreach arg : ['-Wextra',
'-Werror=undef',
'-Wlogical-op',
'-Wmissing-include-dirs',
'-Wold-style-definition',
'-Wpointer-arith',
'-Winit-self',
'-Wdeclaration-after-statement',
'-Wfloat-equal',
'-Wsuggest-attribute=noreturn',
'-Werror=missing-prototypes',
'-Werror=implicit-function-declaration',
'-Werror=missing-declarations',
'-Werror=return-type',
'-Werror=incompatible-pointer-types',
'-Werror=format=2',
'-Wstrict-prototypes',
'-Wredundant-decls',
'-Wmissing-noreturn',
'-Wimplicit-fallthrough=5',
'-Wshadow',
'-Wendif-labels',
'-Wstrict-aliasing=2',
'-Wwrite-strings',
'-Werror=overflow',
'-Wdate-time',
'-Wnested-externs',
'-ffast-math',
'-fno-common',
'-fdiagnostics-show-option',
'-fno-strict-aliasing',
'-fvisibility=hidden',
'-fstack-protector',
'-fstack-protector-strong',
'--param=ssp-buffer-size=4',
]
if cc.has_argument(arg)
add_project_arguments(arg, language : 'c')
endif
endforeach
# the oss-fuzz fuzzers are not built with -fPIE, so don't
# enable it when we are linking against them
if cc.has_argument('-fPIE')
add_project_arguments('-fPIE', language : 'c')
endif
# "negative" arguments: gcc on purpose does not return an error for "-Wno-"
# arguments, just emits a warnings. So test for the "positive" version instead.
foreach arg : ['unused-parameter',
'missing-field-initializers',
'unused-result',
'format-signedness',
'error=nonnull', # work-around for gcc 7.1 turning this on on its own
]
if cc.has_argument('-W' + arg)
add_project_arguments('-Wno-' + arg, language : 'c')
endif
endforeach
if cc.compiles('''
#include <time.h>
#include <inttypes.h>
typedef uint64_t usec_t;
usec_t now(clockid_t clock);
int main(void) {
struct timespec now;
return 0;
}
''', name : '-Werror=shadow with local shadowing')
add_project_arguments('-Werror=shadow', language : 'c')
endif
if cc.get_id() == 'clang'
foreach arg : ['-Wno-typedef-redefinition',
'-Wno-gnu-variable-sized-type-not-at-end',
]
if cc.has_argument(arg,
name : '@0@ is supported'.format(arg))
add_project_arguments(arg, language : 'c')
endif
endforeach
endif
link_test_c = files('tools/meson-link-test.c')
# --as-needed and --no-undefined are provided by meson by default,
# run mesonconf to see what is enabled
foreach arg : ['-Wl,-z,relro',
'-Wl,-z,now',
'-pie',
]
have = run_command(check_compilation_sh,
cc.cmd_array(), '-x', 'c', arg,
'-include', link_test_c).returncode() == 0
message('Linking with @0@ supported: @1@'.format(arg, have ? 'yes' : 'no'))
if have
add_project_link_arguments(arg, language : 'c')
endif
endforeach
# Check if various sanitizers are supported
sanitizers = []
foreach arg : ['address']
have = run_command(check_compilation_sh,
cc.cmd_array(), '-x', 'c',
'-fsanitize=@0@'.format(arg),
'-include', link_test_c).returncode() == 0
message('@0@ sanitizer supported: @1@'.format(arg, have ? 'yes' : 'no'))
if have
sanitizers += arg
endif
endforeach
if get_option('buildtype') != 'debug'
foreach arg : ['-ffunction-sections',
'-fdata-sections']
if cc.has_argument(arg,
name : '@0@ is supported'.format(arg))
add_project_arguments(arg, language : 'c')
endif
endforeach
foreach arg : ['-Wl,--gc-sections']
have = run_command(check_compilation_sh,
cc.cmd_array(), '-x', 'c', arg,
'-include', link_test_c).returncode() == 0
message('Linking with @0@ supported: @1@'.format(arg, have ? 'yes' : 'no'))
if have
add_project_link_arguments(arg, language : 'c')
endif
endforeach
endif
cpp = ' '.join(cc.cmd_array()) + ' -E'
#####################################################################
# compilation result tests
conf.set('_GNU_SOURCE', true)
conf.set('__SANE_USERSPACE_TYPES__', true)
conf.set('SIZEOF_PID_T', cc.sizeof('pid_t', prefix : '#include <sys/types.h>'))
conf.set('SIZEOF_UID_T', cc.sizeof('uid_t', prefix : '#include <sys/types.h>'))
conf.set('SIZEOF_GID_T', cc.sizeof('gid_t', prefix : '#include <sys/types.h>'))
conf.set('SIZEOF_DEV_T', cc.sizeof('dev_t', prefix : '#include <sys/types.h>'))
conf.set('SIZEOF_INO_T', cc.sizeof('ino_t', prefix : '#include <sys/types.h>'))
conf.set('SIZEOF_TIME_T', cc.sizeof('time_t', prefix : '#include <sys/time.h>'))
conf.set('SIZEOF_RLIM_T', cc.sizeof('rlim_t', prefix : '#include <sys/resource.h>'))
decl_headers = '''
#include <uchar.h>
#include <linux/ethtool.h>
#include <linux/fib_rules.h>
#include <linux/stat.h>
#include <sys/stat.h>
'''
# FIXME: key_serial_t is only defined in keyutils.h, this is bound to fail
foreach decl : ['char16_t',
'char32_t',
'key_serial_t',
'struct ethtool_link_settings',
'struct fib_rule_uid_range',
'struct statx',
]
# We get -1 if the size cannot be determined
have = cc.sizeof(decl, prefix : decl_headers) > 0
conf.set10('HAVE_' + decl.underscorify().to_upper(), have)
endforeach
foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'],
['IN6_ADDR_GEN_MODE_STABLE_PRIVACY', 'linux/if_link.h'],
['IFLA_VRF_TABLE', 'linux/if_link.h'],
['IFLA_MACVLAN_FLAGS', 'linux/if_link.h'],
['IFLA_IPVLAN_FLAGS', 'linux/if_link.h'],
['IFLA_PHYS_PORT_ID', 'linux/if_link.h'],
['IFLA_BOND_AD_INFO', 'linux/if_link.h'],
['IFLA_VLAN_PROTOCOL', 'linux/if_link.h'],
['IFLA_VXLAN_REMCSUM_NOPARTIAL', 'linux/if_link.h'],
['IFLA_VXLAN_GPE', 'linux/if_link.h'],
['IFLA_GENEVE_LABEL', 'linux/if_link.h'],
# if_tunnel.h is buggy and cannot be included on its own
['IFLA_VTI_REMOTE', 'linux/if_tunnel.h', '#include <net/if.h>'],
['IFLA_IPTUN_ENCAP_DPORT', 'linux/if_tunnel.h', '#include <net/if.h>'],
['IFLA_GRE_ENCAP_DPORT', 'linux/if_tunnel.h', '#include <net/if.h>'],
['IFLA_BRIDGE_VLAN_INFO', 'linux/if_bridge.h'],
['IFLA_BRPORT_PROXYARP', 'linux/if_link.h'],
['IFLA_BRPORT_LEARNING_SYNC', 'linux/if_link.h'],
['IFLA_BR_VLAN_DEFAULT_PVID', 'linux/if_link.h'],
['IPVLAN_F_PRIVATE', 'linux/if_link.h'],
['NDA_IFINDEX', 'linux/neighbour.h'],
['IFA_FLAGS', 'linux/if_addr.h'],
['FRA_UID_RANGE', 'linux/fib_rules.h'],
['LO_FLAGS_PARTSCAN', 'linux/loop.h'],
['VXCAN_INFO_PEER', 'linux/can/vxcan.h'],
]
prefix = decl.length() > 2 ? decl[2] : ''
have = cc.has_header_symbol(decl[1], decl[0], prefix : prefix)
conf.set10('HAVE_' + decl[0], have)
endforeach
foreach ident : ['secure_getenv', '__secure_getenv']
conf.set10('HAVE_' + ident.to_upper(), cc.has_function(ident))
endforeach
foreach ident : [
['memfd_create', '''#include <sys/mman.h>'''],
['gettid', '''#include <sys/types.h>
#include <unistd.h>'''],
['pivot_root', '''#include <stdlib.h>
#include <unistd.h>'''], # no known header declares pivot_root
['name_to_handle_at', '''#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>'''],
['setns', '''#include <sched.h>'''],
['renameat2', '''#include <stdio.h>
#include <fcntl.h>'''],
['kcmp', '''#include <linux/kcmp.h>'''],
['keyctl', '''#include <sys/types.h>
#include <keyutils.h>'''],
['copy_file_range', '''#include <sys/syscall.h>
#include <unistd.h>'''],
['bpf', '''#include <sys/syscall.h>
#include <unistd.h>'''],
['statx', '''#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>'''],
['explicit_bzero' , '''#include <string.h>'''],
['reallocarray', '''#include <malloc.h>'''],
]
have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
conf.set10('HAVE_' + ident[0].to_upper(), have)
endforeach
if cc.has_function('getrandom', prefix : '''#include <sys/random.h>''', args : '-D_GNU_SOURCE')
conf.set10('USE_SYS_RANDOM_H', true)
conf.set10('HAVE_GETRANDOM', true)
else
have = cc.has_function('getrandom', prefix : '''#include <linux/random.h>''')
conf.set10('USE_SYS_RANDOM_H', false)
conf.set10('HAVE_GETRANDOM', have)
endif
#####################################################################
sed = find_program('sed')
awk = find_program('awk')
m4 = find_program('m4')
stat = find_program('stat')
git = find_program('git', required : false)
env = find_program('env')
meson_make_symlink = meson.source_root() + '/tools/meson-make-symlink.sh'
mkdir_p = 'mkdir -p $DESTDIR/@0@'
test_efi_create_disk_sh = find_program('test/test-efi-create-disk.sh')
splash_bmp = files('test/splash.bmp')
# if -Dxxx-path option is found, use that. Otherwise, check in $PATH,
# /usr/sbin, /sbin, and fall back to the default from middle column.
progs = [['quotaon', '/usr/sbin/quotaon' ],
['quotacheck', '/usr/sbin/quotacheck' ],
['kill', '/usr/bin/kill' ],
['kmod', '/usr/bin/kmod' ],
['kexec', '/usr/sbin/kexec' ],
['sulogin', '/usr/sbin/sulogin' ],
['mount', '/usr/bin/mount', 'MOUNT_PATH'],
['umount', '/usr/bin/umount', 'UMOUNT_PATH'],
['loadkeys', '/usr/bin/loadkeys', 'KBD_LOADKEYS'],
['setfont', '/usr/bin/setfont', 'KBD_SETFONT'],
]
foreach prog : progs
path = get_option(prog[0] + '-path')
if path != ''
message('Using @1@ for @0@'.format(prog[0], path))
else
exe = find_program(prog[0],
'/usr/sbin/' + prog[0],
'/sbin/' + prog[0],
required: false)
path = exe.found() ? exe.path() : prog[1]
endif
name = prog.length() > 2 ? prog[2] : prog[0].to_upper()
conf.set_quoted(name, path)
substs.set(name, path)
endforeach
if run_command('ln', '--relative', '--help').returncode() != 0
error('ln does not support --relative (added in coreutils 8.16)')
endif
############################################################
gperf = find_program('gperf')
gperf_test_format = '''
#include <string.h>
const char * in_word_set(const char *, @0@);
@1@
'''
gperf_snippet_format = 'echo foo,bar | @0@ -L ANSI-C'
gperf_snippet = run_command('sh', '-c', gperf_snippet_format.format(gperf.path()))
gperf_test = gperf_test_format.format('size_t', gperf_snippet.stdout())
if cc.compiles(gperf_test)
gperf_len_type = 'size_t'
else
gperf_test = gperf_test_format.format('unsigned', gperf_snippet.stdout())
if cc.compiles(gperf_test)
gperf_len_type = 'unsigned'
else
error('unable to determine gperf len type')
endif
endif
message('gperf len type is @0@'.format(gperf_len_type))
conf.set('GPERF_LEN_TYPE', gperf_len_type,
description : 'The type of gperf "len" parameter')
############################################################
if not cc.has_header('sys/capability.h')
error('POSIX caps headers not found')
endif
foreach header : ['crypt.h',
'linux/btrfs.h',
'linux/memfd.h',
'linux/vm_sockets.h',
'sys/auxv.h',
'valgrind/memcheck.h',
'valgrind/valgrind.h',
]
conf.set10('HAVE_' + header.underscorify().to_upper(),
cc.has_header(header))
endforeach
############################################################
system_uid_max = get_option('system-uid-max')
if system_uid_max == ''
system_uid_max = run_command(
awk,
'/^\s*SYS_UID_MAX\s+/ { uid=$2 } END { print uid }',
'/etc/login.defs').stdout().strip()
if system_uid_max == ''
system_uid_max = '999'
endif
endif
system_uid_max = system_uid_max.to_int()
conf.set('SYSTEM_UID_MAX', system_uid_max)
substs.set('systemuidmax', system_uid_max)
message('maximum system UID is @0@'.format(system_uid_max))
system_gid_max = get_option('system-gid-max')
if system_gid_max == ''
system_gid_max = run_command(
awk,
'/^\s*SYS_GID_MAX\s+/ { gid=$2 } END { print gid }',
'/etc/login.defs').stdout().strip()
if system_gid_max == ''
system_gid_max = '999'
endif
endif
system_gid_max = system_gid_max.to_int()
conf.set('SYSTEM_GID_MAX', system_gid_max)
substs.set('systemgidmax', system_gid_max)
message('maximum system GID is @0@'.format(system_gid_max))
dynamic_uid_min = get_option('dynamic-uid-min').to_int()
dynamic_uid_max = get_option('dynamic-uid-max').to_int()
conf.set('DYNAMIC_UID_MIN', dynamic_uid_min)
conf.set('DYNAMIC_UID_MAX', dynamic_uid_max)
substs.set('dynamicuidmin', dynamic_uid_min)
substs.set('dynamicuidmax', dynamic_uid_max)
container_uid_base_min = get_option('container-uid-base-min').to_int()
container_uid_base_max = get_option('container-uid-base-max').to_int()
conf.set('CONTAINER_UID_BASE_MIN', container_uid_base_min)
conf.set('CONTAINER_UID_BASE_MAX', container_uid_base_max)
substs.set('containeruidbasemin', container_uid_base_min)
substs.set('containeruidbasemax', container_uid_base_max)
nobody_user = get_option('nobody-user')
nobody_group = get_option('nobody-group')
getent_result = run_command('getent', 'passwd', '65534')
if getent_result.returncode() == 0
name = getent_result.stdout().split(':')[0]
if name != nobody_user
message('WARNING:\n' +
' The local user with the UID 65534 does not match the configured user name "@0@" of the nobody user (its name is @1@).\n'.format(nobody_user, name) +
' Your build will result in an user table setup that is incompatible with the local system.')
endif
endif
id_result = run_command('id', '-u', nobody_user)
if id_result.returncode() == 0
id = id_result.stdout().to_int()
if id != 65534
message('WARNING:\n' +
' The local user with the configured user name "@0@" of the nobody user does not have UID 65534 (it has @1@).\n'.format(nobody_user, id) +
' Your build will result in an user table setup that is incompatible with the local system.')
endif
endif
getent_result = run_command('getent', 'group', '65534')
if getent_result.returncode() == 0
name = getent_result.stdout().split(':')[0]
if name != nobody_group
message('WARNING:\n' +
' The local group with the GID 65534 does not match the configured group name "@0@" of the nobody group (its name is @1@).\n'.format(nobody_group, name) +
' Your build will result in an group table setup that is incompatible with the local system.')
endif
endif
id_result = run_command('id', '-g', nobody_group)
if id_result.returncode() == 0
id = id_result.stdout().to_int()
if id != 65534
message('WARNING:\n' +
' The local group with the configured group name "@0@" of the nobody group does not have UID 65534 (it has @1@).\n'.format(nobody_group, id) +
' Your build will result in an group table setup that is incompatible with the local system.')
endif
endif
if nobody_user != nobody_group and not (nobody_user == 'nobody' and nobody_group == 'nogroup')
message('WARNING:\n' +
' The configured user name "@0@" and group name "@0@" of the nobody user/group are not equivalent.\n'.format(nobody_user, nobody_group) +
' Please re-check that both "nobody-user" and "nobody-group" options are correctly set.')
endif
conf.set_quoted('NOBODY_USER_NAME', nobody_user)
conf.set_quoted('NOBODY_GROUP_NAME', nobody_group)
substs.set('NOBODY_USER_NAME', nobody_user)
substs.set('NOBODY_GROUP_NAME', nobody_group)
tty_gid = get_option('tty-gid')
conf.set('TTY_GID', tty_gid)
substs.set('TTY_GID', tty_gid)
# Ensure provided GID argument is numeric, otherwise fallback to default assignment
if get_option('users-gid') != ''
users_gid = get_option('users-gid').to_int()
else
users_gid = '-'
endif
substs.set('USERS_GID', users_gid)
if get_option('adm-group')
m4_defines += ['-DENABLE_ADM_GROUP']
endif
if get_option('wheel-group')
m4_defines += ['-DENABLE_WHEEL_GROUP']
endif
substs.set('DEV_KVM_MODE', get_option('dev-kvm-mode'))
substs.set('GROUP_RENDER_MODE', get_option('group-render-mode'))
kill_user_processes = get_option('default-kill-user-processes')
conf.set10('KILL_USER_PROCESSES', kill_user_processes)
substs.set('KILL_USER_PROCESSES', kill_user_processes ? 'yes' : 'no')
dns_servers = get_option('dns-servers')
conf.set_quoted('DNS_SERVERS', dns_servers)
substs.set('DNS_SERVERS', dns_servers)
ntp_servers = get_option('ntp-servers')
conf.set_quoted('NTP_SERVERS', ntp_servers)
substs.set('NTP_SERVERS', ntp_servers)
conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
substs.set('SUSHELL', get_option('debug-shell'))
substs.set('DEBUGTTY', get_option('debug-tty'))
debug_extra = get_option('debug-extra')
enable_debug_hashmap = false
enable_debug_mmap_cache = false
if debug_extra != ''
foreach name : debug_extra.split(',')
if name == 'hashmap'
enable_debug_hashmap = true
elif name == 'mmap-cache'
enable_debug_mmap_cache = true
else
message('unknown debug option "@0@", ignoring'.format(name))
endif
endforeach
endif
conf.set10('ENABLE_DEBUG_HASHMAP', enable_debug_hashmap)
conf.set10('ENABLE_DEBUG_MMAP_CACHE', enable_debug_mmap_cache)
#####################################################################
threads = dependency('threads')
librt = cc.find_library('rt')
libm = cc.find_library('m')
libdl = cc.find_library('dl')
libcap = dependency('libcap', required : false)
if not libcap.found()
# Compat with Ubuntu 14.04 which ships libcap w/o .pc file
libcap = cc.find_library('cap')
endif
libmount = dependency('mount',
version : '>= 2.30',
required : true)
want_audit = get_option('audit')
if want_audit != 'false'
libaudit = dependency('audit', required : want_audit == 'true')
have = libaudit.found()
else
have = false
libaudit = []
endif
conf.set10('HAVE_AUDIT', have)
want_gcrypt = get_option('gcrypt')
if want_gcrypt != 'false'
libgcrypt = cc.find_library('gcrypt', required : want_gcrypt == 'true')
libgpg_error = cc.find_library('gpg-error', required : want_gcrypt == 'true')
have = libgcrypt.found() and libgpg_error.found()
else
have = false
endif
if not have
# link to neither of the libs if one is not found
libgcrypt = []
libgpg_error = []
endif
conf.set10('HAVE_GCRYPT', have)
conf.set_quoted('FALLBACK_HOSTNAME', get_option('fallback-hostname'))
conf.set10('ENABLE_COMPAT_GATEWAY_HOSTNAME', get_option('compat-gateway-hostname'))
default_hierarchy = get_option('default-hierarchy')
conf.set_quoted('DEFAULT_HIERARCHY_NAME', default_hierarchy,
description : 'default cgroup hierarchy as string')
if default_hierarchy == 'legacy'
conf.set('DEFAULT_HIERARCHY', 'CGROUP_UNIFIED_NONE')
elif default_hierarchy == 'hybrid'
conf.set('DEFAULT_HIERARCHY', 'CGROUP_UNIFIED_SYSTEMD')
else
conf.set('DEFAULT_HIERARCHY', 'CGROUP_UNIFIED_ALL')
endif
time_epoch = get_option('time-epoch')
if time_epoch == ''
NEWS = files('NEWS')
time_epoch = run_command(stat, '-c', '%Y', NEWS).stdout()
endif
time_epoch = time_epoch.to_int()
conf.set('TIME_EPOCH', time_epoch)
libacl = []
libblkid = []
libcryptsetup = []
libidn = []
libiptc = []
libseccomp = []
libselinux = []
libxz = []
liblz4 = []
conf.set10('HAVE_ACL', false)
conf.set10('HAVE_LIBCRYPTSETUP', false)
conf.set10('HAVE_SELINUX', false)
conf.set10('ENABLE_IDN', false)
conf.set10('ENABLE_SMACK', false)
conf.set10('ENABLE_POLKIT', false)
conf.set10('HAVE_PAM', false)
conf.set10('HAVE_APPARMOR', false)
conf.set10('ENABLE_IMA', false)
conf.set10('HAVE_SYSV_COMPAT', false)
conf.set10('ENABLE_UTMP', false)
conf.set10('HAVE_GNUTLS', false)
conf.set10('HAVE_ACL', false)
conf.set10('HAVE_XZ', false)
conf.set10('HAVE_LZ4', false)
conf.set10('HAVE_SECCOMP', false)
conf.set10('HAVE_BLKID', false)
conf.set10('HAVE_ELFUTILS', false)
conf.set10('HAVE_KMOD', false)
conf.set10('HAVE_LIBIDN2', false)
conf.set10('HAVE_LIBIDN', false)
conf.set10('HAVE_PCRE2', false)
conf.set10('HAVE_LIBIPTC', false)
config_h = configure_file(
output : 'config.h',
configuration : conf)
includes = include_directories('src/basic',
'src/shared',
'src/systemd',
'src/libsystemd/sd-bus',
'src/libsystemd/sd-id128',
'.')
add_project_arguments('-include', 'config.h', language : 'c')
subdir('src/systemd')
subdir('src/basic')
subdir('src/libsystemd')
libsystemd_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libsystemd_sym)
libsystemd = shared_library(
'systemd',
'src/systemd/sd-id128.h', # pick a header file at random to work around old meson bug
version : libsystemd_version,
include_directories : includes,
link_args : ['-shared',
'-Wl,--version-script=' + libsystemd_sym_path],
link_with : [libbasic,
libbasic_gcrypt],
link_whole : [libsystemd_static],
dependencies : [threads,
librt],
link_depends : libsystemd_sym,
install : true,
install_dir : rootlibdir)
############################################################
# binaries that have --help and are intended for use by humans,
# usually, but not always, installed in /bin.
public_programs = []
# TODO clean busctl from evil :>
exe = executable('busctl',
'src/shared/bus-util.c',
'src/shared/pager.c',
'src/busctl/busctl.c',
'src/busctl/busctl-introspect.c',
'src/busctl/busctl-introspect.h',
include_directories : includes,
install_rpath : rootlibexecdir,
link_with : [libbasic,
libsystemd_static],
dependencies : [threads],
install : true)
public_programs += [exe]
############################################################
meson_check_help = find_program('tools/meson-check-help.sh')
foreach exec : public_programs
name = exec.full_path().split('/')[-1]
test('check-help-' + name,
meson_check_help,
args : [exec.full_path()])
endforeach
############################################################
#generate_sym_test_py = find_program('src/test/generate-sym-test.py')
#test_libsystemd_sym_c = custom_target(
# 'test-libsystemd-sym.c',
# input : [libsystemd_sym_path] + systemd_headers,
# output : 'test-libsystemd-sym.c',
# command : [generate_sym_test_py, libsystemd_sym_path] + systemd_headers,
# capture : true)
#test_libsystemd_sym = executable(
# 'test-libsystemd-sym',
# test_libsystemd_sym_c,
# include_directories : includes,
# link_with : [libsystemd],
# install : install_tests,
# install_dir : testsdir)
#test('test-libsystemd-sym',
# test_libsystemd_sym)
############################################################
install_data('src/libsystemd/sd-bus/GVARIANT-SERIALIZATION',
install_dir : docdir)
############################################################
status = [
'@0@ @1@'.format(meson.project_name(), meson.project_version()),
'split /usr: @0@'.format(split_usr),
'split bin-sbin: @0@'.format(split_bin),
'prefix directory: @0@'.format(prefixdir),
'rootprefix directory: @0@'.format(rootprefixdir),
'sysconf directory: @0@'.format(sysconfdir),
'include directory: @0@'.format(includedir),
'lib directory: @0@'.format(libdir),
'rootlib directory: @0@'.format(rootlibdir),
'maximum system UID: @0@'.format(system_uid_max),
'maximum system GID: @0@'.format(system_gid_max),
'support URL: @0@'.format(support_url),
'nobody user name: @0@'.format(nobody_user),
'nobody group name: @0@'.format(nobody_group)]
# TODO:
# CFLAGS: ${OUR_CFLAGS} ${CFLAGS}
# CPPFLAGS: ${OUR_CPPFLAGS} ${CPPFLAGS}
# LDFLAGS: ${OUR_LDFLAGS} ${LDFLAGS}
found = []
missing = []
foreach tuple : [
['AUDIT'],
['gcrypt'],
]
if tuple.length() >= 2
cond = tuple[1]
else
ident1 = 'HAVE_' + tuple[0].underscorify().to_upper()
ident2 = 'ENABLE_' + tuple[0].underscorify().to_upper()
cond = conf.get(ident1, 0) == 1 or conf.get(ident2, 0) == 1
endif
if cond
found += [tuple[0]]
else
missing += [tuple[0]]
endif
endforeach
status += [
'',
'enabled features: @0@'.format(', '.join(found)),
'',
'disabled features: @0@'.format(', '.join(missing)),
'']
message('\n '.join(status))
if rootprefixdir != rootprefix_default
message('WARNING:\n' +
' Note that the installation prefix was changed to "@0@".\n'.format(rootprefixdir) +
' systemd used fixed names for unit file directories and other paths, so anything\n' +
' except the default ("@0@") is strongly discouraged.'.format(rootprefix_default))
endif

View File

@ -1,23 +0,0 @@
--- a/src/systemd/meson.build 2018-03-03 22:56:45.111894767 +0100
+++ b/src/systemd/meson.build 2018-03-03 22:58:09.791897314 +0100
@@ -22,9 +22,6 @@
sd-daemon.h
sd-event.h
sd-id128.h
- sd-journal.h
- sd-login.h
- sd-messages.h
'''.split()
# https://github.com/mesonbuild/meson/issues/1633
--- a/src/libsystemd/meson.build 2018-04-13 12:53:10.169234014 +0200
+++ b/src/libsystemd/meson.build 2018-04-13 12:53:39.005234881 +0200
@@ -65,7 +65,7 @@
sd-path/sd-path.c
sd-resolve/sd-resolve.c
sd-utf8/sd-utf8.c
-'''.split()) + id128_sources + sd_daemon_c + sd_event_c + sd_login_c
+'''.split()) + id128_sources + sd_daemon_c + sd_event_c
libsystemd_static = static_library(
'systemd',

View File

@ -1,161 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=7
MY_PN="systemd"
if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/systemd/systemd.git"
inherit git-r3
else
SRC_URI="https://github.com/systemd/systemd/archive/v${PV}/${MY_PN}-${PV}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86"
fi
PYTHON_COMPAT=( python{3_4,3_5,3_6} )
inherit bash-completion-r1 linux-info meson multilib-minimal ninja-utils pam python-any-r1 systemd toolchain-funcs udev user
DESCRIPTION="System library to support SD-BUS without systemd, yea, for Linux"
HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd"
LICENSE="GPL-2 LGPL-2.1 MIT public-domain"
SLOT="0/2"
IUSE="audit gcrypt usrmerge"
REQUIRED_USE=""
RESTRICT="test"
MINKV="3.11"
COMMON_DEPEND=">=sys-apps/util-linux-2.30:0=[${MULTILIB_USEDEP}]
sys-libs/libcap:0=[${MULTILIB_USEDEP}]
!<sys-libs/glibc-2.16
audit? ( >=sys-process/audit-2:0= )
gcrypt? ( >=dev-libs/libgcrypt-1.4.5:0=[${MULTILIB_USEDEP}] )"
# baselayout-2.2 has /run
RDEPEND="${COMMON_DEPEND}
>=sys-apps/baselayout-2.2"
# sys-apps/dbus: the daemon only (+ build-time lib dep for tests)
PDEPEND="
>=sys-apps/hwids-20150417[udev]
>=sys-fs/udev-init-scripts-25"
# Newer linux-headers needed by ia64, bug #480218
DEPEND="${COMMON_DEPEND}
dev-util/gperf
>=dev-util/intltool-0.50
>=sys-apps/coreutils-8.16
>=sys-kernel/linux-headers-${MINKV}
virtual/pkgconfig
dev-libs/libxslt:0
$(python_gen_any_dep 'dev-python/lxml[${PYTHON_USEDEP}]')
!sys-apps/systemd
"
PATCHES=(
"${FILESDIR}/${PN}-237-meson_build.patch"
)
S="${WORKDIR}/${MY_PN}-${PV}"
pkg_pretend() {
if [[ ${MERGE_TYPE} != buildonly ]]; then
local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS
~CHECKPOINT_RESTORE ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE
~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS
~TIMERFD ~TMPFS_XATTR ~UNIX
~CRYPTO_HMAC ~CRYPTO_SHA256 ~CRYPTO_USER_API_HASH
~!FW_LOADER_USER_HELPER_FALLBACK ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED
~!SYSFS_DEPRECATED_V2"
kernel_is -lt 3 7 && CONFIG_CHECK+=" ~HOTPLUG"
kernel_is -lt 4 7 && CONFIG_CHECK+=" ~DEVPTS_MULTIPLE_INSTANCES"
kernel_is -ge 4 10 && CONFIG_CHECK+=" ~CGROUP_BPF"
if linux_config_exists; then
local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then
ewarn "It's recommended to set an empty value to the following kernel config option:"
ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
fi
if linux_chkconfig_present X86; then
CONFIG_CHECK+=" ~DMIID"
fi
fi
if kernel_is -lt ${MINKV//./ }; then
ewarn "Kernel version at least ${MINKV} required"
fi
check_extra_config
fi
}
pkg_setup() {
:
}
src_unpack() {
default
[[ ${PV} != 9999 ]] || git-r3_src_unpack
cp -v "${S}/meson.build" "${S}/meson.build.orig" || die
cp -v "${S}/src/libsystemd/libsystemd.sym" "${S}/src/libsystemd/libsystemd.sym.orig" || die
cp -v "${FILESDIR}/${PN}-237-meson.build" "${S}/meson.build" || die
cp -v "${FILESDIR}/${PN}-237-libsystemd.sym" "${S}/src/libsystemd/libsystemd.sym" || die
}
src_prepare() {
default
}
src_configure() {
# Prevent conflicts with i686 cross toolchain, bug 559726
tc-export AR CC NM OBJCOPY RANLIB
python_setup
multilib-minimal_src_configure
}
meson_use() {
usex "$1" true false
}
meson_multilib_native_use() {
if multilib_is_native_abi && use "$1"; then
echo true
else
echo false
fi
}
multilib_src_configure() {
local myconf=(
--localstatedir="${EPREFIX}/var"
# make sure we get /bin:/sbin in PATH
-Dsplit-usr=$(usex usrmerge false true)
-Drootprefix="$(usex usrmerge "${EPREFIX}/usr" "${EPREFIX:-/}")"
-Daudit=$(meson_multilib_native_use audit)
-Dgcrypt=$(meson_use gcrypt)
)
meson_src_configure "${myconf[@]}"
}
multilib_src_compile() {
eninja
}
multilib_src_test() {
eninja test
}
multilib_src_install() {
DESTDIR="${D}" eninja install
}

View File

@ -1,177 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=7
MY_PN="systemd"
if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/systemd/systemd.git"
inherit git-r3
else
SRC_URI="https://github.com/systemd/systemd/archive/v${PV}/${MY_PN}-${PV}.tar.gz
https://dev.gentoo.org/~floppym/dist/systemd-${PV}-patches-0.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86"
fi
PYTHON_COMPAT=( python{3_4,3_5,3_6} )
inherit bash-completion-r1 linux-info meson multilib-minimal ninja-utils pam python-any-r1 systemd toolchain-funcs udev user
DESCRIPTION="System library to support SD-BUS without systemd, yea, for Linux"
HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd"
LICENSE="GPL-2 LGPL-2.1 MIT public-domain"
SLOT="0/2"
IUSE="audit binmerge +gcrypt usrmerge"
REQUIRED_USE=""
RESTRICT="test"
MINKV="3.11"
COMMON_DEPEND=">=sys-apps/util-linux-2.30:0=[${MULTILIB_USEDEP}]
sys-libs/libcap:0=[${MULTILIB_USEDEP}]
!<sys-libs/glibc-2.16
audit? ( >=sys-process/audit-2:0= )
gcrypt? ( >=dev-libs/libgcrypt-1.4.5:0=[${MULTILIB_USEDEP}] )"
# baselayout-2.2 has /run
RDEPEND="${COMMON_DEPEND}
>=sys-apps/baselayout-2.2"
# sys-apps/dbus: the daemon only (+ build-time lib dep for tests)
PDEPEND="
>=sys-apps/hwids-20150417[udev]
>=sys-fs/udev-init-scripts-25"
# Newer linux-headers needed by ia64, bug #480218
DEPEND="${COMMON_DEPEND}
dev-util/gperf
>=dev-util/intltool-0.50
>=sys-apps/coreutils-8.16
>=sys-kernel/linux-headers-${MINKV}
virtual/pkgconfig
dev-libs/libxslt:0
$(python_gen_any_dep 'dev-python/lxml[${PYTHON_USEDEP}]')
!sys-apps/systemd
"
S="${WORKDIR}/${MY_PN}-${PV}"
pkg_pretend() {
if [[ ${MERGE_TYPE} != buildonly ]]; then
local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS
~CHECKPOINT_RESTORE ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE
~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS
~TIMERFD ~TMPFS_XATTR ~UNIX
~CRYPTO_HMAC ~CRYPTO_SHA256 ~CRYPTO_USER_API_HASH
~!FW_LOADER_USER_HELPER_FALLBACK ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED
~!SYSFS_DEPRECATED_V2"
kernel_is -lt 3 7 && CONFIG_CHECK+=" ~HOTPLUG"
kernel_is -lt 4 7 && CONFIG_CHECK+=" ~DEVPTS_MULTIPLE_INSTANCES"
kernel_is -ge 4 10 && CONFIG_CHECK+=" ~CGROUP_BPF"
if linux_config_exists; then
local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then
ewarn "It's recommended to set an empty value to the following kernel config option:"
ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
fi
if linux_chkconfig_present X86; then
CONFIG_CHECK+=" ~DMIID"
fi
fi
if kernel_is -lt ${MINKV//./ }; then
ewarn "Kernel version at least ${MINKV} required"
fi
check_extra_config
fi
}
pkg_setup() {
:
}
src_unpack() {
default
[[ ${PV} != 9999 ]] || git-r3_src_unpack
}
src_prepare() {
local PATCHES=()
[[ -d "${WORKDIR}"/patches ]] && PATCHES+=( "${WORKDIR}"/patches )
PATCHES+=(
"${FILESDIR}/238-libmount-include.patch"
"${FILESDIR}/238-initctl.patch"
"${FILESDIR}/238-nspawn-wait.patch"
"${FILESDIR}/${PN}-238-meson_build.patch"
)
default
# meson.build patch magic
sed '/sd-device/,/sd-utf8/d' -i "${S}/src/libsystemd/meson.build" || die
# latest meson takes this name for itself
sed s/debug\'/debug-extra\'/g -i "${S}/meson_options.txt" || die
# replace files after patchwork
cp -v "${S}/meson.build" "${S}/meson.build.orig" || die
cp -v "${S}/src/libsystemd/libsystemd.sym" "${S}/src/libsystemd/libsystemd.sym.orig" || die
cp -v "${FILESDIR}/${PN}-238-meson.build" "${S}/meson.build" || die
cp -v "${FILESDIR}/${PN}-238-libsystemd.sym" "${S}/src/libsystemd/libsystemd.sym" || die
}
src_configure() {
# Prevent conflicts with i686 cross toolchain, bug 559726
tc-export AR CC NM OBJCOPY RANLIB
python_setup
multilib-minimal_src_configure
}
meson_use() {
usex "$1" true false
}
meson_multilib_native_use() {
if multilib_is_native_abi && use "$1"; then
echo true
else
echo false
fi
}
multilib_src_configure() {
local myconf=(
--localstatedir="${EPREFIX}/var"
# make sure we get /bin:/sbin in PATH
-Dsplit-bin=$(usex binmerge false true)
-Dsplit-usr=$(usex usrmerge false true)
-Drootprefix="$(usex usrmerge "${EPREFIX}/usr" "${EPREFIX:-/}")"
-Daudit=$(meson_multilib_native_use audit)
-Dgcrypt=$(meson_use gcrypt)
)
meson_src_configure "${myconf[@]}"
}
multilib_src_compile() {
eninja
}
multilib_src_test() {
eninja test
}
multilib_src_install() {
DESTDIR="${D}" eninja install
}

View File

@ -1,9 +0,0 @@
AUX vte-0.54.4-ng/01-expose-functions-for-pausing.patch 1443 BLAKE2B eb783ae91471e4d2c78a24d04a30dbba621be27bbef1925943c2b1e6c6c4c72f170ea0579bf97fa203b85e81fc0f906e98f62cb4772ece2dc57d0b42284e3471 SHA512 69fda869d5ce95ece5a3d15ffcf528bacadd8e91eb506c37ab708b69820ffe13c79d893375c32a52e2e5d93ccc8e69b717ba156fd6f4060ba910c8df7bcffdc2
AUX vte-0.54.4-ng/02-expose-function-for-setting.patch 1488 BLAKE2B 8ae64d90fe5150073d69e0cc8be9ef465839c998cdf166c8fba71598da524453c38cca45b4d2e994ebc24ae8851c5483eee6793ddb8b6b176a607ba551fdc03c SHA512 aa82f0ceeca95c6db477115271a65d4e7ba782232974fe94ca69b2765988d79eeecf746626031a192e6fcef65e7c8f0ed5c21495637bc20fd5cc0f627986426a
AUX vte-0.54.4-ng/03-add-function-for-setting-the.patch 1430 BLAKE2B 8c1141636f3631a7e5cd3f8376b8d0c81fac013610b1af63f96beb30e230efed23b04409ab09fa6ff55cfe43d2141bd8e87d10529a23128545352481f5538c3f SHA512 88107ed2c27b21f886126f14d89453cf8d181f002d3bf02814dbf32e5b05a7f5638ff2c8aa4493a9899a738cb735199ca5ebe2e423c8a1ac8fbc2a5f58f30bb9
AUX vte-0.54.4-ng/04-add-functions-to-get-set-block.patch 1827 BLAKE2B f7135b212f536181c84182583a076104a39f96257b38945cae8598aa044cc1537b3af71f84b17d23e3c2b5acf9ec6b22b3e01d23078469cff5a9e84f27d7b48f SHA512 e2dc981673eb7a4c1525effe504685e613f51b9d8c2f194f7379cf0e403f16dd6cd675e9b7bca26dcc9f6ea46a6c28dfa3299a06c7b783837b0aca9ce76e7f53
AUX vte-0.54.4-ng/05-expose-function-for-getting.patch 1071 BLAKE2B 3c1e1bfea6418164b036de4bac9767c40ab0432c1450c6f9171dd39060103ad834989f59ad2b5aeecf9fd83b625c3cab45c41787a4770c653e1dc7a72d76dad1 SHA512 d696e58ca64e7915283aeb1412420879f4c5df2d4721101783e605b3bbf714ff8025764e15a0b21a1af295618c416d86fc4875eb4ea659088c848d4acf80ef6e
AUX vte-0.54.4-ng/series 267 BLAKE2B 31c12bd5876ac4e7c583b8a0ae6900f38539e4ce4eab740cfda393d2aaa7d32500bc05d00259bd459ebdb7d42e7901d656baa4ad62ea3630f51867c1260269d6 SHA512 6817bacbb2f2afdf4af50e32bba25c45ffc9f95fd20702fac1371496156f81d45af9ef71b0a035f4a1c65f718f175a077019dccccb7876442e5edd50a9f0cb18
DIST vte-0.54.1-command-notify.patch.xz 3428 BLAKE2B 75b0c22720276300be2e49e8444aa68fed77fb7a6cc6b0e93a5c2d41257626bd60ff1084d68579769cb3d85e7ec567927591746de48e860b138d0c1f24f64cc7 SHA512 a53da569f8168c8e9e21e186dcfc00bf9fdb78a0c767ba35033c1c1e4f836406b4d9bf70ee3e071f6c749fd6f72101a6960d201617bd0bc23021e1eeaac6fd0c
DIST vte-0.54.2.tar.xz 1087628 BLAKE2B 9e613ff514beef395f88677ebb25d278df3107b90af07f5d7cbebc44f93d5a6784d65b56cca2c3c020bbf20b0f406a933b97678004bbb586e1485f4aeda08aa9 SHA512 214ec69110d6ad6caa9bc41fb741874bfcf27f20f34d3ae745b13903c574f9c854f7e0dadbae3dbc8ce04c5a6eb818a433c50569c1ef802501a9a078385f23fc
EBUILD vte-0.54.2.ebuild 2491 BLAKE2B e478aecc7d4b29a5a00144b9bc05aab364b1f28e3c1a4b8eb24a5774802d4d6c1914699b79d89bea1f02a582f718bd90251e8e0be5ab0feafa8accb78ea37565 SHA512 0f0bd07c516d634258c5cb2e4c69f7ea62b3ce77b16f30ba9010a59956bfad2680f7cdd651ac7f586a179a661277fe4e447e6b2b5d7be5e510545eb9ae8b8efa

View File

@ -1,54 +0,0 @@
diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index 89539cc4..a41ec359 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -175,6 +175,12 @@ void vte_terminal_feed_child_binary(VteTerminal *terminal,
const guint8 *data,
gsize length) _VTE_GNUC_NONNULL(1);
+_VTE_PUBLIC
+void vte_terminal_connect_pty_read(VteTerminal *terminal);
+
+_VTE_PUBLIC
+void vte_terminal_disconnect_pty_read(VteTerminal *terminal);
+
/* Copy currently-selected text to the clipboard, or from the clipboard to
* the terminal. */
_VTE_PUBLIC
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 89e3d7a8..f0f3f3e8 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -2780,6 +2780,32 @@ vte_terminal_feed_child(VteTerminal *terminal,
IMPL(terminal)->feed_child(text, length);
}
+/**
+ * vte_terminal_connect_pty_read:
+ * @terminal: a #VteTerminal
+ *
+ * Unpause output
+ */
+void
+vte_terminal_connect_pty_read(VteTerminal *terminal)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ IMPL(terminal)->connect_pty_read();
+}
+
+/**
+ * vte_terminal_disconnect_pty_read:
+ * @terminal: a #VteTerminal
+ *
+ * Pause output
+ */
+void
+vte_terminal_disconnect_pty_read(VteTerminal *terminal)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ IMPL(terminal)->disconnect_pty_read();
+}
+
/**
* vte_terminal_feed_child_binary:
* @terminal: a #VteTerminal

View File

@ -1,51 +0,0 @@
diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index a41ec359..fe90a374 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -383,6 +383,11 @@ _VTE_PUBLIC
void vte_terminal_get_cursor_position(VteTerminal *terminal,
glong *column,
glong *row) _VTE_GNUC_NONNULL(1);
+_VTE_PUBLIC
+void vte_terminal_set_cursor_position(VteTerminal *terminal,
+ glong column,
+ glong row) _VTE_GNUC_NONNULL(1);
+
_VTE_PUBLIC
char *vte_terminal_hyperlink_check_event(VteTerminal *terminal,
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index f0f3f3e8..17be4728 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -2415,6 +2415,30 @@ vte_terminal_get_cursor_position(VteTerminal *terminal,
}
}
+/**
+ * vte_terminal_set_cursor_position
+ * @terminal: a #VteTerminal
+ * @column: the new cursor column
+ * @row: the new cursor row
+ *
+ * Set the location of the cursor.
+ */
+void
+vte_terminal_set_cursor_position(VteTerminal *terminal,
+ long column, long row)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ auto impl = IMPL(terminal);
+ impl->invalidate_cursor_once(FALSE);
+ impl->m_screen->cursor.col = column;
+ impl->m_screen->cursor.row = row;
+ impl->invalidate_cursor_once(FALSE);
+ impl->check_cursor_blink();
+ impl->queue_cursor_moved();
+
+}
+
/**
* vte_terminal_pty_new_sync:
* @terminal: a #VteTerminal

View File

@ -1,46 +0,0 @@
diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index fe90a374..b92443bb 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -196,6 +196,10 @@ _VTE_PUBLIC
void vte_terminal_select_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
_VTE_PUBLIC
void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
+_VTE_PUBLIC
+void vte_terminal_select_text(VteTerminal *terminal, long start_col, long start_row,
+ long end_col, long end_row) _VTE_GNUC_NONNULL(1);
+
/* By-word selection */
_VTE_PUBLIC
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 17be4728..2ebf070f 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -2390,6 +2390,26 @@ vte_terminal_unselect_all(VteTerminal *terminal)
IMPL(terminal)->deselect_all();
}
+/**
+ * vte_terminal_select_text:
+ * @terminal: a #VteTerminal
+ * @start_col: the starting column for the selection
+ * @start_row: the starting row for the selection
+ * @end_col: the end column for the selection
+ * @end_row: the end row for the selection
+ *
+ * Sets the current selection region.
+ */
+void
+vte_terminal_select_text(VteTerminal *terminal,
+ long start_col, long start_row,
+ long end_col, long end_row)
+{
+ g_return_if_fail (VTE_IS_TERMINAL (terminal));
+
+ IMPL(terminal)->select_text(start_col, start_row, end_col, end_row);
+}
+
/**
* vte_terminal_get_cursor_position:
* @terminal: a #VteTerminal

View File

@ -1,52 +0,0 @@
diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index b92443bb..87096bc0 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -197,6 +197,11 @@ void vte_terminal_select_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
_VTE_PUBLIC
void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
_VTE_PUBLIC
+gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
+_VTE_PUBLIC
+void vte_terminal_set_selection_block_mode(VteTerminal *terminal,
+ gboolean block_mode) _VTE_GNUC_NONNULL(1);
+_VTE_PUBLIC
void vte_terminal_select_text(VteTerminal *terminal, long start_col, long start_row,
long end_col, long end_row) _VTE_GNUC_NONNULL(1);
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 2ebf070f..27ad64da 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -2389,6 +2389,31 @@ vte_terminal_unselect_all(VteTerminal *terminal)
IMPL(terminal)->deselect_all();
}
+/**
+ * vte_terminal_get_selection_block_mode:
+ * @terminal: a #VteTerminal
+ *
+ * Checks whether or not block selection is enabled.
+ *
+ * Returns: %TRUE if block selection is enabled, %FALSE if not
+ */
+
+gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal) {
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+ return IMPL(terminal)->m_selection_block_mode;
+}
+/**
+ * vte_terminal_set_selection_block_mode:
+ * @terminal: a #VteTerminal
+ * @block_mode: whether block selection is enabled
+ *
+ * Sets whether or not block selection is enabled.
+ */
+void
+vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode) {
+ g_return_if_fail (VTE_IS_TERMINAL (terminal));
+ IMPL(terminal)->m_selection_block_mode = block_mode;
+}
/**
* vte_terminal_select_text:

View File

@ -1,33 +0,0 @@
diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index 87096bc0..8bdbde30 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -204,7 +204,9 @@ void vte_terminal_set_selection_block_mode(VteTerminal *terminal,
_VTE_PUBLIC
void vte_terminal_select_text(VteTerminal *terminal, long start_col, long start_row,
long end_col, long end_row) _VTE_GNUC_NONNULL(1);
-
+_VTE_PUBLIC
+char *
+vte_terminal_get_selection(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
/* By-word selection */
_VTE_PUBLIC
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 27ad64da..0067e58a 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -2435,6 +2435,13 @@ vte_terminal_select_text(VteTerminal *terminal,
IMPL(terminal)->select_text(start_col, start_row, end_col, end_row);
}
+char *
+vte_terminal_get_selection(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ return g_strdup (IMPL(terminal)->m_selection[VTE_SELECTION_PRIMARY]->str);
+}
+
/**
* vte_terminal_get_cursor_position:
* @terminal: a #VteTerminal

View File

@ -1,6 +0,0 @@
# This series applies on GIT commit 992c481f21e266e7cdfcee1d425b18da4df9ef8d
01-expose-functions-for-pausing.patch
02-expose-function-for-setting.patch
03-add-function-for-setting-the.patch
04-add-functions-to-get-set-block.patch
05-expose-function-for-getting.patch

View File

@ -1,94 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
VALA_USE_DEPEND="vapigen"
VALA_MIN_API_VERSION="0.32"
inherit gnome2 vala
DESCRIPTION="Library providing a virtual terminal emulator widget"
HOMEPAGE="https://wiki.gnome.org/action/show/Apps/Terminal/VTE termite-patch? ( https://github.com/thestinger/vte-ng )"
LICENSE="LGPL-2+"
SLOT="2.91"
IUSE="+crypt debug glade +introspection +termite-patch vala vanilla"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~x64-solaris ~x86-solaris"
REQUIRED_USE="vala? ( introspection )"
SRC_URI="${SRC_URI} !vanilla? ( https://dev.gentoo.org/~leio/distfiles/${PN}-0.54.1-command-notify.patch.xz )"
RDEPEND="
>=dev-libs/glib-2.40:2
>=dev-libs/libpcre2-10.21
>=x11-libs/gtk+-3.16:3[introspection?]
>=x11-libs/pango-1.22.0
sys-libs/ncurses:0=
sys-libs/zlib
crypt? ( >=net-libs/gnutls-3.2.7:0= )
glade? ( >=dev-util/glade-3.9:3.10 )
introspection? ( >=dev-libs/gobject-introspection-0.9.0:= )
"
DEPEND="${RDEPEND}
dev-util/gperf
dev-libs/libxml2
>=dev-util/gtk-doc-am-1.13
>=dev-util/intltool-0.35
sys-devel/gettext
virtual/pkgconfig
vala? ( $(vala_depend) )
"
RDEPEND="${RDEPEND}
!x11-libs/vte:2.90[glade]
"
src_prepare() {
if ! use vanilla; then
# First half of http://pkgs.fedoraproject.org/cgit/rpms/vte291.git/tree/vte291-command-notify-scroll-speed.patch
# Adds OSC 777 support for desktop notifications in gnome-terminal or elsewhere
eapply "${WORKDIR}"/${PN}-0.54.1-command-notify.patch
fi
if use termite-patch; then
eapply "$FILESDIR"/${PN}-0.54.4-ng/*.patch
fi
use vala && vala_src_prepare
# build fails because of -Werror with gcc-5.x
sed -e 's#-Werror=format=2#-Wformat=2#' -i configure || die "sed failed"
gnome2_src_prepare
}
src_configure() {
local myconf=""
if [[ ${CHOST} == *-interix* ]]; then
myconf="${myconf} --disable-Bsymbolic"
# interix stropts.h is empty...
export ac_cv_header_stropts_h=no
fi
# Python bindings are via gobject-introspection
# Ex: from gi.repository import Vte
gnome2_src_configure \
--disable-test-application \
--disable-static \
--with-gtk=3.0 \
$(use_enable debug) \
$(use_enable glade glade-catalogue) \
$(use_with crypt gnutls) \
$(use_enable introspection) \
$(use_enable vala) \
${myconf}
}
src_install() {
gnome2_src_install
mv "${ED}"/etc/profile.d/vte{,-${SLOT}}.sh || die
}

View File

@ -1,2 +0,0 @@
EBUILD redshift-9999.ebuild 1982 BLAKE2B 5165cb6338f3598a9933175fd273030694aba16bce917a1fee0646f3f804a71d61dfdf550f905dcbabb9bef95a331bd448b06fda0aa17643af1c8734f784e936 SHA512 9b845cc8131e57d8ebdc52621c83daff05f4d5388e7750aa1832c0d82e3f73c1c69ecc050713c555222eb77c75dd8a72647699e53ce05883e5922aaf5f1fed35
MISC metadata.xml 545 BLAKE2B db060df8f3a667a05c9517ed4181b722e4c2f987d7f5aa0085e3d8adf8a0d652fee0ca6901fcab4e75344f3337df4eb1ea15c7555fa2034709c185049155cd06 SHA512 5eb06d120a80deb3d70b3007a4bc8983b276cfb87a5471ca062675770e1e575e29e5b28562e53521976c9ba7c4cd6c95aee7fffb56aa2b1faaed098de42a2bc3

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>sping@gentoo.org</email>
</maintainer>
<maintainer type="project">
<email>desktop-misc@gentoo.org</email>
<name>Gentoo Desktop Miscellaneous Project</name>
</maintainer>
<use>
<flag name="geoclue">Control dependency on <pkg>app-misc/geoclue</pkg></flag>
</use>
<upstream>
<remote-id type="github">jonls/redshift</remote-id>
</upstream>
</pkgmetadata>

View File

@ -1,89 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python3_{6,7,8} )
inherit systemd autotools eutils gnome2-utils python-r1 git-r3
DESCRIPTION="A screen color temperature adjusting software"
HOMEPAGE="http://jonls.dk/redshift/"
EGIT_REPO_URI="https://github.com/minus7/redshift.git"
EGIT_BRANCH="wayland"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS=""
IUSE="ayatana geoclue gtk nls wayland"
COMMON_DEPEND=">=x11-libs/libX11-1.4
x11-libs/libXxf86vm
x11-libs/libxcb
x11-libs/libdrm
geoclue? ( app-misc/geoclue:2.0 dev-libs/glib:2 )
gtk? ( ${PYTHON_DEPS} )"
RDEPEND="${COMMON_DEPEND}
gtk? ( dev-python/pygobject[${PYTHON_USEDEP}]
x11-libs/gtk+:3[introspection]
dev-python/pyxdg[${PYTHON_USEDEP}] )"
DEPEND="${COMMON_DEPEND}
>=dev-util/intltool-0.50
nls? ( sys-devel/gettext )
ayatana? ( dev-libs/libappindicator:3 )
wayland? ( dev-libs/wayland )
"
REQUIRED_USE="gtk? ( ${PYTHON_REQUIRED_USE} )"
src_prepare() {
default
eautoreconf
}
src_configure() {
use gtk && python_setup
econf \
--disable-silent-rules \
$(use_enable nls) \
--enable-drm \
--enable-randr \
--enable-vidmode \
--disable-wingdi \
\
--disable-corelocation \
$(use_enable geoclue geoclue2) \
\
$(use_enable gtk gui) \
--with-systemduserunitdir="$(systemd_get_userunitdir)" \
--disable-apparmor \
--disable-quartz \
--disable-ubuntu \
$(use_enable wayland)
}
_impl_specific_src_install() {
emake DESTDIR="${D}" pythondir="$(python_get_sitedir)" \
-C src/redshift-gtk install
}
src_install() {
emake DESTDIR="${D}" UPDATE_ICON_CACHE=/bin/true install
if use gtk; then
python_foreach_impl _impl_specific_src_install
python_replicate_script "${D}"/usr/bin/redshift-gtk
dosym redshift-gtk /usr/bin/gtk-redshift
fi
}
pkg_preinst() {
use gtk && gnome2_icon_savelist
}
pkg_postinst() {
use gtk && gnome2_icon_cache_update
}
pkg_postrm() {
use gtk && gnome2_icon_cache_update
}

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=6
EAPI=7
inherit git-r3 qmake-utils

View File

@ -1,3 +0,0 @@
AUX nocsd.patch 487 BLAKE2B e347962c9a16c28a367d11859b1d45c314444cf182c832936d80b83117bb954abd95871c45c520fc5b39e5136cc9db1f5a9fcbce3e81dc45a383f2a856997ea5 SHA512 9413b47d4ea2dbd257895296323efae54e982cf9009799f0294e19de3537eb7144fd04eec81e9b95de5c7665e4f565faa391b1a2234def3ebb7ace68cf73b2e0
EBUILD termite-13.ebuild 1452 BLAKE2B 1fbd73e32b5af91af5293aa4bd61366a39a9278ba4605c4d5afebc31b24f82c36e38ce817820c05efc07044d60a1e74d2fc196dfbe6b2313482dd90ad4a425be SHA512 bc25af5c718595cde97d072cdb868b9ce8220e391c9fc9c216a44fc1d7c2422cfd3c69687352db7c5553a972dccb983e75d8502261de3131f0ae76ecf771e29e
EBUILD termite-9999.ebuild 1349 BLAKE2B 7366546de82f70919027864f9bcca0b532d1e6bcb3bf32ae71566d46876d584bb625a4ea551b1824cfc1694260a2156f02c5ddcc1309b4fa14177ae97bb2a35c SHA512 2aa80e8524474818345de83360342289f9a5315974034b5fc8cfbd783853e9580dd5dd9bed95a32ac45649ae8766e5939b704742e8bdae27ee5eb9813ca56acf

View File

@ -1,10 +0,0 @@
--- a/termite.cc 2017-03-30 16:19:30.791745134 -0700
+++ b/termite.cc 2017-03-30 16:02:18.128408314 -0700
@@ -1737,6 +1737,7 @@
gtk_container_add(GTK_CONTAINER(panel_overlay), hint_overlay);
gtk_container_add(GTK_CONTAINER(hint_overlay), vte_widget);
gtk_container_add(GTK_CONTAINER(window), panel_overlay);
+ gtk_window_set_decorated(GTK_WINDOW(window), false);
if (!hold) {
g_signal_connect(vte, "child-exited", G_CALLBACK(exit_with_status), nullptr);

View File

@ -1,63 +0,0 @@
# By eroen, 2013-2016
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
EAPI=6
inherit eutils toolchain-funcs versionator
if [[ 9999 == $PV ]]; then
inherit git-r3
else
# Submodules :-(
#SRC_URI="https://github.com/thestinger/termite/archive/v$PV.tar.gz -> $P.tar.gz"
inherit git-r3
EGIT_COMMIT=v$PV
KEYWORDS="~amd64 ~x86"
fi
DESCRIPTION="A keyboard-centric VTE-based terminal"
HOMEPAGE="https://github.com/thestinger/termite"
EGIT_REPO_URI="https://github.com/thestinger/termite.git"
LICENSE="LGPL-2+ MIT"
SLOT="0"
IUSE=""
RDEPEND="dev-libs/libpcre2
>=x11-libs/gtk+-3.0
>=x11-libs/vte-0.43.2:2.91[termite-patch(-)]"
DEPEND="${RDEPEND}"
pkg_pretend() {
if ! version_is_at_least 4.7 $(gcc-version); then
eerror "${PN} passes -std=c++11 to \${CXX} and requires a version"
eerror "of gcc newer than 4.7.0"
fi
}
pkg_setup() {
# Makefile prepends -O3
CXXFLAGS="-O0 ${CXXFLAGS}"
}
src_prepare() {
default
sed -e "s/^VERSION = .*$/VERSION = v${PV}/" \
-i Makefile || die
}
src_compile() {
emake LDFLAGS="${LDFLAGS}"
}
src_install() {
emake DESTDIR="${D}" PREFIX=/usr install
dodoc README* config
}
pkg_postinst() {
elog
elog "Termite looks for a config file ~/.config/termite/config"
elog "An example config can be found in ${EROOT}usr/share/doc/${PF}/"
}

View File

@ -1,56 +0,0 @@
# By eroen, 2013-2016
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
EAPI=6
inherit eutils toolchain-funcs versionator
if [[ 9999 == $PV ]]; then
inherit git-r3
else
SRC_URI="https://github.com/thestinger/termite/archive/v$PV.tar.gz -> $P.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
DESCRIPTION="A keyboard-centric VTE-based terminal"
HOMEPAGE="https://github.com/thestinger/termite"
EGIT_REPO_URI="https://github.com/thestinger/termite.git"
LICENSE="LGPL-2+ MIT"
SLOT="0"
IUSE="+nocsd"
LIBDEPEND=">=x11-libs/gtk+-3.0
>=x11-libs/vte-0.38:2.91[termite-patch(-)]
"
DEPEND="${LIBDEPEND}"
RDEPEND="${LIBDEPEND}"
pkg_pretend() {
if ! version_is_at_least 4.7 $(gcc-version); then
eerror "${PN} passes -std=c++11 to \${CXX} and requires a version"
eerror "of gcc newer than 4.7.0"
fi
}
pkg_setup() {
# Makefile prepends -O3
CXXFLAGS="-O0 ${CXXFLAGS}"
}
src_compile() {
epatch ${FILESDIR}/nocsd.patch
emake LDFLAGS="${LDFLAGS}"
}
src_install() {
emake DESTDIR="${D}" PREFIX=/usr install
dodoc README* config
}
pkg_postinst() {
elog
elog "Termite looks for a config file ~/.config/termite/config"
elog "An example config can be found in ${EROOT}usr/share/doc/${PF}/"
}