diff options
| author | eroen | 2013-06-19 14:56:59 +0200 |
|---|---|---|
| committer | eroen | 2013-06-19 15:03:41 +0200 |
| commit | 6286bca5f9a90189c479cdb1327342fb8f46976a (patch) | |
| tree | a72bdd6bd9124834a09b9d274b0279aaf63a037e /games-util/dfhack | |
| parent | 7db020d6831da051bf6904a0f2ed2d470bc5bd56 (diff) | |
| download | eroen-overlay-6286bca5f9a90189c479cdb1327342fb8f46976a.tar.gz eroen-overlay-6286bca5f9a90189c479cdb1327342fb8f46976a.tar.bz2 eroen-overlay-6286bca5f9a90189c479cdb1327342fb8f46976a.tar.xz | |
dfhack-0.34.11.3_p20130302 - new snapshot
Diffstat (limited to 'games-util/dfhack')
24 files changed, 2220 insertions, 10 deletions
diff --git a/games-util/dfhack/Manifest b/games-util/dfhack/Manifest index 1868faea..10a8574e 100644 --- a/games-util/dfhack/Manifest +++ b/games-util/dfhack/Manifest @@ -4,6 +4,16 @@ AUX dfhack-0.34.11-r2/0002-removed-magic-flags-and-paths-from-build-system.patch AUX dfhack-0.34.11-r2/0003-tell-various-components-about-non-magic-paths.patch 5346 SHA256 9b50aee749944915594f4a5034a33198d00a0a3ac0e17e5c099edf01537154a5 SHA512 0587fcda003a1c6212751761f04b059399d4ff045b3c4d15c7fb9203dcf59e87d96fef996762078ee4de1e00c9d135bb914887e3fec81cfb7e0f3add8e2362d9 WHIRLPOOL 1462a7b93cdb16a87eca89fbbfe02f9e3cd48287b89cd46449a4cee02c09b33366e8eb4f294c7b439382ff5ad9539f6c8ecb030da9cbe82aa1ba59c785f8bcf0 AUX dfhack-0.34.11-r2/0004-compile-time-configurable-statedir.patch 3337 SHA256 8d4a1a67e6a2c1e6a311ea17e099e8c60c93b911d6ab46399ab31b30eb01cf0f SHA512 1a03b601f16846a0394476df09de5d3c456837dc8cfe6e021204b2fc145bb8a52c9aa0647799c5cb886209ce87b1120f2eeea3477189e7ba8666f71e5cc53ee5 WHIRLPOOL 77b17bc66f365f5b9829df44327ffc269f350b01709f72ba3c5345da534deea0915f58a7a3257844048b13eba5bf4f56941455a359f6966d19e9121182f335d8 AUX dfhack-0.34.11-r2/0005-remove-annoying-banner.patch 1394 SHA256 7db8259c2e6d473db0f1af3ad98f0b55272f2fdab3c56e9a1198a6cb0848c58f SHA512 d4b5e801deb04f11080cda61b4da80192172e75548978272976c23d9168d443bd274ccb53c39f701df45f73032ee126d04aa2fb8a86816c2003d8635afdf7857 WHIRLPOOL 9dc6fb52b3f65f5696470d2a8482e693702f72382cf1d71d22f053a536d20b438a1b2a584249738f134bd4f9a08d67c7f19f4db2a909a3c929316a2f45e650b8 +AUX dfhack-0.34.11.3_p20130302/01-compile-static-libraries-as.patch 2418 SHA256 2d13b801026ed0484e9d8db7aa68ac7ee9be2009391a1ddbfff8824bad6cf38e SHA512 a52b49e0d479bddb89d4cc49f9de24c0caa5f5ff3bea9cf6dffed12311adbc4414296eccb92f693af38694ed06eca117ef043947ccb1cc6fa6aaadf83fd21e63 WHIRLPOOL c16d3e117a1ff2a7de53e36a9128329f7902dd6849dcf93f2a9e53890014512e4084cffe44b4d4fd39286061798b846276e99d0cac1d7f518ddc75cf4b375e65 +AUX dfhack-0.34.11.3_p20130302/02-drop-strange-build-options.patch 2038 SHA256 dd52200e6106b034ac22c308062dd2ef8de4c9a54ddd877e07737e4dbaeb59ee SHA512 fcd81edce8548cc1a830f92c97dc35a33f0a52cf778c6d50f55249696d90adcfa27ac08a9dca0913d671c09829e6e289361770f1fc5648a74367fa4a3509281f WHIRLPOOL 1b139665f085e8e99c5535c063348cd6dab28936a10d72892e898e463c17fd40824194df155855859142ef4092deb096ae004bedd9608b8712c339fbcbc0375a +AUX dfhack-0.34.11.3_p20130302/03-configurable-install-paths.patch 3975 SHA256 bdfd0d8285089a51043ea08e2db78ae47cf7e11235230b0b23760211afff86e4 SHA512 82a303a5392971010e0c80138c3a2ba178bbbd7a9d69f3dc90a87698e5f8b630014cfd867e1cfeefbf14ce73978f56f1068e9be88e0bdc9eba6b46748b2bceca WHIRLPOOL 0b0d92af256cd88c6cec5ad1efb4951e48ec944aaf8882b4cac68d2059652080dd05137f537376844c2a5f066345f5b13711c5269d3dffa007601d14caeeb979 +AUX dfhack-0.34.11.3_p20130302/04-compile-time-configurable.patch 5252 SHA256 89f8396c8709a2d72f55f364b73d129e05f65caa32b8c145741d841281f7a71a SHA512 6a613fb00748f22938bf8fdbf55a1acfb141e48c85185c71fd08cc934ab9dd0089431f3942f2bce726d0e71cfd660ece4866026335ca03f75370565c190d330b WHIRLPOOL 7d3e6fe729f61ce5e61e6843c1219e19cba5b77d7558371044c2bb3e60c071d6a13af2e051d3978704b7ee43523ac029833d18e47830ab688ef8af7208bb7edb +AUX dfhack-0.34.11.3_p20130302/05-compile-time-configurable-0.patch 1562 SHA256 16810214a14c585a7f99f3939f52c66aaab7d388f4854c1d684032df4e3ddf80 SHA512 a2797092215b61765cfee6654a45f0c1f890e6d537e370d038907e25e9e916d54e140635b57012b892039467027e62505045287f3d6a06a2f6d0e6dac83fe256 WHIRLPOOL 49c95f1adb62d1997adea7521e550ffb1bdf38b22e2ca699fd8314b0f96b32de6ee042218d0053f9da0827fecd81d923d078cb9f37447bc4c3211226d9ea0eff +AUX dfhack-0.34.11.3_p20130302/06-compile-time-configurable-1.patch 3578 SHA256 ead1019a14dbdab2fb0ac097073c7f2a22fa24f426eb031615cd79a5a28b1a54 SHA512 fae5f28c20364a6032f329115a8d1630e17fb1e5e7888c058c94218824616f1b807e7471330fdb7e6d1f29d3960a85f1469edbf1d270cc44ed9a707295bf8c90 WHIRLPOOL 5c8e9a113fc0a4972e54df0871fa6cce4074ef0b4cca33cf2d26cffab3d75863d8aace3423d14d2110a00a5ba79ca39b680e1838889e9ac390f4ea95d06c6784 +AUX dfhack-0.34.11.3_p20130302/07-startup-scripts-configurable.patch 9738 SHA256 a107a4693ed5c8f156c2dd9718c3c83b6c6802bd39d8a41fb15b604bdd2d7908 SHA512 c833b81a0bf7be6d15bc6149e43ae4bcd37bdbe42890ea73ebe950bef416732d9c807c9268031568e08c3f3de9130fc6759d32dd236c830abfa0c3dfddc0f73f WHIRLPOOL 58c7e9891f72819782be79eb9388bd7650a18df2816f4d75f4708fcbdc72d882b0aa18f30af0a91f052cc83f8bf972a6e6df6a64845dbf4521689ba95f8094e4 +AUX dfhack-0.34.11.3_p20130302/08-ruby-plugin-configurable-paths.patch 19636 SHA256 2a24c35f5e4b1cf060fd6f11a5ff4b438b1fafea6a7ece9b5e0f018d1dfcad46 SHA512 00130cc96695e40e47763e858dd73b739d083808b7f0bb1a097a8120c0b7c8d10306a3da0700aa42b69422a32b7814d40290228f26da4e486c5cbb507bdf139d WHIRLPOOL 80aaf69a4c4139096c120f837bcf25a37076269f0f0d3a6ae272fd95124a59c163595827ddb22361f37b79f15d0a3853601dd2c3fdc9682826679aea9fdf3098 +AUX dfhack-0.34.11.3_p20130302/09-eggy-remove-annoying-banner.patch 662 SHA256 a139e7d33d1e6d708955572cae529dd2a56be4500ced49ae417c2f30808a3e14 SHA512 b77cf87d4d232779dd3f171364e6660af5a8e69889ca3b4d9b33ac0db4bde37a3851f23315f19b9bac4577050181f54222b57b0b78c8746407e69e7265d1b8b9 WHIRLPOOL 85728501157dcce4fa4a1b4da81ad8ff74ad7d701ed170ae5fa420977ebd4f1992b015f6d19a1ebfff14de90f43764e1521d3188db569b9a71427e966c2d40f2 +AUX dfhack-0.34.11.3_p20130302/series 410 SHA256 666ee96606c1b8ff23bff91d5ad6d6f788427ba0ff4affd4e0d4b34e9a22f391 SHA512 852b5ba7928d3040f90f5c8ddafcd9a8f86ad7409d4d8e91303083a4da2e3450fbca6f4cec84612a0b9f134cf20cd7e767d9f98836c122380ec84c608f053bc4 WHIRLPOOL bc0d13a22c98d2754795758b44280039b6789e0100f94cceffa50082966c16b41895bebdd35223dde1644ea7ad8116039158675b2ff1b64e9883c4a2e47750f8 AUX dfhack-9999/01-compile-static-libraries-as.patch 2418 SHA256 2d13b801026ed0484e9d8db7aa68ac7ee9be2009391a1ddbfff8824bad6cf38e SHA512 a52b49e0d479bddb89d4cc49f9de24c0caa5f5ff3bea9cf6dffed12311adbc4414296eccb92f693af38694ed06eca117ef043947ccb1cc6fa6aaadf83fd21e63 WHIRLPOOL c16d3e117a1ff2a7de53e36a9128329f7902dd6849dcf93f2a9e53890014512e4084cffe44b4d4fd39286061798b846276e99d0cac1d7f518ddc75cf4b375e65 AUX dfhack-9999/02-drop-strange-build-options.patch 2038 SHA256 dd52200e6106b034ac22c308062dd2ef8de4c9a54ddd877e07737e4dbaeb59ee SHA512 fcd81edce8548cc1a830f92c97dc35a33f0a52cf778c6d50f55249696d90adcfa27ac08a9dca0913d671c09829e6e289361770f1fc5648a74367fa4a3509281f WHIRLPOOL 1b139665f085e8e99c5535c063348cd6dab28936a10d72892e898e463c17fd40824194df155855859142ef4092deb096ae004bedd9608b8712c339fbcbc0375a AUX dfhack-9999/03-configurable-install-paths.patch 3975 SHA256 bdfd0d8285089a51043ea08e2db78ae47cf7e11235230b0b23760211afff86e4 SHA512 82a303a5392971010e0c80138c3a2ba178bbbd7a9d69f3dc90a87698e5f8b630014cfd867e1cfeefbf14ce73978f56f1068e9be88e0bdc9eba6b46748b2bceca WHIRLPOOL 0b0d92af256cd88c6cec5ad1efb4951e48ec944aaf8882b4cac68d2059652080dd05137f537376844c2a5f066345f5b13711c5269d3dffa007601d14caeeb979 @@ -14,8 +24,19 @@ AUX dfhack-9999/07-startup-scripts-configurable.patch 9738 SHA256 a107a4693ed5c8 AUX dfhack-9999/08-ruby-plugin-configurable-paths.patch 19636 SHA256 2a24c35f5e4b1cf060fd6f11a5ff4b438b1fafea6a7ece9b5e0f018d1dfcad46 SHA512 00130cc96695e40e47763e858dd73b739d083808b7f0bb1a097a8120c0b7c8d10306a3da0700aa42b69422a32b7814d40290228f26da4e486c5cbb507bdf139d WHIRLPOOL 80aaf69a4c4139096c120f837bcf25a37076269f0f0d3a6ae272fd95124a59c163595827ddb22361f37b79f15d0a3853601dd2c3fdc9682826679aea9fdf3098 AUX dfhack-9999/09-eggy-remove-annoying-banner.patch 662 SHA256 a139e7d33d1e6d708955572cae529dd2a56be4500ced49ae417c2f30808a3e14 SHA512 b77cf87d4d232779dd3f171364e6660af5a8e69889ca3b4d9b33ac0db4bde37a3851f23315f19b9bac4577050181f54222b57b0b78c8746407e69e7265d1b8b9 WHIRLPOOL 85728501157dcce4fa4a1b4da81ad8ff74ad7d701ed170ae5fa420977ebd4f1992b015f6d19a1ebfff14de90f43764e1521d3188db569b9a71427e966c2d40f2 AUX dfhack-9999/series 410 SHA256 666ee96606c1b8ff23bff91d5ad6d6f788427ba0ff4affd4e0d4b34e9a22f391 SHA512 852b5ba7928d3040f90f5c8ddafcd9a8f86ad7409d4d8e91303083a4da2e3450fbca6f4cec84612a0b9f134cf20cd7e767d9f98836c122380ec84c608f053bc4 WHIRLPOOL bc0d13a22c98d2754795758b44280039b6789e0100f94cceffa50082966c16b41895bebdd35223dde1644ea7ad8116039158675b2ff1b64e9883c4a2e47750f8 +AUX isoworld-0.34.11.3_p20130302/01-missing-include-dir.patch 491 SHA256 00bfd01587e25eeb4c93c3100bbf6872517f214e75a2824c92690c7a3159735e SHA512 267614162fa3d92e6e49783d11c211f55f2d235212fd2538421093f5f59c37509938833e5475a53cd1dc9f96435609f96865834871b373f04e84f7504f7018df WHIRLPOOL bf6c572b9f9db9900196d55fcf2dc26be165cc696dc5cd73454846fcfa6919259c3f71e06dba692addcd517cdebb6e9ee91e48992bc74c8f1fdc0d199f293978 +AUX isoworld-0.34.11.3_p20130302/series 106 SHA256 6c265ab0eac63e1b43b9bb9f698ea0b2281db81ea0a67da8602810613b6c0f00 SHA512 22e5f26edb861019d6fb2fdd6959d3efc3fc8687dc545256c34fe2f16e790ca51cdc3d10476f8d4e9ee6a755ed49414abe1c1fb633fca71aee5928cc2b617989 WHIRLPOOL e54a2c64a845f3a643a9f7cfc4fc447986aa83e502ec229c7a9866f9dc2cbe33548cbb9eb8f5dd2167606637230187e9e2a5955427a59e5a52de8994f16498f4 AUX isoworld-9999/01-missing-include-dir.patch 491 SHA256 00bfd01587e25eeb4c93c3100bbf6872517f214e75a2824c92690c7a3159735e SHA512 267614162fa3d92e6e49783d11c211f55f2d235212fd2538421093f5f59c37509938833e5475a53cd1dc9f96435609f96865834871b373f04e84f7504f7018df WHIRLPOOL bf6c572b9f9db9900196d55fcf2dc26be165cc696dc5cd73454846fcfa6919259c3f71e06dba692addcd517cdebb6e9ee91e48992bc74c8f1fdc0d199f293978 AUX isoworld-9999/series 106 SHA256 6c265ab0eac63e1b43b9bb9f698ea0b2281db81ea0a67da8602810613b6c0f00 SHA512 22e5f26edb861019d6fb2fdd6959d3efc3fc8687dc545256c34fe2f16e790ca51cdc3d10476f8d4e9ee6a755ed49414abe1c1fb633fca71aee5928cc2b617989 WHIRLPOOL e54a2c64a845f3a643a9f7cfc4fc447986aa83e502ec229c7a9866f9dc2cbe33548cbb9eb8f5dd2167606637230187e9e2a5955427a59e5a52de8994f16498f4 +AUX stonesense-0.34.11.3_p20130302/01-null-isn-t-an-int32.patch 2293 SHA256 c140f17f9ad485b43ab2b6de8e1ab88ff8e3f6748a233d7d34d63e79a9f8074e SHA512 84ab7ebd25505515085c3c6c2c903d4aa51d8432b8c750a4f66d436426ad9963c07fa5019e24f0ca6d5618be329b35673a819443d092460e55bb6bb829dd4760 WHIRLPOOL 3beb7cc546b1f5eba970628e3a263e2536f881ae1e21115df19c4979b9c267d66ba060bf16f78a46675fe96b2f18fb7281ba1a9dd1695e3e5f0df4147bcb78b7 +AUX stonesense-0.34.11.3_p20130302/02-configurable-install-paths.patch 1388 SHA256 03ac914c0fbee6d27b68c075d91b8b315179d9cb91944da731006241e0589dbb SHA512 b7b75f33b9aefe91081f4cede21b79b7583374ea5f5608cd4982a6ba5ad35006986ede06985bac70f5260610f2b32ac05cc06e90a983dbc6e85e7346da084d96 WHIRLPOOL 677942b840640ce40a3e93d28265a5f39c778fe369c4de27eee382d8a83e063a775477f5434f754173de88c2a0bf46750006ca11294b244fffe4f3ec5ba80d5f +AUX stonesense-0.34.11.3_p20130302/03-don-t-segfault-if-logfile-is.patch 817 SHA256 7fd33d13206ef38bca971856d9cfff0fbef88f1e7685111e00fa13b780cc9ecb SHA512 2ff023f34a1cf8718a3954e3a7584d07a1716b67756473d0852863f182c55bcde209921a9e26e1efeffde17ae42ab87c322915d74f2661b79ec49dd158df7cd1 WHIRLPOOL 1c88b645f01d651896b951acbc97d610d986a7d756cb0d58cc9c3c9caaa3873c18d191c46238ad13e050047476cc2589ae7f40614f0b8d3a52bb24fa58325976 +AUX stonesense-0.34.11.3_p20130302/04-compile-time-configuration-of.patch 7408 SHA256 2a5cada5aaffa02feb7344646d7d781a02efd48814dc9bd49804bfd604794a7c SHA512 2158737598af4faac3ae3680f0c41206150e57164b3313af492e7848414774768131acae4afc3093fea6361c3acfb4ad52f841d420fac92ff7b98049c89f7219 WHIRLPOOL 94ee56857a2558b1cb669cca632b79d6cd1cb51735e3a356253f5229118f527a6108d9d1a26340aac0fecc0a67d8cd5e9fe23e9ef7355c3b1b5b66454007ca47 +AUX stonesense-0.34.11.3_p20130302/05-compile-time-configurable-log.patch 1000 SHA256 48994c657edeaa5d29f2ef6e016503bfddf980bfe924ec847994f44a86a5b35d SHA512 579c28c907a490de5cf8fad5ed6b0b74abf51c967994b0888af8dab432157f1bc4ba20a73bb03f59b3cc3736c69079a9efb2c3d203eeecdcc33e9a44b4bda6bd WHIRLPOOL 08899e1bf50d7a621b56683519577d53ebb8b59d08273af7124a86fe6e1fca2338afd654e93477a6ca58b9482e78ac00e2a39e997586e78d6f67649bd6fc14dc +AUX stonesense-0.34.11.3_p20130302/06-fix-b0rked-xml-file.patch 1079 SHA256 d45d2e9f4c4707afdb5de1f9bded8a6bfebd4e9a530f7f50fae0d17fba1175ec SHA512 eca7dea452208b457730432f11d3206bd3cd7d440a7d1407d30381298621ac795ac7329a43b56d7d9b3a38ff8b0fb724d2a7f3469db4f5754fcc432e8f444dd6 WHIRLPOOL 28303997fe25b1fc7f1c7c0a2405c03ca053263d85d2cb4343e7d53d783de15132b1e400d2b920a71f9731b9da13cebc8480f15f9f2ebaf94c93ff6b33601de2 +AUX stonesense-0.34.11.3_p20130302/07-compile-time-configurable-dump.patch 4364 SHA256 c4b6e94399afd07aac3595c6dc2865b9e8965faae68a7e445d89371fdbe2e69e SHA512 27b86a0530be876d5d8712cef89786b5d35c1fe7d441155fcd804d71ac797fc8cb2d76688f4c0b7fe2341a2f0b1085ec0a035acfe7cb3e3879b614f8e2bf5c9d WHIRLPOOL be375a3af6e4c427a1f0b1c5fa9c15a837849422c0b3a9ab6048a6bad189771a75cf9ae25e5da9f3dff4fc988c61ba497070d406d70fd5e342685da8e2f18b91 +AUX stonesense-0.34.11.3_p20130302/08-compile-time-configurable.patch 517 SHA256 ae777e95df2a6222cc5b5b011a2be2d4377b658bafc67818cd45fa2f440b19d6 SHA512 59b60293c7db910cbe32aff5850b1bb2deb8eea40f543806033ca35d357f1b42ed2ac955106c24ac8a787cd6a88992647228becbc143a544ec55a3613f47aa3e WHIRLPOOL d9a61b9897b405b9a9dc9026fd5d29cc2502b9378ecb24fa7a220ce95c01666925b91165eba6d393bc5975624a6703a205b750d5641ddd7a8f5fb7d1c7576f8d +AUX stonesense-0.34.11.3_p20130302/series 362 SHA256 46867ba655615440c4a1c04a1022033df110d134e11afff3ca59e5f5355aabc2 SHA512 4c791888240e965c86dd5899870b10ac0e16fdd19fb79ce4a4bd8a4e531c5a866553d568578a723b2856767cecf30e5400fb5fb99f926f00119f37621108770c WHIRLPOOL ec5b6ee427e9851abca3aa6b0142fdd8f27a2543c13d0645cb6e2ede1eba6386616533ee11ce3a83d541b48236cdc6ba80555549625d17319278d7f58d1f190a AUX stonesense-9999/01-null-isn-t-an-int32.patch 2293 SHA256 c140f17f9ad485b43ab2b6de8e1ab88ff8e3f6748a233d7d34d63e79a9f8074e SHA512 84ab7ebd25505515085c3c6c2c903d4aa51d8432b8c750a4f66d436426ad9963c07fa5019e24f0ca6d5618be329b35673a819443d092460e55bb6bb829dd4760 WHIRLPOOL 3beb7cc546b1f5eba970628e3a263e2536f881ae1e21115df19c4979b9c267d66ba060bf16f78a46675fe96b2f18fb7281ba1a9dd1695e3e5f0df4147bcb78b7 AUX stonesense-9999/02-configurable-install-paths.patch 1388 SHA256 03ac914c0fbee6d27b68c075d91b8b315179d9cb91944da731006241e0589dbb SHA512 b7b75f33b9aefe91081f4cede21b79b7583374ea5f5608cd4982a6ba5ad35006986ede06985bac70f5260610f2b32ac05cc06e90a983dbc6e85e7346da084d96 WHIRLPOOL 677942b840640ce40a3e93d28265a5f39c778fe369c4de27eee382d8a83e063a775477f5434f754173de88c2a0bf46750006ca11294b244fffe4f3ec5ba80d5f AUX stonesense-9999/03-don-t-segfault-if-logfile-is.patch 817 SHA256 7fd33d13206ef38bca971856d9cfff0fbef88f1e7685111e00fa13b780cc9ecb SHA512 2ff023f34a1cf8718a3954e3a7584d07a1716b67756473d0852863f182c55bcde209921a9e26e1efeffde17ae42ab87c322915d74f2661b79ec49dd158df7cd1 WHIRLPOOL 1c88b645f01d651896b951acbc97d610d986a7d756cb0d58cc9c3c9caaa3873c18d191c46238ad13e050047476cc2589ae7f40614f0b8d3a52bb24fa58325976 @@ -30,5 +51,6 @@ AUX stonesense/0002-compile-time-configuration-of-magic-cwd.patch 7753 SHA256 79 AUX stonesense/0003-screenshots-in-home-dir.patch 2578 SHA256 88bc1a28442dfe8e5ff08e27e82de6443a3c5bccf49d7bcb2a26637a71ae3e18 SHA512 988efaba82e96149641e8dd6d8769b3ac1d890ebaa35128507a8f0d633af947ad9d8090758e1734a2f9b118c5404e4d712e2abb9a4e971f980f4163c0b646f5b WHIRLPOOL f3f03c297fbd39f27b5957cca0073a3420a10ba0a1741cf73f210cf680c2083c761cb68a637663281e69d1fee9e7b5049c3074f18fed394f48888bc377f5bb70 AUX stonesense/0004-create-various-output-files-in-HOME-not-cwd.patch 5217 SHA256 3ac09c948cc36b04058a82cb9f04e0ff26ffee765bf2300a46eac09cebc867de SHA512 9f0c2c5f4a2d15c99e06d30e1d3825527449f63de4d370533f07ce4324d0afbd1a2190dcf9589cbd326fd0f9705333bb436bed74e72ac4a7485f002fa3600639 WHIRLPOOL cbe81a086301a3dc218f31e3b1edb837bd81a25d151e5d46c0988d080165e95faac8ab14a97995a7092262542cbb8b29a2a540fe45a5c74b520e47ec5ab0f420 EBUILD dfhack-0.34.11.2.ebuild 5523 SHA256 c126fc718aaddcfd1f62c04a5ce37add8c6ecfb72e0fa73d8048383e02d048f0 SHA512 ab671faa41ab7cff26b933ef816fba8f5c86389769f5dcf1da6a5ee7413324d50ebcd7e60812935fd0ddd70688461ca23d55edf499ffffec89e3ff3ad321c2e8 WHIRLPOOL 11246c870f497929299ccf75c91f77481a6d3faccc9a8646c668836b22906d089e04826b3f67f5dcc8640b918a9e3a0e1fa9821d7d17664ec58f8a88db498170 -EBUILD dfhack-9999.ebuild 8400 SHA256 98920d05ed07b87e3900cc65a141178bfb51d85578038c89a80041420de62cc8 SHA512 1a7a44b5ebbce8906d8d0fc0e5e9e9e55fbe2061ebe75ebc2f7b02aa5b2f24ea77a9ae6469d38b0f12cdd4e78bcbecfe75d60a053a36c6dbcd7eb1ba6ff3f662 WHIRLPOOL e868491590c285d674e9d7e72abb15dc55fe853a152f8e306a5d7ff147579bc8215c6aaeb6ea9d2696e29791cd35da1083593bea892884733e947a2b721455a9 +EBUILD dfhack-0.34.11.3_p20130302.ebuild 8562 SHA256 6fbe01497156fbc370cd670d4b69003788430fe37e2ecfd80a9f0f6fea1444a1 SHA512 a4de96200bb4a5dda7cac98fe82cf038e5c36a2e4c65f2f19b893483f80864d343f72a484746bbb8ffe79adf2dd0ce08a43df80dc693e115651169fb48fc1b19 WHIRLPOOL 6d3c12daa228bb4fe6a0b4bb25366c2be4f5e950e1d5e63ca2f0bb889cfeb13a68921b14350283c5432a31435d33b53bc7e6f146e32493cf2ac97a19d7c43440 +EBUILD dfhack-9999.ebuild 8511 SHA256 df36a4d5b563b9477f7bf058652a0304cae99a3dd0940855b96136bf90b2e595 SHA512 b73c84664dd1a2f30b950eb061bea811b9368ef087e6907f067e444db8a66f77d8684aac5053ba472673761b949c394f274f95fedf6b34e12948f65de1c9acb3 WHIRLPOOL bdef3f0f92b7564eca460ab717ece45df9778b266a4a3c67d4913632c7740bdbe699718b32d7f712ffd40642078a63ee5cd99b06431fdf9bccf3b835b050aae6 MISC metadata.xml 721 SHA256 92c6cfa56d7afc563cd87101664f1200e50d02fedd5a7a3d19b8a549f042e8bc SHA512 009c4d722c0515a03323e711440db763bb47697719017d0ea8aa2da396739e55a125fcebdd94a1103f48ddf79735523e39ca9edfba77d67ed77c735a62e83a1f WHIRLPOOL ca03b60ff2b56d2bffabfdd8c26f980e5fe6ee70fb50cf13399c1fed55f3a6e7ae28ec7b4290df41f6ae27473b8ef561fe2c82597ef4aca771893a7664786bbb diff --git a/games-util/dfhack/dfhack-0.34.11.3_p20130302.ebuild b/games-util/dfhack/dfhack-0.34.11.3_p20130302.ebuild new file mode 100644 index 00000000..d3d5c72b --- /dev/null +++ b/games-util/dfhack/dfhack-0.34.11.3_p20130302.ebuild @@ -0,0 +1,254 @@ +# By eroen, 2012-2013 +# Distributed under the terms of the ISC licence +# $Header: $ + +EAPI=5 +inherit base eutils versionator multilib git-2 cmake-utils games + +if [[ ${PV} == 9999 ]]; then + MY_PV="0.34.11-r3" +else + MY_PV="$(replace_version_separator 3 '-r' \ + $(get_version_component_range -4))" +fi +MY_P=${PN}-${MY_PV} +df_PV="34.11" + +DESCRIPTION="Memory hacking library for Dwarf Fortress and a set of tools that +use it" +HOMEPAGE="https://github.com/peterix/dfhack" +EGIT_REPO_URI="git://github.com/peterix/dfhack.git" +EGIT_HAS_SUBMODULES=yes + +if [[ ${PV} == 9999 ]]; then + KEYWORDS= +else + if [[ $(get_version_component_count) -le 4 ]]; then + EGIT_COMMIT=${MY_PV} + else + EGIT_COMMIT=18a91ef221f531307ac5ddbe29532a3d6e0a04ec + fi + KEYWORDS="~amd64" +fi + +CMAKE_MIN_VERSION=2.8.9 +CMAKE_REMOVE_MODULES_LIST="FindCurses FindDoxygen CMakeVS10FindMake" + +LICENSE="ZLIB MIT BSD-2" +SLOT="0" +IUSE="api dfusion doc egg isoworld minimal ssense" + +HDEPEND=" + dev-perl/XML-LibXML + dev-perl/XML-LibXSLT + doc? ( app-doc/doxygen )" +LIBRARY_DEPEND=" + app-emulation/emul-linux-x86-baselibs[development] + ssense? ( media-libs/fontconfig[abi_x86_32] + media-libs/freetype[abi_x86_32] + x11-libs/libICE[abi_x86_32] + x11-libs/libSM[abi_x86_32] + x11-libs/libX11[abi_x86_32] + x11-libs/libXcursor[abi_x86_32] + x11-libs/libXext[abi_x86_32] + x11-libs/libXinerama[abi_x86_32] + x11-libs/libXrandr[abi_x86_32] )" +DEPEND="${LIBRARY_DEPEND} + ${HDEPEND}" +RDEPEND="${LIBRARY_DEPEND} + games-simulation/dwarffortress + ssense? ( app-emulation/emul-linux-x86-opengl + app-emulation/emul-linux-x86-xlibs )" + +## missing multilib +#dev-lang/lua - binary bundled +#dev-libs/protobuf - bundled +# sys-libs/zlib (libz.so.1) - baselibs +## ssense +#allegro - binary bundled +# dev-libs/atk (libatk-1.0.so.0) - gtklibs +# dev-libs/glib (libgthread-2.0.so.0,libglib-2.0.so.0,libgobject-2.0.so.0,libgmodule-2.0.so.0,libgio-2.0.so.0) - baselibs +# media-libs/fontconfig (libfontconfig.so.1) +# media-libs/freetype (libfreetype.so.6) +# media-libs/jpeg:62 (libjpeg.so.62) - baselibs +# virtual/glu (libGLU.so.1) - opengl +# media-libs/libpng:1.2 (libpng12.so.0) - baselibs +# virtual/opengl (libGL.so.1) +# sys-libs/zlib (libz.so.1) - baselibs +# x11-libs/cairo (libcairo.so.2) - gtklibs +# x11-libs/gdk-pixbuf (libgdk_pixbuf) - gtklibs +# x11-libs/gtk+ (libgdk-x11-2.0.so.0,libgtk-x11-2.0.so.0) - gtklibs +# x11-libs/libICE (libICE.so.6) +# x11-libs/libSM (libSM.so.6) +# x11-libs/libX11 (libX11.so.6) +# x11-libs/libXcursor (libXcursor.so.1) +# x11-libs/libXext (libXext.so.6) +# x11-libs/libXinerama (libXinerama.so.1) +# x11-libs/libXrandr (libXrandr.so.2) +# x11-libs/pango (libpangocairo-1.0.so.0,libpango-1.0.so.0,libpangoft2-1.0.so.0) - gtklibs + +multilib_toolchain_setup x86 +if use egg; then + dfhack_libdir="$(games_get_libdir)" +else + dfhack_libdir="$(games_get_libdir)/${P}" +fi +QA_PREBUILT+="${dfhack_libdir}"/libruby.so + +pkg_setup() { + df_executable="df-${df_PV}" + dfhack_datadir="${GAMES_DATADIR}/${P}" + dfhack_docdir="/usr/share/doc/${P}" + dfhack_statedir="${GAMES_STATEDIR}/${P}" +} + +src_prepare() { + epatch "${FILESDIR}"/${P}/01-compile-static-libraries-as.patch + epatch "${FILESDIR}"/${P}/02-drop-strange-build-options.patch + epatch "${FILESDIR}"/${P}/03-configurable-install-paths.patch + epatch "${FILESDIR}"/${P}/04-compile-time-configurable.patch + epatch "${FILESDIR}"/${P}/05-compile-time-configurable-0.patch + epatch "${FILESDIR}"/${P}/06-compile-time-configurable-1.patch + epatch "${FILESDIR}"/${P}/07-startup-scripts-configurable.patch + epatch "${FILESDIR}"/${P}/08-ruby-plugin-configurable-paths.patch + epatch "${FILESDIR}"/${P}/09-eggy-remove-annoying-banner.patch + + pushd "${S}"/depends/clsocket + epatch "${FILESDIR}"/clsocket/0001-Compile-static-library-as-PIC.patch + popd + + if use ssense; then + pushd "${S}"/plugins/stonesense + epatch "${FILESDIR}"/stonesense-${PV}/01-null-isn-t-an-int32.patch + epatch "${FILESDIR}"/stonesense-${PV}/02-configurable-install-paths.patch + epatch "${FILESDIR}"/stonesense-${PV}/03-don-t-segfault-if-logfile-is.patch + epatch "${FILESDIR}"/stonesense-${PV}/04-compile-time-configuration-of.patch + epatch "${FILESDIR}"/stonesense-${PV}/05-compile-time-configurable-log.patch + epatch "${FILESDIR}"/stonesense-${PV}/06-fix-b0rked-xml-file.patch + epatch "${FILESDIR}"/stonesense-${PV}/07-compile-time-configurable-dump.patch + epatch "${FILESDIR}"/stonesense-${PV}/08-compile-time-configurable.patch + # Patches that no longer fit upstream, not updated yet. + #epatch "${FILESDIR}"/stonesense/0003-screenshots-in-home-dir.patch + popd + fi + if use isoworld; then + pushd "${S}"/plugins/isoworld + epatch "${FILESDIR}"/isoworld-${PV}/01-missing-include-dir.patch + popd + ewarn "The isoworld plugin requires agui, and will probably fail to build" + fi + + # Fix other scripts +# if use dfusion; then +# sed -f - -i plugins/Dfusion/luafiles/{init.lua,friendship/{init.lua,plugin.lua,install.lua},triggers/{plugin.lua,functions_menu.lua},friendship_civ/init.lua,common.lua,embark/{init.lua,plugin.lua},migrants/{init.lua,plugin.lua},xml_struct.lua,xml_types.lua} <<- EOF || die +# s:("dfusion/:("${datadir}/dfusion/: +# s:('dfusion/:('${datadir}/dfusion/: +# EOF +# sed -i "s:libs/Dwarf_Fortress:Dwarf_Fortress:" plugins/Dfusion/luafiles/common.lua +# fi + + ##Issues: + # - df version + # - dfusion is strange. It's always been that, though. + # - prebuilt ruby + # - prebuilt lua + # - isoworld requires agui + # - prebuilt allegro for stonesense. + # - stonesense conf file: /usr/share/games/dfhack-9999/stonesense/init.txt + # Set in ./Config.cpp, installed together with the rest of the directory. + # - output files + # - - Make symlinks to (unversioned) /var +} + +src_configure() { + mycmakeargs=( + "$(cmake-utils_use api BUILD_DEVEL)" + "$(cmake-utils_use dfusion BUILD_DFUSION)" + "$(cmake-utils_use doc BUILD_DOXYGEN)" + "$(cmake-utils_use egg BUILD_EGGY)" + "$(cmake-utils_use isoworld BUILD_ISOWORLD)" + "-DBUILD_LIBRARY=ON" + "-DBUILD_PLUGINS=ON" + "-DBUILD_RUBY=ON" + "-DBUILD_SKELETON=OFF" + "$(cmake-utils_use ssense BUILD_STONESENSE)" + "-DCMAKE_INSTALL_PREFIX=${GAMES_DATADIR}" + "-DCONSOLE_NO_CATCH=OFF" + "-DDL_RUBY=ON" + + "-DDF_EXECUTABLE=${df_executable}" + "-DDFHACK_STATEDIR=${GAMES_STATEDIR}/${P}" + "-DDFHACK_BINARY_DESTINATION=${GAMES_BINDIR}" + "-DDFHACK_LIBRARY_DESTINATION=${dfhack_libdir}" + "-DDFHACK_EGGY_DESTINATION=${dfhack_libdir}" + "-DDFHACK_DATA_DESTINATION=${dfhack_datadir}" + "-DDFHACK_PLUGIN_DESTINATION=${dfhack_datadir}/plugins" + "-DDFHACK_LUA_DESTINATION=${dfhack_datadir}/lua" + "-DDFHACK_RUBY_DESTINATION=${dfhack_datadir}/ruby" + "-DDFHACK_INCLUDES_DESTINATION=/usr/games/include" + "-DDFHACK_DEVLIB_DESTINATION=${dfhack_datadir}/devlib" + "-DDFHACK_USERDOC_DESTINATION=${dfhack_docdir}" + "-DDFHACK_DEVDOC_DESTINATION=${dfhack_docdir}/dev" + "-DSSENSE_ALLEGRO_DESTINATION=${dfhack_libdir}" + "-DSSENSE_RES_DESTINATION=${dfhack_datadir}/stonesense" + "-DSSENSE_DOC_DESTINATION=${dfhack_docdir}/stonesense" + ) + if use minimal; then + mycmakeargs+=( + "-DBUILD_DEV_PLUGINS=OFF" + "-DBUILD_DWARFEXPORT=OFF" + "-DBUILD_MAPEXPORT=OFF" + "-DBUILD_SUPPORTED=OFF" + ) + else + mycmakeargs+=( + "-DBUILD_DEV_PLUGINS=ON" + "-DBUILD_DWARFEXPORT=ON" + "-DBUILD_MAPEXPORT=ON" + "-DBUILD_SUPPORTED=ON" + ) + fi + + cmake-utils_src_configure +} + +src_compile() { + cmake-utils_src_compile +} + +src_install() { + cmake-utils_src_install + mv "${D}/${GAMES_BINDIR}/dfhack" \ + "${D}/${GAMES_BINDIR}/dfhack-${PV}" || die + mv "${D}/${GAMES_BINDIR}/dfhack-run" \ + "${D}/${GAMES_BINDIR}/dfhack-run-${PV}" || die + dodir "${dfhack_statedir}" + if use ssense; then + dodir "${GAMES_SYSCONFDIR#/}/${P}/stonesense" + mv "${D}/${dfhack_datadir#/}/stonesense/init.txt" \ + "${D}/${GAMES_SYSCONFDIR#/}/${P}/stonesense/init.txt" || die + dosym "${ROOT}${GAMES_SYSCONFDIR#/}/${P}/stonesense/init.txt" \ + "${dfhack_datadir#/}/stonesense/init.txt" + elog + elog "The Stonesense configuration file can be found at" + elog "${GAMES_SYSCONFDIR#/}/${P}/stonesense/init.txt" + fi + prepgamesdirs + fperms g+w "${dfhack_statedir}" || die + # portage user needs to be able to link: + ( ! use egg || fperms o+rx "$(games_get_libdir)"/libegg.so ) || die +} + +pkg_postinst() { + games_pkg_postinst + elog + elog "Due to Dwarf Fortress' special needs regarding working directory," + elog "specifying relative paths to DFHack plugins can give unintended" + elog "results." + elog + elog "DFHack installs custom raw files for dwarffortress in" + elog "${dfhack_datadir}/raw" + elog "To use them, copy them into your raw folder and apply the diffs." + elog + elog "To start DFHack, please run dfhack-${PV}" +} diff --git a/games-util/dfhack/dfhack-9999.ebuild b/games-util/dfhack/dfhack-9999.ebuild index 43183040..e42f4b42 100644 --- a/games-util/dfhack/dfhack-9999.ebuild +++ b/games-util/dfhack/dfhack-9999.ebuild @@ -3,24 +3,32 @@ # $Header: $ EAPI=5 - inherit base eutils versionator multilib git-2 cmake-utils games -if [[ ${PV} == "9999" ]]; then - MY_PV="0.34.11-r2" +if [[ ${PV} == 9999 ]]; then + MY_PV="0.34.11-r3" else - MY_PV="$(replace_version_separator 3 '-r')" + MY_PV="$(replace_version_separator 3 '-r' \ + $(get_version_component_range -4))" fi -MY_P="${PN}-${MY_PV}" +MY_P=${PN}-${MY_PV} df_PV="34.11" DESCRIPTION="Memory hacking library for Dwarf Fortress and a set of tools that use it" HOMEPAGE="https://github.com/peterix/dfhack" -EGIT_HAS_SUBMODULES="yes" EGIT_REPO_URI="git://github.com/peterix/dfhack.git" -if [[ ! ${PV} == "9999" ]]; then - EGIT_COMMIT="${MY_PV}" +EGIT_HAS_SUBMODULES=yes + +if [[ ${PV} == 9999 ]]; then + KEYWORDS= +else + if [[ $(get_version_component_count) -le 4 ]]; then + EGIT_COMMIT=${MY_PV} + else + : + fi + KEYWORDS="~amd64" fi CMAKE_MIN_VERSION=2.8.9 @@ -28,7 +36,6 @@ CMAKE_REMOVE_MODULES_LIST="FindCurses FindDoxygen CMakeVS10FindMake" LICENSE="ZLIB MIT BSD-2" SLOT="0" -KEYWORDS="~amd64" IUSE="api dfusion doc egg isoworld minimal ssense" HDEPEND=" diff --git a/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/01-compile-static-libraries-as.patch b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/01-compile-static-libraries-as.patch new file mode 100644 index 00000000..2166a50a --- /dev/null +++ b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/01-compile-static-libraries-as.patch @@ -0,0 +1,65 @@ +Compile static libraries as PIC. + +From: eroen <eroen@occam.eroen.eu> + +Otherwise, we get position dependent textrels in the shared libraries +that link against them, which is slightly bad for performance (and very +bad for portability). + +Cross-platform support for handling this was added in cmake 2.8.9. +--- + CMakeLists.txt | 2 +- + depends/md5/CMakeLists.txt | 3 ++- + depends/tinyxml/CMakeLists.txt | 3 ++- + depends/tthread/CMakeLists.txt | 3 ++- + 4 files changed, 7 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c7c84e8..abff6a8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -11,7 +11,7 @@ else(CMAKE_CONFIGURATION_TYPES) + endif(CMAKE_CONFIGURATION_TYPES) + + ## some generic CMake magic +-cmake_minimum_required(VERSION 2.8 FATAL_ERROR) ++cmake_minimum_required(VERSION 2.8.9 FATAL_ERROR) + project(dfhack) + + if(MSVC) +diff --git a/depends/md5/CMakeLists.txt b/depends/md5/CMakeLists.txt +index 69e0cf0..df14e3c 100644 +--- a/depends/md5/CMakeLists.txt ++++ b/depends/md5/CMakeLists.txt +@@ -1,3 +1,4 @@ + project(dfhack-md5) + ADD_LIBRARY(dfhack-md5 STATIC EXCLUDE_FROM_ALL md5.cpp md5wrapper.cpp) +-IDE_FOLDER(dfhack-md5 "Depends") +\ No newline at end of file ++set_target_properties(dfhack-md5 PROPERTIES POSITION_INDEPENDENT_CODE True) ++IDE_FOLDER(dfhack-md5 "Depends") +diff --git a/depends/tinyxml/CMakeLists.txt b/depends/tinyxml/CMakeLists.txt +index 7d92492..f97f4bc 100644 +--- a/depends/tinyxml/CMakeLists.txt ++++ b/depends/tinyxml/CMakeLists.txt +@@ -1,3 +1,4 @@ + project(dfhack-tinyxml) + ADD_LIBRARY(dfhack-tinyxml STATIC EXCLUDE_FROM_ALL tinystr.cpp tinyxml.cpp tinyxmlerror.cpp tinyxmlparser.cpp) +-IDE_FOLDER(dfhack-tinyxml "Depends") +\ No newline at end of file ++set_target_properties(dfhack-tinyxml PROPERTIES POSITION_INDEPENDENT_CODE True) ++IDE_FOLDER(dfhack-tinyxml "Depends") +diff --git a/depends/tthread/CMakeLists.txt b/depends/tthread/CMakeLists.txt +index d34c19c..2757a6e 100644 +--- a/depends/tthread/CMakeLists.txt ++++ b/depends/tthread/CMakeLists.txt +@@ -1,6 +1,7 @@ + PROJECT(dfhack-tinythread) + ADD_LIBRARY(dfhack-tinythread STATIC EXCLUDE_FROM_ALL tinythread.cpp) ++set_target_properties(dfhack-tinythread PROPERTIES POSITION_INDEPENDENT_CODE True) + if(UNIX) + target_link_libraries(dfhack-tinythread pthread) + endif() +-IDE_FOLDER(dfhack-tinythread "Depends") +\ No newline at end of file ++IDE_FOLDER(dfhack-tinythread "Depends") diff --git a/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/02-drop-strange-build-options.patch b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/02-drop-strange-build-options.patch new file mode 100644 index 00000000..cedac0f2 --- /dev/null +++ b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/02-drop-strange-build-options.patch @@ -0,0 +1,52 @@ +drop strange build options + +From: eroen <eroen@occam.eroen.eu> + + +--- + CMakeLists.txt | 4 ++-- + depends/lua/CMakeLists.txt | 2 +- + library/CMakeLists.txt | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index abff6a8..194eec7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -105,8 +105,8 @@ OPTION(BUILD_PLUGINS "Build the plugins." ON) + IF(UNIX) + add_definitions(-DLINUX_BUILD) + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g -Wall -Wno-unused-variable") +- SET(CMAKE_CXX_FLAGS "-fvisibility=hidden -m32 -march=i686 -mtune=generic -std=c++0x") +- SET(CMAKE_C_FLAGS "-fvisibility=hidden -m32 -march=i686 -mtune=generic") ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -std=c++0x") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden") + ELSEIF(MSVC) + # for msvc, tell it to always use 8-byte pointers to member functions to avoid confusion + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /vmg /vmm /MP") +diff --git a/depends/lua/CMakeLists.txt b/depends/lua/CMakeLists.txt +index b77bce6..e39eb04 100644 +--- a/depends/lua/CMakeLists.txt ++++ b/depends/lua/CMakeLists.txt +@@ -12,7 +12,7 @@ ENDIF() + + IF(UNIX) + add_definitions(-DLINUX_BUILD) +- SET(CMAKE_C_FLAGS "-m32") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + ENDIF() + + SET (HDR_LIBLUA +diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt +index 64dafd5..2538360 100644 +--- a/library/CMakeLists.txt ++++ b/library/CMakeLists.txt +@@ -216,7 +216,7 @@ ADD_CUSTOM_TARGET(generate_headers DEPENDS ${dfapi_SOURCE_DIR}/include/df/codege + IF(UNIX) + # Don't produce debug info for generated stubs + SET_SOURCE_FILES_PROPERTIES(DataStatics.cpp DataStaticsCtor.cpp DataStaticsFields.cpp +- PROPERTIES COMPILE_FLAGS "-g0 -O1") ++ PROPERTIES COMPILE_FLAGS "-g0") + ELSE(WIN32) + SET_SOURCE_FILES_PROPERTIES(DataStatics.cpp DataStaticsCtor.cpp DataStaticsFields.cpp + PROPERTIES COMPILE_FLAGS "/O1 /bigobj") diff --git a/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/03-configurable-install-paths.patch b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/03-configurable-install-paths.patch new file mode 100644 index 00000000..35c957e2 --- /dev/null +++ b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/03-configurable-install-paths.patch @@ -0,0 +1,96 @@ +configurable install paths + +From: eroen <eroen@occam.eroen.eu> + + +--- + CMakeLists.txt | 20 +++++++++++--------- + library/CMakeLists.txt | 6 +++--- + plugins/ruby/CMakeLists.txt | 4 ++-- + 3 files changed, 16 insertions(+), 14 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 194eec7..4f196c9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -68,30 +68,32 @@ add_definitions(-DDFHACK_VERSION="${DFHACK_VERSION}") + # the dfhack libraries will be installed here: + IF(UNIX) + # put the lib into DF/hack +- SET(DFHACK_LIBRARY_DESTINATION hack) +- SET(DFHACK_EGGY_DESTINATION libs) ++ SET(DFHACK_LIBRARY_DESTINATION hack CACHE PATH "DFHACK_LIBRARY_DESTINATION") ++ SET(DFHACK_EGGY_DESTINATION libs CACHE PATH "DFHACK_EGGY_DESTINATION") + ELSE() + # windows is crap, therefore we can't do nice things with it. leave the libs on a nasty pile... + SET(DFHACK_LIBRARY_DESTINATION .) + SET(DFHACK_EGGY_DESTINATION .) + ENDIF() + # external tools will be installed here: +-SET(DFHACK_BINARY_DESTINATION .) ++SET(DFHACK_BINARY_DESTINATION . CACHE PATH "DFHACK_BINARY_DESTINATION") + # dfhack data goes here: +-SET(DFHACK_DATA_DESTINATION hack) ++SET(DFHACK_DATA_DESTINATION hack CACHE PATH "DFHACK_DATA_DESTINATION") + # plugin libs go here: +-SET(DFHACK_PLUGIN_DESTINATION hack/plugins) ++SET(DFHACK_PLUGIN_DESTINATION hack/plugins CACHE PATH "DFHACK_PLUGIN_DESTINATION") + # dfhack header files go here: +-SET(DFHACK_INCLUDES_DESTINATION hack/include) ++SET(DFHACK_INCLUDES_DESTINATION hack/include CACHE PATH "DFHACK_INCLUDES_DESTINATION") + # dfhack lua files go here: +-SET(DFHACK_LUA_DESTINATION hack/lua) ++SET(DFHACK_LUA_DESTINATION hack/lua CACHE PATH "DFHACK_LUA_DESTINATION") ++# dfhack ruby files go here: ++SET(DFHACK_RUBY_DESTINATION hack/ruby CACHE PATH "DFHACK_RUBY_DESTINATION") + # the windows .lib file goes here: + SET(DFHACK_DEVLIB_DESTINATION hack) + + # user documentation goes here: +-SET(DFHACK_USERDOC_DESTINATION hack) ++SET(DFHACK_USERDOC_DESTINATION hack CACHE PATH "DFHACK_USERDOC_DESTINATION") + # developer documentation goes here: +-SET(DFHACK_DEVDOC_DESTINATION hack) ++SET(DFHACK_DEVDOC_DESTINATION hack CACHE PATH "DFHACK_DEVDOC_DESTINATION") + + ## some options for the user/developer to play with + OPTION(BUILD_LIBRARY "Build the library that goes into DF." ON) +diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt +index 2538360..18635ed 100644 +--- a/library/CMakeLists.txt ++++ b/library/CMakeLists.txt +@@ -302,9 +302,9 @@ IF(UNIX) + else() + # On linux, copy our version of the df launch script which sets LD_PRELOAD + install(PROGRAMS ${dfhack_SOURCE_DIR}/package/linux/dfhack +- DESTINATION .) ++ DESTINATION ${DFHACK_BINARY_DESTINATION}) + install(PROGRAMS ${dfhack_SOURCE_DIR}/package/linux/dfhack-run +- DESTINATION .) ++ DESTINATION ${DFHACK_BINARY_DESTINATION}) + endif() + ELSE() + if(NOT BUILD_EGGY) +@@ -330,7 +330,7 @@ install(FILES xml/symbols.xml + DESTINATION ${DFHACK_DATA_DESTINATION}) #linux: share/dfhack + #install the example autoexec file + install(FILES ../dfhack.init-example +- DESTINATION ${DFHACK_BINARY_DESTINATION}) ++ DESTINATION ${DFHACK_USERDOC_DESTINATION}) + + install(TARGETS dfhack-run dfhack-client binpatch + LIBRARY DESTINATION ${DFHACK_LIBRARY_DESTINATION} +diff --git a/plugins/ruby/CMakeLists.txt b/plugins/ruby/CMakeLists.txt +index 9d821f9..e6d3eff 100644 +--- a/plugins/ruby/CMakeLists.txt ++++ b/plugins/ruby/CMakeLists.txt +@@ -35,7 +35,7 @@ ADD_DEPENDENCIES(ruby ruby-autogen-rb) + INSTALL(FILES ${RUBYLIB} DESTINATION ${DFHACK_LIBRARY_DESTINATION}) + + INSTALL(DIRECTORY . +- DESTINATION hack/ruby ++ DESTINATION ${DFHACK_RUBY_DESTINATION} + FILES_MATCHING PATTERN "*.rb") + +-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ruby-autogen.rb DESTINATION hack/ruby) ++INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ruby-autogen.rb DESTINATION ${DFHACK_RUBY_DESTINATION}) diff --git a/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/04-compile-time-configurable.patch b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/04-compile-time-configurable.patch new file mode 100644 index 00000000..1c12d3b0 --- /dev/null +++ b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/04-compile-time-configurable.patch @@ -0,0 +1,142 @@ +compile-time configurable paths + +From: eroen <eroen@occam.eroen.eu> + +./hack/symbols.xml +- Breaks startup + +./hack/lua +./hack/ruby +- Make noise on startup +--- + CMakeLists.txt | 4 ++++ + depends/lua/include/luaconf.h | 8 ++++++++ + library/Core.cpp | 6 +++++- + plugins/ruby/ruby.cpp | 8 ++++++++ + plugins/sort.cpp | 8 ++++++++ + 5 files changed, 33 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4f196c9..77a8d97 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -69,6 +69,7 @@ add_definitions(-DDFHACK_VERSION="${DFHACK_VERSION}") + IF(UNIX) + # put the lib into DF/hack + SET(DFHACK_LIBRARY_DESTINATION hack CACHE PATH "DFHACK_LIBRARY_DESTINATION") ++ ADD_DEFINITIONS(-DDFHACK_LIBRARY_DESTINATION="${DFHACK_LIBRARY_DESTINATION}") + SET(DFHACK_EGGY_DESTINATION libs CACHE PATH "DFHACK_EGGY_DESTINATION") + ELSE() + # windows is crap, therefore we can't do nice things with it. leave the libs on a nasty pile... +@@ -79,14 +80,17 @@ ENDIF() + SET(DFHACK_BINARY_DESTINATION . CACHE PATH "DFHACK_BINARY_DESTINATION") + # dfhack data goes here: + SET(DFHACK_DATA_DESTINATION hack CACHE PATH "DFHACK_DATA_DESTINATION") ++ADD_DEFINITIONS(-DDFHACK_DATA_DESTINATION="${DFHACK_DATA_DESTINATION}") + # plugin libs go here: + SET(DFHACK_PLUGIN_DESTINATION hack/plugins CACHE PATH "DFHACK_PLUGIN_DESTINATION") + # dfhack header files go here: + SET(DFHACK_INCLUDES_DESTINATION hack/include CACHE PATH "DFHACK_INCLUDES_DESTINATION") + # dfhack lua files go here: + SET(DFHACK_LUA_DESTINATION hack/lua CACHE PATH "DFHACK_LUA_DESTINATION") ++ADD_DEFINITIONS(-DDFHACK_LUA_DESTINATION="${DFHACK_LUA_DESTINATION}") + # dfhack ruby files go here: + SET(DFHACK_RUBY_DESTINATION hack/ruby CACHE PATH "DFHACK_RUBY_DESTINATION") ++ADD_DEFINITIONS(-DDFHACK_RUBY_DESTINATION="${DFHACK_RUBY_DESTINATION}") + # the windows .lib file goes here: + SET(DFHACK_DEVLIB_DESTINATION hack) + +diff --git a/depends/lua/include/luaconf.h b/depends/lua/include/luaconf.h +index 766752f..c73e094 100644 +--- a/depends/lua/include/luaconf.h ++++ b/depends/lua/include/luaconf.h +@@ -98,8 +98,16 @@ + + #else /* }{ */ + ++#ifdef DFHACK_LUA_DESTINATION ++#define LUA_LDIR DFHACK_LUA_DESTINATION "/" ++#else + #define LUA_LDIR "./hack/lua/" ++#endif ++#ifdef DFHACK_DATA_DESTINATION ++#define LUA_CDIR DFHACK_DATA_DESTINATION "/" ++#else + #define LUA_CDIR "./hack/" ++#endif + #define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" "./?.lua" + #define LUA_CPATH_DEFAULT \ +diff --git a/library/Core.cpp b/library/Core.cpp +index 2021a8b..e72decd 100644 +--- a/library/Core.cpp ++++ b/library/Core.cpp +@@ -879,7 +879,11 @@ bool Core::Init() + + // find out what we are... + #ifdef LINUX_BUILD +- const char * path = "hack/symbols.xml"; ++ #ifdef DFHACK_DATA_DESTINATION ++ const char * path = DFHACK_DATA_DESTINATION "/symbols.xml"; ++ #else ++ const char * path = "hack/symbols.xml"; ++ #endif + #else + const char * path = "hack\\symbols.xml"; + #endif +diff --git a/plugins/ruby/ruby.cpp b/plugins/ruby/ruby.cpp +index 69b9b15..534ad9f 100644 +--- a/plugins/ruby/ruby.cpp ++++ b/plugins/ruby/ruby.cpp +@@ -315,7 +315,11 @@ static int df_loadruby(void) + #elif defined(__APPLE__) + "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/libruby.1.dylib"; + #else ++ #ifdef DFHACK_LIBRARY_DESTINATION ++ DFHACK_LIBRARY_DESTINATION "/libruby.so"; ++ #else + "hack/libruby.so"; ++ #endif + #endif + + libruby_handle = OpenPlugin(libpath); +@@ -418,7 +422,11 @@ static void df_rubythread(void *p) + + // load the default ruby-level definitions in the background + state=0; ++ #ifdef DFHACK_RUBY_DESTINATION ++ rb_eval_string_protect("require '" DFHACK_RUBY_DESTINATION "/ruby'", &state); ++ #else + rb_eval_string_protect("require './hack/ruby/ruby'", &state); ++ #endif + if (state) + dump_rb_error(); + +diff --git a/plugins/sort.cpp b/plugins/sort.cpp +index 95ae109..510e288 100644 +--- a/plugins/sort.cpp ++++ b/plugins/sort.cpp +@@ -64,7 +64,11 @@ DFhackCExport command_result plugin_init (color_ostream &out, std::vector <Plugi + " The '>' prefix reverses the sort order for defined values.\n" + " Unit order examples:\n" + " name, age, arrival, squad, squad_position, profession\n" ++ #ifdef DFHACK_LUA_DESTINATION ++ "The orderings are defined in " DFHACK_LUA_DESTINATION "/plugins/sort/*.lua\n" ++ #else + "The orderings are defined in hack/lua/plugins/sort/*.lua\n" ++ #endif + )); + commands.push_back(PluginCommand( + "sort-items", "Sort the visible item list.", sort_items, item_list_hotkey, +@@ -74,7 +78,11 @@ DFhackCExport command_result plugin_init (color_ostream &out, std::vector <Plugi + " The '>' prefix reverses the sort order for defined values.\n" + " Item order examples:\n" + " description, material, wear, type, quality\n" ++ #ifdef DFHACK_LUA_DESTINATION ++ "The orderings are defined in " DFHACK_LUA_DESTINATION "/plugins/sort/*.lua\n" ++ #else + "The orderings are defined in hack/lua/plugins/sort/*.lua\n" ++ #endif + )); + return CR_OK; + } diff --git a/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/05-compile-time-configurable-0.patch b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/05-compile-time-configurable-0.patch new file mode 100644 index 00000000..c35d8e37 --- /dev/null +++ b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/05-compile-time-configurable-0.patch @@ -0,0 +1,54 @@ +compile-time configurable paths + +From: eroen <eroen@occam.eroen.eu> + +hack/ +./ +--- + library/Core.cpp | 8 ++++++++ + plugins/zone.cpp | 2 ++ + 2 files changed, 10 insertions(+) + +diff --git a/library/Core.cpp b/library/Core.cpp +index e72decd..89130a9 100644 +--- a/library/Core.cpp ++++ b/library/Core.cpp +@@ -317,7 +317,11 @@ static command_result runRubyScript(color_ostream &out, PluginManager *plug_mgr, + rbcmd += "'" + args[i] + "', "; + rbcmd += "]\n"; + ++#ifdef DFHACK_DATA_DESTINATION ++ rbcmd += "catch(:script_finished) { load '" DFHACK_DATA_DESTINATION "/scripts/" + name + ".rb' }"; ++#else + rbcmd += "catch(:script_finished) { load './hack/scripts/" + name + ".rb' }"; ++#endif + + return plug_mgr->eval_ruby(out, rbcmd.c_str()); + } +@@ -862,7 +866,11 @@ void Core::fatal (std::string output, bool deactivate) + std::string Core::getHackPath() + { + #ifdef LINUX_BUILD ++ #ifdef DFHACK_DATA_DESTINATION ++ return DFHACK_DATA_DESTINATION "/"; ++ #else + return p->getPath() + "/hack/"; ++ #endif + #else + return p->getPath() + "\\hack\\"; + #endif +diff --git a/plugins/zone.cpp b/plugins/zone.cpp +index 5649da2..e89419a 100644 +--- a/plugins/zone.cpp ++++ b/plugins/zone.cpp +@@ -3177,8 +3177,10 @@ command_result df_autobutcher(color_ostream &out, vector <string> & parameters) + { + string run = "dfhack-run autobutcher "; + #ifdef LINUX_BUILD ++#ifndef DFHACK_DATA_DESTINATION + run = "./dfhack-run autobutcher "; + #endif ++#endif + // force creation of config + out << run << "start" << endl; + diff --git a/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/06-compile-time-configurable-1.patch b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/06-compile-time-configurable-1.patch new file mode 100644 index 00000000..084059b7 --- /dev/null +++ b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/06-compile-time-configurable-1.patch @@ -0,0 +1,104 @@ +compile-time configurable state directory + +From: eroen <eroen@occam.eroen.eu> + +It'd be nice to write stuff somewhere writeable. +--- + CMakeLists.txt | 4 ++++ + library/Console-linux.cpp | 4 ++++ + library/Core.cpp | 8 ++++++++ + library/Hooks-egg.cpp | 4 ++++ + library/Hooks-linux.cpp | 4 ++++ + 5 files changed, 24 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 77a8d97..73a4ac1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -64,6 +64,10 @@ SET(DFHACK_RELEASE "r3" CACHE STRING "Current release revision.") + set(DFHACK_VERSION "${DF_VERSION}-${DFHACK_RELEASE}") + add_definitions(-DDFHACK_VERSION="${DFHACK_VERSION}") + ++## where persistent things are written (and read) at runtime ++SET(DFHACK_STATEDIR "." CACHE PATH "DFHACK_STATEDIR") ++ADD_DEFINITIONS(-DDFHACK_STATEDIR="${DFHACK_STATEDIR}") ++ + ## where to install things (after the build is done, classic 'make install' or package structure) + # the dfhack libraries will be installed here: + IF(UNIX) +diff --git a/library/Console-linux.cpp b/library/Console-linux.cpp +index f32fa1c..be8d13b 100644 +--- a/library/Console-linux.cpp ++++ b/library/Console-linux.cpp +@@ -658,7 +658,11 @@ bool Console::init(bool sharing) + inited = false; + return false; + } ++ #ifdef DFHACK_STATEDIR ++ if (!freopen(DFHACK_STATEDIR "/stdout.log", "w", stdout)) ++ #else + if (!freopen("stdout.log", "w", stdout)) ++ #endif + ; + d = new Private(); + // make our own weird streams so our IO isn't redirected +diff --git a/library/Core.cpp b/library/Core.cpp +index 89130a9..978fccd 100644 +--- a/library/Core.cpp ++++ b/library/Core.cpp +@@ -769,7 +769,11 @@ void fIOthread(void * iodata) + PluginManager * plug_mgr = ((IODATA*) iodata)->plug_mgr; + + CommandHistory main_history; ++ #ifdef DFHACK_STATEDIR ++ main_history.load(DFHACK_STATEDIR "/dfhack.history"); ++ #else + main_history.load("dfhack.history"); ++ #endif + + Console & con = core->getConsole(); + if(plug_mgr == 0 || core == 0) +@@ -802,7 +806,11 @@ void fIOthread(void * iodata) + { + // a proper, non-empty command was entered + main_history.add(command); ++ #ifdef DFHACK_STATEDIR ++ main_history.save(DFHACK_STATEDIR "/dfhack.history"); ++ #else + main_history.save("dfhack.history"); ++ #endif + } + + auto rv = core->runCommand(con, command); +diff --git a/library/Hooks-egg.cpp b/library/Hooks-egg.cpp +index c98cf5d..90df6af 100644 +--- a/library/Hooks-egg.cpp ++++ b/library/Hooks-egg.cpp +@@ -37,7 +37,11 @@ distribution. + DFhackCExport int egg_init(void) + { + // reroute stderr ++ #ifdef DFHACK_STATEDIR ++ freopen(DFHACK_STATEDIR "/stderr.log", "w", stderr); ++ #else + freopen("stderr.log", "w", stderr); ++ #endif + // we don't reroute stdout until we figure out if this should be done at all + // See: Console-linux.cpp + fprintf(stderr,"dfhack: hooking successful\n"); +diff --git a/library/Hooks-linux.cpp b/library/Hooks-linux.cpp +index 31c0323..42d86f3 100644 +--- a/library/Hooks-linux.cpp ++++ b/library/Hooks-linux.cpp +@@ -114,7 +114,11 @@ static int (*_SDL_Init)(uint32_t flags) = 0; + DFhackCExport int SDL_Init(uint32_t flags) + { + // reroute stderr ++ #ifdef DFHACK_STATEDIR ++ freopen(DFHACK_STATEDIR "/stderr.log", "w", stderr); ++ #else + freopen("stderr.log", "w", stderr); ++ #endif + // we don't reroute stdout until we figure out if this should be done at all + // See: Console-linux.cpp + diff --git a/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/07-startup-scripts-configurable.patch b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/07-startup-scripts-configurable.patch new file mode 100644 index 00000000..28fbf71f --- /dev/null +++ b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/07-startup-scripts-configurable.patch @@ -0,0 +1,288 @@ +startup scripts - configurable paths + +From: eroen <eroen@occam.eroen.eu> + + +--- + CMakeLists.txt | 3 ++ + library/CMakeLists.txt | 13 +++++++ + package/linux/dfhack | 79 ------------------------------------------- + package/linux/dfhack-run | 8 ---- + package/linux/dfhack-run.in | 8 ++++ + package/linux/dfhack.in | 79 +++++++++++++++++++++++++++++++++++++++++++ + package/linux/egghack | 7 ---- + package/linux/egghack.in | 7 ++++ + 8 files changed, 110 insertions(+), 94 deletions(-) + delete mode 100755 package/linux/dfhack + delete mode 100755 package/linux/dfhack-run + create mode 100755 package/linux/dfhack-run.in + create mode 100755 package/linux/dfhack.in + delete mode 100755 package/linux/egghack + create mode 100755 package/linux/egghack.in + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 73a4ac1..031a2cd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -68,6 +68,9 @@ add_definitions(-DDFHACK_VERSION="${DFHACK_VERSION}") + SET(DFHACK_STATEDIR "." CACHE PATH "DFHACK_STATEDIR") + ADD_DEFINITIONS(-DDFHACK_STATEDIR="${DFHACK_STATEDIR}") + ++## what to call to start DF, configured into startup scripts ++SET(DF_EXECUTABLE "./libs/Dwarf_Fortress" CACHE STRING "DF_EXECUTABLE") ++ + ## where to install things (after the build is done, classic 'make install' or package structure) + # the dfhack libraries will be installed here: + IF(UNIX) +diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt +index 18635ed..11a17ff 100644 +--- a/library/CMakeLists.txt ++++ b/library/CMakeLists.txt +@@ -301,10 +301,23 @@ IF(UNIX) + DESTINATION .) + else() + # On linux, copy our version of the df launch script which sets LD_PRELOAD ++ configure_file(${dfhack_SOURCE_DIR}/package/linux/dfhack.in ++ ${dfhack_SOURCE_DIR}/package/linux/dfhack ++ @ONLY) ++ configure_file(${dfhack_SOURCE_DIR}/package/linux/dfhack-run.in ++ ${dfhack_SOURCE_DIR}/package/linux/dfhack-run ++ @ONLY) ++ configure_file(${dfhack_SOURCE_DIR}/package/linux/egghack.in ++ ${dfhack_SOURCE_DIR}/package/linux/egghack ++ @ONLY) + install(PROGRAMS ${dfhack_SOURCE_DIR}/package/linux/dfhack + DESTINATION ${DFHACK_BINARY_DESTINATION}) + install(PROGRAMS ${dfhack_SOURCE_DIR}/package/linux/dfhack-run + DESTINATION ${DFHACK_BINARY_DESTINATION}) ++ if(BUILD_EGGY) ++ install(PROGRAMS ${dfhack_SOURCE_DIR}/package/linux/egghack ++ DESTINATION ${DFHACK_BINARY_DESTINATION}) ++ endif() + endif() + ELSE() + if(NOT BUILD_EGGY) +diff --git a/package/linux/dfhack b/package/linux/dfhack +deleted file mode 100755 +index 5ddd2a1..0000000 +--- a/package/linux/dfhack ++++ /dev/null +@@ -1,79 +0,0 @@ +-#!/bin/sh +- +-# NOTE: This is dfhack's modification of the normal invocation script, +-# changed to properly set LD_PRELOAD so as to run DFHACK. +-# +-# You can run DF under gdb by passing -g or --gdb as the first argument. +-# +-# If the file ".dfhackrc" exists in the DF directory or your home directory +-# it will be sourced by this script, to let you set environmental variables. +-# If it exists in both places it will first source the one in your home +-# directory, then the on in the game directory. +-# +-# Shell variables .dfhackrc can set to affect this script: +-# DF_GDB_OPTS: Options to pass to gdb, if it's being run +-# DF_VALGRIND_OPTS: Options to pass to valgrind, if it's being run +-# DF_HELGRIND_OPTS: Options to pass to helgrind, if it's being run +-# DF_POST_CMD: Shell command to be run at very end of script +- +-DF_DIR=$(dirname "$0") +-cd "${DF_DIR}" +-export SDL_DISABLE_LOCK_KEYS=1 # Work around for bug in Debian/Ubuntu SDL patch. +-#export SDL_VIDEO_CENTERED=1 # Centre the screen. Messes up resizing. +- +-# User config files +-RC=".dfhackrc" +- +-if [ -r "$HOME/$RC" ]; then +- . $HOME/$RC +-fi +-if [ -r "./$RC" ]; then +- . "./$RC" +-fi +- +-# Save current terminal settings +-old_tty_settings=$(stty -g) +- +-# Now run +- +-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"./hack/libs":"./hack" +- +-case "$1" in +- -g | --gdb) +- shift +- echo "set environment LD_PRELOAD=./hack/libdfhack.so" > gdbcmd.tmp +- echo "set environment MALLOC_PERTURB_=45" >> gdbcmd.tmp +- gdb $DF_GDB_OPTS -x gdbcmd.tmp ./libs/Dwarf_Fortress "$@" +- rm gdbcmd.tmp +- ret=$? +- ;; +- -h | --helgrind) +- shift +- LD_PRELOAD=./hack/libdfhack.so setarch i386 -R valgrind $DF_HELGRIND_OPTS --tool=helgrind --log-file=helgrind.log ./libs/Dwarf_Fortress "$@" +- ret=$? +- ;; +- -v | --valgrind) +- shift +- LD_PRELOAD=./hack/libdfhack.so setarch i386 -R valgrind $DF_VALGRIND_OPTS --log-file=valgrind.log ./libs/Dwarf_Fortress "$@" +- ret=$? +- ;; +- -c | --callgrind) +- shift +- LD_PRELOAD=./hack/libdfhack.so setarch i386 -R valgrind $DF_CALLGRIND_OPTS --tool=callgrind --separate-threads=yes --dump-instr=yes --instr-atstart=no --log-file=callgrind.log ./libs/Dwarf_Fortress "$@" +- ret=$? +- ;; +- *) +- setarch i386 -R env LD_PRELOAD=./hack/libdfhack.so ./libs/Dwarf_Fortress "$@" +- ret=$? +- ;; +-esac +- +-# Restore previous terminal settings +-stty "$old_tty_settings" +-echo -e "\n" +- +-if [ -n "$DF_POST_CMD" ]; then +- eval $DF_POST_CMD +-fi +- +-exit $ret +diff --git a/package/linux/dfhack-run b/package/linux/dfhack-run +deleted file mode 100755 +index 55001cf..0000000 +--- a/package/linux/dfhack-run ++++ /dev/null +@@ -1,8 +0,0 @@ +-#!/bin/sh +- +-DF_DIR=$(dirname "$0") +-cd "${DF_DIR}" +- +-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"./hack/libs":"./hack" +- +-exec hack/dfhack-run "$@" +diff --git a/package/linux/dfhack-run.in b/package/linux/dfhack-run.in +new file mode 100755 +index 0000000..f013053 +--- /dev/null ++++ b/package/linux/dfhack-run.in +@@ -0,0 +1,8 @@ ++#!/bin/sh ++ ++DF_DIR=$(dirname "$0") ++cd "${DF_DIR}" ++ ++export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"@DFHACK_LIBRARY_DESTINATION@"/libs:"@DFHACK_LIBRARY_DESTINATION@" ++ ++exec "@DFHACK_LIBRARY_DESTINATION@"/dfhack-run "${@}" +diff --git a/package/linux/dfhack.in b/package/linux/dfhack.in +new file mode 100755 +index 0000000..a969708 +--- /dev/null ++++ b/package/linux/dfhack.in +@@ -0,0 +1,79 @@ ++#!/bin/sh ++ ++# NOTE: This is dfhack's modification of the normal invocation script, ++# changed to properly set LD_PRELOAD so as to run DFHACK. ++# ++# You can run DF under gdb by passing -g or --gdb as the first argument. ++# ++# If the file ".dfhackrc" exists in the DF directory or your home directory ++# it will be sourced by this script, to let you set environmental variables. ++# If it exists in both places it will first source the one in your home ++# directory, then the on in the game directory. ++# ++# Shell variables .dfhackrc can set to affect this script: ++# DF_GDB_OPTS: Options to pass to gdb, if it's being run ++# DF_VALGRIND_OPTS: Options to pass to valgrind, if it's being run ++# DF_HELGRIND_OPTS: Options to pass to helgrind, if it's being run ++# DF_POST_CMD: Shell command to be run at very end of script ++ ++DF_DIR=$(dirname "$0") ++cd "${DF_DIR}" ++export SDL_DISABLE_LOCK_KEYS=1 # Work around for bug in Debian/Ubuntu SDL patch. ++#export SDL_VIDEO_CENTERED=1 # Centre the screen. Messes up resizing. ++ ++# User config files ++RC=".dfhackrc" ++ ++if [ -r "$HOME/$RC" ]; then ++ . $HOME/$RC ++fi ++if [ -r "./$RC" ]; then ++ . "./$RC" ++fi ++ ++# Save current terminal settings ++old_tty_settings=$(stty -g) ++ ++# Now run ++ ++export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"@DFHACK_LIBRARY_DESTINATION@"/libs:"@DFHACK_LIBRARY_DESTINATION@" ++ ++case "$1" in ++ -g | --gdb) ++ shift ++ echo "set environment LD_PRELOAD=@DFHACK_LIBRARY_DESTINATION@/libdfhack.so" > gdbcmd.tmp ++ echo "set environment MALLOC_PERTURB_=45" >> gdbcmd.tmp ++ gdb ${DF_GDB_OPTS} -x gdbcmd.tmp "@DF_EXECUTABLE@" "${@}" ++ rm gdbcmd.tmp ++ ret=$? ++ ;; ++ -h | --helgrind) ++ shift ++ LD_PRELOAD="@DFHACK_LIBRARY_DESTINATION@"/libdfhack.so setarch i386 -R valgrind ${DF_HELGRIND_OPTS} --tool=helgrind --log-file=helgrind.log "@DF_EXECUTABLE@" "${@}" ++ ret=$? ++ ;; ++ -v | --valgrind) ++ shift ++ LD_PRELOAD="@DFHACK_LIBRARY_DESTINATION@"/libdfhack.so setarch i386 -R valgrind ${DF_VALGRIND_OPTS} --log-file=valgrind.log "@DF_EXECUTABLE@" "${@}" ++ ret=$? ++ ;; ++ -c | --callgrind) ++ shift ++ LD_PRELOAD="@DFHACK_LIBRARY_DESTINATION@"/libdfhack.so setarch i386 -R valgrind ${DF_CALLGRIND_OPTS} --tool=callgrind --separate-threads=yes --dump-instr=yes --instr-atstart=no --log-file=callgrind.log "@DF_EXECUTABLE@" "${@}" ++ ret=$? ++ ;; ++ *) ++ setarch i386 -R env LD_PRELOAD="@DFHACK_LIBRARY_DESTINATION@"/libdfhack.so "@DF_EXECUTABLE@" "${@}" ++ ret=$? ++ ;; ++esac ++ ++# Restore previous terminal settings ++stty "$old_tty_settings" ++echo -e "\n" ++ ++if [ -n "$DF_POST_CMD" ]; then ++ eval $DF_POST_CMD ++fi ++ ++exit $ret +diff --git a/package/linux/egghack b/package/linux/egghack +deleted file mode 100755 +index 5b3b03b..0000000 +--- a/package/linux/egghack ++++ /dev/null +@@ -1,7 +0,0 @@ +-#!/bin/sh +-DF_DIR=$(dirname "$0") +-cd "${DF_DIR}" +-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"./hack/libs":"./hack" +-export SDL_DISABLE_LOCK_KEYS=1 # Work around for bug in Debian/Ubuntu SDL patch. +-#export SDL_VIDEO_CENTERED=1 # Centre the screen. Messes up resizing. +-./libs/Dwarf_Fortress $* # Go, go, go! :) +diff --git a/package/linux/egghack.in b/package/linux/egghack.in +new file mode 100755 +index 0000000..4bf4c9d +--- /dev/null ++++ b/package/linux/egghack.in +@@ -0,0 +1,7 @@ ++#!/bin/sh ++DF_DIR=$(dirname "$0") ++cd "${DF_DIR}" ++export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"@DFHACK_LIBRARY_DESTINATION@"/libs:"@DFHACK_LIBRARY_DESTINATION@" ++export SDL_DISABLE_LOCK_KEYS=1 # Work around for bug in Debian/Ubuntu SDL patch. ++#export SDL_VIDEO_CENTERED=1 # Centre the screen. Messes up resizing. ++"@DF_EXECUTABLE@" ${*} # Go, go, go! :) diff --git a/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/08-ruby-plugin-configurable-paths.patch b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/08-ruby-plugin-configurable-paths.patch new file mode 100644 index 00000000..47531337 --- /dev/null +++ b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/08-ruby-plugin-configurable-paths.patch @@ -0,0 +1,525 @@ +ruby plugin - configurable paths + +From: eroen <eroen@occam.eroen.eu> + + +--- + plugins/ruby/CMakeLists.txt | 4 + + plugins/ruby/ruby.rb | 239 ------------------------------------------- + plugins/ruby/ruby.rb.in | 239 +++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 243 insertions(+), 239 deletions(-) + delete mode 100644 plugins/ruby/ruby.rb + create mode 100644 plugins/ruby/ruby.rb.in + +diff --git a/plugins/ruby/CMakeLists.txt b/plugins/ruby/CMakeLists.txt +index e6d3eff..b282751 100644 +--- a/plugins/ruby/CMakeLists.txt ++++ b/plugins/ruby/CMakeLists.txt +@@ -27,6 +27,8 @@ ADD_CUSTOM_COMMAND( + ) + ADD_CUSTOM_TARGET(ruby-autogen-rb DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ruby-autogen.rb) + ++CONFIGURE_FILE(ruby.rb.in ruby.rb @ONLY) ++ + INCLUDE_DIRECTORIES("${dfhack_SOURCE_DIR}/depends/tthread") + + DFHACK_PLUGIN(ruby ruby.cpp LINK_LIBRARIES dfhack-tinythread) +@@ -34,6 +36,8 @@ ADD_DEPENDENCIES(ruby ruby-autogen-rb) + + INSTALL(FILES ${RUBYLIB} DESTINATION ${DFHACK_LIBRARY_DESTINATION}) + ++INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ruby.rb DESTINATION ${DFHACK_RUBY_DESTINATION}) ++ + INSTALL(DIRECTORY . + DESTINATION ${DFHACK_RUBY_DESTINATION} + FILES_MATCHING PATTERN "*.rb") +diff --git a/plugins/ruby/ruby.rb b/plugins/ruby/ruby.rb +deleted file mode 100644 +index 47924dc..0000000 +--- a/plugins/ruby/ruby.rb ++++ /dev/null +@@ -1,239 +0,0 @@ +-# redefine standard i/o methods to use the dfhack console +-module Kernel +- def puts(*a) +- a.flatten.each { |l| +- DFHack.print_str(l.to_s.chomp + "\n") +- } +- nil +- end +- +- def puts_err(*a) +- a.flatten.each { |l| +- DFHack.print_err(l.to_s.chomp + "\n") +- } +- nil +- end +- +- def p(*a) +- a.each { |e| +- puts_err e.inspect +- } +- nil +- end +-end +- +-module DFHack +- VERSION = version +- +- class OnupdateCallback +- attr_accessor :callback, :timelimit, :minyear, :minyeartick, :description +- def initialize(descr, cb, tl, initdelay=0) +- @description = descr +- @callback = cb +- @ticklimit = tl +- @minyear = (tl ? df.cur_year : 0) +- @minyeartick = (tl ? df.cur_year_tick+initdelay : 0) +- end +- +- # run callback if timedout +- def check_run(year, yeartick, yearlen) +- if @ticklimit +- return unless year > @minyear or (year == @minyear and yeartick >= @minyeartick) +- @minyear = year +- @minyeartick = yeartick + @ticklimit +- if @minyeartick > yearlen +- @minyear += 1 +- @minyeartick -= yearlen +- end +- end +- # t0 = Time.now +- @callback.call +- # dt = Time.now - t0 ; puts "rb cb #@description took #{'%.02f' % dt}s" if dt > 0.1 +- rescue Exception +- df.onupdate_unregister self +- puts_err "onupdate #@description unregistered: #$!", $!.backtrace +- end +- +- def <=>(o) +- [@minyear, @minyeartick] <=> [o.minyear, o.minyeartick] +- end +- end +- +- class << self +- attr_accessor :onupdate_list, :onstatechange_list +- +- # register a callback to be called every gframe or more +- # ex: DFHack.onupdate_register('fastdwarf') { DFHack.world.units[0].counters.job_counter = 0 } +- # if ticklimit is given, do not call unless this much game ticks have passed. Handles advmode time stretching. +- def onupdate_register(descr, ticklimit=nil, initialtickdelay=0, &b) +- raise ArgumentError, 'need a description as 1st arg' unless descr.kind_of?(::String) +- @onupdate_list ||= [] +- @onupdate_list << OnupdateCallback.new(descr, b, ticklimit, initialtickdelay) +- DFHack.onupdate_active = true +- if onext = @onupdate_list.sort.first +- DFHack.onupdate_minyear = onext.minyear +- DFHack.onupdate_minyeartick = onext.minyeartick +- end +- @onupdate_list.last +- end +- +- # delete the callback for onupdate ; use the value returned by onupdate_register or the description +- def onupdate_unregister(b) +- b = @onupdate_list.find { |bb| bb.description == b } if b.kind_of?(String) +- @onupdate_list.delete b +- if @onupdate_list.empty? +- DFHack.onupdate_active = false +- DFHack.onupdate_minyear = DFHack.onupdate_minyeartick = DFHack.onupdate_minyeartickadv = -1 +- end +- end +- +- # same as onupdate_register, but remove the callback once it returns true +- def onupdate_register_once(*a) +- handle = onupdate_register(*a) { +- onupdate_unregister(handle) if yield +- } +- end +- +- TICKS_PER_YEAR = 1200*28*12 +- # this method is called by ruby.cpp if df.onupdate_active is true +- def onupdate +- @onupdate_list ||= [] +- +- y = cur_year +- ytmax = TICKS_PER_YEAR +- if df.gamemode == :ADVENTURE and df.respond_to?(:cur_year_tick_advmode) +- yt = cur_year_tick_advmode +- ytmax *= 144 +- else +- yt = cur_year_tick +- end +- +- @onupdate_list.each { |o| +- o.check_run(y, yt, ytmax) +- } +- +- if onext = @onupdate_list.sort.first +- DFHack.onupdate_minyear = onext.minyear +- if ytmax > TICKS_PER_YEAR +- DFHack.onupdate_minyeartick = -1 +- DFHack.onupdate_minyeartickadv = onext.minyeartick +- else +- DFHack.onupdate_minyeartick = onext.minyeartick +- DFHack.onupdate_minyeartickadv = -1 +- end +- end +- end +- +- # register a callback to be called every gframe or more +- # ex: DFHack.onstatechange_register { |newstate| puts "state changed to #{newstate}" } +- def onstatechange_register(&b) +- @onstatechange_list ||= [] +- @onstatechange_list << b +- @onstatechange_list.last +- end +- +- # delete the callback for onstatechange ; use the value returned by onstatechange_register +- def onstatechange_unregister(b) +- @onstatechange_list.delete b +- end +- +- # same as onstatechange_register, but auto-unregisters if the block returns true +- def onstatechange_register_once +- handle = onstatechange_register { |st| +- onstatechange_unregister(handle) if yield(st) +- } +- end +- +- +- # this method is called by dfhack every 'onstatechange' +- def onstatechange(newstate) +- @onstatechange_list ||= [] +- @onstatechange_list.each { |cb| cb.call(newstate) } +- end +- +- # return true if the argument is under the cursor +- def at_cursor?(obj) +- same_pos?(obj, cursor) +- end +- +- # returns true if both arguments are at the same x/y/z +- def same_pos?(pos1, pos2) +- pos1 = pos1.pos if pos1.respond_to?(:pos) +- pos2 = pos2.pos if pos2.respond_to?(:pos) +- pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z +- end +- +- # try to match a user-specified name to one from the raws +- # uses case-switching and substring matching +- # eg match_rawname('coal', ['COAL_BITUMINOUS', 'BAUXITE']) => 'COAL_BITUMINOUS' +- def match_rawname(name, rawlist) +- rawlist.each { |r| return r if name == r } +- rawlist.each { |r| return r if name.downcase == r.downcase } +- may = rawlist.find_all { |r| r.downcase.index(name.downcase) } +- may.first if may.length == 1 +- end +- +- def translate_name(name, english=true, onlylastpart=false) +- out = [] +- +- if not onlylastpart +- out << name.first_name if name.first_name != '' +- if name.nickname != '' +- case respond_to?(:d_init) && d_init.nickname_dwarf +- when :REPLACE_ALL; return "`#{name.nickname}'" +- when :REPLACE_FIRST; out.pop +- end +- out << "`#{name.nickname}'" +- end +- end +- return out.join(' ') unless name.words.find { |w| w >= 0 } +- +- if not english +- tsl = world.raws.language.translations[name.language] +- if name.words[0] >= 0 or name.words[1] >= 0 +- out << '' +- out.last << tsl.words[name.words[0]] if name.words[0] >= 0 +- out.last << tsl.words[name.words[1]] if name.words[1] >= 0 +- end +- if name.words[5] >= 0 +- out << '' +- (2..5).each { |i| out.last << tsl.words[name.words[i]] if name.words[i] >= 0 } +- end +- if name.words[6] >= 0 +- out << tsl.words[name.words[6]] +- end +- else +- wl = world.raws.language +- if name.words[0] >= 0 or name.words[1] >= 0 +- out << '' +- out.last << wl.words[name.words[0]].forms[name.parts_of_speech[0]] if name.words[0] >= 0 +- out.last << wl.words[name.words[1]].forms[name.parts_of_speech[1]] if name.words[1] >= 0 +- end +- if name.words[5] >= 0 +- out << 'the ' +- out.last.capitalize! if out.length == 1 +- (2..5).each { |i| out.last << wl.words[name.words[i]].forms[name.parts_of_speech[i]] if name.words[i] >= 0 } +- end +- if name.words[6] >= 0 +- out << 'of' +- out.last.capitalize! if out.length == 1 +- out << wl.words[name.words[6]].forms[name.parts_of_speech[6]] +- end +- end +- +- out.join(' ') +- end +- end +-end +- +-# global alias so we can write 'df.world.units.all[0]' +-def df +- DFHack +-end +- +-# load autogenned file +-require './hack/ruby/ruby-autogen-defs' +-require './hack/ruby/ruby-autogen' +- +-# load all modules +-Dir['./hack/ruby/*.rb'].each { |m| require m.chomp('.rb') } +diff --git a/plugins/ruby/ruby.rb.in b/plugins/ruby/ruby.rb.in +new file mode 100644 +index 0000000..2ae169c +--- /dev/null ++++ b/plugins/ruby/ruby.rb.in +@@ -0,0 +1,239 @@ ++# redefine standard i/o methods to use the dfhack console ++module Kernel ++ def puts(*a) ++ a.flatten.each { |l| ++ DFHack.print_str(l.to_s.chomp + "\n") ++ } ++ nil ++ end ++ ++ def puts_err(*a) ++ a.flatten.each { |l| ++ DFHack.print_err(l.to_s.chomp + "\n") ++ } ++ nil ++ end ++ ++ def p(*a) ++ a.each { |e| ++ puts_err e.inspect ++ } ++ nil ++ end ++end ++ ++module DFHack ++ VERSION = version ++ ++ class OnupdateCallback ++ attr_accessor :callback, :timelimit, :minyear, :minyeartick, :description ++ def initialize(descr, cb, tl, initdelay=0) ++ @description = descr ++ @callback = cb ++ @ticklimit = tl ++ @minyear = (tl ? df.cur_year : 0) ++ @minyeartick = (tl ? df.cur_year_tick+initdelay : 0) ++ end ++ ++ # run callback if timedout ++ def check_run(year, yeartick, yearlen) ++ if @ticklimit ++ return unless year > @minyear or (year == @minyear and yeartick >= @minyeartick) ++ @minyear = year ++ @minyeartick = yeartick + @ticklimit ++ if @minyeartick > yearlen ++ @minyear += 1 ++ @minyeartick -= yearlen ++ end ++ end ++ # t0 = Time.now ++ @callback.call ++ # dt = Time.now - t0 ; puts "rb cb #@description took #{'%.02f' % dt}s" if dt > 0.1 ++ rescue Exception ++ df.onupdate_unregister self ++ puts_err "onupdate #@description unregistered: #$!", $!.backtrace ++ end ++ ++ def <=>(o) ++ [@minyear, @minyeartick] <=> [o.minyear, o.minyeartick] ++ end ++ end ++ ++ class << self ++ attr_accessor :onupdate_list, :onstatechange_list ++ ++ # register a callback to be called every gframe or more ++ # ex: DFHack.onupdate_register('fastdwarf') { DFHack.world.units[0].counters.job_counter = 0 } ++ # if ticklimit is given, do not call unless this much game ticks have passed. Handles advmode time stretching. ++ def onupdate_register(descr, ticklimit=nil, initialtickdelay=0, &b) ++ raise ArgumentError, 'need a description as 1st arg' unless descr.kind_of?(::String) ++ @onupdate_list ||= [] ++ @onupdate_list << OnupdateCallback.new(descr, b, ticklimit, initialtickdelay) ++ DFHack.onupdate_active = true ++ if onext = @onupdate_list.sort.first ++ DFHack.onupdate_minyear = onext.minyear ++ DFHack.onupdate_minyeartick = onext.minyeartick ++ end ++ @onupdate_list.last ++ end ++ ++ # delete the callback for onupdate ; use the value returned by onupdate_register or the description ++ def onupdate_unregister(b) ++ b = @onupdate_list.find { |bb| bb.description == b } if b.kind_of?(String) ++ @onupdate_list.delete b ++ if @onupdate_list.empty? ++ DFHack.onupdate_active = false ++ DFHack.onupdate_minyear = DFHack.onupdate_minyeartick = DFHack.onupdate_minyeartickadv = -1 ++ end ++ end ++ ++ # same as onupdate_register, but remove the callback once it returns true ++ def onupdate_register_once(*a) ++ handle = onupdate_register(*a) { ++ onupdate_unregister(handle) if yield ++ } ++ end ++ ++ TICKS_PER_YEAR = 1200*28*12 ++ # this method is called by ruby.cpp if df.onupdate_active is true ++ def onupdate ++ @onupdate_list ||= [] ++ ++ y = cur_year ++ ytmax = TICKS_PER_YEAR ++ if df.gamemode == :ADVENTURE and df.respond_to?(:cur_year_tick_advmode) ++ yt = cur_year_tick_advmode ++ ytmax *= 144 ++ else ++ yt = cur_year_tick ++ end ++ ++ @onupdate_list.each { |o| ++ o.check_run(y, yt, ytmax) ++ } ++ ++ if onext = @onupdate_list.sort.first ++ DFHack.onupdate_minyear = onext.minyear ++ if ytmax > TICKS_PER_YEAR ++ DFHack.onupdate_minyeartick = -1 ++ DFHack.onupdate_minyeartickadv = onext.minyeartick ++ else ++ DFHack.onupdate_minyeartick = onext.minyeartick ++ DFHack.onupdate_minyeartickadv = -1 ++ end ++ end ++ end ++ ++ # register a callback to be called every gframe or more ++ # ex: DFHack.onstatechange_register { |newstate| puts "state changed to #{newstate}" } ++ def onstatechange_register(&b) ++ @onstatechange_list ||= [] ++ @onstatechange_list << b ++ @onstatechange_list.last ++ end ++ ++ # delete the callback for onstatechange ; use the value returned by onstatechange_register ++ def onstatechange_unregister(b) ++ @onstatechange_list.delete b ++ end ++ ++ # same as onstatechange_register, but auto-unregisters if the block returns true ++ def onstatechange_register_once ++ handle = onstatechange_register { |st| ++ onstatechange_unregister(handle) if yield(st) ++ } ++ end ++ ++ ++ # this method is called by dfhack every 'onstatechange' ++ def onstatechange(newstate) ++ @onstatechange_list ||= [] ++ @onstatechange_list.each { |cb| cb.call(newstate) } ++ end ++ ++ # return true if the argument is under the cursor ++ def at_cursor?(obj) ++ same_pos?(obj, cursor) ++ end ++ ++ # returns true if both arguments are at the same x/y/z ++ def same_pos?(pos1, pos2) ++ pos1 = pos1.pos if pos1.respond_to?(:pos) ++ pos2 = pos2.pos if pos2.respond_to?(:pos) ++ pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z ++ end ++ ++ # try to match a user-specified name to one from the raws ++ # uses case-switching and substring matching ++ # eg match_rawname('coal', ['COAL_BITUMINOUS', 'BAUXITE']) => 'COAL_BITUMINOUS' ++ def match_rawname(name, rawlist) ++ rawlist.each { |r| return r if name == r } ++ rawlist.each { |r| return r if name.downcase == r.downcase } ++ may = rawlist.find_all { |r| r.downcase.index(name.downcase) } ++ may.first if may.length == 1 ++ end ++ ++ def translate_name(name, english=true, onlylastpart=false) ++ out = [] ++ ++ if not onlylastpart ++ out << name.first_name if name.first_name != '' ++ if name.nickname != '' ++ case respond_to?(:d_init) && d_init.nickname_dwarf ++ when :REPLACE_ALL; return "`#{name.nickname}'" ++ when :REPLACE_FIRST; out.pop ++ end ++ out << "`#{name.nickname}'" ++ end ++ end ++ return out.join(' ') unless name.words.find { |w| w >= 0 } ++ ++ if not english ++ tsl = world.raws.language.translations[name.language] ++ if name.words[0] >= 0 or name.words[1] >= 0 ++ out << '' ++ out.last << tsl.words[name.words[0]] if name.words[0] >= 0 ++ out.last << tsl.words[name.words[1]] if name.words[1] >= 0 ++ end ++ if name.words[5] >= 0 ++ out << '' ++ (2..5).each { |i| out.last << tsl.words[name.words[i]] if name.words[i] >= 0 } ++ end ++ if name.words[6] >= 0 ++ out << tsl.words[name.words[6]] ++ end ++ else ++ wl = world.raws.language ++ if name.words[0] >= 0 or name.words[1] >= 0 ++ out << '' ++ out.last << wl.words[name.words[0]].forms[name.parts_of_speech[0]] if name.words[0] >= 0 ++ out.last << wl.words[name.words[1]].forms[name.parts_of_speech[1]] if name.words[1] >= 0 ++ end ++ if name.words[5] >= 0 ++ out << 'the ' ++ out.last.capitalize! if out.length == 1 ++ (2..5).each { |i| out.last << wl.words[name.words[i]].forms[name.parts_of_speech[i]] if name.words[i] >= 0 } ++ end ++ if name.words[6] >= 0 ++ out << 'of' ++ out.last.capitalize! if out.length == 1 ++ out << wl.words[name.words[6]].forms[name.parts_of_speech[6]] ++ end ++ end ++ ++ out.join(' ') ++ end ++ end ++end ++ ++# global alias so we can write 'df.world.units.all[0]' ++def df ++ DFHack ++end ++ ++# load autogenned file ++require '@DFHACK_RUBY_DESTINATION@/ruby-autogen-defs' ++require '@DFHACK_RUBY_DESTINATION@/ruby-autogen' ++ ++# load all modules ++Dir['@DFHACK_RUBY_DESTINATION@/*.rb'].each { |m| require m.chomp('.rb') } diff --git a/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/09-eggy-remove-annoying-banner.patch b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/09-eggy-remove-annoying-banner.patch new file mode 100644 index 00000000..f2c4ce14 --- /dev/null +++ b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/09-eggy-remove-annoying-banner.patch @@ -0,0 +1,22 @@ +eggy - remove annoying banner + +From: eroen <eroen@occam.eroen.eu> + + +--- + library/Core.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/library/Core.cpp b/library/Core.cpp +index 978fccd..3b10bce 100644 +--- a/library/Core.cpp ++++ b/library/Core.cpp +@@ -986,7 +986,7 @@ bool Core::Init() + HotkeyCond = new condition_variable(); + thread * HK = new thread(fHKthread, (void *) temp); + screen_window = new Windows::top_level_window(); +- screen_window->addChild(new Windows::dfhack_dummy(5,10)); ++ //screen_window->addChild(new Windows::dfhack_dummy(5,10)); + started = true; + + cerr << "Starting the TCP listener.\n"; diff --git a/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/series b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/series new file mode 100644 index 00000000..ea00d573 --- /dev/null +++ b/games-util/dfhack/files/dfhack-0.34.11.3_p20130302/series @@ -0,0 +1,10 @@ +# This series applies on GIT commit 18a91ef221f531307ac5ddbe29532a3d6e0a04ec +01-compile-static-libraries-as.patch +02-drop-strange-build-options.patch +03-configurable-install-paths.patch +04-compile-time-configurable.patch +05-compile-time-configurable-0.patch +06-compile-time-configurable-1.patch +07-startup-scripts-configurable.patch +08-ruby-plugin-configurable-paths.patch +09-eggy-remove-annoying-banner.patch diff --git a/games-util/dfhack/files/isoworld-0.34.11.3_p20130302/01-missing-include-dir.patch b/games-util/dfhack/files/isoworld-0.34.11.3_p20130302/01-missing-include-dir.patch new file mode 100644 index 00000000..e7cd20f0 --- /dev/null +++ b/games-util/dfhack/files/isoworld-0.34.11.3_p20130302/01-missing-include-dir.patch @@ -0,0 +1,21 @@ +missing include dir + +From: eroen <eroen@occam.eroen.eu> + + +--- + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fd0cc4b..2bf3210 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -76,6 +76,7 @@ IF(UNIX) + include_directories (
+ ${include_directories}
+ ${CMAKE_CURRENT_SOURCE_DIR}/allegro/include
++ ${CMAKE_CURRENT_SOURCE_DIR}/agui/include
+ )
+ install(DIRECTORY allegro/lib/
+ DESTINATION "hack/libs"
diff --git a/games-util/dfhack/files/isoworld-0.34.11.3_p20130302/series b/games-util/dfhack/files/isoworld-0.34.11.3_p20130302/series new file mode 100644 index 00000000..85db40b5 --- /dev/null +++ b/games-util/dfhack/files/isoworld-0.34.11.3_p20130302/series @@ -0,0 +1,2 @@ +# This series applies on GIT commit aa3b1bd51f269c07b3235392fd7ed21fe9171f3f +01-missing-include-dir.patch diff --git a/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/01-null-isn-t-an-int32.patch b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/01-null-isn-t-an-int32.patch new file mode 100644 index 00000000..f3acc8a1 --- /dev/null +++ b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/01-null-isn-t-an-int32.patch @@ -0,0 +1,46 @@ +NULL isn't int32_t + +From: eroen <eroen@occam.eroen.eu> + +ContentLoader.h declares +vector<vector<int32_t>*> position_Indices; + +Thus, it is not appropriate to set +position_Indices[ent_id]->resize(pos_id+1, NULL); + +Rather, 0s will do nicely. +--- + ContentLoader.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/ContentLoader.cpp b/ContentLoader.cpp +index 9e305a3..c4ffdb1 100644 +--- a/ContentLoader.cpp ++++ b/ContentLoader.cpp +@@ -150,7 +150,7 @@ bool ContentLoader::Load() + if(!position_Indices[ent_id]) + position_Indices[ent_id] = new vector<int32_t>; + if(pos_id >= position_Indices[ent_id]->size()) +- position_Indices[ent_id]->resize(pos_id+1, NULL); ++ position_Indices[ent_id]->resize(pos_id+1, 0); + position_Indices[ent_id]->at(pos_id) = found; + //LogError("%d(%d):%s->%d(%d):%s = %d\n", i, currentity->id, currentity->entity_raw->code.c_str(), j,currentpos->id, currentpos->code.c_str(), found); + } +@@ -175,7 +175,7 @@ bool ContentLoader::Load() + if(!position_Indices[ent_id]) + position_Indices[ent_id] = new vector<int32_t>; + if(pos_id >= position_Indices[ent_id]->size()) +- position_Indices[ent_id]->resize(pos_id+1, NULL); ++ position_Indices[ent_id]->resize(pos_id+1, 0); + position_Indices[ent_id]->at(pos_id) = found; + //LogError("%d(%d):%s->%d(%d):%s = %d\n", i, currentity->id, currentity->entity_raw->code.c_str(), j,currentpos->id, currentpos->code.c_str(), found); + } +@@ -200,7 +200,7 @@ bool ContentLoader::Load() + if(!position_Indices[ent_id]) + position_Indices[ent_id] = new vector<int32_t>; + if(pos_id >= position_Indices[ent_id]->size()) +- position_Indices[ent_id]->resize(pos_id+1, NULL); ++ position_Indices[ent_id]->resize(pos_id+1, 0); + position_Indices[ent_id]->at(pos_id) = found; + //LogError("%d(%d):%s->%d(%d):%s = %d\n", i, currentity->id, currentity->entity_raw->code.c_str(), j,currentpos->id, currentpos->code.c_str(), found); + } diff --git a/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/02-configurable-install-paths.patch b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/02-configurable-install-paths.patch new file mode 100644 index 00000000..6ae9a0ae --- /dev/null +++ b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/02-configurable-install-paths.patch @@ -0,0 +1,38 @@ +configurable install paths + +From: eroen <eroen@occam.eroen.eu> + + +--- + CMakeLists.txt | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ad5796a..dabd741 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -93,8 +93,9 @@ IF(UNIX) + ${include_directories}
+ ${stonesense_SOURCE_DIR}/allegro/include
+ )
++ SET(SSENSE_ALLEGRO_DESTINATION "hack/libs" CACHE PATH "SSENSE_ALLEGRO_DESTINATION")
+ install(DIRECTORY allegro/lib/
+- DESTINATION "hack/libs"
++ DESTINATION ${SSENSE_ALLEGRO_DESTINATION}
+ PATTERN "CVS" EXCLUDE
+ PATTERN ".svn" EXCLUDE)
+ ELSE()
+@@ -155,9 +156,11 @@ IF(APPLE) + add_custom_command(TARGET stonesense POST_BUILD COMMAND ${stonesense_SOURCE_DIR}/fix-libs-stonesense.sh WORKING_DIRECTORY . COMMENT "Fixing Stonesense library dependencies...")
+ ENDIF(APPLE)
+ #install resources into DF/stonesense
++SET(SSENSE_RES_DESTINATION "stonesense" CACHE PATH "SSENSE_RES_DESTINATION")
+ install(DIRECTORY resources/
+- DESTINATION "stonesense"
++ DESTINATION ${SSENSE_RES_DESTINATION}
+ PATTERN "CVS" EXCLUDE
+ PATTERN ".svn" EXCLUDE)
+ # install readme
+-install(FILES README.txt DESTINATION stonesense)
++SET(SSENSE_DOC_DESTINATION "stonesense" CACHE PATH "SSENSE_DOC_DESTINATION")
++install(FILES README.txt DESTINATION ${SSENSE_DOC_DESTINATION})
diff --git a/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/03-don-t-segfault-if-logfile-is.patch b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/03-don-t-segfault-if-logfile-is.patch new file mode 100644 index 00000000..915c63e8 --- /dev/null +++ b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/03-don-t-segfault-if-logfile-is.patch @@ -0,0 +1,37 @@ +don't segfault if logfile is unwritable + +From: eroen <eroen@occam.eroen.eu> + + +--- + main.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/main.cpp b/main.cpp +index 32fd9b9..9fa513d 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -91,10 +91,10 @@ void LogError(const char* msg, ...) + FILE* fp = fopen( "Stonesense.log", "a"); + if(fp) { + vfprintf( fp, msg, arglist ); ++ fclose(fp); + } + // Core::printerr(msg, arglist); + va_end(arglist); +- fclose(fp); + } + + +@@ -121,10 +121,10 @@ void LogVerbose(const char* msg, ...) + FILE* fp = fopen( "Stonesense.log", "a"); + if(fp) { + vfprintf( fp, msg, arglist ); ++ fclose(fp); + } + // Core::printerr(msg, arglist); + va_end(arglist); +- fclose(fp); + } + + void SetTitle(const char *format, ...) diff --git a/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/04-compile-time-configuration-of.patch b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/04-compile-time-configuration-of.patch new file mode 100644 index 00000000..8291ee0a --- /dev/null +++ b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/04-compile-time-configuration-of.patch @@ -0,0 +1,188 @@ +compile time configuration of magic cwd + +From: eroen <eroen@occam.eroen.eu> + + +--- + Config.cpp | 4 ++++ + ContentBuildingReader.cpp | 4 ++++ + ContentLoader.cpp | 8 ++++++++ + GUI.cpp | 4 ++++ + Keybinds.cpp | 4 ++++ + OcclusionTest.cpp | 5 +++++ + Tile.cpp | 8 ++++++++ + main.cpp | 12 ++++++++++++ + 8 files changed, 49 insertions(+) + +diff --git a/Config.cpp b/Config.cpp +index 2c431a8..76d3bd7 100644 +--- a/Config.cpp ++++ b/Config.cpp +@@ -789,7 +789,11 @@ void parseConfigLine( string line ) + bool loadConfigFile()
+ {
+ string line;
++ #ifdef DFHACK_DATA_DESTINATION
++ ALLEGRO_PATH * p =al_create_path(DFHACK_DATA_DESTINATION "/stonesense/init.txt");
++ #else
+ ALLEGRO_PATH * p =al_create_path("stonesense/init.txt");
++ #endif
+ const char * path = al_path_cstr(p,ALLEGRO_NATIVE_PATH_SEP);
+ ifstream myfile (path);
+ if (myfile.is_open() == false) {
+diff --git a/ContentBuildingReader.cpp b/ContentBuildingReader.cpp +index cf62502..b092611 100644 +--- a/ContentBuildingReader.cpp ++++ b/ContentBuildingReader.cpp +@@ -436,7 +436,11 @@ void flushBuildingConfig( vector<BuildingConfiguration>* knownBuildings ) + /*
+ bool LoadBuildingConfiguration( vector<BuildingConfiguration>* knownBuildings ){
+ string line;
++ #ifdef DFHACK_DATA_DESTINATION
++ ifstream myfile (DFHACK_DATA_DESTINATION "/buildings/index.txt");
++ #else
+ ifstream myfile ("buildings/index.txt");
++ #endif
+ if (myfile.is_open() == false){
+ WriteErr("Unable to load building config index file!\n");
+ return false;
+diff --git a/ContentLoader.cpp b/ContentLoader.cpp +index c4ffdb1..19e2cff 100644 +--- a/ContentLoader.cpp ++++ b/ContentLoader.cpp +@@ -227,7 +227,11 @@ bool ContentLoader::Load() + contentLoader->obsidian = lookupMaterialIndex(INORGANIC, "OBSIDIAN"); + + loadGraphicsFromDisk(); //these get destroyed when flushImgFiles is called. ++ #ifdef DFHACK_DATA_DESTINATION ++ ALLEGRO_PATH * p = al_create_path(DFHACK_DATA_DESTINATION "/stonesense/index.txt"); ++ #else + ALLEGRO_PATH * p = al_create_path("stonesense/index.txt"); ++ #endif + bool overallResult = parseContentIndexFile( al_path_cstr(p, ALLEGRO_NATIVE_PATH_SEP) ); + al_destroy_path(p); + translationComplete = false; +@@ -249,7 +253,11 @@ bool ContentLoader::reload_configs() + flushImgFiles(); + + loadGraphicsFromDisk(); //these get destroyed when flushImgFiles is called. ++ #ifdef DFHACK_DATA_DESTINATION ++ ALLEGRO_PATH * p = al_create_path(DFHACK_DATA_DESTINATION "/stonesense/index.txt"); ++ #else + ALLEGRO_PATH * p = al_create_path("stonesense/index.txt"); ++ #endif + bool overallResult = parseContentIndexFile( al_path_cstr(p, ALLEGRO_NATIVE_PATH_SEP) ); + al_destroy_path(p); + +diff --git a/GUI.cpp b/GUI.cpp +index 1c45abf..a872df5 100644 +--- a/GUI.cpp ++++ b/GUI.cpp +@@ -1058,7 +1058,11 @@ bool load_from_path (ALLEGRO_PATH * p, const char * filename, ALLEGRO_BITMAP *& + + void loadGraphicsFromDisk() + { ++ #ifdef DFHACK_DATA_DESTINATION ++ ALLEGRO_PATH * p = al_create_path_for_directory(DFHACK_DATA_DESTINATION "/stonesense"); ++ #else + ALLEGRO_PATH * p = al_create_path_for_directory("stonesense"); ++ #endif + if(!load_from_path(p, "objects.png", IMGObjectSheet)) { + return; + } +diff --git a/Keybinds.cpp b/Keybinds.cpp +index 94cab94..ec67b6a 100644 +--- a/Keybinds.cpp ++++ b/Keybinds.cpp +@@ -268,7 +268,11 @@ void parseKeymapLine( string line ) +
+ bool loadKeymapFile(){
+ string line;
++ #ifdef DFHACK_DATA_DESTINATION
++ ALLEGRO_PATH * p =al_create_path(DFHACK_DATA_DESTINATION "/stonesense/keybinds.txt");
++ #else
+ ALLEGRO_PATH * p =al_create_path("stonesense/keybinds.txt");
++ #endif
+ const char * path = al_path_cstr(p,ALLEGRO_NATIVE_PATH_SEP);
+ ifstream myfile (path);
+ if (myfile.is_open() == false) {
+diff --git a/OcclusionTest.cpp b/OcclusionTest.cpp +index 36b4c7c..16ab0c3 100644 +--- a/OcclusionTest.cpp ++++ b/OcclusionTest.cpp +@@ -118,8 +118,13 @@ void init_masks() + //load up some mask files + int flags = al_get_new_bitmap_flags(); + al_set_new_bitmap_flags(ALLEGRO_MEMORY_BITMAP); ++ #ifdef DFHACK_DATA_DESTINATION ++ ALLEGRO_BITMAP * wall = load_bitmap_withWarning(DFHACK_DATA_DESTINATION "/stonesense/mask_wall.png"); ++ ALLEGRO_BITMAP * floor = load_bitmap_withWarning(DFHACK_DATA_DESTINATION "/stonesense/mask_floor.png"); ++ #else + ALLEGRO_BITMAP * wall = load_bitmap_withWarning("stonesense/mask_wall.png"); + ALLEGRO_BITMAP * floor = load_bitmap_withWarning("stonesense/mask_floor.png"); ++ #endif + al_set_new_bitmap_flags(flags); + + //copy the mask to the bitsets. Each half is seperate to simplify things. +diff --git a/Tile.cpp b/Tile.cpp +index 419e4b9..bfab1f5 100644 +--- a/Tile.cpp ++++ b/Tile.cpp +@@ -636,9 +636,17 @@ void createEffectSprites() + sprite_dust = CreateSpriteFromSheet( 182, IMGObjectSheet); + sprite_magma = CreateSpriteFromSheet( 185, IMGObjectSheet); + sprite_smoke = CreateSpriteFromSheet( 186, IMGObjectSheet); ++ #ifdef DFHACK_DATA_DESTINATION ++ sprite_dragonfire = load_bitmap_withWarning(DFHACK_DATA_DESTINATION "/stonesense/Effect_flames.png"); ++ #else + sprite_dragonfire = load_bitmap_withWarning("stonesense/Effect_flames.png"); ++ #endif + sprite_fire = CreateSpriteFromSheet( 188, IMGObjectSheet); ++ #ifdef DFHACK_DATA_DESTINATION ++ sprite_webing = load_bitmap_withWarning(DFHACK_DATA_DESTINATION "/stonesense/Effect_web.png"); ++ #else + sprite_webing = load_bitmap_withWarning("stonesense/Effect_web.png"); ++ #endif + sprite_boiling = CreateSpriteFromSheet( 190, IMGObjectSheet); + sprite_oceanwave = CreateSpriteFromSheet( 191, IMGObjectSheet); + } +diff --git a/main.cpp b/main.cpp +index 9fa513d..090c0d2 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -161,7 +161,11 @@ void correctTileForDisplayedOffset(int32_t& x, int32_t& y, int32_t& z) + + bool loadfont(DFHack::color_ostream & output) + { ++ #ifdef DFHACK_DATA_DESTINATION ++ ALLEGRO_PATH * p = al_create_path_for_directory(DFHACK_DATA_DESTINATION "/stonesense"); ++ #else + ALLEGRO_PATH * p = al_create_path_for_directory("stonesense"); ++ #endif + if(!al_join_paths(p, ssConfig.font)) { + al_destroy_path(p); + return false; +@@ -217,7 +221,11 @@ void drawcredits() + //centred splash image + { + if(!SplashImage) { ++ #ifdef DFHACK_DATA_DESTINATION ++ ALLEGRO_PATH * p = al_create_path(DFHACK_DATA_DESTINATION "/stonesense/splash.png"); ++ #else + ALLEGRO_PATH * p = al_create_path("stonesense/splash.png"); ++ #endif + SplashImage = load_bitmap_withWarning(al_path_cstr(p, ALLEGRO_NATIVE_PATH_SEP)); + al_destroy_path(p); + } +@@ -448,7 +456,11 @@ static void * stonesense_thread(ALLEGRO_THREAD * main_thread, void * parms) + al_set_new_bitmap_flags(ALLEGRO_MIN_LINEAR|ALLEGRO_MIPMAP); + } + ++ #ifdef DFHACK_DATA_DESTINATION ++ ALLEGRO_PATH * p = al_create_path(DFHACK_DATA_DESTINATION "/stonesense/stonesense.png"); ++ #else + ALLEGRO_PATH * p = al_create_path("stonesense/stonesense.png"); ++ #endif + IMGIcon = load_bitmap_withWarning(al_path_cstr(p, ALLEGRO_NATIVE_PATH_SEP)); + al_destroy_path(p); + if(!IMGIcon) { diff --git a/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/05-compile-time-configurable-log.patch b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/05-compile-time-configurable-log.patch new file mode 100644 index 00000000..6847a1eb --- /dev/null +++ b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/05-compile-time-configurable-log.patch @@ -0,0 +1,37 @@ +compile-time configurable log file destination + +From: eroen <eroen@occam.eroen.eu> + + +--- + main.cpp | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/main.cpp b/main.cpp +index 090c0d2..54a45e8 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -88,7 +88,11 @@ void LogError(const char* msg, ...) + char buf[512] = {0}; + vsprintf(buf, msg, arglist); + Core::printerr(buf); ++ #ifdef DFHACK_STATEDIR ++ FILE* fp = fopen( DFHACK_STATEDIR "/Stonesense.log", "a"); ++ #else + FILE* fp = fopen( "Stonesense.log", "a"); ++ #endif + if(fp) { + vfprintf( fp, msg, arglist ); + fclose(fp); +@@ -118,7 +122,11 @@ void LogVerbose(const char* msg, ...) + char buf[512] = {0}; + vsprintf(buf, msg, arglist); + Core::printerr(buf); ++ #ifdef DFHACK_STATEDIR ++ FILE* fp = fopen( DFHACK_STATEDIR "/Stonesense.log", "a"); ++ #else + FILE* fp = fopen( "Stonesense.log", "a"); ++ #endif + if(fp) { + vfprintf( fp, msg, arglist ); + fclose(fp); diff --git a/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/06-fix-b0rked-xml-file.patch b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/06-fix-b0rked-xml-file.patch new file mode 100644 index 00000000..47e31051 --- /dev/null +++ b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/06-fix-b0rked-xml-file.patch @@ -0,0 +1,34 @@ +fix b0rked xml file + +From: eroen <eroen@occam.eroen.eu> + +it breaks loading the file. + + File load failed: /usr/share/games/dfhack-9999/stonesense/terrain/block_walls.xml + Failure in reading /usr/share/games/dfhack-9999/stonesense/terrain/block_walls.xml +--- + resources/terrain/block_walls.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/resources/terrain/block_walls.xml b/resources/terrain/block_walls.xml +index d48c5af..662b63a 100644 +--- a/resources/terrain/block_walls.xml ++++ b/resources/terrain/block_walls.xml +@@ -1,7 +1,7 @@ + <?xml version="1.0"?>
+ <walls file="block_walls.png">
+ <!-- construct -->
+- <walls sheetIndex="0" color="material" halftile="no">
++ <wall sheetIndex="0" color="material" halftile="no">
+ <form value="block" />
+ <material value="Inorganic" />
+ <!-- pillar -->
+@@ -53,7 +53,7 @@ + />
+ </wall>
+ </walls>
+-<floors file="block_floors.png"> ++<floors file="block_floors.png">
+ <!-- construct -->
+ <floor sheetIndex="0" color="material" halftile="no">
+ <form value="block" />
diff --git a/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/07-compile-time-configurable-dump.patch b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/07-compile-time-configurable-dump.patch new file mode 100644 index 00000000..b1ed23c7 --- /dev/null +++ b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/07-compile-time-configurable-dump.patch @@ -0,0 +1,132 @@ +compile time configurable dump location + +From: eroen <eroen@occam.eroen.eu> + + +--- + BuildingConfiguration.cpp | 4 ++++ + ContentLoader.cpp | 6 +++++- + DumpInfo.cpp | 24 ++++++++++++++++++++++-- + GroundMaterialConfiguration.cpp | 4 ++++ + 4 files changed, 35 insertions(+), 3 deletions(-) + +diff --git a/BuildingConfiguration.cpp b/BuildingConfiguration.cpp +index 6a74246..2519322 100644 +--- a/BuildingConfiguration.cpp ++++ b/BuildingConfiguration.cpp +@@ -38,7 +38,11 @@ BuildingConfiguration::~BuildingConfiguration(void) + void DumpBuildingNamesToDisk() + { + /* ++ #ifdef DFHACK_STATEDIR ++ FILE* fp = fopen(DFHACK_STATEDIR "/buildingdump.txt", "w"); ++ #else + FILE* fp = fopen("buildingdump.txt", "w"); ++ #endif + if(!fp) return; + for(uint32_t j=0; j < contentLoader->classIdStrings.size(); j++){ + fprintf(fp, "%i:%s\n",j, contentLoader->classIdStrings[j].c_str()); +diff --git a/ContentLoader.cpp b/ContentLoader.cpp +index 19e2cff..e889891 100644 +--- a/ContentLoader.cpp ++++ b/ContentLoader.cpp +@@ -206,7 +206,11 @@ bool ContentLoader::Load() + } + } + } ++ #ifdef DFHACK_STATEDIR ++ //DumpStringVector(DFHACK_STATEDIR "/professiondump.txt", &professionStrings); ++ #else + //DumpStringVector("professiondump.txt", &professionStrings); ++ #endif + gatherStyleIndices(&df::global::world->raws); + /* + if(classIdStrings.empty()) +@@ -953,4 +957,4 @@ ShadeBy getShadeType(const char* Input) + return ShadeItem; + } + return ShadeNone; +-} +\ No newline at end of file ++} +diff --git a/DumpInfo.cpp b/DumpInfo.cpp +index 2184f43..9779ff2 100644 +--- a/DumpInfo.cpp ++++ b/DumpInfo.cpp +@@ -133,7 +133,11 @@ void dumpSegment() + //} + // + //void DumpCreatureNamesToDisk(){ +-// /*FILE* fp = fopen("dump.txt", "w"); ++// /*#ifdef DFHACK_STATEDIR ++// FILE* fp = fopen(DFHACK_STATEDIR "/dump.txt", "w"); ++// #else ++// FILE* fp = fopen("dump.txt", "w"); ++// #endif + // if(!fp) return; + // for(uint32_t j=0; j < v_creatureNames.size(); j++){ + // fprintf(fp, "%i:%s\n",j, v_creatureNames[j].id); +@@ -141,7 +145,11 @@ void dumpSegment() + // fclose(fp);*/ + //} + //void DumpProfessionsToDisk(){ ++// #ifdef DFHACK_STATEDIR ++// FILE* fp = fopen(DFHACK_STATEDIR "/dump.txt", "w"); ++// #else + // FILE* fp = fopen("dump.txt", "w"); ++// #endif + // if(!fp) return; + // string proffStr; + // for(int j=0; (proffStr = contentLoader->professionStrings[j]) != "" ; j++){ +@@ -248,16 +256,28 @@ void DumpInfo(color_ostream & out, std::vector<std::string> & params) + string & p1 = params[0]; + if(p1 == "dumpitems") { + out.print("dumping equippable item names to 'itemdump.txt'...\n"); ++ #ifdef DFHACK_STATEDIR ++ DumpItemNamesToDisk(DFHACK_STATEDIR "/itemdump.txt"); ++ #else + DumpItemNamesToDisk("itemdump.txt"); ++ #endif + out.print("...done\n"); + } else if(p1 == "dumptiles") { + out.print("dumping equippable item names to 'tiledump.txt'...\n"); ++ #ifdef DFHACK_STATEDIR ++ DumpTileTypes(DFHACK_STATEDIR "/tiledump.txt"); ++ #else + DumpTileTypes("tiledump.txt"); ++ #endif + out.print("...done\n"); + } else if(p1 == "genterrain") { + if(params.size() > 1) { + out.print("generating 'terrain.xml'...\n"); ++ #ifdef DFHACK_STATEDIR ++ GenerateTerrainXml(DFHACK_STATEDIR "/terrain.xml", params[1], GetBasicShape(params[1])); ++ #else + GenerateTerrainXml("terrain.xml", params[1], GetBasicShape(params[1])); ++ #endif + out.print("...done\n"); + } else { + out.printerr("invalid argument\n"); +@@ -266,4 +286,4 @@ void DumpInfo(color_ostream & out, std::vector<std::string> & params) + out.printerr("invalid argument\n"); + } + +-} +\ No newline at end of file ++} +diff --git a/GroundMaterialConfiguration.cpp b/GroundMaterialConfiguration.cpp +index 8b9a0d9..acd3e10 100644 +--- a/GroundMaterialConfiguration.cpp ++++ b/GroundMaterialConfiguration.cpp +@@ -40,7 +40,11 @@ TerrainConfiguration::~TerrainConfiguration() +
+ void DumpInorganicMaterialNamesToDisk()
+ {
++ #ifdef DFHACK_STATEDIR
++ FILE* fp = fopen(DFHACK_STATEDIR "/dump.txt", "w");
++ #else
+ FILE* fp = fopen("dump.txt", "w");
++ #endif
+ if(!fp) {
+ return;
+ }
diff --git a/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/08-compile-time-configurable.patch b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/08-compile-time-configurable.patch new file mode 100644 index 00000000..ff7f80ed --- /dev/null +++ b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/08-compile-time-configurable.patch @@ -0,0 +1,25 @@ +compile time configurable benchmark location + +From: eroen <eroen@occam.eroen.eu> + + +--- + main.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/main.cpp b/main.cpp +index 54a45e8..def4fe4 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -200,7 +200,11 @@ void benchmark() + reloadDisplayedSegment(); + } + ++ #ifdef DFHACK_STATEDIR ++ FILE* fp = fopen(DFHACK_STATEDIR "/benchmark.txt", "w" ); ++ #else + FILE* fp = fopen("benchmark.txt", "w" ); ++ #endif + if(!fp) { + return; + } diff --git a/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/series b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/series new file mode 100644 index 00000000..a0285561 --- /dev/null +++ b/games-util/dfhack/files/stonesense-0.34.11.3_p20130302/series @@ -0,0 +1,9 @@ +# This series applies on GIT commit 0d41614ff3dae9245e786ad667b0e463fe0dea3e +01-null-isn-t-an-int32.patch +02-configurable-install-paths.patch +03-don-t-segfault-if-logfile-is.patch +04-compile-time-configuration-of.patch +05-compile-time-configurable-log.patch +06-fix-b0rked-xml-file.patch +07-compile-time-configurable-dump.patch +08-compile-time-configurable.patch |
