1
0
mirror of https://github.com/dguglielmi/sunny-overlay.git synced 2025-12-06 11:42:40 +01:00

- Add media-gfx/splashutils for Gentoo tree

This commit is contained in:
2014-08-03 12:12:00 +02:00
parent abe86108f6
commit a8b93a603f
26 changed files with 3295 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,54 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
AUX initrd.splash-cmp-str-instead-of-int.patch 452 SHA256 a87df58a23b12eee65058f9bd326e354cdccf32048cbc8446b2ad72942da2f30 SHA512 9743953c07d010b98dfb827b750ab05c7c164da807f8d14b5159647b71220b1d58674f14c584aa2f207b175585aee4130a659dc246ea0af9984a1fb257346bb2 WHIRLPOOL cf3ce7d4516eee0e01052f7d3453c13a89e2ef49c50c26570237c8387f1ff42d3a0f19b98e815265323df6075e9795390ee8901d4758d508bd41398225ef397b
AUX splashutils-1.5.4.3-daemon-exit-signal.patch 2764 SHA256 8d7d17ae6591f3de0bde18c537166710b1eac0f6aeb1507aecdf8d6a3d1553eb SHA512 f6d3c63d6d7eb58795a80fa66a1b96f37cf294034d9a135fd0c6a429b6e10771874b77f43cd49ef300fa2f44571660501ecc3a7998fe8ae35765c381043efcb6 WHIRLPOOL 0eece031b487ddd6adf7b74a285c4464a7513c737fcc2f6aa2e9fe4e27acb2306b4b546c6148161cc11c6c458df6baa6d70f9669a62aa673670ea450734c3ce1
AUX splashutils-1.5.4.3-fix_rc_var.patch 1084 SHA256 c51b29f3c6191ac6259db52f56050a34872f07a78463a1ac1e4fbaf89d2f81d8 SHA512 53522bcaeff5c2add29336d8e997e9725c5dd5e13b3f207f6de78b9d16da381954f9f55d2cf497e39a8f621b8566057a6b2540c60a95bdf858995c7211e5ac86 WHIRLPOOL 16d7f1600f42c33ea9c383b9691f17b25a35377493814c6080fafe0f6234bd2c52e9221acfa5fee5d21dc525385c1b0219dc588a4c144b7e2d06a1d4d7f0d4ca
AUX splashutils-1.5.4.3-libjpeg.patch 1693 SHA256 83d9a0ededa96c213a3120c45969d6b8f00e97f2104a221541badd67f82259c7 SHA512 be86a48790a50550615bac6e7226982ac9f6b5768d9f9e3b3be86610f64ebecd9fa29d095bc87cc912b6ddeadec28a8fcff4adb04af049d506844d37db473ed4 WHIRLPOOL 65df4d0dded18c1f80cbc13851efd63afcf0b853a8cb45d8f6d026dc92c7741aba638a8a3afe14da9f84094c2a08b42a4d63fb942eb65cb7e5b94636b7bef2ec
AUX splashutils-1.5.4.3-libpng15_compat.patch 3925 SHA256 bbecf8f385c59bf4dbe0f760ff59996c37facb0f05f7c960701ad2c496e8956b SHA512 8280f37dc7fdf53c34804917340fc8383379e51d13b289e1168f6b0a3cc209ffe71920cfbec2ec95dfbb09d578e8d4c34b657f8c457220b1745a19d715cb265f WHIRLPOOL b6d90e22c28d7afa09ef41023536e08373976730cf00d8bf699d63d3c525d9299f1543629e914befd66d1c326a30e2835573ccaebcb16ca4f8781016ac91556e
AUX splashutils-1.5.4.3-makefile.patch 1257 SHA256 6ca31fc77f75bda368642da7effbaa0fd3c69bce86c9e04bfe55b9ab4d259cf3 SHA512 1b0fe836eb665415046b84bc6563fd3928b791660535a75dd0aabfb848cdf59c206127fab7f917123c4329e93820ba904b079f9ae9bf4fa56a699ef2795b10f2 WHIRLPOOL c924f08102a1c32bc3fe5b82f0fdf300cca72fe29dc13f02bacbd6aa576ad2c52c8b2314c81262ffeb3be927ebb096d9ae4dd729c40baa05572ee88d91cb4ba1
AUX splashutils-1.5.4.3-nondefault-runlevel.patch 894 SHA256 c462ef5e4c2514bad9a5aca78cce923109bcb0cff5a292286e74b2f1e8ec457f SHA512 f2c56326294bbffc6e75b2680599a85e4044d8d46d28386e96ca9975e44468547bc3013fe53b7fb19af1ab612680bbd38bc2f89a04647299675e207c7e1fff28 WHIRLPOOL 50ca31e73bdcf70ede0a629b9982ca61bb28a1199b6ef114b41947a2e40cf4518c1455f34273bde78cc76276895037c999b34ecfc760259ff97b0452cb6e879b
AUX splashutils-1.5.4.3-openrc-effects.patch 2261 SHA256 ea416ce53c805241b05bfff48439c4c26dbbb717001356ec08f8820ff8baec09 SHA512 a50c2e6d8b34f00c80e37866989fb60992be00919c8ae3d916d0329fdc8831d37a30f345f0382f3a4d462355f6f7ba29d2d8780a9799d75f6428cb248d5315a9 WHIRLPOOL 992e9179b291b29b456aa02597ead5678a4b155132a25c2a041d2e1129f7c7a7837bb0d0fd3f50ea50862423b2c966f9042a1cfb389d8406c25eeeeacb642eb4
AUX splashutils-1.5.4.3-openrc-umount-fix.patch 1152 SHA256 56f48bd31c0d405abbb2d320c131f109fcf6ee7a2ef5bed00b024dd872ef31ea SHA512 472f35f9d177cc451953f15e4ccdb8b942500490500efda57c0a873eb709f23a7ad66ce20818efd7cb383cc67beb89b91714e0759f5cb7528b092783ab66ac5e WHIRLPOOL ab6235aa7a2165db21160215628bc1dcefaba5044344d504bbd6a4878b7b8fd7b364ca86a43ae76903501c3e7ca663cfeb9c50d4eb9d18dac9d7feaa60c80174
AUX splashutils-1.5.4.3-splash-functions.patch 680 SHA256 2ff9a645513187264af92b16e4ed10bf97edc1cc46b800ed8ae7b4027d407554 SHA512 a46bd5c3134eea2ee4d15a3e53dccd2d46643375e282b2c1e292cea4d9f07458a442c91068488f6ae346976362636dd090a8c25d0e22e7c6108d41dca656f3dd WHIRLPOOL db2942de766ec33a55b1f2cfddf55826a759d9f9d0454b8901c1f6a7ba56bb04a6c9d3dddd9f1e7956b993772c905de6fbc6b2ae9c364ccac790a385d83ce271
AUX splashutils-1.5.4.3-splash_geninitramfs.patch 606 SHA256 9fe2d8c232a58089e902af3aebeba569669310fc1219da5d2c8775d4e10929ca SHA512 a027134e9de2688340cd1692982749af02813542a364ad82975c8cc1f67fc74d79cb4f4e3e2deed6aa330fc894541a0691b47288a4a8ac2430d5f5f4ba0838aa WHIRLPOOL 9472f1b2448feaf276323ef6ca9a7168c3db904c04163d57e2e8745eaf2a7763a066ed5927867e23e95c145a877a2807d1abb0f2316284b1c203b2e58b2b9d1f
AUX splashutils-1.5.4.3-splash_util.patch 1335 SHA256 25b64a8bcb49f660a18dbd30bbd0e368675cf6cde122378a94521966d5b3f928 SHA512 ca0830403e304647b49f0131e452cbe51490fdf8ad50cb8b21713e6fd9af5a9871f7fd65ac9b935273f217d89fe3618da567fb144017a275a5c5058e82dcdb30 WHIRLPOOL ee9e992a71751311a60e521cd965de3a60874bb971ac1e091b3798934267a7a9d482a6a34e599525ac4a05f4ea7e5a7cb131b4bccedea4d2fdcf7aa7674766f1
AUX splashutils-1.5.4.4-bzip2.patch 1539 SHA256 9596a410eb5fcadab850ac8f1d54c14d60287333a204212cfcdb1dc2dfa608ac SHA512 c42a967361b4ebe9673eb41cb3d8d120edf95708892422bed0b2a46ea501d852c6c43b9405c90b69469a9b0eb07a5159e1547d168ef04b0de8a6c7bae0651317 WHIRLPOOL 4f28bec7ffac7caa4b5fc8e931ae579bf8041b8fcf6c6b571dc9c59a329285d6a6c5943313bedfc3144a3f0848eecbe0784a27bdaf395715c57909bd5e90447c
AUX splashutils-1.5.4.4-freetype-bz2.patch 515 SHA256 06a9f6d9d9206d09115abf3d8c86692908530f11168a51d99dd43a465e7092c0 SHA512 880cc0703de76c3c145680f1e85e461473df3dd41817757878bd18dc4c0d10484d1f93f995e6818ddcf3309e6b9febc1447ce7880006df8e08626bac5aae2e5c WHIRLPOOL 50c58afaacfd2594c1bc402c07680d742809e2af694b98acb3656f7dbc50cc85a537bec4b362c443f9dbe1054307c397cdba9613392ef6c508760d2487095265
AUX splashutils-1.5.4.4-gentoo-typo-fix.patch 567 SHA256 92ee0727bfd9fe6f9565d09546ea63079467f67c2d57385713a62d0b617bb1bf SHA512 f5d5fd222b5dea9906e5a7541ad2ab1ff161061c6bb5e013929767d3f6aa9fe245092e201b8d42a086938be3320b77384301c22bc307cf7872daac33184127f2 WHIRLPOOL f971453383c1abf28c912a49c426c7da92ba6d44580981e89bedd4ef7df9940236e53842bd31ecb85c44c2ff31230569a33e7233498269aefc8caeacb84b9caa
AUX splashutils-1.5.4.4-multi-keyboard.patch 10158 SHA256 95a0de0a666c29c7d80fe653659191770d359f62d1edac00dc3ad97ac14d6dac SHA512 71056d599f4465ef424444d717ce1597295e0228f548c69cb36ef617075af430b1ac50f5be27bca65a50ed9e7d0169ceb256dbc66cf4b635fd9f8310d32baeae WHIRLPOOL ce782d0a6a21350fd9b00792f0eb247907b3bcf900c0e5aa8f6304d4d3c05ee59f1b036d623f25262484bd8d48ddd95a5ef086644d369c6190570be8db432112
AUX splashutils-1.5.4.4-r3-bzip2.patch 1808 SHA256 9622dc7721e0c36538e8a1321ff59e224231578675831909d1c68f3eb9f46434 SHA512 8c1ea0bef43c4c829615db010a958ffa7c4ab8c84786a39e702be677745e47004ee59bdb1d7c80bfc637ff7c0f9a129f225e024251492b45aec7c42e1bd73da0 WHIRLPOOL 2522dcc049d68269764c9254f8884d62aa16d08fe5fa917b7c89db46617c1694c73c79f3af30c361cdd22b4d68c07b0b52c70c3243c15b263c6b5cdb6e2ef457
AUX splashutils-openrc-0.4-fix.patch 2750 SHA256 9da0e841d23b07b262b4f49e25986dce24f73f554f25bc4219024414ccdd9846 SHA512 df844cdb4c1d418390031a669a0907db9e2833e5a87cebfc822e0e43e9ea43f4aaa8ab594f1c7527e056688fc96b38cefbacb2310ba9c6ee3cb06782137f6a76 WHIRLPOOL 59c9336da412c4aadea1fdb69cdd5fa4332284ce482923d392535e1833aa6e8f21981cb33c5bed3dd65b08e65e835fd7f71ba2dcf14e35575c97208d429235df
AUX splashutils-openrc-0.4.3-runlevel-fix.patch 3472 SHA256 9e122dc031acee6996375170ae8954a0ea78cc99ba9265ab2e4ba540da25cb94 SHA512 e040fbe69908050aa378b5292d7d66f9dabda2961067a8c0ed644026a8d4677a33a8ddb709fd4b85059d8676c12c5b29379f851f6737addbc3a43eded9f70587 WHIRLPOOL 5468fa781a2932a89661130b2bbc0cfd301facac6daddb8977dbfba51eb9d77bc3dee301c18aeb3c70b8bb473cb29a06654825f2255f7581c7ffc609025a5858
DIST freetype-2.3.12.tar.bz2 1453034 SHA256 3b96438f016a62b676c1d2089c00ca777f710d19f6aefa66ccf068d360db3e92 SHA512 becb0f138ee13181513d3f03b943f0a474e492cab151992fa78d0c84127819dc91ec6d2bd1528af7e111ab150b3a29104f2f7ab79650cebc35ce4d966b19f34b WHIRLPOOL 1a7363b8e1cc1b4597077e6cdf7e978b80cc76e1428124312d139ee81fe5247eed5ec0243352b721c28a25a179bceb901700d0766c1a5110b19f8fe53c303a89
DIST jpegsrc.v8a.tar.gz 962018 SHA256 bf86a5eaafa79b5d60feb27bee08df2db4c9ca2fb40d453e7a2080f7663a713b SHA512 4020e82e16b99189b1a50bad18b09616775559740b94a988692aa33f9302d4b5abe3ccaa30895b49e6950fb3d9a830deeb7df750d128ec5c7e1844583db4524d WHIRLPOOL 46e0c98f30c8d975b85b8e86b69e9c5c64632f579502b1b3c54902706d7e08b86582a85b49a0d3bfffd03cd90946fbd20171324504a5ff521eb89e6ce11d568b
DIST libpng-1.4.3.tar.bz2 658335 SHA256 2b022f39f4788505ad62a4b1f4a33286228d544719680da40f3626393ecde4a2 SHA512 aaa137ebc2312805d58caf19702d24a34ee81593d4250c4e807ce66ba7edb829926919cd0a2b0e5975421451c8eb6674798c06dbaf745175b16c9d3c92b63f61 WHIRLPOOL d383e01e6080166816991650183b47d15938aa269c0a85e234846b9c5a7ec04a1ba7620779b4ddae639ca64440772ce8dd1b3a596f6eb32124c4d6c55592fb0a
DIST miscsplashutils-0.1.8.tar.bz2 91997 SHA256 38e8434c7266126477237c4d9e6cbeca152089ab33c14a7761089b7970f8d336 SHA512 fa017e264249feda45839030728e90c82f775354c3f2c29a88362938c4a31b19e6d61f967512305642f8b96575f4d756ba197e672a361760e40080c23ec0442a WHIRLPOOL c418ee425bf323fc0e00388be4547232207fd6cac10a2e8cafeef8c8aabcd014052307533bd015e61dc483ab45edd9fbd59a3005549b7bee4a4b90bf3297394a
DIST splashutils-gentoo-1.0.17.tar.bz2 15814 SHA256 6877263d0b6f5a3532db0d6a531cd4d41fbc6c45a16c5d10050e9048ecc1af81 SHA512 75f1fbfdf165f571b0bf09235235827f370e1b940f1717c4faf5b223caba0b80f853a910ba492c776512aecfafa6e74fd964239bbc6cf412620143d5ffc74167 WHIRLPOOL de9e1ca86a87c169f0a2f7844ab9a68b29cc46c208daca4d13cf7d552b35c05b6e266d66724078cf1f6eea3d41496fdf4fd7b3219697b2032520ad2b9a5ec5c9
DIST splashutils-lite-1.5.4.4.tar.bz2 441340 SHA256 bc0e22293d4550281d2289672da3acb42594c18a75b9d00ba75526e05162ec6b SHA512 1a78216a1de1fdccff514494d7301640e447c65466e1fe02428e5114485507f67fe4394094880d927d074a8ab2d9c786ba03f9fb0371eb7ab6ef4e3b01aa4613 WHIRLPOOL f861a1673fd9e1fe32e417da48be8c472c5c3cc06844eb0886a66b498ca38cb04a6e51708821eefe3e15f66004bb6a4ef76df7242643b34090035bffdf1f87d7
DIST zlib-1.2.3.tar.bz2 425209 SHA256 e3b9950851a19904d642c4dec518623382cf4d2ac24f70a76510c944330d28ca SHA512 edae735960279d92acf58e1f4095c6392a7c2059b8f1d2c46648fc608a0fb06b392db2d073f4973f5762c034ea66596e769b95b3d26ad963a086b9b2d09825f2 WHIRLPOOL e874b123296f5d77daf60617501b30f4beebccb64b3910c2539f75f6c194a2cf4885dc7a3904bf790e1651120ec33b55c48e95970dd6bfd6c4d0a2ea48d7d0f4
EBUILD splashutils-1.5.4.4-r1.ebuild 7629 SHA256 70508fa8c5cf98d66f9870177990535a207519ebd340946c35123e8bc4e70b6f SHA512 5210910a629aaa324d35c77052a567eb795c7b4a9c6f57fae8c4e3b74fef57315e5c32c22b9825e207c90bef849fa08b38e93c3db943cb6e0ccc1b2ddb939621 WHIRLPOOL a4166cc2b230fec5e0575791b675f0784f5ce7f1852d8599b28aeb35fbad5235d0c189233a4a6ba7670470e2cc00d1ded10f7619b294b4c9877120cf74dfc906
EBUILD splashutils-1.5.4.4-r2.ebuild 7388 SHA256 18349b398964f0cbdc884bcb5988d40450a3f2b7a013b1b20cbb3bdf635787a9 SHA512 af7689a13ee4107c34bee685a3ee41fac3254e025f423a5c9e43101d4ae45e0927482915fac0cf26a879ba3de0e4828c1d4cbaf10beedaed70539fe1b59db24f WHIRLPOOL 63b92495bae06a11b09449d539b275c2c5c8d681f61066b3f2959fab15eaffa19c4cdf219c65e65475d546dd9cc08510560c03ff87c7f6cb79c95a151ebd0013
EBUILD splashutils-1.5.4.4-r3.ebuild 6988 SHA256 50191a23ae7850fba648abb4b8a563bda1f603290e54253d50daa567ac99fb45 SHA512 6407ef186bae11c2e764aadeef0feff6ec945bfd83f510a27f9b61c724e850f25f8466e16dc31cde66051b6adf367ca5202b6df007a53a4ea20bb7dff21bf587 WHIRLPOOL fe19503a2fc1e4bbcedaa15d2796502bcac9fb93b26807dd43a3ae0f4279fb997c13f01f7ed01b1498aefe1ae31d1835ed17f08a4d0a87c0c88a152fd911d108
EBUILD splashutils-1.5.4.4-r4.ebuild 6780 SHA256 de78ee53cae39ddb23839317ffe7afc6c102b40467c19a766419312329a19b87 SHA512 caa32541a7000e41e536a5af723db776e46ebb35796c246521797c7c2ce35762969fc9126c8e88a3f46e8f485f7cab1350fd2b6951181824fd1dff551bba8aff WHIRLPOOL 750d21485c4f682fa3f39a7825cbcbcacec5ea873b5732baba639c33bba3be91ccc2cc3bfaa7844a7bd5b4feaac01c2cd3a29d4443135d7565616d06c05f873a
MISC ChangeLog 39086 SHA256 456379728e8e354eea0c4177df7f4e2964e002f8524b7726ea8ed7dd317ff575 SHA512 1884918c26722958ba6774df371657a176b5e850ce521396881f5ea56020ed5b2db8f1951bb50bedd55a12e144b70e5081534eafb858915d0e49e01f7eb997f7 WHIRLPOOL 291e7f366ae69ba66f45e8b11a9d8020b574dea237b3f91e12c7e107ebc2e67c22611c92a22d28233c67d5f0abcc7b838c3efa768c2ebcc1df4f802a4e88c25a
MISC metadata.xml 324 SHA256 51a25c570502116aa46bfe2bdfbb99be8a81290879563848978a9ee301a3dfa5 SHA512 4fccbcc1c6372560a0139262caf1f305cf658be6761e9703a0033da08af0d8a3dc310e1ceec52761b173fce2d6a94971fbde69ee0a419a7f00457f08691b233e WHIRLPOOL 60b68573116b7ef2a1a4fd87ab47172b56617c7d713ba44e9cdfce23283bf45ddf94ce0d4dd7d9d8ca7ab0c3af164557ec8f16ae872269b1b04b92d3a6e4781d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iQJ8BAEBCABmBQJSxDWcXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQzNTVDNDczOUYzRjJEMTRGNDRGMzU2RkMw
OUJGNEY1NEMyQkE3RjNDAAoJEAm/T1TCun88XdwQAK4SY/CFdKfiB0GhX21GOxvi
OE8RrviBF86USsSO3A7zhFyl4wHW4GmBlGooLz3u0pJDrZKiMlCH2Hsd2ofkkHEz
ywQkhjBQQHTiKrNZpgvYQEZBjp7dsdHZUkXvP/O7OctLL5RkMT8/5sZTSmZi8vJQ
AWtLnB8eLNvpgQt5Y3BelAkpFhYCLOq4PwTRHUUJLqD2bGgEeXbo3P27sw4Ksj6X
ajBUZtylbmfLZOF3qEjW825K70XLmcK/t/ODvYudAgd00zyqfMkeTXNhWO8nTr4k
kPLgHFMmnFWQIDVkPDR82/T5ketCUIzh3HoMZjUcWQDxIOyX97mwrBUQq4N72iQa
qh4++A/c3AAEXgeywIqCi24L/5T/32i7rpa6GBZIZRbyoBkna2cQFew4jfdiUGLA
he1r3EP82BXODl9Rh8d0teqvCQi2+IyPkB47zArSvMPT8neRK/75f6R0g/mmXYWY
qSHPShB9/4T4k5XqiIHRL/cTXImwPmbmnImbpsH9S4GKTxmrhw6ai0sKei6G0Fca
VL7RERW01nPZyxYZQD9KgUHM6J8JehngExP0pTKLPWKzQmeuhOA9HYMdMVe2HYrL
nmPoVtJEoyKD5TS/KmHv3nrbhUdekCj3QqIbFYe2+acn/i6RXfdZuMByGtqWnejh
T0BJzCTMgKK3YiMFhds1
=DkGB
-----END PGP SIGNATURE-----

