Hello community, here is the log from the commit of package fortune for openSUSE:Factory checked in at 2019-06-20 18:56:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fortune (Old) and /work/SRC/openSUSE:Factory/.fortune.new.4811 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fortune" Thu Jun 20 18:56:40 2019 rev:25 rq:711053 version:2.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/fortune/fortune.changes 2019-06-19 20:58:14.769972800 +0200 +++ /work/SRC/openSUSE:Factory/.fortune.new.4811/fortune.changes 2019-06-20 18:56:40.904951151 +0200 @@ -1,0 +2,8 @@ +Thu Jun 20 09:52:41 UTC 2019 - Marketa Calabkova <[email protected]> + +- Update to version 2.8.0 + * Add some quotes by amigojapan. + * Some improvements for spelling, punctuation and grammar. + * Extract a common C header. + +------------------------------------------------------------------- Old: ---- fortune-mod-2.6.2.tar.gz New: ---- fortune-mod-2.8.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fortune.spec ++++++ --- /var/tmp/diff_new_pack.VAb4dF/_old 2019-06-20 18:56:41.760952325 +0200 +++ /var/tmp/diff_new_pack.VAb4dF/_new 2019-06-20 18:56:41.760952325 +0200 @@ -19,14 +19,14 @@ %define CookieDir share/fortune Name: fortune -Version: 2.6.2 +Version: 2.8.0 Release: 0 Summary: Random Saying -# fortune is alive! License: BSD-3-Clause Group: Amusements/Toys/Other URL: ftp://sunsite.unc.edu/pub/Linux/games/amusements/fortune/ Source: https://github.com/shlomif/fortune-mod/archive/fortune-mod-%{version}.tar.gz +# This patch is not needed anymore, because recode is maintained again. If it was naughty, drop it and BuildRequire recode-devel instead. Patch0: fortune-no-recode.patch Patch1: fortune-no-games.patch BuildRequires: cmake >= 3 ++++++ fortune-mod-2.6.2.tar.gz -> fortune-mod-2.8.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/.appveyor.yml new/fortune-mod-fortune-mod-2.8.0/.appveyor.yml --- old/fortune-mod-fortune-mod-2.6.2/.appveyor.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/.appveyor.yml 2019-06-07 20:18:06.000000000 +0200 @@ -0,0 +1,23 @@ +--- +# Shamelessly taken from https://github.com/plicease/Dist-Zilla-PluginBundle-Author-Plicease/blob/master/.appveyor.yml +# Thanks! +install: + - choco install strawberryperl + - SET PATH=C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;%PATH% + - perl -v + - if not exist C:\Perl5 mkdir C:\Perl5 + - SET PATH=C:\msys64\bin;C:\Perl5\bin;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;%PATH% + - SET PERL5LIB=C:/Perl5/lib/perl5 + - SET PERL_LOCAL_LIB_ROOT=C:/Perl5 + - SET PERL_MB_OPT=--install_base C:/Perl5 + - SET PERL_MM_OPT=INSTALL_BASE=C:/Perl5 + - cpanm --notest Dir::Manifest Dist::Zilla Env::Path Games::Solitaire::Verify::Solution IO::All Inline Inline::C Perl::Tidy Pod::Coverage::TrustPod Pod::Weaver::Section::Support String::ShellQuote Test::Code::TidyAll Test::CPAN::Changes Test::Differences Test::EOL Test::Kwalitee Test::NoTabs Test::Pod Test::Pod::Coverage Test::RunValgrind Test::TrailingSpace Test::Trap +build: off +test_script: + - set CMAKE_MAKE_PROGRAM=C:\strawberry\c\bin\gmake.exe + # Removing for now because it is too much trouble on windows. + # - set FCS_TEST_BUILD=1 + - perl CI-testing/continuous-integration-testing.pl --gen="MSYS Makefiles" +# cache: +# - C:\Perl5 +shallow_clone: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/.travis.yml new/fortune-mod-fortune-mod-2.8.0/.travis.yml --- old/fortune-mod-fortune-mod-2.6.2/.travis.yml 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/.travis.yml 2019-06-07 20:18:06.000000000 +0200 @@ -1,9 +1,24 @@ +addons: + apt: + packages: + - cmake + - cpanminus + - gcc + - libperl-dev + - librecode-dev + - perl + - make + - valgrind os: linux dist: xenial before_install: - - sudo apt-get update -qq - - sudo apt-get --no-install-recommends install -y cmake cpanminus gcc libperl-dev librecode-dev perl make valgrind - - sudo cpanm File::Find::Object IO::All List::Util Test::Differences Test::RunValgrind + - cpanm local::lib + - eval "$(perl -Mlocal::lib=$HOME/perl_modules)" + - cpanm Code::TidyAll::Plugin::Flake8 Code::TidyAll::Plugin::TestCount File::Find::Object List::Util Path::Tiny Perl::Critic Perl::Tidy Test::Code::TidyAll Test::Differences Test::RunValgrind +install: [] +language: perl script: + - "export FORTUNE_TEST_TIDY=1" - "mkdir B && cd B && cmake ../fortune-mod && make && make check && cd .." - "rm -fr B" +sudo: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/CI-testing/continuous-integration-testing.pl new/fortune-mod-fortune-mod-2.8.0/CI-testing/continuous-integration-testing.pl --- old/fortune-mod-fortune-mod-2.6.2/CI-testing/continuous-integration-testing.pl 1970-01-01 01:00:00.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/CI-testing/continuous-integration-testing.pl 2019-06-07 20:18:06.000000000 +0200 @@ -0,0 +1,45 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use autodie; + +use Getopt::Long qw/GetOptions/; + +sub do_system +{ + my ($args) = @_; + + my $cmd = $args->{cmd}; + print "Running [@$cmd]"; + if ( system(@$cmd) ) + { + die "Running [@$cmd] failed!"; + } +} + +my $IS_WIN = ( $^O eq "MSWin32" ); +my $SEP = $IS_WIN ? "\\" : '/'; +my $MAKE = $IS_WIN ? 'gmake' : 'make'; + +my $cmake_gen; +GetOptions( 'gen=s' => \$cmake_gen, ) + or die 'Wrong options'; + +local $ENV{RUN_TESTS_VERBOSE} = 1; +if ( defined $cmake_gen ) +{ + $ENV{CMAKE_GEN} = $cmake_gen; +} +mkdir('B'); +chdir('B'); +do_system( + { + cmd => [ + $^X, "..${SEP}scripts${SEP}Tatzer", + ( defined($cmake_gen) ? (qq#--gen="$cmake_gen"#) : () ) + ] + } +); +do_system( { cmd => [$MAKE] } ); +do_system( { cmd => [ $^X, "..${SEP}fortune-mod${SEP}run-tests.pl", ] } ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/.tidyallrc new/fortune-mod-fortune-mod-2.8.0/fortune-mod/.tidyallrc --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/.tidyallrc 1970-01-01 01:00:00.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/.tidyallrc 2019-06-07 20:18:06.000000000 +0200 @@ -0,0 +1,12 @@ +[PerlTidy] +select = **/*.{pl,pm,t} +argv = -ci=4 -bl -cti=0 +ignore = + +[PerlCritic] +select = **/*.{pl,pm,t} +ignore = + +[TestCount] +select = **/*.t +ignore = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/CMakeLists.txt new/fortune-mod-fortune-mod-2.8.0/fortune-mod/CMakeLists.txt --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/CMakeLists.txt 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/CMakeLists.txt 2019-06-07 20:18:06.000000000 +0200 @@ -122,6 +122,8 @@ "sbin" ) +# Build but not install. +ADD_EXECUTABLE("randstr" "util/randstr.c") my_exe( "unstr" "util/unstr.c" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/ChangeLog new/fortune-mod-fortune-mod-2.8.0/fortune-mod/ChangeLog --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/ChangeLog 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/ChangeLog 2019-06-07 20:18:06.000000000 +0200 @@ -1,6 +1,16 @@ (Note: this file has been re-arranged to be in reverse chronological order, which is The Right Thing for ChangeLogs - DLC) +June 07, 2019 (fortune-mod 2.8.0) + + Add some quotes by amigojapan. + + Some improvements for spelling, punctuation and grammar. + + Extract a common C header. + + Add TidyAll tests. + December 19, 2018 (fortune-mod 2.6.2) Fix the cmake files installation paths. See diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/computers new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/computers --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/computers 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/computers 2019-06-07 20:18:06.000000000 +0200 @@ -2296,7 +2296,7 @@ % IOT trap -- core dumped % -Is a computer language with goto's totally Wirth-less? +Is a computer language with gotos totally Wirth-less? % Is it possible that software is not like anything else, that it is meant to be discarded: that the whole point is to always see it as a soap bubble? @@ -4925,7 +4925,7 @@ Bowman hesitates. "You aren't IBM compatible." [...] "The letters H, A, and L are alphabetically adjacent to the letters -I, B, and M. That is a sIBM compatible as I can be." +I, B, and M. That is as IBM compatible as I can be." "Not quite, HAL. The engineers have figured out a kludge." "What kludge is that, Dave?" "I'm going to disconnect your brain." @@ -5049,7 +5049,7 @@ Whenever a system becomes completely defined, some damn fool discovers something which either abolishes the system or expands it beyond recognition. % -Where a calculator on the ENIAC is equpped with 18,000 vacuum tubes and +Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vaccuum tubes and perhaps weigh 1 1/2 tons. -- Popular Mechanics, March 1949 @@ -5534,6 +5534,7 @@ % I would trade all of my technology for an afternoon with Socrates. -- Steve Jobs (1955-2011) +% That's been one of my mantras - focus and simplicity. Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it's worth it in the end because once you get there, you can move @@ -5600,3 +5601,8 @@ -- Michael Rotolo ( https://is.gd/mSTRrv ) % +I often hear: "It is better in [insert newest version of Windows]." +I have grown distrustful of this claim. + -- amigojapan + ( https://thewml.github.io/amigojapan-site/Self_quotes.html ) +% diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/cookie new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/cookie --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/cookie 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/cookie 2019-06-07 20:18:06.000000000 +0200 @@ -5650,10 +5650,6 @@ "It's when they say 2 + 2 = 5 that I begin to argue." -- Eric Pepke % -Comparing information and knowledge is like asking whether the fatness of a -pig is more or less green than the designated hitter rule." - -- David Guaspari -% "None of our men are "experts." We have most unfortunately found it necessary to get rid of a man as soon as he thinks himself an expert -- because no one ever considers himself expert if he really knows his job. A man who knows a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/education new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/education --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/education 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/education 2019-06-07 20:18:06.000000000 +0200 @@ -187,7 +187,7 @@ -- M. M. Johnston % Comparing information and knowledge is like asking whether the fatness -of a pig is more or less green than the designated hitter rule." +of a pig is more or less green than the designated hitter rule. -- David Guaspari % Dear Freshman, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/love new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/love --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/love 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/love 2019-06-07 20:18:06.000000000 +0200 @@ -294,7 +294,7 @@ -- Ryan O'Neill, "What's Up Doc?" % Love tells us many things that are not so. - -- Krainian Proverb + -- Ukrainian Proverb % May your SO always know when you need a hug. % @@ -553,7 +553,7 @@ -- There's a disturbance in the Force. -- I'm doing door-to-door collecting for static cling. -- I'm teaching my ferret to yodel. - -- My crayons all melted together. + -- My crayons all melted together. % "Why must you tell me all your secrets when it's hard enough to love you knowing nothing?" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/miscellaneous new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/miscellaneous --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/miscellaneous 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/miscellaneous 2019-06-07 20:18:06.000000000 +0200 @@ -258,8 +258,8 @@ % Dr. Jekyll had something to Hyde. % -Dr. Livingston? -Dr. Livingston I. Presume? +Dr. Livingstone? +Dr. Livingstone I. Presume? % Drawing on my fine command of language, I said nothing. % diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/riddles new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/riddles --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/riddles 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/riddles 2019-06-07 20:18:06.000000000 +0200 @@ -11,7 +11,7 @@ Q: What is the square root of 4b^2? % FORTUNE PROVIDES QUESTIONS FOR THE GREAT ANSWERS: #21 -A: Dr. Livingston I. Presume. +A: Dr. Livingstone I. Presume. Q: What's Dr. Presume's full name? % FORTUNE PROVIDES QUESTIONS FOR THE GREAT ANSWERS: #31 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/science new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/science --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/science 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/science 2019-06-07 20:18:06.000000000 +0200 @@ -2677,7 +2677,7 @@ Two is not equal to three, even for large values of two. % Two men are in a hot-air balloon. Soon, they find themselves lost in a -canyon somewhere. One of the three men says, "I've got an idea. We can +canyon somewhere. One of the two men says, "I've got an idea. We can call for help in this canyon and the echo will carry our voices to the end of the canyon. Someone's bound to hear us by then!" So he leans over the basket and screams out, "Helllloooooo! Where diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/wisdom new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/wisdom --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/datfiles/wisdom 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/datfiles/wisdom 2019-06-07 20:18:06.000000000 +0200 @@ -358,6 +358,10 @@ Even the best of friends cannot attend each other's funeral. -- Kehlog Albran, "The Profit" % +Even the most irrational people usually think they are logical thinkers. + -- amigojapan + ( https://thewml.github.io/amigojapan-site/Self_quotes.html ) +% Every man who has reached even his intellectual teens begins to suspect that life is no farce; that it is not genteel comedy even; that it flowers and fructifies on the contrary out of the profoundest tragic depths of the @@ -1363,6 +1367,10 @@ We can embody the truth, but we cannot know it. -- Yates % +We have no choice but to live our lives as if we had free will. + -- amigojapan + ( https://thewml.github.io/amigojapan-site/Self_quotes.html ) +% We have nowhere else to go... this is all we have. -- Margaret Mead % diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/fortune/fortune.c new/fortune-mod-fortune-mod-2.8.0/fortune-mod/fortune/fortune.c --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/fortune/fortune.c 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/fortune/fortune.c 2019-06-07 20:18:06.000000000 +0200 @@ -98,23 +98,10 @@ #define PROGRAM_NAME "fortune-mod" -#include <stdbool.h> - -#include <sys/types.h> -#include <sys/time.h> -#include <sys/param.h> -#include <sys/stat.h> -#include <netinet/in.h> - -#include <time.h> +#include "fortune-mod-common.h" #include <dirent.h> #include <fcntl.h> #include <assert.h> -#include <unistd.h> -#include <stdio.h> -#include <ctype.h> -#include <stdlib.h> -#include <string.h> #include <errno.h> #include <locale.h> #include <langinfo.h> @@ -132,7 +119,6 @@ #endif #include "config.h" -#include "strfile.h" #define TRUE 1 #define FALSE 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/fortune/gen-fortune-man-page.pl new/fortune-mod-fortune-mod-2.8.0/fortune-mod/fortune/gen-fortune-man-page.pl --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/fortune/gen-fortune-man-page.pl 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/fortune/gen-fortune-man-page.pl 2019-06-07 20:18:06.000000000 +0200 @@ -11,25 +11,25 @@ my $ocookiedir; my $no_offensive = 0; GetOptions( - '--cookiedir=s' => \$cookiedir, - '--ocookiedir=s' => \$ocookiedir, + '--cookiedir=s' => \$cookiedir, + '--ocookiedir=s' => \$ocookiedir, '--without-offensive!' => \$no_offensive, - '--output=s' => \$output_fn, + '--output=s' => \$output_fn, ) or die "Wrong options - $!"; -if (!defined($output_fn)) +if ( !defined($output_fn) ) { die "Please specify --output"; } -if (!defined($cookiedir)) +if ( !defined($cookiedir) ) { die "Please specify cookiedir"; } -my $OFF = (!$no_offensive); +my $OFF = ( !$no_offensive ); -if ($OFF and !defined($ocookiedir)) +if ( $OFF and !defined($ocookiedir) ) { die "Please specify ocookiedir"; } @@ -98,9 +98,12 @@ is run with no arguments it prints out a random epigram. Epigrams are END_OF_STRING -$out->print($OFF ? "divided into several categories, where each category is sub\\-divided +$out->print( + $OFF + ? "divided into several categories, where each category is sub\\-divided into those which are potentially offensive and those which are not." -: "divided into several categories."); + : "divided into several categories." +); $out->print(<<'END_OF_STRING'); .SS Options @@ -109,7 +112,9 @@ .B -a END_OF_STRING -$out->print($OFF ? <<'EOF' +$out->print( + $OFF + ? <<'EOF' Choose from all lists of maxims, both offensive and not. (See the .B -o option for more information on offensive fortunes.) @@ -363,7 +368,9 @@ files, some organized by format (poetry, definitions), and some by END_OF_STRING -$out->print($OFF ? <<'EOF' +$out->print( + $OFF + ? <<'EOF' content (religion, politics). There are parallel files in the main directory and in the offensive files directory (e.g., fortunes/definitions and fortunes/off/definitions). Not all the potentially offensive fortunes are in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/run-tests.pl new/fortune-mod-fortune-mod-2.8.0/fortune-mod/run-tests.pl --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/run-tests.pl 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/run-tests.pl 2019-06-07 20:18:06.000000000 +0200 @@ -13,7 +13,7 @@ 'src-dir=s' => \$src_dir, ) or die "could not parse options - $!"; -if (!defined $src_dir) +if ( !defined $src_dir ) { die "--src-dir was not defined"; } @@ -36,7 +36,7 @@ # Cancelling because it's now part of the prove-based tests. if (0) { - do_system({cmd => [$^X , "$src_dir/tests/trailing-space-and-CRs.pl"]}); + do_system( { cmd => [ $^X, "$src_dir/tests/trailing-space-and-CRs.pl" ] } ); } -do_system({cmd => ['prove', glob("$src_dir/tests/t/*.t")]}); +do_system( { cmd => [ 'prove', glob("$src_dir/tests/t/*.t") ] } ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/tests/t/check-cookies.t new/fortune-mod-fortune-mod-2.8.0/fortune-mod/tests/t/check-cookies.t --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/tests/t/check-cookies.t 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/tests/t/check-cookies.t 2019-06-07 20:18:06.000000000 +0200 @@ -3,7 +3,7 @@ use strict; use warnings; -use IO::All qw/ io /; +use Path::Tiny qw/ path /; use List::Util qw/ any /; use Test::More tests => 1; @@ -11,21 +11,22 @@ sub check_file { my ($fn) = @_; - my @l = io->file($fn)->utf8->chomp->getlines; + my @l = path($fn)->lines_utf8; + chomp @l; - if ($l[-1] ne '%') + if ( $l[-1] ne '%' ) { - return "Fortune cookie file does not end in a single %"; + return "Fortune cookie file does not end in a single %"; } - if (any { length($_) > 80 } @l) + if ( any { length($_) > 80 } @l ) { return "Fortune cookie file contains a line longer than 78 characters"; } - if (any { /\r/ } @l) + if ( any { /\r/ } @l ) { - return "Fortune cookie file contains a CR" + return "Fortune cookie file contains a CR"; } - if (any { /[ \t]\z/ } @l) + if ( any { /[ \t]\z/ } @l ) { return "Fortune cookie file contains trailing whitespace"; } @@ -34,10 +35,10 @@ sub mytest { - foreach my $cookie (split/ /, $ENV{COOKIES}) + foreach my $cookie ( split / /, $ENV{COOKIES} ) { - my $err = check_file( "$ENV{SRC_DIR}/datfiles/$cookie"); - if ($err ne '') + my $err = check_file("$ENV{SRC_DIR}/datfiles/$cookie"); + if ( $err ne '' ) { fail("$cookie failed - $err."); return; @@ -46,5 +47,5 @@ pass("All are ok."); } +# TEST mytest(); - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/tests/t/test-fortune-m.t new/fortune-mod-fortune-mod-2.8.0/fortune-mod/tests/t/test-fortune-m.t --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/tests/t/test-fortune-m.t 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/tests/t/test-fortune-m.t 2019-06-07 20:18:06.000000000 +0200 @@ -7,6 +7,7 @@ use Cwd qw/getcwd/; use Test::More tests => 1; + sub do_system { my ($args) = @_; @@ -20,19 +21,24 @@ } { - my $cwd = getcwd(); + my $cwd = getcwd(); my $build_dir = "$cwd/fortune-m-build-dir"; - my $inst_dir = "$cwd/fortune-m-INST_DIR"; - rmtree($build_dir, 0, 0); - rmtree($inst_dir, 0, 0); - mkpath ($build_dir); + my $inst_dir = "$cwd/fortune-m-INST_DIR"; + rmtree( $build_dir, 0, 0 ); + rmtree( $inst_dir, 0, 0 ); + mkpath($build_dir); chdir $build_dir; - do_system({cmd => ['cmake', "-DCMAKE_INSTALL_PREFIX=$inst_dir", $ENV{SRC_DIR}]}); - do_system({cmd => ['make']}); - do_system({cmd => ['make', 'install',]}); + do_system( + { + cmd => + [ 'cmake', "-DCMAKE_INSTALL_PREFIX=$inst_dir", $ENV{SRC_DIR} ] + } + ); + do_system( { cmd => ['make'] } ); + do_system( { cmd => [ 'make', 'install', ] } ); my $text = `'$inst_dir/games/fortune' -m giants`; # TEST - like ($text, qr/Newton/, 'fortune -m matched'); + like( $text, qr/Newton/, 'fortune -m matched' ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/tests/t/tidyall.t new/fortune-mod-fortune-mod-2.8.0/fortune-mod/tests/t/tidyall.t --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/tests/t/tidyall.t 1970-01-01 01:00:00.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/tests/t/tidyall.t 2019-06-07 20:18:06.000000000 +0200 @@ -0,0 +1,38 @@ +package main; + +use strict; +use warnings; + +use Test::More; +my $SKIP_KEY = 'FORTUNE_TEST_TIDY'; +if ( !$ENV{$SKIP_KEY} ) +{ + plan skip_all => "Skipping because $SKIP_KEY is not set"; +} + +package MyCacheModel; + +require Moo; +Moo->import; + +extends('Code::TidyAll::CacheModel'); + +my $DUMMY_LAST_MOD = 0; + +sub _build_cache_value +{ + my ($self) = @_; + + return $self->_sig( + [ $self->base_sig, $DUMMY_LAST_MOD, $self->file_contents ] ); +} + +package main; +require Test::Code::TidyAll; + +my $KEY = 'TIDYALL_DATA_DIR'; +Test::Code::TidyAll::tidyall_ok( + conf_file => "$ENV{SRC_DIR}/.tidyallrc", + cache_model_class => 'MyCacheModel', + ( exists( $ENV{$KEY} ) ? ( data_dir => $ENV{$KEY} ) : () ) +); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/tests/t/trailing-space-and-CRs.t new/fortune-mod-fortune-mod-2.8.0/fortune-mod/tests/t/trailing-space-and-CRs.t --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/tests/t/trailing-space-and-CRs.t 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/tests/t/trailing-space-and-CRs.t 2019-06-07 20:18:06.000000000 +0200 @@ -4,53 +4,48 @@ use warnings; use File::Find::Object (); -use IO::All qw/ io /; +use Path::Tiny qw/ path /; use Test::More tests => 3; use Test::Differences (qw( eq_or_diff )); +my $tree = File::Find::Object->new( {}, $ENV{SRC_DIR} ); -my $tree = File::Find::Object->new({}, $ENV{SRC_DIR}); - -my %do_not_check = -( +my %do_not_check = ( map { $_ => 1 } - qw( - fortune/fortune - util/rot - util/strfile - util/unstr - ) + qw( + fortune/fortune + util/rot + util/strfile + util/unstr + ) ); my @cr_results; my @trailing_whitespace_results; my @tabs_results; -while (my $r = $tree->next_obj()) +while ( my $r = $tree->next_obj() ) { - if ($r->is_file) + if ( $r->is_file ) { my $fn = $r->path; - if (not - ( - $r->basename =~ /\A\..*?\.swp\z/ - or - $r->basename =~ /\.(o|dat|valgrind-log)\z/ - or - exists($do_not_check{join '/', @{$r->full_components}}) + if ( + not( $r->basename =~ /\A\..*?\.swp\z/ + or $r->basename =~ /\.(o|dat|valgrind-log)\z/ + or + exists( $do_not_check{ join '/', @{ $r->full_components } } ) ) ) - ) { - my $contents = io->file($fn)->binmode->all; + my $contents = path($fn)->slurp_raw; - if ($contents =~ /\r/) + if ( $contents =~ /\r/ ) { push @cr_results, $fn; } - elsif ($contents =~ /[ \t]$/ms) + elsif ( $contents =~ /[ \t]$/ms ) { push @trailing_whitespace_results, $fn; } - elsif ($r->basename =~ /\.[ch]\z/ and $contents =~ /\t/) + elsif ( $r->basename =~ /\.[ch]\z/ and $contents =~ /\t/ ) { push @tabs_results, $fn; } @@ -59,11 +54,14 @@ } # TEST -eq_or_diff(\@cr_results, [], "Files containing carriage returns."); +eq_or_diff( \@cr_results, [], "Files containing carriage returns." ); + # TEST -eq_or_diff(\@trailing_whitespace_results, [], "Files containing trailing whitespace."); +eq_or_diff( \@trailing_whitespace_results, + [], "Files containing trailing whitespace." ); + # TEST -eq_or_diff(\@tabs_results, [], "Source files containing tabs."); +eq_or_diff( \@tabs_results, [], "Source files containing tabs." ); __END__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/tests/t/valgrind.t new/fortune-mod-fortune-mod-2.8.0/fortune-mod/tests/t/valgrind.t --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/tests/t/valgrind.t 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/tests/t/valgrind.t 2019-06-07 20:18:06.000000000 +0200 @@ -9,15 +9,15 @@ # plan skip_all => 'lib-recode has memory leaks'; plan tests => 4; -my $obj = Test::RunValgrind->new({}); +my $obj = Test::RunValgrind->new( {} ); # TEST $obj->run( { log_fn => './fortune--1.valgrind-log', - prog => './fortune', - argv => [qw//], - blurb => 'fortune valgrind test', + prog => './fortune', + argv => [qw//], + blurb => 'fortune valgrind test', } ); @@ -25,9 +25,9 @@ $obj->run( { log_fn => './fortune--2-dash-f.valgrind-log', - prog => './fortune', - argv => [qw/-f/], - blurb => 'fortune -f valgrind test', + prog => './fortune', + argv => [qw/-f/], + blurb => 'fortune -f valgrind test', } ); @@ -35,9 +35,9 @@ $obj->run( { log_fn => './fortune--3-dash-m.valgrind-log', - prog => './fortune', - argv => [qw/-m foobarbazINGAMINGATONGALKIYRE/], - blurb => 'fortune -m valgrind test', + prog => './fortune', + argv => [qw/-m foobarbazINGAMINGATONGALKIYRE/], + blurb => 'fortune -m valgrind test', } ); @@ -45,8 +45,8 @@ $obj->run( { log_fn => './fortune--4-dash-m-i.valgrind-log', - prog => './fortune', - argv => [qw/-i -m foobarbazINGAMINGATONGALKIYRE/], - blurb => 'fortune -i -m valgrind test', + prog => './fortune', + argv => [qw/-i -m foobarbazINGAMINGATONGALKIYRE/], + blurb => 'fortune -i -m valgrind test', } ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/util/fortune-mod-common.h new/fortune-mod-fortune-mod-2.8.0/fortune-mod/util/fortune-mod-common.h --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/util/fortune-mod-common.h 1970-01-01 01:00:00.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/util/fortune-mod-common.h 2019-06-07 20:18:06.000000000 +0200 @@ -0,0 +1,59 @@ +/*- + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Ken Arnold. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)strfile.h 8.1 (Berkeley) 5/31/93 + */ +#pragma once +#include <sys/types.h> +#include <sys/stat.h> +/* For ntohl() */ +#ifdef _WIN32 +#include <winsock2.h> +#define getpid() 0 +#else +#include <arpa/inet.h> +#include <unistd.h> +#endif +#include <sys/param.h> +#include "strfile.h" +#include <stdio.h> +#include <time.h> +#include <ctype.h> +#include <string.h> +#include <stdlib.h> +#include <stdbool.h> +#ifndef MAXPATHLEN +#define MAXPATHLEN 1024 +#endif /* MAXPATHLEN */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/util/randstr.c new/fortune-mod-fortune-mod-2.8.0/fortune-mod/util/randstr.c --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/util/randstr.c 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/util/randstr.c 2019-06-07 20:18:06.000000000 +0200 @@ -86,18 +86,7 @@ * Who're you gonna quote? Dan Quayle? */ -#include <netinet/in.h> -#include <sys/param.h> -#include "strfile.h" -#include <stdio.h> -#include <stdlib.h> -#include <ctype.h> -#include <string.h> -#include <unistd.h> -#include <time.h> -#ifndef MAXPATHLEN -#define MAXPATHLEN 1024 -#endif /* MAXPATHLEN */ +#include "fortune-mod-common.h" char *Infile, /* name of input file */ Datafile[MAXPATHLEN], /* name of data file */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/util/strfile.c new/fortune-mod-fortune-mod-2.8.0/fortune-mod/util/strfile.c --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/util/strfile.c 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/util/strfile.c 2019-06-07 20:18:06.000000000 +0200 @@ -72,20 +72,7 @@ *I haven't the faintest flipping idea what all that is, so kill the warnings */ -#include <stdlib.h> -#include <unistd.h> -#include <netinet/in.h> -#include <sys/param.h> -#include <stdio.h> -#include <ctype.h> -#include <string.h> -#include <time.h> -#include <stdbool.h> -#include "strfile.h" - -#ifndef MAXPATHLEN -#define MAXPATHLEN 1024 -#endif /* MAXPATHLEN */ +#include "fortune-mod-common.h" /* * This program takes a file composed of strings separated by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/util/strfile.h new/fortune-mod-fortune-mod-2.8.0/fortune-mod/util/strfile.h --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/util/strfile.h 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/util/strfile.h 2019-06-07 20:18:06.000000000 +0200 @@ -37,6 +37,7 @@ * * @(#)strfile.h 8.1 (Berkeley) 5/31/93 */ +#include <stdint.h> #define STR_ENDSTRING(line,tbl) \ ((line)[0] == (tbl).str_delim && (line)[1] == '\n') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/util/unstr.c new/fortune-mod-fortune-mod-2.8.0/fortune-mod/util/unstr.c --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/util/unstr.c 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/util/unstr.c 2019-06-07 20:18:06.000000000 +0200 @@ -88,19 +88,8 @@ * get a fortune that contains nothing but a newline. Karo syrup, syrup. * For the gory details, and lots of cussing, see strfile.c */ -#include <sys/types.h> -#include <netinet/in.h> -#include <sys/param.h> -#include "strfile.h" -#include <stdio.h> -#include <ctype.h> -#include <string.h> -#include <stdlib.h> -#include <unistd.h> -#ifndef MAXPATHLEN -#define MAXPATHLEN 1024 -#endif /* MAXPATHLEN */ +#include "fortune-mod-common.h" static char *Infile, /* name of input file */ Datafile[MAXPATHLEN], /* name of data file */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/fortune-mod/ver.txt new/fortune-mod-fortune-mod-2.8.0/fortune-mod/ver.txt --- old/fortune-mod-fortune-mod-2.6.2/fortune-mod/ver.txt 2018-12-19 15:04:16.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/fortune-mod/ver.txt 2019-06-07 20:18:06.000000000 +0200 @@ -1 +1 @@ -2.6.2 +2.8.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortune-mod-fortune-mod-2.6.2/scripts/Tatzer new/fortune-mod-fortune-mod-2.8.0/scripts/Tatzer --- old/fortune-mod-fortune-mod-2.6.2/scripts/Tatzer 1970-01-01 01:00:00.000000000 +0100 +++ new/fortune-mod-fortune-mod-2.8.0/scripts/Tatzer 2019-06-07 20:18:06.000000000 +0200 @@ -0,0 +1,352 @@ +#!/usr/bin/env perl + +# This is a script to configure the distribution. Its primary audience +# are the core developers and halo developers, and not end-users. Please +# see the INSTALL file for proper building instructions using cmake. +# +# "Tatzer" (Taf-Tzadik-Reish) is the Hebrew word for "configure!". + +use strict; +use warnings; + +use Getopt::Long qw/ GetOptions /; +use Path::Tiny qw/path/; + +my %BOOL_OPTS_WITH_FALSE_DEFAULTS = + ( 'omit-frame' => 'OPTIMIZATION_OMIT_FRAME_POINTER', ); + +my %TRUE_BOOL_OPTS = ( 'test-suite' => 'FCS_WITH_TEST_SUITE', ); + +my %INT_OPTS = ( 'pack-size' => 'FCS_IA_PACK_SIZE', ); + +my %STR_OPTS = ( + 'arch' => { param => 'CPU_ARCH', }, + 'prefix' => { param => 'CMAKE_INSTALL_PREFIX', }, + ( + map { + my ( $key, $param ) = @$_; + ( $key => +{ prefix => "${param}_", param => $param } ) + } ( [ 'p|pos' => 'BHS_STATE_STORAGE' ], ) + ), +); + +my @BOOL_OPTS_WITH_FALSE_DEFAULTS__KEYS = keys %BOOL_OPTS_WITH_FALSE_DEFAULTS; + +my %bool_opts_with_false_defaults__values = + ( map { $_ => 0 } @BOOL_OPTS_WITH_FALSE_DEFAULTS__KEYS ); + +my @TRUE_BOOL_KEYS = keys %TRUE_BOOL_OPTS; +my %true_bool_opts__values = map { $_ => 1 } @TRUE_BOOL_KEYS; + +my @INT_OPS__KEYS = keys %INT_OPTS; + +my %int_opts__values = ( map { $_ => undef() } @INT_OPS__KEYS ); + +my @STR_OPTS__KEYS = keys %STR_OPTS; +for my $k (@STR_OPTS__KEYS) +{ + $STR_OPTS{$k}{'value'} = undef(); + $STR_OPTS{$k}{'prefix'} //= ''; +} + +$STR_OPTS{'prefix'}{value} = '/usr'; + +my $build_type = "debug"; +my $generate_what; +my $build_static_lib = 0; +my $with_context_var = 1; +my $max_bench_threads_num = 4; +my $link_to_static = 0; + +sub set_both +{ + my $val = shift; + foreach my $k ('p|pos') + { + $STR_OPTS{$k}{'value'} = $val; + } + return; +} + +sub set_hash +{ + return set_both("INTERNAL_HASH"); +} + +set_hash(); + +my %themes = ( + tt => [qw(-r --notest-suite --static)], + bench => [qw(-l tt --omit-frame)], + fc_bench => [qw(-l bench)], + testing => [qw(--rwd --test-suite)], + pysol_defs => [], +); + +my $SEED_KEY = 'FCS_THEME_RAND'; +my $SEED = $ENV{$SEED_KEY}; +if ( defined $SEED ) +{ + if ( $SEED =~ /[^0-9]/ ) + { + die "Invalid value for seed!"; + } + my %k; + foreach my $flags ( values %themes ) + { + for ( my $idx = 0 ; $idx < @$flags ; ++$idx ) + { + my $flag = $flags->[$idx]; + if ( $flag eq '-l' ) + { + ++$idx; + } + else + { + $k{$flag} = 1; + } + } + } + my @k = sort { $a cmp $b } keys %k; + + require Math::Random::MT; + my $gen = Math::Random::MT->new($SEED); + my @subset; + foreach my $key (@k) + { + if ( $gen->rand() < 0.5 ) + { + push @subset, $key; + } + } + my $FN = "run-t-$SEED.bash"; + path($FN)->spew_utf8( join( ' ', $^X, $0, @subset ) . "\n" ); + delete $ENV{$SEED_KEY}; + exec( "bash", $FN ); +} + +my $HOME = $ENV{HOME}; + +foreach my $rec ( + { id => "c2", a => "core2", }, + { id => "ci7", a => "corei7-avx", }, + { id => "n2", a => "native", }, + { id => "p4", a => "pentium4" }, + { id => "x64", a => "barcelona" }, + ) +{ + my $id = $rec->{id}; + my $arch = $rec->{a}; + + $themes{$id} = [ "--arch=$arch", "--prefix=$HOME/apps/fcs", ]; + + my $def = sub { + my ( $suffix, $theme ) = @_; + $themes{ $id . $suffix } = [@$theme]; + return; + }; + my $id_def = sub { + my ( $suffix, $theme ) = @_; + return $def->( $suffix, [ '-l', $theme, '-l', $id ] ); + }; + my $bb_def = sub { + my ( $suffix, $theme ) = @_; + return $def->( $suffix, [ '-l', $id . 'bb', @$theme ] ); + }; + + # Benchmark for freecell only + $id_def->( b => 'fc_bench' ); + + # Generalised benchmark - not freecell-only - should pass the tests. + $id_def->( bb => 'bench' ); + + # Memory conserving theme - for freecell only + $id_def->( m => 'fc_reduce_mem' ); + + # Generalised Memory conserving theme - not only for freecell + $id_def->( mm => 'reduce_mem' ); + + # Testing theme - aims to run the tests quickly + $bb_def->( t => [qw(-l testing)] ); + + # For use by PySolFC + $bb_def->( + _pysol => [ '-l', 'pysol_defs', "--prefix=$HOME/apps/fcs-for-pysol", ] + ); +} + +my @new_argv = @ARGV; + +CALC_NEW_ARGV: +for ( my $idx = 0 ; $idx < @new_argv ; ++$idx ) +{ + if ( my ($arg_val) = $new_argv[$idx] =~ m{\A-l(.*)\z}ms ) + { + my $start_idx = $idx; + + my $param = $arg_val || $new_argv[ ++$idx ]; + + if ( !( my $cmd = $themes{$param} ) ) + { + die "Unknown -l argument $param!"; + } + else + { + splice( @new_argv, $start_idx, $idx - $start_idx + 1, @$cmd ); + } + + $idx = $start_idx; + redo CALC_NEW_ARGV; + } +} + +@ARGV = @new_argv; + +if ( $ENV{VERBOSE} ) +{ + print "<@ARGV>"; +} + +GetOptions( + 'd|debug' => sub { + my ( $opt, $val ) = @_; + if ($val) + { + $build_type = "debug"; + } + return; + }, + 'r|release' => sub { + my ( $opt, $val ) = @_; + if ($val) + { + $build_type = "release"; + } + elsif ( $build_type eq "release" ) + { + $build_type = "debug"; + } + return; + }, + 'hash' => \&set_hash, + 'profile' => sub { + my ( $opt, $val ) = @_; + if ($val) + { + $build_type = "profile"; + } + elsif ( $build_type eq "profile" ) + { + $build_type = "debug"; + } + return; + }, + 'minsize' => sub { + $build_type = "MinSizeRel"; + return; + }, + 'gen=s' => \$generate_what, + 'rwd' => sub { + my ( $opt, $val ) = @_; + + $build_type = "RelWithDebInfo"; + + return; + }, + 'tokyo' => sub { return set_both("TOKYO_CAB_HASH"); }, + 'static' => \$build_static_lib, + 'with-ctx-var!' => \$with_context_var, + 'max-bench-threads-num=i' => \$max_bench_threads_num, + 'static!' => \$link_to_static, + ( + map { ; "$_!" => \( $bool_opts_with_false_defaults__values{$_} ) } + @BOOL_OPTS_WITH_FALSE_DEFAULTS__KEYS + ), + ( map { ; "$_!" => \( $true_bool_opts__values{$_} ) } @TRUE_BOOL_KEYS ), + ( map { ; "$_=i" => \( $int_opts__values{$_} ) } @INT_OPS__KEYS ), + ( map { ; "$_=s" => \( $STR_OPTS{$_}{value} ) } @STR_OPTS__KEYS ), +) or die "Wrong options"; + +my $path_to_source_dir; + +if (@ARGV) +{ + $path_to_source_dir = shift(@ARGV); + + if (@ARGV) + { + die "Junk at the end of ARGV - <@ARGV>"; + } +} +else +{ + $path_to_source_dir = path($0)->parent(2)->child("fortune-mod"); +} + +# This cache is sometimes causing problems. +unlink("CMakeCache.txt"); +path($_)->remove_tree foreach ( '_Inline', 't/_Inline' ); +unlink( glob("*.so") ); + +my @cmd = ( + "cmake", + ( + defined( $ENV{CMAKE_MAKE_PROGRAM} ) + ? "-DCMAKE_MAKE_PROGRAM=$ENV{CMAKE_MAKE_PROGRAM}" + : () + ), + ( defined($generate_what) ? ( "-G", $generate_what ) : () ), + "-DCMAKE_BUILD_TYPE=$build_type", + "-DDATADIR=$STR_OPTS{prefix}{value}/share", + ( ( !$build_static_lib ) ? ("-DBUILD_STATIC_LIBRARY=") : () ), + ( + map { + $bool_opts_with_false_defaults__values{$_} + ? ( "-D" . $BOOL_OPTS_WITH_FALSE_DEFAULTS{$_} . "=1" ) + : () + } @BOOL_OPTS_WITH_FALSE_DEFAULTS__KEYS + ), + ( + map { + '-D' + . $TRUE_BOOL_OPTS{$_} . '=' + . ( $true_bool_opts__values{$_} ? '1' : '' ) + } @TRUE_BOOL_KEYS + ), + ( + map { + defined( $int_opts__values{$_} ) + ? ( "-D" . $INT_OPTS{$_} . "=" . $int_opts__values{$_} ) + : () + } @INT_OPS__KEYS + ), + ( + map { + my $k = $_; + my $r = $STR_OPTS{$k}; + my $v = $r->{value}; + defined($v) ? ("-D$r->{param}=$r->{prefix}$v") : () + } @STR_OPTS__KEYS + ), +); + +push @cmd, $path_to_source_dir; + +print( join( " ", @cmd ), "\n" ); +my $exit_code = system(@cmd); +exit( $exit_code ? 1 : 0 ); + +__END__ + +=head1 COPYRIGHT AND LICENSE + +This file is part of Black Hole Solitaire Solver. It is subject to the license +terms in the COPYING file found in the top-level directory of this distribution +and at https://github.com/shlomif/black-hole-solitaire/blob/master/LICENSE . +No part of Black Hole Solitaire Solver, including this file, may be copied, +modified, propagated, or distributed except according to the terms contained +in the COPYING file. + +Copyright (c) 2009 Shlomi Fish + +=cut ++++++ fortune-no-games.patch ++++++ --- /var/tmp/diff_new_pack.VAb4dF/_old 2019-06-20 18:56:42.036952703 +0200 +++ /var/tmp/diff_new_pack.VAb4dF/_new 2019-06-20 18:56:42.036952703 +0200 @@ -10,7 +10,7 @@ +SET (LOCALDIR "${CMAKE_INSTALL_PREFIX}/share/fortune" CACHE STRING "LOCALDIR fortunes dir") SET (LOCALODIR "${LOCALDIR}/off" CACHE STRING "offensive fortunes localdir") -SET (COOKIEDIR "${CMAKE_INSTALL_PREFIX}/share/games/fortunes" CACHE STRING "cookie dir not under /usr/local") -+SET (COOKIEDIR "${CMAKE_INSTALL_PREFIX}/share/fortune" CACHE STRING "cookie dir not under /usr/local") ++SET (COOKIEDIR "${CMAKE_INSTALL_PREFIX}/share/fortune/cookies" CACHE STRING "cookie dir not under /usr/local") SET (OCOOKIEDIR "${COOKIEDIR}/off" CACHE STRING "offensive cookie dir not under /usr/local") SHLOMIF_ADD_COMMON_C_FLAGS()
