From 677b7ba5c317778df2ad7e70df94b9b7eec4adbc Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 10 Sep 2021 04:21:55 +0100 Subject: gentoo resync : 10.09.2021 --- app-misc/rmlint/Manifest | 9 ++ app-misc/rmlint/files/rmlint-2.10.1-cflags.patch | 18 +++ app-misc/rmlint/files/rmlint-2.10.1-fix-cc.patch | 40 ++++++ .../rmlint/files/rmlint-2.10.1-fix-tests.patch | 135 ++++++++++++++++++++ app-misc/rmlint/files/rmlint-2.10.1-scons.patch | 93 ++++++++++++++ .../rmlint/files/rmlint-2.10.1-skip-tests.patch | 35 ++++++ .../rmlint/files/rmlint-2.10.1-x86-fix-size.patch | 30 +++++ app-misc/rmlint/metadata.xml | 12 ++ app-misc/rmlint/rmlint-2.10.1.ebuild | 137 +++++++++++++++++++++ 9 files changed, 509 insertions(+) create mode 100644 app-misc/rmlint/Manifest create mode 100644 app-misc/rmlint/files/rmlint-2.10.1-cflags.patch create mode 100644 app-misc/rmlint/files/rmlint-2.10.1-fix-cc.patch create mode 100644 app-misc/rmlint/files/rmlint-2.10.1-fix-tests.patch create mode 100644 app-misc/rmlint/files/rmlint-2.10.1-scons.patch create mode 100644 app-misc/rmlint/files/rmlint-2.10.1-skip-tests.patch create mode 100644 app-misc/rmlint/files/rmlint-2.10.1-x86-fix-size.patch create mode 100644 app-misc/rmlint/metadata.xml create mode 100644 app-misc/rmlint/rmlint-2.10.1.ebuild (limited to 'app-misc/rmlint') diff --git a/app-misc/rmlint/Manifest b/app-misc/rmlint/Manifest new file mode 100644 index 000000000000..1dec79011834 --- /dev/null +++ b/app-misc/rmlint/Manifest @@ -0,0 +1,9 @@ +AUX rmlint-2.10.1-cflags.patch 626 BLAKE2B e34590b6cb83399444f6a29379f0c84f3d442ead5dfdcc542822d34da50f00eebcc6b2eb26bf627710b2b8ded428471f22d3bcfa9b2ac367362fcafe208b92e6 SHA512 644ae7ea5dfaefd78942f89d93937598c9ed6c8edc1ee1a342ff35f040e75d7e38e285ad5436ee33597604c6cb456f51624a6f8225c25a62ed727797633139d6 +AUX rmlint-2.10.1-fix-cc.patch 1619 BLAKE2B d0b7267d33e1fd906c6d914c1030e143e42b92d9f814c02b6476e1ccd23af20c810b02a2ddfe2d4b5e2f6e7b5a8a8fbc3225aeca56cb78bb84450e9dca07c925 SHA512 e83a90650e434cee31b889f238bee7c0905abd787931fb7752c82c17e927f840de83790e7258526836e14289c2aaa3dcfc94b2097c19e3ac3ab5ac41a6380951 +AUX rmlint-2.10.1-fix-tests.patch 4833 BLAKE2B 75b1e0a732c833f5684a0d6b3870d9f65d4eb62018728353f24e956be1b3fb12cd98f1cc385c398a8b7ad524b50059f04e9200fd1b07519ce5e4a8d042556dec SHA512 8ad1ac7c0812b0414935b49391152507ef043143a2d13d89d9be590b5eee9e42654869282d989c6ff26a5dc178e76e2b3157b1b3fae57ab6d64a3ff91c7f8b60 +AUX rmlint-2.10.1-scons.patch 3626 BLAKE2B cc9187d2b8926eb36071462d02a60f3a4b06de99ad97adf5b9dbb4bca3f9a42ccb8fd863ec9f78500acabdfe692d18c7141fb165c6c13661463b704117c308c6 SHA512 bf585930651101e3057547442527ad571c193a9e7bcff976544f16fd9bac75e0cc074bbf60bf31c1dd50538aa961a0143b46cd3feac6deec014b8689da048c85 +AUX rmlint-2.10.1-skip-tests.patch 1216 BLAKE2B 8fa9727f5146a26fbd91e8e6c4f8b903e432c386ca8f97b4591bd9244940bf94aa476dfb0390c332fe8fa7e777e31890046423cd88e47181f3a8f30e3fead4be SHA512 c66812da8860a714d1ae368039f95dd86d59b3ba6164fc9141f0c1c0ab6ab7c7245dcef9785a179dc437615cd5d9e8af1a1ee60354e99c02fd3c345fd2e91608 +AUX rmlint-2.10.1-x86-fix-size.patch 1092 BLAKE2B 2cd3e7e68d5252c89b84d1d78a17520e6c5f7b61f5d9bfc05bd25ea96b9057bb195c7afc6e61a8bac121ae749b5f84d28dc032be2d92bd6f5a2ab04f5b3cae9d SHA512 78a41f52aa1af9f9d63227b9a2100cf87806a442f07d153e83ccedf7110a14e4c7fec8c9a4fdf21284301927895a62eedaf666cbfe90092eb4ac41e68bf34c6e +DIST rmlint-2.10.1.tar.gz 2494474 BLAKE2B 40219ff64d54f0e2fc66a958c6ca51520152f77f9038e9756ab601da5180502528be7b2d750c85b5991c31db96c3eb7415841084b6c90db103dc212947864034 SHA512 a1281359798816dadaf3a1e706e671dc63edf8f7d176c114a924a1e03fc9ad6fa54d10de701b09b5e364a9a815e0d11bdbef3d16fb7fec74eb85af20a106db1a +EBUILD rmlint-2.10.1.ebuild 3012 BLAKE2B 99d24e732458443fe1404e5833b0d325e78f7028d4cda1b0038d1728bd70985543836a6464d3ebc07937a6217886b9207a0c13208072a69ad77ef9a2beb38307 SHA512 95a540af450450596496ff5c5a919310cc65c0f5fc098ce0d65a22f07f230317193003557938407b740cbbc525aef08b004436afcbdb06f49c8e592db1ac3210 +MISC metadata.xml 382 BLAKE2B 4a69af19c54000aea42affb0dd9e5a9430f3148aa3a218efe21313db83298d1ef7e684a053055e02542b25de6705a69d209ee6068cd4146ddffdab44ad5cb2ae SHA512 e115294dd4ef57b77b8acd3cde91345faf37413ceaa5d69a37a76fec0d755fbb9881c29b9435c5d37ef54c6a1665a3842d276cfce4be568c39f0e1baa1051f00 diff --git a/app-misc/rmlint/files/rmlint-2.10.1-cflags.patch b/app-misc/rmlint/files/rmlint-2.10.1-cflags.patch new file mode 100644 index 000000000000..6ddfd98d956a --- /dev/null +++ b/app-misc/rmlint/files/rmlint-2.10.1-cflags.patch @@ -0,0 +1,18 @@ +--- a/SConstruct ++++ b/SConstruct +@@ -724,7 +724,6 @@ if ARGUMENTS.get('DEBUG') == "1": + O_value = ARGUMENTS.get('O', O_DEBUG) + else: + conf.env.Append(CCFLAGS=['-DG_DISABLE_ASSERT', '-DNDEBUG']) +- conf.env.Append(LINKFLAGS=['-s']) + O_value = ARGUMENTS.get('O', O_RELEASE) + + if O_value == 'debug': +@@ -735,7 +734,6 @@ elif O_value == 'release': + cc_O_option = '-O' + O_value + + print("Using compiler optimisation {} (to change, run scons with O=[0|1|2|3|s|fast])".format(cc_O_option)) +-conf.env.Append(CCFLAGS=[cc_O_option]) + + if ARGUMENTS.get('SYMBOLS') == '1': + print("Compiling with debugging symbols") diff --git a/app-misc/rmlint/files/rmlint-2.10.1-fix-cc.patch b/app-misc/rmlint/files/rmlint-2.10.1-fix-cc.patch new file mode 100644 index 000000000000..78aac09ce2a7 --- /dev/null +++ b/app-misc/rmlint/files/rmlint-2.10.1-fix-cc.patch @@ -0,0 +1,40 @@ +commit 41056d132ae772b3c050020d68b7daa585e4143c +Author: Louis Sautier +Date: Thu Sep 9 13:29:37 2021 +0200 + + Never hardcode compiler, select it based on CC environment variable + +diff --git a/SConstruct b/SConstruct +index 7e12d413..20b080da 100755 +--- a/SConstruct ++++ b/SConstruct +@@ -37,8 +37,9 @@ Export('VERSION_MAJOR VERSION_MINOR VERSION_PATCH VERSION_NAME') + def check_gcc_version(context): + context.Message('Checking for GCC version... ') + ++ gcc = os.environ.get("CC", "gcc") + try: +- v = subprocess.check_output("printf '%s\n' __GNUC__ | gcc -E -P -", shell=True) ++ v = subprocess.check_output("printf '%s\n' __GNUC__ | {} -E -P -".format(gcc), shell=True) + try: + v = int(v) + context.Result(str(v)) +diff --git a/tests/test_types/test_nonstripped.py b/tests/test_types/test_nonstripped.py +index a18648c9..d3190d1b 100644 +--- a/tests/test_types/test_nonstripped.py ++++ b/tests/test_types/test_nonstripped.py +@@ -21,8 +21,12 @@ def create_binary(path, stripped=False): + path = path + '.stripped' if stripped else path + '.nonstripped' + full_path = os.path.join(TESTDIR_NAME, path) + +- command = 'echo \'{src}\' | cc -o {path} {option} -std=c99 -xc -'.format( +- src=SOURCE, path=full_path, option=('-s' if stripped else '-ggdb3') ++ cc = os.environ.get("CC", "cc") ++ command = 'echo \'{src}\' | {cc} -o {path} {option} -std=c99 -xc -'.format( ++ cc=cc, ++ src=SOURCE, ++ path=full_path, ++ option=('-s' if stripped else '-ggdb3') + ) + subprocess.call(command, shell=True) + diff --git a/app-misc/rmlint/files/rmlint-2.10.1-fix-tests.patch b/app-misc/rmlint/files/rmlint-2.10.1-fix-tests.patch new file mode 100644 index 000000000000..db43e366b389 --- /dev/null +++ b/app-misc/rmlint/files/rmlint-2.10.1-fix-tests.patch @@ -0,0 +1,135 @@ +--- a/tests/test_options/test_replay.py ++++ b/tests/test_options/test_replay.py +@@ -69,7 +69,7 @@ def test_replay_match_basename(): + create_file('xxx', 'test1/b') + create_file('xxx', 'test2/a') + +- replay_path = '/tmp/replay.json' ++ replay_path = os.path.join(TESTDIR_NAME, 'replay.json') + + head, *data, footer = run_rmlint('-o json:{p}'.format( + p=replay_path +@@ -104,7 +104,7 @@ def test_replay_hidden(): + create_file('xxx', 'test/.a') + create_file('xxx', 'test/.b') + +- replay_path = '/tmp/replay.json' ++ replay_path = os.path.join(TESTDIR_NAME, 'replay.json') + + head, *data, footer = run_rmlint('--hidden -o json:{p}'.format( + p=replay_path +@@ -130,7 +130,7 @@ def test_replay_must_match_tagged(): + create_file('xxx', 'test_a/a') + create_file('xxx', 'test_b/a') + +- replay_path = '/tmp/replay.json' ++ replay_path = os.path.join(TESTDIR_NAME, 'replay.json') + + head, *data, footer = run_rmlint('-o json:{p}'.format( + p=replay_path +@@ -182,7 +182,7 @@ def test_sorting(): + (''.join(p) for p in permutations(all_opts, n_terms)) + ) + +- replay_path = '/tmp/replay.json' ++ replay_path = os.path.join(TESTDIR_NAME, 'replay.json') + + for combo in combos: + combo_str = '-y ' + combo +@@ -218,7 +218,7 @@ def test_replay_no_dir(): + + try: + os.chdir(TESTDIR_NAME) +- replay_path = '/tmp/replay.json' ++ replay_path = os.path.join(TESTDIR_NAME, 'replay.json') + head, *data, footer = run_rmlint( + '-o json:{p}'.format(p=replay_path), + use_default_dir=False, +@@ -242,7 +242,7 @@ def test_replay_unicode_fuckup(): + create_file('xxx', names[1]) + create_file('xxx', names[2]) + +- replay_path = '/tmp/replay.json' ++ replay_path = os.path.join(TESTDIR_NAME, 'replay.json') + + head, *data, footer = run_rmlint('-o json:{p}'.format(p=replay_path)) + assert len(data) == 3 +@@ -260,8 +260,8 @@ def test_replay_tagged_order(): + create_file('xxx', 'b/1') + create_file('xxx', 'b/2') + +- replay_path_a = '/tmp/replay-a.json' +- replay_path_b = '/tmp/replay-b.json' ++ replay_path_a = os.path.join(TESTDIR_NAME, 'replay-a.json') ++ replay_path_b = os.path.join(TESTDIR_NAME, 'replay-b.json') + + # Create replay-a.json + head, *data, footer = run_rmlint( +@@ -326,7 +326,7 @@ def test_replay_duplicate_directory_size(): + create_file('xxx', 'a/xxx') + create_file('xxx', 'b/xxx') + +- replay_path = '/tmp/replay.json' ++ replay_path = os.path.join(TESTDIR_NAME, 'replay.json') + head, *data, footer = run_rmlint('-o json:{p} -S a'.format(p=replay_path)) + assert len(data) == 2 + +@@ -427,7 +427,7 @@ def test_replay_pack_directories(): + create_pack_and_unpack_scenario() + + # Do a run without -D and pack it later during --replay. +- replay_path = '/tmp/replay.json' ++ replay_path = os.path.join(TESTDIR_NAME, 'replay.json') + + head, *data, footer = run_rmlint('-o json:{p} -S ahD'.format(p=replay_path)) + assert len(data) == 13 +@@ -449,7 +449,7 @@ def test_replay_unpack_directories(): + create_pack_and_unpack_scenario() + + # Do a run with -D and pack it later during --replay. +- replay_path = '/tmp/replay.json' ++ replay_path = os.path.join(TESTDIR_NAME, 'replay.json') + head, *data, footer = run_rmlint('-o json:{p} -S ahD -D'.format(p=replay_path)) + + assert len(data) == 21 +--- a/tests/test_options/test_size.py ++++ b/tests/test_options/test_size.py +@@ -90,7 +90,7 @@ def test_replay_size(): + create_file('yyy', 'b/yyy') + create_testdir('empty_dir') + +- replay_path = '/tmp/replay.json' ++ replay_path = os.path.join(TESTDIR_NAME, 'replay.json') + head, *data, footer = run_rmlint('-o json:{p}'.format( + p=replay_path + )) +--- a/tests/test_options/test_stdin.py ++++ b/tests/test_options/test_stdin.py +@@ -69,7 +69,6 @@ def test_path_starting_with_dash(): + os.chdir(TESTDIR_NAME) + data = check_output( + [cwd + '/rmlint', '-o', 'json', '-S', 'a', '--', subdir], +- stderr=STDOUT + ) + finally: + os.chdir(cwd) +--- a/tests/utils.py ++++ b/tests/utils.py +@@ -133,7 +133,7 @@ def run_rmlint_once(*args, + + cmd += shlex.split(' '.join(args)) + if with_json: +- cmd += ['-o', 'json:/tmp/out.json', '-c', 'json:oneline'] ++ cmd += ['-o', 'json:' + os.path.join(TESTDIR_NAME, 'out.json'), '-c', 'json:oneline'] + + for idx, output in enumerate(outputs or []): + cmd.append('-o') +@@ -168,7 +168,7 @@ def run_rmlint_once(*args, + return output + + if with_json: +- with open('/tmp/out.json', 'r') as f: ++ with open(os.path.join(TESTDIR_NAME, 'out.json'), 'r') as f: + json_data = json.loads(f.read()) + else: + json_data = [] diff --git a/app-misc/rmlint/files/rmlint-2.10.1-scons.patch b/app-misc/rmlint/files/rmlint-2.10.1-scons.patch new file mode 100644 index 000000000000..a60aafe1fa67 --- /dev/null +++ b/app-misc/rmlint/files/rmlint-2.10.1-scons.patch @@ -0,0 +1,93 @@ +--- a/SConstruct ++++ b/SConstruct +@@ -515,7 +515,7 @@ AddOption( + action='store', metavar='DIR', help='libdir name (lib or lib64)' + ) + +-for suffix in ['libelf', 'gettext', 'fiemap', 'blkid', 'json-glib', 'gui']: ++for suffix in ['libelf', 'gettext', 'fiemap', 'blkid', 'json-glib', 'gui', 'docs']: + AddOption( + '--without-' + suffix, action='store_const', default=False, const=False, + dest='with_' + suffix +@@ -804,7 +804,8 @@ env.Default(library) + + SConscript('tests/SConscript', exports='programs') + SConscript('po/SConscript') +-SConscript('docs/SConscript') ++if GetOption("with_docs"): ++ SConscript('docs/SConscript') + SConscript('gui/SConscript') + + +@@ -883,7 +884,6 @@ if 'config' in COMMAND_LINE_TARGETS: + Find non-stripped binaries (needs libelf) : {libelf} + Optimize using ioctl(FS_IOC_FIEMAP) (needs linux) : {fiemap} + Support for SHA512 (needs glib >= 2.31) : {sha512} +- Build manpage from docs/rmlint.1.rst : {sphinx} + Support for caching checksums in file's xattr : {xattr} + Support for reading json caches (needs json-glib) : {json_glib} + Checking for proper support of big files >= 4GB : {bigfiles} +@@ -898,6 +898,9 @@ if 'config' in COMMAND_LINE_TARGETS: + (needs for compile side support) : {locale} + (needs msgfmt to compile .po files) : {msgfmt} + ++ Enable GUI : {gui} ++ Build docs : {docs} ++ + {grey}The following constants will be used during the build:{end} + + Version information : {version} +@@ -925,6 +928,8 @@ Type 'scons' to actually compile rmlint now. Good luck. + bigfiles=yesno(env['HAVE_BIGFILES']), + bigofft=yesno(env['HAVE_BIG_OFF_T']), + bigstat=yesno(env['HAVE_BIG_STAT']), ++ gui=yesno(GetOption("with_gui")), ++ docs=yesno(GetOption("with_docs")), + sphinx=COLORS['green'] + 'yes, using ' + COLORS['end'] + sphinx_bin if sphinx_bin else yesno(sphinx_bin), + compiler=env['CC'], + prefix=GetOption('prefix'), +--- a/gui/setup.py ++++ b/gui/setup.py +@@ -37,7 +37,7 @@ def get_prefix(): + PREFIX = get_prefix() + + +-class PrePlusPostInstall(install): ++class PreInstall(install): + def run(self): + # Compile the resource bundle freshly + print('==> Compiling resource bundle') +@@ -59,24 +59,6 @@ class PrePlusPostInstall(install): + # Run the usual distutils install routine: + install.run(self) + +- # Make sure the schema file is updated. +- # Otherwise the gui will trace trap. +- print('==> Compiling GLib Schema files') +- +- try: +- subprocess.call([ +- 'glib-compile-schemas', +- os.path.join(PREFIX, 'share/glib-2.0/schemas') +- ]) +- except subprocess.CalledProcessError as err: +- print('==> Could not update schemas: ', err) +- print('==> Please run the following manually:\n') +- print(' sudo glib-compile-schemas {prefix}'.format( +- prefix=os.path.join(PREFIX, 'share/glib-2.0/schemas') +- )) +- else: +- print('==> OK!') +- + + setup( + name='Shredder', +@@ -88,7 +70,7 @@ setup( + url='https://rmlint.rtfd.org', + license='GPLv3', + platforms='any', +- cmdclass={'install': PrePlusPostInstall}, ++ cmdclass={'install': PreInstall}, + packages=['shredder', 'shredder.views'], + package_data={'': [ + 'resources/*.gresource' diff --git a/app-misc/rmlint/files/rmlint-2.10.1-skip-tests.patch b/app-misc/rmlint/files/rmlint-2.10.1-skip-tests.patch new file mode 100644 index 000000000000..f5f81fd6d0a0 --- /dev/null +++ b/app-misc/rmlint/files/rmlint-2.10.1-skip-tests.patch @@ -0,0 +1,35 @@ +commit 566198730352f2353fd8332794409d7c9edf80e2 +Author: Louis Sautier +Date: Wed Sep 8 00:53:28 2021 +0200 + + tests: skip man and python2 + + Those tests fail respectively when the documentation isn't built and when + python2 isn't available (probably specific to Gentoo). + +diff --git a/tests/test_formatters/test_py.py b/tests/test_formatters/test_py.py +index 92b17604..28d2dd42 100644 +--- a/tests/test_formatters/test_py.py ++++ b/tests/test_formatters/test_py.py +@@ -16,7 +16,7 @@ def _check_interpreter(interpreter): + return False + + +-@parameterized(["python2", "python3"]) ++@parameterized(["python3"]) + @with_setup(usual_setup_func, usual_teardown_func) + def test_paranoia(interpreter): + if not _check_interpreter(interpreter): +diff --git a/tests/test_options/test_help.py b/tests/test_options/test_help.py +index d934724a..60bc40a0 100644 +--- a/tests/test_options/test_help.py ++++ b/tests/test_options/test_help.py +@@ -17,7 +17,7 @@ def test_help(): + + + @with_setup(usual_setup_func, usual_teardown_func) +-def test_man(): ++def _test_man(): + yelp = subprocess.check_output( + ['./rmlint', '--show-man'], stderr=subprocess.STDOUT + ).decode('utf-8') diff --git a/app-misc/rmlint/files/rmlint-2.10.1-x86-fix-size.patch b/app-misc/rmlint/files/rmlint-2.10.1-x86-fix-size.patch new file mode 100644 index 000000000000..b67c13f527ee --- /dev/null +++ b/app-misc/rmlint/files/rmlint-2.10.1-x86-fix-size.patch @@ -0,0 +1,30 @@ +commit 87c53a5cb0ec37412cf9fe748dc90dddc6812733 +Author: Louis Sautier +Date: Wed Sep 8 19:39:07 2021 +0200 + + Fix max sizes on x86, closes #522 + + strtoull returns ULLONG_MAX, not ULONG_MAX. + +diff --git a/lib/cmdline.c b/lib/cmdline.c +index 56141d94..36f48c1b 100644 +--- a/lib/cmdline.c ++++ b/lib/cmdline.c +@@ -351,7 +351,7 @@ static RmOff rm_cmd_size_string_to_bytes(const char *size_spec, GError **error) + return 0; + } + +- if(fraction_num == ULONG_MAX && errno == ERANGE) { ++ if(fraction_num == ULLONG_MAX && errno == ERANGE) { + g_set_error(error, RM_ERROR_QUARK, 0, _("Fraction is too big for uint64")); + return 0; + } +@@ -371,7 +371,7 @@ static RmOff rm_cmd_size_string_to_bytes(const char *size_spec, GError **error) + return 0; + } + +- if(base_size == ULONG_MAX && errno == ERANGE) { ++ if(base_size == ULLONG_MAX && errno == ERANGE) { + g_set_error(error, RM_ERROR_QUARK, 0, _("Size is too big for uint64")); + return 0; + } diff --git a/app-misc/rmlint/metadata.xml b/app-misc/rmlint/metadata.xml new file mode 100644 index 000000000000..045b589e3cb0 --- /dev/null +++ b/app-misc/rmlint/metadata.xml @@ -0,0 +1,12 @@ + + + + + sbraz@gentoo.org + Louis Sautier + + + sahib/rmlint + https://github.com/sahib/rmlint/issues + + diff --git a/app-misc/rmlint/rmlint-2.10.1.ebuild b/app-misc/rmlint/rmlint-2.10.1.ebuild new file mode 100644 index 000000000000..aaa9a53dd04d --- /dev/null +++ b/app-misc/rmlint/rmlint-2.10.1.ebuild @@ -0,0 +1,137 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..9} ) + +inherit gnome2-utils python-single-r1 scons-utils toolchain-funcs xdg-utils + +DESCRIPTION="Extremely fast tool to remove duplicates and other lint from your filesystem" +HOMEPAGE="https://rmlint.readthedocs.io/" +SRC_URI="https://github.com/sahib/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc gui nls test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +DEPEND=" + dev-libs/glib:2 + dev-libs/json-glib + virtual/libelf:0= +" +RDEPEND=" + ${DEPEND} + gui? ( + ${PYTHON_DEPS} + x11-libs/gtksourceview:3.0 + $(python_gen_cond_dep ' + dev-python/colorlog[${PYTHON_MULTI_USEDEP}] + dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}] + ') + ) +" +BDEPEND=" + virtual/pkgconfig + doc? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/sphinx[${PYTHON_MULTI_USEDEP}] + dev-python/sphinx-bootstrap-theme[${PYTHON_MULTI_USEDEP}] + ') + ) + nls? ( sys-devel/gettext ) + test? ( + ${PYTHON_DEPS} + app-shells/dash + $(python_gen_cond_dep ' + dev-python/nose[${PYTHON_MULTI_USEDEP}] + dev-python/parameterized[${PYTHON_MULTI_USEDEP}] + dev-python/psutil[${PYTHON_MULTI_USEDEP}] + dev-python/pyxattr[${PYTHON_MULTI_USEDEP}] + ') + ) +" + +DOCS=(CHANGELOG.md README.rst) +PATCHES=( + # The build system tries to override several CFLAGS + "${FILESDIR}/${PN}-2.10.1-cflags.patch" + # https://github.com/sahib/rmlint/pull/520 + "${FILESDIR}/${PN}-2.10.1-scons.patch" + # https://github.com/sahib/rmlint/pull/521 + "${FILESDIR}/${PN}-2.10.1-fix-tests.patch" + # Skip problematic tests + "${FILESDIR}/${PN}-2.10.1-skip-tests.patch" + # https://github.com/sahib/rmlint/pull/523 + "${FILESDIR}/${PN}-2.10.1-x86-fix-size.patch" + # https://github.com/sahib/rmlint/pull/526 + "${FILESDIR}/${PN}-2.10.1-fix-cc.patch" +) + +src_prepare() { + default + if use test && use x86; then + # Skip part of a test until this is fixed: + # https://github.com/sahib/rmlint/issues/522 + sed -i '/--size 0-18446744073709551615\.1/d' \ + tests/test_options/test_size.py || die + fi +} + +src_configure() { + # Needed for USE=-native-symlinks + tc-export AR CC + scons_opts=( + VERBOSE=1 + $(use_with doc docs) + $(use_with gui) + $(use_with nls gettext) + ) + escons "${scons_opts[@]}" config +} + +src_compile() { + escons "${scons_opts[@]}" +} + +src_test() { + RM_TS_DIR="${T}/tests" nosetests -s -v -a '!slow' || \ + die "Tests failed" +} + +src_install() { + escons "${scons_opts[@]}" --prefix="${ED}/usr" --actual-prefix="${EPREFIX}/usr" install + + # https://github.com/sahib/rmlint/pull/525 + if use doc; then + gzip -d "${ED}/usr/share/man/man1/rmlint.1.gz" || die + fi + if use gui; then + python_optimize + fi + einstalldocs +} + +pkg_preinst() { + if use gui; then + gnome2_schemas_savelist + fi +} + +pkg_postinst() { + if use gui; then + gnome2_schemas_update + xdg_icon_cache_update + fi +} + +pkg_postrm() { + if use gui; then + gnome2_schemas_update + xdg_icon_cache_update + fi +} -- cgit v1.2.3