View File

@@ -0,0 +1,11 @@
--- initrd.splash 2008-11-13 23:49:00.000000000 +0100
+++ initrd.splash.new 2010-07-27 21:35:24.647912782 +0200
@@ -26,7 +26,7 @@
init)
if [ -n "$2" ]; then
export BOOT_MSG="$2"
- elif [ "${CDROOT}" -eq '1' ]; then
+ elif [ "${CDROOT}" = '1' ]; then
export BOOT_MSG="Preparing the LiveCD environment... Press Alt+F1 for verbose mode."
else
export BOOT_MSG="Preparing the system for boot... Press Alt+F1 for verbose mode."

View File

@@ -0,0 +1,110 @@
diff --git a/core/src/daemon.c b/core/src/daemon.c
index e3463fc..eae23ec 100644
--- a/core/src/daemon.c
+++ b/core/src/daemon.c
@@ -306,6 +306,35 @@ void handler_alarm(int unused)
return;
}
+int process_switch_sig(int sig)
+{
+ /* Switch from silent to verbose. */
+ if (sig == SIGUSR1) {
+ pthread_mutex_lock(&mtx_paint);
+ pthread_mutex_lock(&mtx_tty);
+ ioctl(fd_tty[config.tty_s], VT_RELDISP, 1);
+ pthread_mutex_unlock(&mtx_tty);
+
+ ctty = CTTY_VERBOSE;
+ pthread_mutex_unlock(&mtx_paint);
+ return 1;
+ /* Switch back to silent. */
+ } else if (sig == SIGUSR2) {
+ pthread_mutex_lock(&mtx_paint);
+ pthread_mutex_lock(&mtx_tty);
+ ioctl(fd_tty[config.tty_s], VT_RELDISP, 2);
+ pthread_mutex_unlock(&mtx_tty);
+
+ ctty = CTTY_SILENT;
+ pthread_mutex_unlock(&mtx_paint);
+
+ switch_silent();
+ return 2;
+ }
+
+ return 0;
+}
+
/*
* Signal handler.
*
@@ -315,7 +344,7 @@ void handler_alarm(int unused)
*/
void* thf_sighandler(void *unusued)
{
- sigset_t sigset;
+ sigset_t sigset, sigset_switch;
int sig;
/* We don't handle SIGALRM. */
@@ -329,31 +358,39 @@ void* thf_sighandler(void *unusued)
sigaddset(&sigset, SIGTERM);
sigaddset(&sigset, SIGINT);
+ sigemptyset(&sigset_switch);
+ sigaddset(&sigset_switch, SIGUSR1);
+ sigaddset(&sigset_switch, SIGUSR2);
+
while (1) {
sigwait(&sigset, &sig);
- /* Switch from silent to verbose. */
- if (sig == SIGUSR1) {
- pthread_mutex_lock(&mtx_paint);
- pthread_mutex_lock(&mtx_tty);
- ioctl(fd_tty[config.tty_s], VT_RELDISP, 1);
- pthread_mutex_unlock(&mtx_tty);
-
- ctty = CTTY_VERBOSE;
- pthread_mutex_unlock(&mtx_paint);
- /* Switch back to silent. */
- } else if (sig == SIGUSR2) {
- pthread_mutex_lock(&mtx_paint);
- pthread_mutex_lock(&mtx_tty);
- ioctl(fd_tty[config.tty_s], VT_RELDISP, 2);
- pthread_mutex_unlock(&mtx_tty);
-
- ctty = CTTY_SILENT;
- pthread_mutex_unlock(&mtx_paint);
+ process_switch_sig(sig);
+
+ /* Internally generated terminate signal */
+ if (sig == SIGINT) {
+ struct timespec timeout;
+ timeout.tv_sec = 0;
+ timeout.tv_nsec = 0;
+ bool pending = true;
+
+ /*
+ * Process any remaining signals. There are no guarantees as to the
+ * order in which the signals are delivered, so we have to make sure
+ * all pending signals are processed before exiting.
+ */
+ while (pending) {
+ sig = sigtimedwait(&sigset_switch, NULL, &timeout);
+
+ if (sig == -1) {
+ /* No more pending signals. */
+ if (errno == EAGAIN)
+ pending = false;
+ } else {
+ process_switch_sig(sig);
+ }
+ }
- switch_silent();
- } else if (sig == SIGINT) {
- /* internally generated terminate signal */
do_cleanup();
pthread_exit(NULL);
} else if (sig == SIGTERM) {

View File

@@ -0,0 +1,55 @@
diff --git a/gentoo/splash.c b/gentoo/splash.c
index b6fa774..726315f 100644
--- a/gentoo/splash.c
+++ b/gentoo/splash.c
@@ -134,6 +134,19 @@ static void get_list(RC_STRINGLIST *list, const char *file)
}
}
+static void fix_rc_variable(char *s)
+{
+ do {
+ char *t = strstr(s, "\\$");
+
+ if (t) {
+ memmove(t, t+1, strlen(t));
+ } else {
+ break;
+ }
+ } while(1);
+}
+
/*
* Get splash settings from /etc/conf.d/splash
*/
@@ -189,21 +202,27 @@ static int splash_config_gentoo(fbspl_cfg_t *cfg, fbspl_type_t type)
switch(type) {
case fbspl_reboot:
t = rc_config_value(confd, "SPLASH_REBOOT_MESSAGE");
- if (t)
+ if (t) {
+ fix_rc_variable(t);
fbsplash_acc_message_set(t);
+ }
break;
case fbspl_shutdown:
t = rc_config_value(confd, "SPLASH_SHUTDOWN_MESSAGE");
- if (t)
+ if (t) {
+ fix_rc_variable(t);
fbsplash_acc_message_set(t);
+ }
break;
case fbspl_bootup:
default:
t = rc_config_value(confd, "SPLASH_BOOT_MESSAGE");
- if (t)
+ if (t) {
+ fix_rc_variable(t);
fbsplash_acc_message_set(t);
+ }
break;
}

View File

@@ -0,0 +1,36 @@
diff --git a/core/libs/Makefile.am b/core/libs/Makefile.am
index d070b29..c0a9258 100644
--- a/core/libs/Makefile.am
+++ b/core/libs/Makefile.am
@@ -53,7 +53,7 @@ libfreetype.a: klibc_compat.h
if ! $(MAKE) --question $(AM_MAKEFLAGS) CFLAGS="$(K_CFLAGS)" library ; then \
$(call infmsg,MAKE,libfreetype.a) ; \
fi ; \
- $(MAKE) $(AM_MAKEFLAGS) CFLAGS="-c $(K_CFLAGS)" CCexe="$(BUILD_CC)" library $(OUTPUT)
+ $(MAKE) $(AM_MAKEFLAGS) CFLAGS="-c $(K_CFLAGS)" CCexe="$(BUILD_CC)" ANSIFLAGS="" library $(OUTPUT)
$(Q)$(MKDIR_P) $(@D)
$(Q)cp -f libfreetype/.libs/libfreetype.a $@
@@ -62,18 +62,18 @@ libjpeg.a:
$(Q)cd libjpeg ; \
if test ! -e ./Makefile ; then \
$(call infmsg,CONF,libjpeg.a) ; \
- CC=$(KLCC) CFLAGS="$(K_CFLAGS) -I$(abs_top_builddir)/libs/libjpeg" $(LIBJPEG_SOURCE)/configure \
+ CC=$(KLCC) CFLAGS="$(K_CFLAGS) -I$(abs_top_builddir)/libs/libjpeg -include $(abs_top_srcdir)/libs/klibc_compat.h" $(LIBJPEG_SOURCE)/configure \
--host=$(host) --build=$(build_triplet) $(OUTPUT) ; \
echo "#define NO_GETENV 1" >> jconfig.h ; \
$(SED) -i "s#CFLAGS=.*#CFLAGS=$(K_CFLAGS) -I$(abs_top_builddir)/libs/libjpeg#" Makefile ; \
$(SED) -i "s:#define JMESSAGE.*::" $(LIBJPEG_SOURCE)/jerror.c ; \
fi ; \
- if ! $(MAKE) --question $(AM_MAKEFLAGS) CC="$(KLCC)" libjpeg.a ; then \
+ if ! $(MAKE) --question $(AM_MAKEFLAGS) CC="$(KLCC)" libjpeg.la ; then \
$(call infmsg,MAKE,libjpeg.a) ; \
fi ; \
- $(MAKE) $(AM_MAKEFLAGS) CC="$(KLCC)" libjpeg.a $(OUTPUT)
+ $(MAKE) $(AM_MAKEFLAGS) CC="$(KLCC)" libjpeg.la $(OUTPUT)
$(Q)$(MKDIR_P) $(@D)
- $(Q)cp -f libjpeg/libjpeg.a $@
+ $(Q)cp -f libjpeg/.libs/libjpeg.a $@
libpng.a: libz.a
$(Q)cd $(LIBPNG_SOURCE) ; \

View File

@@ -0,0 +1,96 @@
commit 1b760b583f1faa0d3114440a6746cbefa36dd797
Author: AlphatPC <AlphatPC@gmail.com>
Date: Sun May 8 17:18:03 2011 +0200
Use libpng accessor functions (for libpng-1.5 compat).
diff --git a/core/src/image.c b/core/src/image.c
index 6973575..4fb21a9 100644
--- a/core/src/image.c
+++ b/core/src/image.c
@@ -61,27 +61,27 @@ static int load_png(stheme_t *theme, char *filename, u8 **data, struct fb_cmap *
png_init_io(png_ptr, fp);
png_read_info(png_ptr, info_ptr);
- if (cmap && info_ptr->color_type != PNG_COLOR_TYPE_PALETTE)
+ if (cmap && png_get_color_type(png_ptr, info_ptr) != PNG_COLOR_TYPE_PALETTE)
return -2;
- if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
- info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY ||
+ png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY_ALPHA)
png_set_gray_to_rgb(png_ptr);
- if (info_ptr->bit_depth == 16)
+ if (png_get_bit_depth(png_ptr, info_ptr) == 16)
png_set_strip_16(png_ptr);
- if (!want_alpha && info_ptr->color_type & PNG_COLOR_MASK_ALPHA)
+ if (!want_alpha && png_get_color_type(png_ptr, info_ptr) & PNG_COLOR_MASK_ALPHA)
png_set_strip_alpha(png_ptr);
#ifndef TARGET_KERNEL
- if (!(info_ptr->color_type & PNG_COLOR_MASK_ALPHA) & want_alpha) {
+ if (!(png_get_color_type(png_ptr, info_ptr) & PNG_COLOR_MASK_ALPHA) & want_alpha) {
png_set_add_alpha(png_ptr, 0xff, PNG_FILLER_AFTER);
}
#endif
png_read_update_info(png_ptr, info_ptr);
- if (!cmap && info_ptr->color_type != PNG_COLOR_TYPE_RGB && info_ptr->color_type != PNG_COLOR_TYPE_RGBA)
+ if (!cmap && png_get_color_type(png_ptr, info_ptr) != PNG_COLOR_TYPE_RGB && png_get_color_type(png_ptr, info_ptr) != PNG_COLOR_TYPE_RGBA)
return -3;
if (cmap) {
@@ -93,12 +93,12 @@ static int load_png(stheme_t *theme, char *filename, u8 **data, struct fb_cmap *
rowbytes = png_get_rowbytes(png_ptr, info_ptr);
- if ((width && *width && info_ptr->width != *width) || (height && *height && info_ptr->height != *height)) {
+ if ((width && *width && png_get_image_width(png_ptr, info_ptr) != *width) || (height && *height && png_get_image_height(png_ptr, info_ptr) != *height)) {
iprint(MSG_ERROR, "Image size mismatch: %s.\n", filename);
return -2;
} else {
- *width = info_ptr->width;
- *height = info_ptr->height;
+ *width = png_get_image_width(png_ptr, info_ptr);
+ *height = png_get_image_height(png_ptr, info_ptr);
}
*data = malloc(theme->xres * theme->yres * fbd.bytespp);
@@ -114,11 +114,11 @@ static int load_png(stheme_t *theme, char *filename, u8 **data, struct fb_cmap *
return -4;
}
- for (i = 0; i < info_ptr->height; i++) {
+ for (i = 0; i < png_get_image_height(png_ptr, info_ptr); i++) {
if (cmap) {
- row_pointer = *data + info_ptr->width * i;
+ row_pointer = *data + png_get_image_width(png_ptr, info_ptr) * i;
} else if (want_alpha) {
- row_pointer = *data + info_ptr->width * i * 4;
+ row_pointer = *data + png_get_image_width(png_ptr, info_ptr) * i * 4;
} else {
row_pointer = buf;
}
@@ -127,7 +127,7 @@ static int load_png(stheme_t *theme, char *filename, u8 **data, struct fb_cmap *
if (cmap) {
int h = 256 - cmap->len;
- t = *data + info_ptr->width * i;
+ t = *data + png_get_image_width(png_ptr, info_ptr) * i;
if (h) {
/* Move the colors up by 'h' offset. This is used because fbcon
@@ -139,8 +139,8 @@ static int load_png(stheme_t *theme, char *filename, u8 **data, struct fb_cmap *
/* We only need to convert the image if the alpha channel is not required */
} else if (!want_alpha) {
- u8 *tmp = *data + info_ptr->width * bytespp * i;
- rgba2fb((rgbacolor*)buf, tmp, tmp, info_ptr->width, i, 0, 0xff);
+ u8 *tmp = *data + png_get_image_width(png_ptr, info_ptr) * bytespp * i;
+ rgba2fb((rgbacolor*)buf, tmp, tmp, png_get_image_width(png_ptr, info_ptr), i, 0, 0xff);
}
}

View File

@@ -0,0 +1,27 @@
diff --git a/core/src/Makefile.am b/core/src/Makefile.am
index 20cb03e..fa6919d 100644
--- a/core/src/Makefile.am
+++ b/core/src/Makefile.am
@@ -119,7 +119,7 @@ libfbsplashrender_la_SOURCES = \
fbsplash.h
libfbsplashrender_la_CFLAGS = $(AM_CFLAGS)
libfbsplashrender_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(libfbsplashrender_version)
-libfbsplashrender_la_LIBADD = -lfbsplash
+libfbsplashrender_la_LIBADD = libfbsplash.la
libfbsplashrender_la_CFLAGS += $(JPEG_CFLAGS)
libfbsplashrender_la_LIBADD += $(JPEG_LIBS)
@@ -258,10 +258,10 @@ fbcondecor_helper_LDFLAGS += -static
endif
# Override automake's generation of target rules for building fbcondecor_helper.
-fbcondecor_helper: $(fbcondecor_helper_LDADD) $(fbcondecor_helper_OBJECTS)
+fbcondecor_helper: $(fbcondecor_helper_LDADD) $(fbcondecor_helper_OBJECTS) $(lib_LTLIBRARIES)
@$(call infmsg,LD,$@)
$(Q)$(MKDIR_P) $(@D)
- $(Q)$(KLCC) $(fbcondecor_helper_CFLAGS) $(fbcondecor_helper_LDFLAGS) $+ $(fbcondecor_helper_LDADD) -o $@
+ $(Q)$(KLCC) $(fbcondecor_helper_CFLAGS) $(fbcondecor_helper_LDFLAGS) $(fbcondecor_helper_OBJECTS) $(fbcondecor_helper_LDADD) -o $@
$(Q)$(STRIP) $@
# Override automake's generation of target rules for building fbcondecor_helper object files.

View File

@@ -0,0 +1,24 @@
commit 6f9aa3a3bc11e539613facf3caba5dcdb43c0117
Author: Michał Januszewski <spock@gentoo.org>
Date: Sun Nov 22 20:56:47 2009 +0100
gentoo: make sure the splash daemon works when boot goes through a named runlevel other than default
diff --git a/gentoo/splash.c b/gentoo/splash.c
index d831d0c..4b9a5b9 100644
--- a/gentoo/splash.c
+++ b/gentoo/splash.c
@@ -777,10 +777,12 @@ int rc_plugin_hook(RC_HOOK hook, const char *name)
hook != RC_HOOK_RUNLEVEL_START_OUT)
goto exit;
} else {
+ int pid;
+
/* We're starting/stopping a runlevel. Check whether we're
* actually booting/rebooting. */
if (rc_runlevel_starting() && strcmp(runlev, bootlevel) &&
- strcmp(runlev, defaultlevel) && strcmp(runlev, RC_LEVEL_SYSINIT))
+ strcmp(runlev, RC_LEVEL_SYSINIT) && fbsplash_check_daemon(&pid))
goto exit;
if (rc_runlevel_stopping() && strcmp(runlev, bootlevel) &&

View File

@@ -0,0 +1,55 @@
commit 7cf5fd02bbc6422ddbc9af7185cc47657148deb0
Author: Michał Januszewski <spock@gentoo.org>
Date: Sun Apr 4 16:19:40 2010 +0200
gentoo: only enable the effects that are actually selected.
diff --git a/gentoo/splash.c b/gentoo/splash.c
index 4b9a5b9..5220571 100644
--- a/gentoo/splash.c
+++ b/gentoo/splash.c
@@ -660,7 +660,7 @@ static int splash_start(const char *runlevel)
(config->type == fbspl_reboot) ? "reboot" : ((config->type == fbspl_shutdown) ? "shutdown" : "bootup"),
(config->kdmode == KD_GRAPHICS) ? "--kdgraphics" : "",
(config->textbox_visible) ? "--textbox" : "",
- (config->effects & (FBSPL_EFF_FADEOUT | FBSPL_EFF_FADEIN)) ? "--effects=fadeout,fadein" :
+ ((config->effects & (FBSPL_EFF_FADEOUT | FBSPL_EFF_FADEIN)) == (FBSPL_EFF_FADEOUT | FBSPL_EFF_FADEIN)) ? "--effects=fadeout,fadein" :
((config->effects & FBSPL_EFF_FADEOUT) ? "--effects=fadeout" :
((config->effects & FBSPL_EFF_FADEIN) ? "--effects=fadein" : "")));
@@ -716,11 +716,7 @@ static int splash_stop(const char *runlevel)
/* If we don't get a runlevel argument, then we're being executed
* because of a rc-abort event and we don't save any data. */
- if (runlevel == NULL) {
- return fbsplash_cache_cleanup(NULL);
- } else {
- return fbsplash_cache_cleanup(save);
- }
+ return fbsplash_cache_cleanup(save);
}
int rc_plugin_hook(RC_HOOK hook, const char *name)
commit d711147fc835cf408a9a4e7432fc565a6b952183
Author: Michał Januszewski <spock@gentoo.org>
Date: Sun Apr 4 16:57:23 2010 +0200
gentoo: add some comments in splash.conf
diff --git a/gentoo/splash.conf b/gentoo/splash.conf
index 4cf0a32..f056382 100644
--- a/gentoo/splash.conf
+++ b/gentoo/splash.conf
@@ -21,7 +21,10 @@ SPLASH_TEXTBOX="no"
SPLASH_AUTOVERBOSE="0"
# Name of the boot service starting X. Useful in cases when X is started
-# by a custom initscript, other than the usual 'xdm'.
+# by a custom initscript, other than the usual 'xdm'. If you are using a
+# custom X initscript and do not set this variable correctly, do not be
+# surprised if you end up at tty1 at the end of the boot process (instead of
+# in an X session).
# SPLASH_XSERVICE="xdm"
#########################################################################

View File

@@ -0,0 +1,29 @@
commit ae4b5cc9c2d904e18db51876d9bd292504714600
Author: Michał Januszewski <spock@gentoo.org>
Date: Mon Apr 6 20:59:48 2009 +0200
Prevent umounting of theme directories.
Some themes dynamically modify themselves during boot. In order to be
able to do that, they mount a tmpfs in their main directory. Prevent
openrc from umounting this directory when rebooting.
diff --git a/gentoo/splash.c b/gentoo/splash.c
index 048e0ec..d831d0c 100644
--- a/gentoo/splash.c
+++ b/gentoo/splash.c
@@ -968,10 +968,10 @@ do_start:
if (name && !strcmp(name, "localmount")) {
char *umounts = getenv("RC_NO_UMOUNTS");
- if (umounts)
- fprintf(rc_environ_fd, "RC_NO_UMOUNTS=%s:%s", umounts, FBSPLASH_CACHEDIR);
- else
- fprintf(rc_environ_fd, "RC_NO_UMOUNTS=%s", FBSPLASH_CACHEDIR);
+ if (umounts)
+ fprintf(rc_environ_fd, "RC_NO_UMOUNTS=%s:" FBSPLASH_CACHEDIR ":/etc/splash/%s", umounts, config->theme);
+ else
+ fprintf(rc_environ_fd, "RC_NO_UMOUNTS=" FBSPLASH_CACHEDIR ":/etc/splash/%s", config->theme);
}
i = splash_svc_handle(name, "svc_stop", false);
break;

View File

@@ -0,0 +1,21 @@
commit 7077483874a842c607d6e877696891ba4d5f1dd7
Author: Michał Januszewski <spock@gentoo.org>
Date: Sat Oct 9 21:07:37 2010 +0200
Fix a bug in splash-functions.sh.
This problem was reported in Gentoo bug #339767.
diff --git a/core/scripts/splash-functions.sh.in b/core/scripts/splash-functions.sh.in
index 1a89486..2c39c6a 100644
--- a/core/scripts/splash-functions.sh.in
+++ b/core/scripts/splash-functions.sh.in
@@ -341,7 +341,7 @@ splash_comm_send() {
# Returns the current splash mode.
splash_get_mode() {
- local ctty="${spl_bindir}/fgconsole"
+ local ctty="$({spl_bindir}/fgconsole)"
local mode="$(${spl_util})"
if [ "${mode}" = "silent" ]; then

View File

@@ -0,0 +1,13 @@
diff --git a/core/scripts/splash_geninitramfs.in b/core/scripts/splash_geninitramfs.in
index 9d75d21..ff9b75b 100644
--- a/core/scripts/splash_geninitramfs.in
+++ b/core/scripts/splash_geninitramfs.in
@@ -149,7 +149,7 @@ if [ "$mode" == "a" ]; then
fi
printv "o Creating directory structure.."
-mkdir -p ${imgdir}/{dev,dev/fb,dev/misc,dev/vc,$themedir,lib/splash/proc,root,sbin,lib/splash/sys}
+mkdir -p ${imgdir}/{dev,dev/fb,dev/misc,dev/vc,$themedir,@libdir@/splash/proc,root,sbin,@libdir@/splash/sys}
if [ $EUID == 0 ]; then
[[ ! -e "${imgdir}/dev/null" ]] && mknod "${imgdir}/dev/null" c 1 3

View File

@@ -0,0 +1,24 @@
diff -Naurp splashutils-1.5.4.3-orig//scripts/splash-functions.sh.in splashutils-1.5.4.3/scripts/splash-functions.sh.in
--- splashutils-1.5.4.3-orig//scripts/splash-functions.sh.in 2010-10-09 21:44:39.127691474 +0200
+++ splashutils-1.5.4.3/scripts/splash-functions.sh.in 2010-10-09 21:44:54.678690080 +0200
@@ -26,7 +26,7 @@ export spl_cachedir="@libdir@/splash/cac
export spl_tmpdir="@libdir@/splash/tmp"
export spl_fifo="${spl_cachedir}/.splash"
export spl_pidfile="${spl_cachedir}/daemon.pid"
-export spl_util="@bindir@/splash_util.static"
+export spl_util="@sbindir@/splash_util.static"
export spl_daemon="@sbindir@/fbsplashd.static"
export spl_decor="@sbindir@/fbcondecor_ctl.static"
export spl_bindir="@libdir@/splash/bin"
diff -Naurp splashutils-1.5.4.3-orig//src/Makefile.am splashutils-1.5.4.3/src/Makefile.am
--- splashutils-1.5.4.3-orig//src/Makefile.am 2010-10-09 21:44:39.121691920 +0200
+++ splashutils-1.5.4.3/src/Makefile.am 2010-10-09 21:45:10.934689775 +0200
@@ -166,7 +166,7 @@ if CONFIG_FBCON_DECOR
sbin_PROGRAMS += fbcondecor_ctl
endif
sbin_PROGRAMS += fbsplashd
-bin_PROGRAMS += splash_util
+sbin_PROGRAMS += fbsplashd splash_util
eexecsbin_PROGRAMS += fbsplashctl
fbcondecor_ctl_SOURCES = fbcon_decor_ctl.c fbcon_decor.h ../include/console_decor.h ../include/fbcondecor.h common.h fbsplash.h

View File

@@ -0,0 +1,43 @@
core/configure.ac | 6 ++++++
core/src/Makefile.am | 2 +-
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/core/configure.ac b/core/configure.ac
index c5fbb84..ae9e235 100644
--- a/core/configure.ac
+++ b/core/configure.ac
@@ -616,6 +616,7 @@ AS_IF(
AC_SUBST([PNG_CFLAGS])
AC_SUBST([PNG_LIBS])
+BZ2_LIBS=
AS_IF(
[test "x${config_ttf}" = "xyes"],
[
@@ -625,8 +626,13 @@ AS_IF(
,
[AC_MSG_ERROR([freetype was not found.])]
)
+ AC_CHECK_LIB([bz2], [BZ2_bzDecompress],
+ [BZ2_LIBS="${BZ2_LIBS} -lbz2"],
+ [AC_MSG_ERROR(['libbz2' library was not found.])]
+ )
]
)
+AC_SUBST([BZ2_LIBS])
AH_TOP([#ifndef __SPLASH_CONFIG_H
#define __SPLASH_CONFIG_H])
diff --git a/core/src/Makefile.am b/core/src/Makefile.am
index d6ce315..349b5e7 100644
--- a/core/src/Makefile.am
+++ b/core/src/Makefile.am
@@ -190,7 +190,7 @@ fbsplashctl_SOURCES = $(fbsplashd_SOURCES) $(splash_util_SOURCES) fbspla
fbsplashctl_CFLAGS = $(AM_CFLAGS) $(PTHREAD_STATIC_CFLAGS) $(RT_CFLAGS) $(libfbsplashrender_la_CFLAGS) -DUNIFIED_BUILD
fbsplashctl_CPPFLAGS = $(fbsplashd_CPPFLAGS) $(splash_util_CPPFLAGS)
fbsplashctl_LDFLAGS = $(AM_LDFLAGS) -all-static
-fbsplashctl_LDADD = libfbsplashrender.la libfbsplash.la $(PTHREAD_STATIC_LIBS) $(RT_LIBS) $(GPM_LIBS)
+fbsplashctl_LDADD = libfbsplashrender.la libfbsplash.la $(PTHREAD_STATIC_LIBS) $(RT_LIBS) $(GPM_LIBS) $(BZ2_LIBS)
if CONFIG_FBCON_DECOR
fbsplashctl_SOURCES += $(fbcondecor_ctl_SOURCES)

View File

@@ -0,0 +1,15 @@
=== modified file 'fbtruetype/Makefile'
--- fbtruetype/Makefile 2011-10-01 14:10:17 +0000
+++ fbtruetype/Makefile 2011-10-01 14:15:02 +0000
@@ -23,8 +23,8 @@
OBJECTS = fbtruetype.o messages.o console.o ttf.o luxisri.o
LDFLAGS += -L$(LIBDIR)
-LIBSS = $(LIBDIR)/libfreetype.a $(LIBDIR)/libz.a -lm
-LIBSD = -lfreetype -lm
+LIBSS = $(shell pkg-config freetype2 --libs --static) -lm
+LIBSD = $(shell pkg-config freetype2 --libs) -lm
CFLAGS += -I/usr/include/freetype2
COMPILE = $(CC) $(CFLAGS)

View File

@@ -0,0 +1,19 @@
commit 74dda8291efae78f00bb781148c8fd4fccaeb764
Author: Michał Januszewski <spock@gentoo.org>
Date: Tue Jun 14 23:23:33 2011 +0200
Fix typo in the Gentoo initscript.
diff --git a/gentoo/init-fbcondecor b/gentoo/init-fbcondecor
index b66f40a..ce921b6 100755
--- a/gentoo/init-fbcondecor
+++ b/gentoo/init-fbcondecor
@@ -12,7 +12,7 @@ start() {
splash_setup
if [ -z "${FBCONDECOR_TTYS}" ]; then
- FBCONDECOR_TTYS=$(seq 1 "${rc_tty_number:-${RC_TTY_NUMBER}:-12}")
+ FBCONDECOR_TTYS=$(seq 1 "${rc_tty_number:-${RC_TTY_NUMBER:-12}}")
fi
local err=0

View File

@@ -0,0 +1,381 @@
diff -ru a/core/src/common.h b/core/src/common.h
--- a/core/src/common.h 2013-01-11 06:35:35.000000000 +0200
+++ b/core/src/common.h 2013-01-11 06:34:08.000000000 +0200
@@ -34,6 +34,10 @@
#define PATH_PROC FBSPLASH_DIR"/proc"
#endif
+/* Maximum number of keyboard connected to a machine.
+ * The number is big (8) to be on the safe side */
+#define MAX_KBDS 8
+
/* Useful short-named types */
typedef u_int8_t u8;
typedef u_int16_t u16;
diff -ru a/core/src/daemon.c b/core/src/daemon.c
--- a/core/src/daemon.c 2013-01-11 06:35:35.000000000 +0200
+++ b/core/src/daemon.c 2013-01-11 06:34:08.000000000 +0200
@@ -20,6 +20,7 @@
#include <sys/ioctl.h>
#include <sys/wait.h>
#include <sys/mman.h>
+#include <sys/select.h>
#include <pthread.h>
#include <errno.h>
#include <dirent.h>
@@ -29,6 +30,8 @@
#include "common.h"
#include "daemon.h"
+#define EV_BUF_SIZE 8
+
/* Threading structures */
pthread_mutex_t mtx_tty = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_t mtx_paint = PTHREAD_MUTEX_INITIALIZER;
@@ -41,7 +44,8 @@
int ctty = CTTY_VERBOSE;
/* File descriptors */
-int fd_evdev = -1;
+int fd_evdevs[MAX_KBDS];
+int evdev_count = 0;
#ifdef CONFIG_GPM
int fd_gpm = -1;
#endif
@@ -51,7 +55,6 @@
/* Misc settings */
char *notify[2];
-char *evdev = NULL;
/* Service list */
list svcs = { NULL, NULL };
@@ -400,56 +403,83 @@
}
}
+__u16 get_ev_key_pressed(int fd_evdev, int ev_buf_size,
+ struct input_event *ev_buf) {
+ size_t rb;
+ int i;
+ rb = read(fd_evdev, ev_buf, sizeof(struct input_event) * ev_buf_size);
+ if (rb < (int) sizeof(struct input_event))
+ return 0;
+
+ for (i = 0; i < (int) (rb / sizeof(struct input_event)); i++) {
+ if (ev_buf[i].type != EV_KEY || ev_buf[i].value != 0)
+ continue;
+ return ev_buf[i].code;
+ }
+}
+
/*
* Event device monitor thread.
*/
void* thf_switch_evdev(void *unused)
{
- int i, h, oldstate;
- size_t rb;
- struct input_event ev[8];
+ int i, h, oldstate, nfds, retval, fd_evdev;
+ fd_set rfds;
+ struct input_event ev_buf[EV_BUF_SIZE];
+ __u16 key_pressed = 0;
while (1) {
- rb = read(fd_evdev, ev, sizeof(struct input_event)*8);
- if (rb < (int) sizeof(struct input_event))
- continue;
+ nfds = 0, fd_evdev = -1;
+ FD_ZERO(&rfds);
+ for (i = 0;i < evdev_count;i++) {
+ FD_SET(fd_evdevs[i], &rfds);
+ nfds = max(nfds, fd_evdevs[i]);
+ }
- for (i = 0; i < (int) (rb / sizeof(struct input_event)); i++) {
- if (ev[i].type != EV_KEY || ev[i].value != 0)
- continue;
+ nfds++;
- switch (ev[i].code) {
- case KEY_F2:
- pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &oldstate);
- pthread_mutex_lock(&mtx_paint);
- if (ctty == CTTY_SILENT) {
- h = config.tty_v;
- } else {
- h = config.tty_s;
+ retval = select(nfds, &rfds, NULL, NULL, NULL);
+ if (retval == -1)
+ perror("select()");
+ else if (retval) {
+ for (i = 0;i < evdev_count;i++) {
+ if (FD_ISSET(fd_evdevs[i], &rfds)) {
+ fd_evdev = fd_evdevs[i];
+ break;
}
- pthread_mutex_unlock(&mtx_paint);
- pthread_setcancelstate(oldstate, NULL);
+ }
+ key_pressed = get_ev_key_pressed(fd_evdev, EV_BUF_SIZE, ev_buf);
+ if (key_pressed == -1)
+ continue;
+ switch (key_pressed) {
+ case KEY_F2:
+ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &oldstate);
+ pthread_mutex_lock(&mtx_paint);
+ h = (ctty == CTTY_SILENT) ? config.tty_v : config.tty_s;
+ pthread_mutex_unlock(&mtx_paint);
+ pthread_setcancelstate(oldstate, NULL);
+
+ /* Switch to the new tty. This ioctl has to be done on
+ * the silent tty. Sometimes init will mess with the
+ * settings of the verbose console which will prevent
+ * console switching from working properly.
+ *
+ * Don't worry about fd_tty[config.tty_s]
+ * not being protected by a mutex --
+ * this thread is always killed before any changes
+ * are made to fd_tty[config.tty_s].
+ */
+ ioctl(fd_tty[config.tty_s], VT_ACTIVATE, h);
+ break;
- /* Switch to the new tty. This ioctl has to be done on
- * the silent tty. Sometimes init will mess with the
- * settings of the verbose console which will prevent
- * console switching from working properly.
- *
- * Don't worry about fd_tty[config.tty_s] not being protected by a
- * mutex -- this thread is always killed before any changes
- * are made to fd_tty[config.tty_s].
- */
- ioctl(fd_tty[config.tty_s], VT_ACTIVATE, h);
- break;
-
- case KEY_F3:
- config.textbox_visible = !config.textbox_visible;
- invalidate_textbox(theme, config.textbox_visible);
- cmd_paint(NULL);
- break;
+ case KEY_F3:
+ config.textbox_visible = !config.textbox_visible;
+ invalidate_textbox(theme, config.textbox_visible);
+ cmd_paint(NULL);
+ break;
}
- }
- }
+ } /* end of else if (retval) */
+ } /* end of while(1) */
pthread_exit(NULL);
}
@@ -519,7 +549,7 @@
/* Do we have to start a monitor thread? */
if (update & UPD_MON) {
- if (fd_evdev != -1) {
+ if (evdev_count >= 0) {
if (pthread_create(&th_switchmon, NULL, &thf_switch_evdev, NULL)) {
iprint(MSG_ERROR, "Evdev monitor thread creation failed.\n");
exit(3);
diff -ru a/core/src/daemon.h b/core/src/daemon.h
--- a/core/src/daemon.h 2013-01-11 06:35:35.000000000 +0200
+++ b/core/src/daemon.h 2013-01-11 06:34:08.000000000 +0200
@@ -40,13 +40,13 @@
extern int fd_tty_s, fd_tty1, fd_tty0;
/*
- * Event device on which the daemon listens for F2 keypresses.
- * The proper device has to be detected by an external program and
+ * Event devices on which the daemon listens for F2 keypresses.
+ * The proper devices have to be detected by an external program and
* then enabled by sending an appropriate command to the splash
* daemon.
*/
-extern int fd_evdev;
-extern char *evdev;
+extern int fd_evdevs[];
+extern int evdev_count;
#ifdef CONFIG_GPM
#include <gpm.h>
diff -ru a/core/src/daemon_cmd.c b/core/src/daemon_cmd.c
--- a/core/src/daemon_cmd.c 2013-01-11 06:35:35.000000000 +0200
+++ b/core/src/daemon_cmd.c 2013-01-11 06:34:08.000000000 +0200
@@ -239,18 +239,35 @@
*/
int cmd_set_event_dev(void **args)
{
- if (evdev)
- free(evdev);
-
- evdev = strdup(args[0]);
+ char *evdevs;
+ char *evdev;
+ int i, j, fd_evdev = -1;
pthread_cancel(th_switchmon);
+ for (i = 0;i < evdev_count;i++) {
+ close(fd_evdevs[i]);
+ }
+ evdevs = strdup(args[1]);
+ evdev_count = *(int*)args[0];
+ j = 0;
+ for (i = 0;i < evdev_count;i++, evdevs = NULL) {
+ evdev = strtok(evdevs, ",");
+ fd_evdev = open(evdev, O_RDONLY);
+ if (fd_evdev != -1) {
+ fd_evdevs[j] = fd_evdev;
+ j++;
+ } else {
+ perror("failed to open event device");
+ }
+ }
+ if (j == 0) { /* all input devices failed to open */
+ evdev_count = -1;
+ free(evdevs);
+ return -1;
+ }
- if (fd_evdev != -1)
- close(fd_evdev);
-
- fd_evdev = open(evdev, O_RDONLY);
-
+ evdev_count = j;
+ free(evdevs);
switchmon_start(UPD_MON, config.tty_s);
return 0;
@@ -524,8 +541,8 @@
{ .cmd = "set event dev",
.handler = cmd_set_event_dev,
- .args = 1,
- .specs = "s"
+ .args = 2,
+ .specs = "ds"
},
{ .cmd = "set message",
@@ -628,7 +645,7 @@
continue;
for (j = 0; j < known_cmds[i].args; j++) {
- for (; buf[k] == ' '; buf[k] = 0, k++);
+ for (; buf[k] == ' '; buf[k] = '\0', k++);
if (!buf[k]) {
args[j] = NULL;
continue;
diff -ru a/core/src/libfbsplash.c b/core/src/libfbsplash.c
--- a/core/src/libfbsplash.c 2013-01-11 06:35:35.000000000 +0200
+++ b/core/src/libfbsplash.c 2013-01-11 06:34:08.000000000 +0200
@@ -588,6 +588,8 @@
return -1;
}
+#define EVDV_BUF_LEN 128
+
/**
* Try to set the event device for the splash daemon.
*
@@ -595,10 +597,14 @@
*/
int fbsplash_set_evdev(void)
{
- char buf[128];
+ char buf[EVDV_BUF_LEN];
+ char evdev_devs[EVDV_BUF_LEN * MAX_KBDS];
FILE *fp;
int i, j;
-
+ int kbd_count;
+ int max_chars, chars_left, dev_path_len;
+ char dev_path[] = PATH_DEV "/input/";
+ dev_path_len = strlen(dev_path);
char *evdev_cmds[] = {
"/bin/grep -Hsi keyboard " PATH_SYS "/class/input/input*/name | /bin/sed -e 's#.*input\\([0-9]*\\)/name.*#event\\1#'",
"/bin/grep -Hsi keyboard " PATH_SYS "/class/input/event*/device/driver/description | /bin/grep -o 'event[0-9]\\+'",
@@ -608,22 +614,43 @@
/* Try to activate the event device interface so that F2 can
* be used to switch from verbose to silent. */
- buf[0] = 0;
- for (i = 0; i < sizeof(evdev_cmds)/sizeof(char*); i++) {
+ buf[0] = '\0';
+ kbd_count = 0;
+ max_chars = sizeof(evdev_devs) / sizeof(char*);
+ chars_left = max_chars - 1;
+ evdev_devs[0] = '\0';
+ for (i = 0; i < sizeof(evdev_cmds) / sizeof(char*); i++) {
fp = popen(evdev_cmds[i], "r");
if (fp) {
- fgets(buf, 128, fp);
- if ((j = strlen(buf)) > 0) {
- if (buf[j-1] == '\n')
- buf[j-1] = 0;
- break;
+ while (fgets(buf, 128, fp) && kbd_count < MAX_KBDS) {
+ if ((j = strlen(buf)) > 0) {
+ if (buf[j-1] == '\n')
+ buf[j-1] = ',';
+ if (chars_left < (j + dev_path_len)) {
+ break;
+ }
+ kbd_count++;
+ strncat(evdev_devs, dev_path, chars_left);
+ chars_left -= dev_path_len;
+ strncat(evdev_devs, buf, chars_left);
+ chars_left -= j;
+ }
+ }
+ /* replace the last ',' with '\n' */
+ if (chars_left > 0 && evdev_devs[0] != '\0') {
+ j = strlen(evdev_devs);
+ if (j > 2) {
+ evdev_devs[j - 1] = '\n';
+ }
}
pclose(fp);
}
+ if (kbd_count > 0)
+ break;
}
- if (buf[0] != 0) {
- fbsplash_send("set event dev " PATH_DEV "/input/%s\n", buf);
+ if (evdev_devs[0] != '\0') {
+ fbsplash_send("set event dev %d %s", kbd_count, evdev_devs);
return 0;
} else {
return -1;
@@ -661,6 +688,8 @@
return 0;
}
+#define MAX_CMD 2048
+
/**
* Send stuff to the splash daemon using the splash FIFO.
*
@@ -668,7 +697,7 @@
*/
int fbsplash_send(const char *fmt, ...)
{
- char cmd[256];
+ char cmd[MAX_CMD];
va_list ap;
if (!fp_fifo) {
@@ -690,7 +719,7 @@
}
va_start(ap, fmt);
- vsnprintf(cmd, 256, fmt, ap);
+ vsnprintf(cmd, MAX_CMD, fmt, ap);
va_end(ap);
fprintf(fp_fifo, cmd);

View File

@@ -0,0 +1,53 @@
core/configure.ac | 6 ++++++
core/src/Makefile.am | 2 +-
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/core/configure.ac b/core/configure.ac
index c5fbb84..ae9e235 100644
--- a/core/configure.ac
+++ b/core/configure.ac
@@ -616,6 +616,7 @@ AS_IF(
AC_SUBST([PNG_CFLAGS])
AC_SUBST([PNG_LIBS])
+BZ2_LIBS=
AS_IF(
[test "x${config_ttf}" = "xyes"],
[
@@ -625,8 +626,13 @@ AS_IF(
,
[AC_MSG_ERROR([freetype was not found.])]
)
+ AC_CHECK_LIB([bz2], [BZ2_bzDecompress],
+ [BZ2_LIBS="${BZ2_LIBS} -lbz2"],
+ [AC_MSG_ERROR(['libbz2' library was not found.])]
+ )
]
)
+AC_SUBST([BZ2_LIBS])
AH_TOP([#ifndef __SPLASH_CONFIG_H
#define __SPLASH_CONFIG_H])
diff --git a/core/src/Makefile.am b/core/src/Makefile.am
index d6ce315..349b5e7 100644
--- a/core/src/Makefile.am
+++ b/core/src/Makefile.am
@@ -121,6 +121,9 @@
libfbsplashrender_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(libfbsplashrender_version)
libfbsplashrender_la_LIBADD = libfbsplash.la
+libfbsplashrender_la_CFLAGS += $(BZ2_CFLAGS)
+libfbsplashrender_la_LIBADD += $(BZ2_LIBS)
+
libfbsplashrender_la_CFLAGS += $(JPEG_CFLAGS)
libfbsplashrender_la_LIBADD += $(JPEG_LIBS)
@@ -190,7 +193,7 @@
fbsplashctl_CFLAGS = $(AM_CFLAGS) $(PTHREAD_STATIC_CFLAGS) $(RT_CFLAGS) $(libfbsplashrender_la_CFLAGS) -DUNIFIED_BUILD
fbsplashctl_CPPFLAGS = $(fbsplashd_CPPFLAGS) $(splash_util_CPPFLAGS)
fbsplashctl_LDFLAGS = $(AM_LDFLAGS) -all-static
-fbsplashctl_LDADD = libfbsplashrender.la libfbsplash.la $(PTHREAD_STATIC_LIBS) $(RT_LIBS) $(GPM_LIBS)
+fbsplashctl_LDADD = libfbsplashrender.la libfbsplash.la $(PTHREAD_STATIC_LIBS) $(RT_LIBS) $(GPM_LIBS) $(BZ2_LIBS)
if CONFIG_FBCON_DECOR
fbsplashctl_SOURCES += $(fbcondecor_ctl_SOURCES)

View File

@@ -0,0 +1,74 @@
commit a58099249acdce1fbdab19f5dfea0704c4c545f2
Author: Michał Januszewski <spock@gentoo.org>
Date: Sun Dec 28 13:32:16 2008 +0100
gentoo: make the splash plugin work with OpenRC 0.4.*
diff --git a/gentoo/splash.c b/gentoo/splash.c
index 26d0fa4..b6fa774 100644
--- a/gentoo/splash.c
+++ b/gentoo/splash.c
@@ -593,7 +593,7 @@ static int splash_start(const char *runlevel)
/* Get a list of services that we'll have to handle. */
/* We're rebooting/shutting down. */
- if (!strcmp(runlevel, RC_LEVEL_SHUTDOWN) || !strcmp(runlevel, RC_LEVEL_REBOOT)) {
+ if (!strcmp(runlevel, RC_LEVEL_SHUTDOWN)) {
if ((err = fbsplash_cache_prep()))
return err;
splash_svcs_stop(runlevel);
@@ -690,10 +690,14 @@ int rc_plugin_hook(RC_HOOK hook, const char *name)
int retval = 0;
runlev = rc_runlevel_get();
- if (!strcmp(runlev, RC_LEVEL_REBOOT))
- type = fbspl_reboot;
- else if (!strcmp(runlev, RC_LEVEL_SHUTDOWN))
- type = fbspl_shutdown;
+ if (!strcmp(runlev, RC_LEVEL_SHUTDOWN)) {
+ char *t = getenv("RUNLEVEL");
+ if (t && !strcmp(t, "6")) {
+ type = fbspl_reboot;
+ } else {
+ type = fbspl_shutdown;
+ }
+ }
/* Get boot and default levels from env variables exported by RC.
* If unavailable, use the default ones. */
@@ -716,7 +720,7 @@ int rc_plugin_hook(RC_HOOK hook, const char *name)
list = rc_stringlist_new();
get_list_fp(list, fp);
TAILQ_FOREACH(s, list, entries)
- rc_service_mark(s->value, RC_SERVICE_COLDPLUGGED);
+ rc_service_mark(s->value, RC_SERVICE_HOTPLUGGED);
pclose(fp);
rc_stringlist_free(list);
}
@@ -739,7 +743,7 @@ int rc_plugin_hook(RC_HOOK hook, const char *name)
goto exit;
if (rc_runlevel_stopping() && strcmp(runlev, bootlevel) &&
- strcmp(runlev, RC_LEVEL_REBOOT) && strcmp(runlev, RC_LEVEL_SHUTDOWN))
+ strcmp(runlev, RC_LEVEL_SHUTDOWN))
goto exit;
}
@@ -763,7 +767,7 @@ int rc_plugin_hook(RC_HOOK hook, const char *name)
case RC_HOOK_RUNLEVEL_STOP_IN:
/* Start the splash daemon on reboot. The theme hook is called
* from splash_start(). */
- if (strcmp(name, RC_LEVEL_REBOOT) == 0 || strcmp(name, RC_LEVEL_SHUTDOWN) == 0) {
+ if (strcmp(name, RC_LEVEL_SHUTDOWN) == 0) {
if ((i = splash_start(name))) {
fbsplash_set_verbose(0);
retval= i;
@@ -788,7 +792,7 @@ int rc_plugin_hook(RC_HOOK hook, const char *name)
case RC_HOOK_RUNLEVEL_STOP_OUT:
/* Make sure the progress indicator reaches 100%, even if
* something went wrong along the way. */
- if (strcmp(name, RC_LEVEL_REBOOT) == 0 || strcmp(name, RC_LEVEL_SHUTDOWN) == 0) {
+ if (strcmp(name, RC_LEVEL_SHUTDOWN) == 0) {
config->verbosity = FBSPL_VERB_QUIET;
i = fbsplash_check_daemon(&pid_daemon);
config->verbosity = FBSPL_VERB_NORMAL;

View File

@@ -0,0 +1,99 @@
commit 4bb63f7fb23b11591e2984ce87d4f36d80e29d65
Author: Michał Januszewski <spock@gentoo.org>
Date: Wed Mar 25 22:26:04 2009 +0100
gentoo: export the sysvinit RUNLEVEL variable for compatibility reasons
OpenRC 0.4.3+ no longer exports some sysvinit variables, including
RUNLEVEL. In order to avoid breaking themes and scripts which still
rely on this variable being present, we compute a suitable RUNLEVEL
value using the data available in OpenRC and then export it in
splash_call().
diff --git a/gentoo/splash.c b/gentoo/splash.c
index 726315f..048e0ec 100644
--- a/gentoo/splash.c
+++ b/gentoo/splash.c
@@ -41,7 +41,7 @@
#define SPLASH_CMD "export SPLASH_XRES='%d'; export SPLASH_YRES='%d';" \
"export SOFTLEVEL='%s'; export BOOTLEVEL='%s';" \
"export DEFAULTLEVEL='%s'; export svcdir=${RC_SVCDIR};" \
- ". /sbin/splash-functions.sh; %s %s %s"
+ "export RUNLEVEL='%s'; . /sbin/splash-functions.sh; %s %s %s"
static char *bootlevel = NULL;
static char *defaultlevel = NULL;
@@ -260,11 +260,32 @@ static int splash_config_gentoo(fbspl_cfg_t *cfg, fbspl_type_t type)
return 0;
}
+static const char *splash_sysvinit_runlevel(const char *runlevel)
+{
+ const char *runlev = runlevel ? runlevel : rc_runlevel_get();
+
+ if (!strcmp(runlev, RC_LEVEL_SHUTDOWN)) {
+ char *t = getenv("RC_REBOOT");
+ if (t && !strcmp(t, "YES")) {
+ return "6";
+ } else {
+ return "0";
+ }
+ } else if (!strcmp(runlev, RC_LEVEL_SYSINIT)) {
+ return "S";
+ } else if (!strcmp(runlev, RC_LEVEL_SINGLE)) {
+ return "1";
+ } else {
+ return "3";
+ }
+}
+
+
/*
* Call a function from /sbin/splash-functions.sh.
* This is rather slow, so use it only when really necessary.
*/
-static int splash_call(const char *cmd, const char *arg1, const char *arg2)
+static int splash_call(const char *cmd, const char *arg1, const char *arg2, const char *runlevel)
{
char *c;
int l;
@@ -285,7 +306,8 @@ static int splash_call(const char *cmd, const char *arg1, const char *arg2)
snprintf(c, l, SPLASH_CMD, xres, yres,
arg1 ? (strcmp(arg1, RC_LEVEL_SYSINIT) == 0 ? bootlevel : soft) : soft,
- bootlevel, defaultlevel, cmd, arg1 ? arg1 : "", arg2 ? arg2 : "");
+ bootlevel, defaultlevel, runlevel,
+ cmd, arg1 ? arg1 : "", arg2 ? arg2 : "");
l = system(c);
free(c);
return l;
@@ -316,15 +338,16 @@ static int splash_theme_hook(const char *name, const char *type, const char *arg
}
if (!strcmp(name, "rc_init") || !strcmp(name, "rc_exit")) {
- l = splash_call(buf, arg1, getenv("RUNLEVEL"));
+ const char *t = splash_sysvinit_runlevel(arg1);
+ l = splash_call(buf, arg1, t, t);
} else if (!strcmp(name, "svc_started") || !strcmp(name, "svc_stopped")) {
/*
* Set the 2nd parameter to 0 so that we don't break themes using the
* legacy interface in which these events contained an error code.
*/
- l = splash_call(buf, arg1, "0");
+ l = splash_call(buf, arg1, "0", splash_sysvinit_runlevel(NULL));
} else {
- l = splash_call(buf, arg1, NULL);
+ l = splash_call(buf, arg1, NULL, splash_sysvinit_runlevel(NULL));
}
free(buf);
return l;
@@ -710,8 +733,7 @@ int rc_plugin_hook(RC_HOOK hook, const char *name)
runlev = rc_runlevel_get();
if (!strcmp(runlev, RC_LEVEL_SHUTDOWN)) {
- char *t = getenv("RUNLEVEL");
- if (t && !strcmp(t, "6")) {
+ if (!strcmp(splash_sysvinit_runlevel(NULL), "6")) {
type = fbspl_reboot;
} else {
type = fbspl_shutdown;

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>proxy-maintainers</herd>
<maintainer>
<email>asaf.gery@gmail.com</email>
</maintainer>
<use>
<flag name='fbcondecor'>
Support for the fbcondecor kernel patch.
</flag>
</use>
</pkgmetadata>

View File

@@ -0,0 +1,239 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/splashutils/splashutils-1.5.4.4-r1.ebuild,v 1.9 2014/01/01 15:33:34 hwoarang Exp $
EAPI="2"
inherit autotools eutils multilib toolchain-funcs
MISCSPLASH="miscsplashutils-0.1.8"
GENTOOSPLASH="splashutils-gentoo-1.0.17"
V_JPEG="8a"
V_PNG="1.4.3"
V_ZLIB="1.2.3"
V_FT="2.3.12"
ZLIBSRC="libs/zlib-${V_ZLIB}"
LPNGSRC="libs/libpng-${V_PNG}"
JPEGSRC="libs/jpeg-${V_JPEG}"
FT2SRC="libs/freetype-${V_FT}"
RESTRICT="test"
IUSE="hardened +png +truetype +mng gpm fbcondecor"
DESCRIPTION="Framebuffer splash utilities."
HOMEPAGE="http://fbsplash.berlios.de"
SRC_URI="mirror://berlios/fbsplash/${PN}-lite-${PV}.tar.bz2
mirror://berlios/fbsplash/${GENTOOSPLASH}.tar.bz2
mirror://gentoo/${MISCSPLASH}.tar.bz2
mirror://sourceforge/libpng/libpng-${V_PNG}.tar.bz2
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v${V_JPEG}.tar.gz
mirror://sourceforge/freetype/freetype-${V_FT}.tar.bz2
http://www.gzip.org/zlib/zlib-${V_ZLIB}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ~ppc x86"
RDEPEND="gpm? ( sys-libs/gpm[static-libs] )
truetype? ( >=media-libs/freetype-2[static-libs]
|| ( <app-arch/bzip2-1.0.6-r3 app-arch/bzip2[static-libs] )
|| ( <sys-libs/zlib-1.2.5.1-r2 sys-libs/zlib[static-libs] ) )
png? ( >=media-libs/libpng-1.4.3[static-libs] )
mng? (
media-libs/lcms:0[static-libs]
|| ( media-libs/libmng[static-libs] <media-libs/libmng-1.0.10-r1 )
)
virtual/jpeg:0[static-libs]
>=sys-apps/baselayout-1.9.4-r5
app-arch/cpio
media-gfx/fbgrab
!sys-apps/lcdsplash"
DEPEND="${RDEPEND}
>=dev-libs/klibc-1.5
virtual/pkgconfig"
S="${WORKDIR}/${P/_/-}"
SG="${WORKDIR}/${GENTOOSPLASH}"
SM="${WORKDIR}/${MISCSPLASH}"
pkg_setup() {
if use hardened; then
ewarn "Due to problems with klibc, it is currently impossible to compile splashutils"
ewarn "with 'hardened' GCC flags. As a workaround, the package will be compiled with"
ewarn "-fno-stack-protector. Hardened GCC features will not be used while building"
ewarn "the splash kernel helper."
fi
}
src_prepare() {
mv "${WORKDIR}"/{libpng-${V_PNG},jpeg-${V_JPEG},zlib-${V_ZLIB},freetype-${V_FT}} "${S}/libs"
# We need to delete the Makefile and let it be rebuilt when splashutils
# is being configured. Either that, or we end up with a segfaulting kernel
# helper.
rm "${S}/libs/zlib-${V_ZLIB}/Makefile"
cd "${SG}"
epatch "${FILESDIR}/splashutils-1.5.4.4-gentoo-typo-fix.patch"
if use truetype ; then
cd "${SM}"
epatch "${FILESDIR}/splashutils-1.5.4.4-freetype-bz2.patch"
fi
cd "${S}"
ln -sf "${S}/src" "${WORKDIR}/core"
epatch "${FILESDIR}/${P}-bzip2.patch"
if ! tc-is-cross-compiler && \
has_version "sys-devel/gcc:$(gcc-version)[vanilla]" ; then
ewarn "Your GCC was built with the 'vanilla' flag set. If you can't compile"
ewarn "splashutils, you're on your own, as this configuration is not supported."
else
# This should make splashutils compile on systems with hardened GCC.
sed -e 's@K_CFLAGS =@K_CFLAGS = -fno-stack-protector@' -i "${S}/Makefile.in"
fi
if ! use truetype ; then
sed -i -e 's/fbtruetype kbd/kbd/' "${SM}/Makefile"
fi
# Latest version of klibc defined its own version of ferror, so there is
# not need for the hack in klibc_compat.h
if has_version ">=dev-libs/klibc-1.5.20"; then
echo > "libs/klibc_compat.h"
fi
rm -f m4/*
eautoreconf
}
src_configure() {
tc-export CC
cd "${SM}"
emake CC="${CC}" LIB=$(get_libdir) STRIP=true || die "failed to build miscsplashutils"
cd "${S}"
econf \
$(use_with png) \
$(use_with mng) \
$(use_with gpm) \
$(use_with truetype ttf) \
$(use_with truetype ttf-kernel) \
$(use_enable fbcondecor) \
--docdir=/usr/share/doc/${PF} \
--with-freetype2-src=${FT2SRC} \
--with-jpeg-src=${JPEGSRC} \
--with-lpng-src=${LPNGSRC} \
--with-zlib-src=${ZLIBSRC} \
--with-essential-libdir=/$(get_libdir) || die "failed to configure splashutils"
}
src_compile() {
emake CC="${CC}" STRIP="true" || die "failed to build splashutils"
if has_version ">=sys-apps/baselayout-1.13.99"; then
cd "${SG}"
emake LIB=$(get_libdir) || die "failed to build the splash plugin"
fi
}
src_install() {
local LIB=$(get_libdir)
cd "${SM}"
make DESTDIR="${D}" LIB=${LIB} install || die
cd "${S}"
make DESTDIR="${D}" STRIP="true" install || die
mv "${D}"/usr/${LIB}/libfbsplash.so* "${D}"/${LIB}/
gen_usr_ldscript libfbsplash.so
echo 'CONFIG_PROTECT_MASK="/etc/splash"' > 99splash
doenvd 99splash
if use fbcondecor ; then
newinitd "${SG}"/init-fbcondecor fbcondecor
newconfd "${SG}"/fbcondecor.conf fbcondecor
fi
newconfd "${SG}"/splash.conf splash
insinto /usr/share/${PN}
doins "${SG}"/initrd.splash
insinto /etc/splash
doins "${SM}"/fbtruetype/luxisri.ttf
if has_version ">=sys-apps/baselayout-1.13.99"; then
cd "${SG}"
make DESTDIR="${D}" LIB=${LIB} install || die "failed to install the splash plugin"
else
cp "${SG}"/splash-functions-bl1.sh "${D}"/sbin/
fi
sed -i -e "s#/lib/splash#/${LIB}/splash#" "${D}"/sbin/splash-functions.sh
keepdir /${LIB}/splash/{tmp,cache,bin,sys}
dosym /${LIB}/splash/bin/fbres /sbin/fbres
}
pkg_preinst() {
has_version "<${CATEGORY}/${PN}-1.0"
previous_less_than_1_0=$?
has_version "<${CATEGORY}/${PN}-1.5.3"
previous_less_than_1_5_3=$?
}
pkg_postinst() {
if has_version sys-fs/devfsd || ! has_version virtual/udev ; then
elog "This package has been designed with udev in mind. Other solutions, such as"
elog "devfs or a static /dev tree might work, but are generally discouraged and"
elog "not supported. If you decide to switch to udev, you might want to have a"
elog "look at 'The Gentoo udev Guide', which can be found at"
elog " http://www.gentoo.org/doc/en/udev-guide.xml"
elog ""
fi
if [[ $previous_less_than_1_0 = 0 ]] ; then
elog "Since you are upgrading from a pre-1.0 version, please make sure that you"
elog "rebuild your initrds. You can use the splash_geninitramfs script to do that."
elog ""
fi
if [[ $previous_less_than_1_5_3 = 0 ]] && ! use fbcondecor ; then
elog "Starting with splashutils-1.5.3, support for the fbcondecor kernel patch"
elog "is optional and dependent on the the 'fbcondecor' USE flag. If you wish"
elog "to use fbcondecor, run:"
elog " echo \"media-gfx/splashutils fbcondecor\" >> /etc/portage/package.use"
elog "and re-emerge splashutils."
fi
if ! test -f /proc/cmdline ||
! egrep -q '(console=tty1|CONSOLE=/dev/tty1)' /proc/cmdline ; then
elog "It is required that you add 'console=tty1' to your kernel"
elog "command line parameters."
elog ""
elog "After these modifications, the relevant part of the kernel command"
elog "line might look like:"
elog " splash=silent,fadein,theme:emergence console=tty1"
elog ""
fi
if ! has_version 'media-gfx/splash-themes-livecd' &&
! has_version 'media-gfx/splash-themes-gentoo'; then
elog "The sample Gentoo themes (emergence, gentoo) have been removed from the"
elog "core splashutils package. To get some themes you might want to emerge:"
elog " media-gfx/splash-themes-livecd"
elog " media-gfx/splash-themes-gentoo"
fi
elog "Please note that the 'fbsplash' kernel patch has now been renamed to"
elog "'fbcondecor'. Accordingly, the old 'splash' initscript is now called"
elog "'fbcondecor'. Make sure you update your system. See:"
elog " http://dev.gentoo.org/~spock/projects/fbcondecor/#history"
elog "for further info about the name changes."
elog ""
elog "Also note that splash_util has now been split into splash_util, fbsplashd"
elog "and fbcondecor_ctl."
}

View File

@@ -0,0 +1,244 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/splashutils/splashutils-1.5.4.4-r2.ebuild,v 1.9 2013/10/14 12:52:34 pinkbyte Exp $
EAPI=4
inherit autotools eutils multilib toolchain-funcs
MISCSPLASH="miscsplashutils-0.1.8"
GENTOOSPLASH="splashutils-gentoo-1.0.17"
V_JPEG="8a"
V_PNG="1.4.3"
V_ZLIB="1.2.3"
V_FT="2.3.12"
ZLIBSRC="libs/zlib-${V_ZLIB}"
LPNGSRC="libs/libpng-${V_PNG}"
JPEGSRC="libs/jpeg-${V_JPEG}"
FT2SRC="libs/freetype-${V_FT}"
RESTRICT="test"
IUSE="hardened +png +truetype +mng gpm fbcondecor"
DESCRIPTION="Framebuffer splash utilities."
HOMEPAGE="http://fbsplash.berlios.de"
SRC_URI="mirror://berlios/fbsplash/${PN}-lite-${PV}.tar.bz2
mirror://berlios/fbsplash/${GENTOOSPLASH}.tar.bz2
mirror://gentoo/${MISCSPLASH}.tar.bz2
mirror://sourceforge/libpng/libpng-${V_PNG}.tar.bz2
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v${V_JPEG}.tar.gz
mirror://sourceforge/freetype/freetype-${V_FT}.tar.bz2
http://www.gzip.org/zlib/zlib-${V_ZLIB}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
RDEPEND="gpm? ( sys-libs/gpm[static-libs(+)] )
truetype? (
>=media-libs/freetype-2[static-libs]
app-arch/bzip2[static-libs(+)]
sys-libs/zlib[static-libs(+)]
)
png? (
>=media-libs/libpng-1.4.3[static-libs]
sys-libs/zlib[static-libs(+)]
)
mng? (
media-libs/lcms:0[static-libs]
media-libs/libmng[static-libs(+)]
)
virtual/jpeg:0[static-libs]
>=sys-apps/baselayout-1.9.4-r5
app-arch/cpio
media-gfx/fbgrab
!sys-apps/lcdsplash"
DEPEND="${RDEPEND}
>=dev-libs/klibc-1.5
virtual/pkgconfig"
S="${WORKDIR}/${P/_/-}"
SG="${WORKDIR}/${GENTOOSPLASH}"
SM="${WORKDIR}/${MISCSPLASH}"
pkg_setup() {
if use hardened; then
ewarn "Due to problems with klibc, it is currently impossible to compile splashutils"
ewarn "with 'hardened' GCC flags. As a workaround, the package will be compiled with"
ewarn "-fno-stack-protector. Hardened GCC features will not be used while building"
ewarn "the splash kernel helper."
fi
}
src_prepare() {
mv "${WORKDIR}"/{libpng-${V_PNG},jpeg-${V_JPEG},zlib-${V_ZLIB},freetype-${V_FT}} "${S}/libs"
# We need to delete the Makefile and let it be rebuilt when splashutils
# is being configured. Either that, or we end up with a segfaulting kernel
# helper.
rm "${S}/libs/zlib-${V_ZLIB}/Makefile"
cd "${SG}"
epatch "${FILESDIR}/splashutils-1.5.4.4-gentoo-typo-fix.patch"
if use truetype ; then
cd "${SM}"
epatch "${FILESDIR}/splashutils-1.5.4.4-freetype-bz2.patch"
fi
cd "${S}"
ln -sf "${S}/src" "${WORKDIR}/core"
epatch "${FILESDIR}/${P}-bzip2.patch"
if ! tc-is-cross-compiler && \
has_version "sys-devel/gcc:$(gcc-version)[vanilla]" ; then
ewarn "Your GCC was built with the 'vanilla' flag set. If you can't compile"
ewarn "splashutils, you're on your own, as this configuration is not supported."
else
# This should make splashutils compile on systems with hardened GCC.
sed -e 's@K_CFLAGS =@K_CFLAGS = -fno-stack-protector@' -i "${S}/Makefile.in"
fi
if ! use truetype ; then
sed -i -e 's/fbtruetype kbd/kbd/' "${SM}/Makefile"
fi
# Latest version of klibc defined its own version of ferror, so there is
# not need for the hack in klibc_compat.h
if has_version ">=dev-libs/klibc-1.5.20"; then
echo > "libs/klibc_compat.h"
fi
rm -f m4/*
eautoreconf
}
src_configure() {
tc-export CC
cd "${SM}"
emake CC="${CC}" LIB=$(get_libdir) STRIP=true
cd "${S}"
econf \
$(use_with png) \
$(use_with mng) \
$(use_with gpm) \
$(use_with truetype ttf) \
$(use_with truetype ttf-kernel) \
$(use_enable fbcondecor) \
--docdir=/usr/share/doc/${PF} \
--with-freetype2-src=${FT2SRC} \
--with-jpeg-src=${JPEGSRC} \
--with-lpng-src=${LPNGSRC} \
--with-zlib-src=${ZLIBSRC} \
--with-essential-libdir=/$(get_libdir)
}
src_compile() {
emake CC="${CC}" STRIP="true"
if has_version ">=sys-apps/baselayout-1.13.99"; then
cd "${SG}"
emake LIB=$(get_libdir)
fi
}
src_install() {
local LIB=$(get_libdir)
cd "${SM}"
make DESTDIR="${D}" LIB=${LIB} install
cd "${S}"
make DESTDIR="${D}" STRIP="true" install
mv "${D}"/usr/${LIB}/libfbsplash.so* "${D}"/${LIB}/
gen_usr_ldscript libfbsplash.so
echo 'CONFIG_PROTECT_MASK="/etc/splash"' > 99splash
doenvd 99splash
if use fbcondecor ; then
newinitd "${SG}"/init-fbcondecor fbcondecor
newconfd "${SG}"/fbcondecor.conf fbcondecor
fi
newconfd "${SG}"/splash.conf splash
insinto /usr/share/${PN}
doins "${SG}"/initrd.splash
insinto /etc/splash
doins "${SM}"/fbtruetype/luxisri.ttf
if has_version ">=sys-apps/baselayout-1.13.99"; then
cd "${SG}"
make DESTDIR="${D}" LIB=${LIB} install
else
cp "${SG}"/splash-functions-bl1.sh "${D}"/sbin/
fi
sed -i -e "s#/lib/splash#/${LIB}/splash#" "${D}"/sbin/splash-functions.sh
keepdir /${LIB}/splash/{tmp,cache,bin,sys}
dosym /${LIB}/splash/bin/fbres /sbin/fbres
}
pkg_preinst() {
has_version "<${CATEGORY}/${PN}-1.0"
previous_less_than_1_0=$?
has_version "<${CATEGORY}/${PN}-1.5.3"
previous_less_than_1_5_3=$?
}
pkg_postinst() {
if has_version sys-fs/devfsd || ! has_version virtual/udev ; then
elog "This package has been designed with udev in mind. Other solutions, such as"
elog "devfs or a static /dev tree might work, but are generally discouraged and"
elog "not supported. If you decide to switch to udev, you might want to have a"
elog "look at 'The Gentoo udev Guide', which can be found at"
elog " http://www.gentoo.org/doc/en/udev-guide.xml"
elog ""
fi
if [[ $previous_less_than_1_0 = 0 ]] ; then
elog "Since you are upgrading from a pre-1.0 version, please make sure that you"
elog "rebuild your initrds. You can use the splash_geninitramfs script to do that."
elog ""
fi
if [[ $previous_less_than_1_5_3 = 0 ]] && ! use fbcondecor ; then
elog "Starting with splashutils-1.5.3, support for the fbcondecor kernel patch"
elog "is optional and dependent on the the 'fbcondecor' USE flag. If you wish"
elog "to use fbcondecor, run:"
elog " echo \"media-gfx/splashutils fbcondecor\" >> /etc/portage/package.use"
elog "and re-emerge splashutils."
fi
if ! test -f /proc/cmdline ||
! egrep -q '(console=tty1|CONSOLE=/dev/tty1)' /proc/cmdline ; then
elog "It is required that you add 'console=tty1' to your kernel"
elog "command line parameters."
elog ""
elog "After these modifications, the relevant part of the kernel command"
elog "line might look like:"
elog " splash=silent,fadein,theme:emergence console=tty1"
elog ""
fi
if ! has_version 'media-gfx/splash-themes-livecd' &&
! has_version 'media-gfx/splash-themes-gentoo'; then
elog "The sample Gentoo themes (emergence, gentoo) have been removed from the"
elog "core splashutils package. To get some themes you might want to emerge:"
elog " media-gfx/splash-themes-livecd"
elog " media-gfx/splash-themes-gentoo"
fi
elog "Please note that the 'fbsplash' kernel patch has now been renamed to"
elog "'fbcondecor'. Accordingly, the old 'splash' initscript is now called"
elog "'fbcondecor'. Make sure you update your system. See:"
elog " http://dev.gentoo.org/~spock/projects/fbcondecor/#history"
elog "for further info about the name changes."
elog ""
elog "Also note that splash_util has now been split into splash_util, fbsplashd"
elog "and fbcondecor_ctl."
}

View File

@@ -0,0 +1,242 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/splashutils/splashutils-1.5.4.4-r3.ebuild,v 1.4 2013/10/14 12:52:34 pinkbyte Exp $
EAPI=5
inherit autotools eutils multilib toolchain-funcs
MISCSPLASH="miscsplashutils-0.1.8"
GENTOOSPLASH="splashutils-gentoo-1.0.17"
V_JPEG="8a"
V_PNG="1.4.3"
V_ZLIB="1.2.3"
V_FT="2.3.12"
ZLIBSRC="libs/zlib-${V_ZLIB}"
LPNGSRC="libs/libpng-${V_PNG}"
JPEGSRC="libs/jpeg-${V_JPEG}"
FT2SRC="libs/freetype-${V_FT}"
RESTRICT="test"
IUSE="hardened +png +truetype +mng gpm fbcondecor"
DESCRIPTION="Framebuffer splash utilities"
HOMEPAGE="http://fbsplash.berlios.de"
SRC_URI="
mirror://berlios/fbsplash/${PN}-lite-${PV}.tar.bz2
mirror://berlios/fbsplash/${GENTOOSPLASH}.tar.bz2
mirror://gentoo/${MISCSPLASH}.tar.bz2
mirror://sourceforge/libpng/libpng-${V_PNG}.tar.bz2
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v${V_JPEG}.tar.gz
mirror://sourceforge/freetype/freetype-${V_FT}.tar.bz2
http://www.gzip.org/zlib/zlib-${V_ZLIB}.tar.bz2
"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
RDEPEND="
gpm? ( sys-libs/gpm[static-libs(+)] )
truetype? (
>=media-libs/freetype-2[static-libs]
app-arch/bzip2[static-libs(+)]
sys-libs/zlib[static-libs(+)]
)
png? (
>=media-libs/libpng-1.4.3[static-libs]
sys-libs/zlib[static-libs(+)]
)
mng? (
media-libs/lcms:0[static-libs]
media-libs/libmng[static-libs(+)]
)
virtual/jpeg:0[static-libs]
>=sys-apps/baselayout-1.9.4-r5
app-arch/cpio
media-gfx/fbgrab
!sys-apps/lcdsplash"
DEPEND="${RDEPEND}
>=dev-libs/klibc-1.5
virtual/pkgconfig
"
S="${WORKDIR}/${P/_/-}"
SG="${WORKDIR}/${GENTOOSPLASH}"
SM="${WORKDIR}/${MISCSPLASH}"
pkg_setup() {
if use hardened; then
ewarn "Due to problems with klibc, it is currently impossible to compile splashutils"
ewarn "with 'hardened' GCC flags. As a workaround, the package will be compiled with"
ewarn "-fno-stack-protector. Hardened GCC features will not be used while building"
ewarn "the splash kernel helper."
fi
}
src_prepare() {
mv "${WORKDIR}"/{libpng-${V_PNG},jpeg-${V_JPEG},zlib-${V_ZLIB},freetype-${V_FT}} "${S}/libs"
# We need to delete the Makefile and let it be rebuilt when splashutils
# is being configured. Either that, or we end up with a segfaulting kernel
# helper.
rm "${S}/libs/zlib-${V_ZLIB}/Makefile"
cd "${SG}"
epatch "${FILESDIR}/splashutils-1.5.4.4-gentoo-typo-fix.patch"
if use truetype ; then
cd "${SM}"
epatch "${FILESDIR}/splashutils-1.5.4.4-freetype-bz2.patch"
fi
cd "${S}"
ln -sf "${S}/src" "${WORKDIR}/core"
epatch "${FILESDIR}/${P}-bzip2.patch"
epatch "${FILESDIR}/${P}-multi-keyboard.patch"
if ! tc-is-cross-compiler && \
has_version "sys-devel/gcc:$(gcc-version)[vanilla]" ; then
ewarn "Your GCC was built with the 'vanilla' flag set. If you can't compile"
ewarn "splashutils, you're on your own, as this configuration is not supported."
else
# This should make splashutils compile on systems with hardened GCC.
sed -e 's@K_CFLAGS =@K_CFLAGS = -fno-stack-protector@' -i "${S}/Makefile.in"
fi
if ! use truetype ; then
sed -i -e 's/fbtruetype kbd/kbd/' "${SM}/Makefile"
fi
# Latest version of klibc defined its own version of ferror, so there is
# not need for the hack in klibc_compat.h
if has_version ">=dev-libs/klibc-1.5.20"; then
echo > "libs/klibc_compat.h"
fi
rm -f m4/*
eautoreconf
}
src_configure() {
tc-export CC
cd "${SM}"
emake CC="${CC}" LIB=$(get_libdir) STRIP=true
cd "${S}"
econf \
$(use_with png) \
$(use_with mng) \
$(use_with gpm) \
$(use_with truetype ttf) \
$(use_with truetype ttf-kernel) \
$(use_enable fbcondecor) \
--docdir=/usr/share/doc/${PF} \
--with-freetype2-src=${FT2SRC} \
--with-jpeg-src=${JPEGSRC} \
--with-lpng-src=${LPNGSRC} \
--with-zlib-src=${ZLIBSRC} \
--with-essential-libdir=/$(get_libdir)
}
src_compile() {
emake CC="${CC}" STRIP="true"
if has_version ">=sys-apps/baselayout-1.13.99"; then
cd "${SG}"
emake LIB=$(get_libdir)
fi
}
src_install() {
local LIB=$(get_libdir)
cd "${SM}"
emake DESTDIR="${D}" LIB=${LIB} install
cd "${S}"
emake DESTDIR="${D}" STRIP="true" install
mv "${D}"/usr/${LIB}/libfbsplash.so* "${D}"/${LIB}/
gen_usr_ldscript libfbsplash.so
echo 'CONFIG_PROTECT_MASK="/etc/splash"' > 99splash
doenvd 99splash
if use fbcondecor ; then
newinitd "${SG}"/init-fbcondecor fbcondecor
newconfd "${SG}"/fbcondecor.conf fbcondecor
fi
newconfd "${SG}"/splash.conf splash
insinto /usr/share/${PN}
doins "${SG}"/initrd.splash
insinto /etc/splash
doins "${SM}"/fbtruetype/luxisri.ttf
if has_version ">=sys-apps/baselayout-1.13.99"; then
cd "${SG}"
make DESTDIR="${D}" LIB=${LIB} install
else
cp "${SG}"/splash-functions-bl1.sh "${D}"/sbin/
fi
sed -i -e "s#/lib/splash#/${LIB}/splash#" "${D}"/sbin/splash-functions.sh
keepdir /${LIB}/splash/{tmp,cache,bin,sys}
dosym /${LIB}/splash/bin/fbres /sbin/fbres
}
pkg_preinst() {
has_version "<${CATEGORY}/${PN}-1.0"
previous_less_than_1_0=$?
has_version "<${CATEGORY}/${PN}-1.5.3"
previous_less_than_1_5_3=$?
}
pkg_postinst() {
if has_version sys-fs/devfsd || ! has_version virtual/udev ; then
elog "This package has been designed with udev in mind. Other solutions, such as"
elog "devfs or a static /dev tree might work, but are generally discouraged and"
elog "not supported. If you decide to switch to udev, you might want to have a"
elog "look at 'The Gentoo udev Guide', which can be found at"
elog " http://www.gentoo.org/doc/en/udev-guide.xml"
elog ""
fi
if [[ $previous_less_than_1_0 = 0 ]] ; then
elog "Since you are upgrading from a pre-1.0 version, please make sure that you"
elog "rebuild your initrds. You can use the splash_geninitramfs script to do that."
elog ""
fi
if [[ $previous_less_than_1_5_3 = 0 ]] && ! use fbcondecor ; then
elog "Starting with splashutils-1.5.3, support for the fbcondecor kernel patch"
elog "is optional and dependent on the the 'fbcondecor' USE flag. If you wish"
elog "to use fbcondecor, run:"
elog " echo \"media-gfx/splashutils fbcondecor\" >> /etc/portage/package.use"
elog "and re-emerge splashutils."
fi
if ! test -f /proc/cmdline ||
! egrep -q '(console=tty1|CONSOLE=/dev/tty1)' /proc/cmdline ; then
elog "It is required that you add 'console=tty1' to your kernel"
elog "command line parameters."
elog ""
elog "After these modifications, the relevant part of the kernel command"
elog "line might look like:"
elog " splash=silent,fadein,theme:emergence console=tty1"
elog ""
fi
if ! has_version 'media-gfx/splash-themes-livecd' &&
! has_version 'media-gfx/splash-themes-gentoo'; then
elog "The sample Gentoo themes (emergence, gentoo) have been removed from the"
elog "core splashutils package. To get some themes you might want to emerge:"
elog " media-gfx/splash-themes-livecd"
elog " media-gfx/splash-themes-gentoo"
fi
}

View File

@@ -0,0 +1,235 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/splashutils/splashutils-1.5.4.4-r4.ebuild,v 1.1 2013/10/14 13:50:25 pinkbyte Exp $
EAPI=5
inherit autotools eutils multilib toolchain-funcs
MISCSPLASH="miscsplashutils-0.1.8"
GENTOOSPLASH="splashutils-gentoo-1.0.17"
V_JPEG="8a"
V_PNG="1.4.3"
V_ZLIB="1.2.3"
V_FT="2.3.12"
ZLIBSRC="libs/zlib-${V_ZLIB}"
LPNGSRC="libs/libpng-${V_PNG}"
JPEGSRC="libs/jpeg-${V_JPEG}"
FT2SRC="libs/freetype-${V_FT}"
RESTRICT="test"
IUSE="hardened +png +truetype +mng gpm fbcondecor"
DESCRIPTION="Framebuffer splash utilities"
HOMEPAGE="http://fbsplash.berlios.de"
SRC_URI="
mirror://berlios/fbsplash/${PN}-lite-${PV}.tar.bz2
mirror://berlios/fbsplash/${GENTOOSPLASH}.tar.bz2
mirror://gentoo/${MISCSPLASH}.tar.bz2
mirror://sourceforge/libpng/libpng-${V_PNG}.tar.bz2
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v${V_JPEG}.tar.gz
mirror://sourceforge/freetype/freetype-${V_FT}.tar.bz2
http://www.gzip.org/zlib/zlib-${V_ZLIB}.tar.bz2
"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
RDEPEND="
gpm? ( sys-libs/gpm[static-libs(+)] )
truetype? (
>=media-libs/freetype-2[static-libs]
app-arch/bzip2[static-libs(+)]
sys-libs/zlib[static-libs(+)]
)
png? (
>=media-libs/libpng-1.4.3[static-libs]
sys-libs/zlib[static-libs(+)]
)
mng? (
media-libs/lcms:0[static-libs]
media-libs/libmng[static-libs(+)]
)
virtual/jpeg:0[static-libs]
app-arch/cpio
media-gfx/fbgrab
!sys-apps/lcdsplash"
DEPEND="${RDEPEND}
>=dev-libs/klibc-1.5
virtual/pkgconfig
"
S="${WORKDIR}/${P/_/-}"
SG="${WORKDIR}/${GENTOOSPLASH}"
SM="${WORKDIR}/${MISCSPLASH}"
pkg_setup() {
if use hardened; then
ewarn "Due to problems with klibc, it is currently impossible to compile splashutils"
ewarn "with 'hardened' GCC flags. As a workaround, the package will be compiled with"
ewarn "-fno-stack-protector. Hardened GCC features will not be used while building"
ewarn "the splash kernel helper."
fi
}
src_prepare() {
mv "${WORKDIR}"/{libpng-${V_PNG},jpeg-${V_JPEG},zlib-${V_ZLIB},freetype-${V_FT}} "${S}/libs"
# We need to delete the Makefile and let it be rebuilt when splashutils
# is being configured. Either that, or we end up with a segfaulting kernel
# helper.
rm "${S}/libs/zlib-${V_ZLIB}/Makefile"
cd "${SG}"
epatch "${FILESDIR}/splashutils-1.5.4.4-gentoo-typo-fix.patch"
if use truetype ; then
cd "${SM}"
epatch "${FILESDIR}/splashutils-1.5.4.4-freetype-bz2.patch"
fi
cd "${S}"
ln -sf "${S}/src" "${WORKDIR}/core"
epatch "${FILESDIR}/${P}-bzip2.patch"
epatch "${FILESDIR}/${P}-multi-keyboard.patch"
if ! tc-is-cross-compiler && \
has_version "sys-devel/gcc:$(gcc-version)[vanilla]" ; then
ewarn "Your GCC was built with the 'vanilla' flag set. If you can't compile"
ewarn "splashutils, you're on your own, as this configuration is not supported."
else
# This should make splashutils compile on systems with hardened GCC.
sed -e 's@K_CFLAGS =@K_CFLAGS = -fno-stack-protector@' -i "${S}/Makefile.in"
fi
if ! use truetype ; then
sed -i -e 's/fbtruetype kbd/kbd/' "${SM}/Makefile"
fi
# Latest version of klibc defined its own version of ferror, so there is
# not need for the hack in klibc_compat.h
if has_version ">=dev-libs/klibc-1.5.20"; then
echo > "libs/klibc_compat.h"
fi
rm -f m4/*
eautoreconf
}
src_configure() {
tc-export CC
cd "${SM}"
emake CC="${CC}" LIB=$(get_libdir) STRIP=true
cd "${S}"
econf \
$(use_with png) \
$(use_with mng) \
$(use_with gpm) \
$(use_with truetype ttf) \
$(use_with truetype ttf-kernel) \
$(use_enable fbcondecor) \
--docdir=/usr/share/doc/${PF} \
--with-freetype2-src=${FT2SRC} \
--with-jpeg-src=${JPEGSRC} \
--with-lpng-src=${LPNGSRC} \
--with-zlib-src=${ZLIBSRC} \
--with-essential-libdir=/$(get_libdir)
}
src_compile() {
emake CC="${CC}" STRIP="true"
cd "${SG}"
emake LIB=$(get_libdir)
}
src_install() {
local LIB=$(get_libdir)
cd "${SM}"
emake DESTDIR="${D}" LIB=${LIB} install
cd "${S}"
emake DESTDIR="${D}" STRIP="true" install
mv "${D}"/usr/${LIB}/libfbsplash.so* "${D}"/${LIB}/
gen_usr_ldscript libfbsplash.so
echo 'CONFIG_PROTECT_MASK="/etc/splash"' > 99splash
doenvd 99splash
if use fbcondecor ; then
newinitd "${SG}"/init-fbcondecor fbcondecor
newconfd "${SG}"/fbcondecor.conf fbcondecor
fi
newconfd "${SG}"/splash.conf splash
insinto /usr/share/${PN}
doins "${SG}"/initrd.splash
insinto /etc/splash
doins "${SM}"/fbtruetype/luxisri.ttf
cd "${SG}"
make DESTDIR="${D}" LIB=${LIB} install
sed -i -e "s#/lib/splash#/${LIB}/splash#" "${D}"/sbin/splash-functions.sh
keepdir /${LIB}/splash/{tmp,cache,bin,sys}
dosym /${LIB}/splash/bin/fbres /sbin/fbres
}
pkg_preinst() {
has_version "<${CATEGORY}/${PN}-1.0"
previous_less_than_1_0=$?
has_version "<${CATEGORY}/${PN}-1.5.3"
previous_less_than_1_5_3=$?
}
pkg_postinst() {
if has_version sys-fs/devfsd || ! has_version virtual/udev ; then
elog "This package has been designed with udev in mind. Other solutions, such as"
elog "devfs or a static /dev tree might work, but are generally discouraged and"
elog "not supported. If you decide to switch to udev, you might want to have a"
elog "look at 'The Gentoo udev Guide', which can be found at"
elog " http://www.gentoo.org/doc/en/udev-guide.xml"
elog ""
fi
if [[ $previous_less_than_1_0 = 0 ]] ; then
elog "Since you are upgrading from a pre-1.0 version, please make sure that you"
elog "rebuild your initrds. You can use the splash_geninitramfs script to do that."
elog ""
fi
if [[ $previous_less_than_1_5_3 = 0 ]] && ! use fbcondecor ; then
elog "Starting with splashutils-1.5.3, support for the fbcondecor kernel patch"
elog "is optional and dependent on the the 'fbcondecor' USE flag. If you wish"
elog "to use fbcondecor, run:"
elog " echo \"media-gfx/splashutils fbcondecor\" >> /etc/portage/package.use"
elog "and re-emerge splashutils."
fi
if ! test -f /proc/cmdline ||
! egrep -q '(console=tty1|CONSOLE=/dev/tty1)' /proc/cmdline ; then
elog "It is required that you add 'console=tty1' to your kernel"
elog "command line parameters."
elog ""
elog "After these modifications, the relevant part of the kernel command"
elog "line might look like:"
elog " splash=silent,fadein,theme:emergence console=tty1"
elog ""
fi
if ! has_version 'media-gfx/splash-themes-livecd' &&
! has_version 'media-gfx/splash-themes-gentoo'; then
elog "The sample Gentoo themes (emergence, gentoo) have been removed from the"
elog "core splashutils package. To get some themes you might want to emerge:"
elog " media-gfx/splash-themes-livecd"
elog " media-gfx/splash-themes-gentoo"
fi
}