diff --git a/debian/autoreconf.after b/debian/autoreconf.after new file mode 100644 index 0000000..ae118ec --- /dev/null +++ b/debian/autoreconf.after @@ -0,0 +1,222 @@ +symlink ./m4/intltool.m4 +symlink ./build/.libs/libutils.la +symlink ./po/Makefile.in.in +377b16af7f362324ef6741681a3a7699 ./install_depends.sh +c3fcc39a9745316eee69d2a3fadc3921 ./config.h.in~ +3be9524adbc33584341d3da4549e26c7 ./configure~ +3e13993641e2533bd50c4a745467ded1 ./autom4te.cache/traces.3 +3e13993641e2533bd50c4a745467ded1 ./autom4te.cache/traces.1 +dbcc51d0cccd69200ab0ff0ceca128f3 ./autom4te.cache/output.1 +964a6fa6b196df7e479682411ef3191f ./autom4te.cache/traces.2 +dbcc51d0cccd69200ab0ff0ceca128f3 ./autom4te.cache/output.0 +844ea2ca5deb33b0725b8791524fc072 ./autom4te.cache/output.3 +e18f64697e616f498c964d5fc2a95a30 ./autom4te.cache/requests +807817b8a3294ea5a474bebecbb1b4f0 ./autom4te.cache/traces.0 +dbcc51d0cccd69200ab0ff0ceca128f3 ./autom4te.cache/output.2 +977b5a5821f9013ef0cd54824d232a20 ./m4/libtool.m4 +accb0d822cc0d126ab79f39fde9f9a11 ./m4/arch.m4 +30bf3f59677ca1f75150b5a2f399550b ./m4/.gitignore +98312682443b415dc42558ee6c7f25a9 ./m4/ltoptions.m4 +665ef728f05b03734804931333632de4 ./m4/ltversion.m4 +057a003c14ef81b6c16d1dc54d491105 ./m4/ltsugar.m4 +fc8c18fdd9bda25c8259086a766e98aa ./m4/attributes.m4 +9b7401bd4ac107b4225a6f580fe740a4 ./m4/ax_normalize_path.m4 +42fc54566fd6a8055fad65f78f32960c ./m4/lt~obsolete.m4 +c1afc0a8cbf22d213d60d6031d0bb659 ./units/.gitignore +b65f4dc9969ed48813c6b24d4395eb9b ./units/systemd-bootchart.service.in +28dbb66b336e213aacc399c8e8d6ed12 ./build/libtool +deb9cabfb2d4412aed3c71fe0efb5ce1 ./build/units/systemd-bootchart.service +2c890373599b6a1b304f92939750205a ./build/config.log +7086fcf3a092ef1e99c22ce3fbfbce4e ./build/man/bootchart.conf.d.5 +bd0f725649e6122b313fe12061f87488 ./build/man/systemd-bootchart.1 +cecabdeb01ce5c0973430c5770e7e04a ./build/man/bootchart.conf.5 +3205a10b08e6b0c6fd1d842e299e07f9 ./build/src/libutils_la-fd-util.lo +741442742cb53825465e529c926c6862 ./build/src/libutils_la-strxcpyx.lo +89838bf489e2c4affe6a6f21913fca08 ./build/src/libutils_la-strv.lo +14ee00c389bddfb91c1e7f85af02da0e ./build/src/libutils_la-hash-funcs.lo +e787444a4c98ae7459165bf3d18b03df ./build/src/libutils_la-fs-util.lo +95686b955e1860797616513d1bfe638c ./build/src/libutils_la-alloc-util.lo +972498e63caaa28468e2b0de4f36c577 ./build/src/libutils_la-parse-util.lo +7859f85ad37df820131287a9faf28d92 ./build/src/libutils_la-process-util.lo +f34ede05f96626e5bf4c2f755d050d24 ./build/src/.deps/libutils_la-dirent-util.Plo +45b8e3cf37995c6d2af675a669b3273c ./build/src/.deps/libutils_la-alloc-util.Plo +5bca4745099ad4415adec480b3ef9dd2 ./build/src/.deps/libutils_la-utf8.Plo +6fb722312cb5d205c305580e08570aea ./build/src/.deps/libutils_la-cgroup-util.Plo +5f119dde96bf6cf7b2d1b312715018d9 ./build/src/.deps/libutils_la-hashmap.Plo +c2b689f587214adce0848aaa0106bb1b ./build/src/.deps/libutils_la-conf-files.Plo +a888a960f2791a2ade4bed1a57b9d7d7 ./build/src/.deps/libutils_la-random-util.Plo +d7c36270cbe6ee4f97041e6a49617acc ./build/src/.deps/libutils_la-terminal-util.Plo +352d8dca54e36013fe374a5ef67ecabd ./build/src/.deps/libutils_la-fs-util.Plo +922c5452b8834656f5aa155894a52445 ./build/src/.deps/libutils_la-strv.Plo +b7109f3d8d94ca0616a84d386862c421 ./build/src/.deps/libutils_la-io-util.Plo +544ddceadd059fde08ab86a1583c045b ./build/src/.deps/libutils_la-path-util.Plo +d37118a6d9cdd45c1f3c2d027d852993 ./build/src/.deps/libutils_la-process-util.Plo +114860b3d2a39b13013768fa9f504e4c ./build/src/.deps/store.Po +8368ceb969d8fe06dd15376c2c7497ef ./build/src/.deps/libutils_la-string-util.Plo +708b340b7b4fbf4a929ac6ce56770c53 ./build/src/.deps/bootchart.Po +0c59aadae9188f3e10363183a0e59fcf ./build/src/.deps/libutils_la-log.Plo +0b2a447c80a428e017cc8362b77c5240 ./build/src/.deps/libutils_la-time-util.Plo +b3a6284a7ff091955e5e5342303dc3b8 ./build/src/.deps/libutils_la-strxcpyx.Plo +faa3a7b1e632e1a47e6330e7ff459ebd ./build/src/.deps/libutils_la-mempool.Plo +0a879089f39a613ea067282089d2714c ./build/src/.deps/libutils_la-util.Plo +14589c1f5ae3f3e9bb0ec9ef8e6bbc70 ./build/src/.deps/libutils_la-hash-funcs.Plo +9947f7c7db31a99afe44f8becd817f40 ./build/src/.deps/libutils_la-conf-parser.Plo +b7eebb625eef662dbf7c9d9a6aef8403 ./build/src/.deps/libutils_la-parse-util.Plo +5252cc436aa3082a6413e8729d6cd313 ./build/src/.deps/libutils_la-siphash24.Plo +63c35b17602239a77d3f885e05f4bce6 ./build/src/.deps/svg.Po +d41d8cd98f00b204e9800998ecf8427e ./build/src/.deps/.dirstamp +994b4b7d17b6084d445aaa4c2cf8fdae ./build/src/.deps/libutils_la-fd-util.Plo +9c8537fb7db4c426a1f31cf12d90a53a ./build/src/.deps/libutils_la-fileio.Plo +426085d2e12635e41ffa13293270bc0b ./build/src/bootchart.o +b908ef66a521ef9867df6e6c07835deb ./build/src/libutils_la-string-util.lo +5b8697945ffeff7a27997aac33f8c3ea ./build/src/libutils_la-time-util.lo +aef1deacc46c91c0a9e7e3c62ca3c10a ./build/src/libutils_la-fileio.lo +89d9f8a501e84df912319662e79ee5bc ./build/src/libutils_la-log.lo +0d95d99e36ea783b6847b45952eb3705 ./build/src/libutils_la-dirent-util.lo +03406ea2e6fc82a6fc616c894f3a302d ./build/src/libutils_la-conf-parser.lo +c1921df67b36d3114f0d4646719f3aa1 ./build/src/libutils_la-io-util.lo +bf58bb8ccad932cf2fde369dfe02a9ce ./build/src/libutils_la-utf8.lo +f398642767378fbbe3c786dc53de0b10 ./build/src/svg.o +cf974dc55cb13240b85c4fd0bc804080 ./build/src/libutils_la-util.lo +605559e49d90302ef0354d1fba8f5491 ./build/src/libutils_la-terminal-util.lo +949d44797c30a20ad6c6cf932a8ad4a6 ./build/src/store.o +f812c9fed73fabf736d2b3430c5f4a94 ./build/src/libutils_la-siphash24.lo +bdcb566e91f1148b795819146e717281 ./build/src/libutils_la-cgroup-util.lo +aab493e91a60be21b660423bcb6e0915 ./build/src/libutils_la-random-util.lo +fe51001895364aee211d62a4a822a2fe ./build/src/libutils_la-hashmap.lo +a27edf8993544de7b96be19cd62dce5b ./build/src/libutils_la-conf-files.lo +b7b83ab76cf12f12716904a2ae052eea ./build/src/.libs/libutils_la-terminal-util.o +d9a79c3548defbceb3c7fa8f2da159c1 ./build/src/.libs/libutils_la-alloc-util.o +a64dc89db9e2c310bfe66e54ef566fda ./build/src/.libs/libutils_la-random-util.o +f75605eddb147231efa9d705ad3e4bf6 ./build/src/.libs/libutils_la-strv.o +e8a62251c522a0da67e731d166cbac85 ./build/src/.libs/libutils_la-strxcpyx.o +26eadce08acbbd0231749da14a6a868d ./build/src/.libs/libutils_la-conf-files.o +d71d78ecb28d617bdc5b56374ce2ac1d ./build/src/.libs/libutils_la-path-util.o +54faf822d8344bb3755a08bcbaa5eae1 ./build/src/.libs/libutils_la-parse-util.o +eb2939be90f3d20ac2c6b0c23f902a1e ./build/src/.libs/libutils_la-utf8.o +42f58ff5a71f5945198c4c57a398877b ./build/src/.libs/libutils_la-conf-parser.o +b699df79d58074e6652a2e2e718bec86 ./build/src/.libs/libutils_la-fd-util.o +ecf6c26a33187fbdfa426233a4aededa ./build/src/.libs/libutils_la-cgroup-util.o +c6dd993dbe5b6a846d2ea24c1cf7e178 ./build/src/.libs/libutils_la-util.o +b0ea355469dc1567b0a575316c7601b7 ./build/src/.libs/libutils_la-io-util.o +515b82b3470c14cdb386b9c94a560d84 ./build/src/.libs/libutils_la-fileio.o +a4d6dd916514addadd90113059b70173 ./build/src/.libs/libutils_la-process-util.o +150b5a1a51b7586dd2cc690848c6d518 ./build/src/.libs/libutils_la-dirent-util.o +4d05cfae7c8e3b1889f0a3366ef91b06 ./build/src/.libs/libutils_la-hashmap.o +51ba1d3f54c7d4d5fdf4fc8dba561916 ./build/src/.libs/libutils_la-log.o +ee39c793317491fdd40e7c7f6c8674e7 ./build/src/.libs/libutils_la-mempool.o +739313051ef660daab5f09f17aeeb0a1 ./build/src/.libs/libutils_la-fs-util.o +42ea41c57076c9f30f45cec468e92342 ./build/src/.libs/libutils_la-time-util.o +553e06ce2458601e21aba75c700459cd ./build/src/.libs/libutils_la-hash-funcs.o +5138aa9925a34915a3060957721216f4 ./build/src/.libs/libutils_la-string-util.o +ae0d4cf71d078dcbfe782a12137462f5 ./build/src/.libs/libutils_la-siphash24.o +d41d8cd98f00b204e9800998ecf8427e ./build/src/.dirstamp +67f50c60a0600646f2455dd70b21f096 ./build/src/libutils_la-mempool.lo +ba4b58cb7191fd81c1ad8748dc1a5167 ./build/src/libutils_la-path-util.lo +737e10e0e9430df8d00f73d5ec48df92 ./build/Makefile +d893b9e1c78852b6d3dac30863b147f4 ./build/config.status +5ab7a188164b832ab7d9a0a25d8dd369 ./build/libutils.la +5e899079548cc0dfcba5f2005eee7084 ./build/systemd-bootchart +5b4ca56d55157907052aeab4995fef53 ./build/config.h +b2708fd3c4fee210a9334d5c751eee76 ./build/.libs/libutils.a +91023a1d58d69b4916a8609882d782a8 ./build/stamp-h1 +cdcd7355d7f0547b8290d11e60aa7ed4 ./po/.gitignore +43073d2b230c655c2a27a7f1229fc6fe ./.gitignore +edda0492170de2c710e38eb676fd2a1d ./.github/workflows/ci.yml +7087d8f2dca8cbf6447753514fb161a2 ./man/custom-man.xsl +db4b6933775a71bbe4359652fd21b4ab ./man/systemd-bootchart.xml +b8205214553412d2b7bc0382180b729d ./man/.gitignore +d1322e751321d96d204d4a55e0b730fe ./man/bootchart.conf.xml +c8eee28824d8c22e222b51968ec9cddf ./man/standard-conf.xml +48fa0a5bab5f1961ebfedef0877d3c86 ./man/standard-options.xml +ae14886b8aec428c9cbb83e537562459 ./Makefile.in +751419260aa954499f7abaabaa882bbe ./LICENSE.GPL2 +df86776dc185d4d87c1f542caf0cfb05 ./src/_sd-common.h +efe04ae41058d08de5dc12540e66b2b4 ./src/cgroup-util.c +6d1731c8aac6ece96df450607485eeca ./src/util.c +021e22ec27dc5072673c066599c21408 ./src/utf8.c +053ad02573eca17b00b03ae7085aafec ./src/siphash24.c +28fb7223a9e667a3ecbcc1186d125999 ./src/alloc-util.h +6ee7ccb7725e972d82bfafeaed9659ec ./src/svg.h +594c39ae4f9f1803eb1bdbd0ea863e01 ./src/alloc-util.c +b5e7da7ffcd675f6fb4f500688f774d7 ./src/random-util.h +231d1e037e1360c848d3d53468ed694b ./src/io-util.c +0be53082f471e5e54d85eb3e5d8254a8 ./src/util.h +c8b5f98146230f3a67bef03ba7a245c8 ./src/cgroup-util.h +f5ce77e75c5a4bfb9680f46efcf7d35c ./src/fileio.c +4c9e2e9acd26bacdb1bce8db51cac183 ./src/utf8.h +49a7aa6b763b064073f00d1e8b0a2d0b ./src/parse-util.c +7cc496d1717f2132f1bf064ac6265f13 ./src/fs-util.h +57c1d62841effdcf13e4637f9fc77741 ./src/fs-util.c +a07155b62323a8976415ba23085b0fa3 ./src/stdio-util.h +51a200082dcb88d8d42604d6f4d5939b ./src/bootchart.conf +7d6aa8bda950e79bee603b4a2e161cd5 ./src/log.c +2609951fc730215811afd4631fd664aa ./src/strv.c +4a6ec9ec267df8e1f2081362cb87fae1 ./src/path-util.c +2df3afde7883b535d2583a499c55de6e ./src/unaligned.h +5b3d2e501816359f0e9d1df50c6e7588 ./src/time-util.c +3aafe3fcc7edf5354b19b4050021de3d ./src/hashmap.c +51d3cb93dce28853fe9416ce0466d218 ./src/macro.h +b888bda757b68ae833c8fe26c881c8e0 ./src/Makefile +ab875a6d0a636e26e172a23bc0c1fd75 ./src/fd-util.h +49adf9ab42789ca711add86d7fb308eb ./src/conf-parser.c +7f87bde7153da26f216f2b3411ffe734 ./src/build.h +55d776bb4d6ec39c59baa8f62cb1d61d ./src/strxcpyx.h +9978b48f253476779594f53c2a366885 ./src/log.h +6a011b3dee64c0a17a2c8a871d3844db ./src/bootchart.h +a0f4bcf06833534cd7a4633a73445536 ./src/architecture.h +797e96e4f438ca07e91fc57607512b72 ./src/mempool.h +305e55338baa25b75e3258ee47bd5120 ./src/dirent-util.c +1679368c24bd9372f9e58baef504a5ed ./src/siphash24.h +baaeb1f5cb9187bddb4bcf4c4fdb7ad8 ./src/process-util.c +9cc15a9a959176bbd45eef11af2eb746 ./src/set.h +1576713e3d69ab44ddc085f9d95d3987 ./src/string-util.c +3178a5c7acce1bb77dfa5eb827f90312 ./src/bootchart.c +67852a879b5b4b05a17b3e1db591fa3d ./src/store.c +30628d37d8896e76595fb541d6ffa16c ./src/mempool.c +5807d536e962ad222bda7d5cfaca6af4 ./src/terminal-util.c +c72a4629e0129bee2d0e9882405966ff ./src/conf-files.c +5e8620063b39d79ceb492eb16b104da7 ./src/def.h +e6e48cebe9c47da2311ac8517c225997 ./src/time-util.h +d6436a83142d029994893f4b02a568e5 ./src/strv.h +c9d9b148f95fb4a3ead67fa6d369ead0 ./src/process-util.h +9e576622e4f2172ea1e95b373f0db3da ./src/store.h +95af9044d6745b12abd31069617355a8 ./src/conf-parser.h +e692ee54ed6b4f4ec2d390b49b024dff ./src/svg.c +086ada3b896f1cffcbe46356980ab140 ./src/fd-util.c +0e4105b28d478ed0d7d21c52b6c5b56c ./src/list.h +cdcee35c4fed64553aaaf73bf33ed41a ./src/fileio.h +80d864c10331e74ee7203e8815f1a7bd ./src/random-util.c +9908473d6fcaafeb44ffcb2f4b73d80e ./src/hash-funcs.c +b8f22e74dec3fc79ce0d5f5c707b11f9 ./src/formats-util.h +f3cf87b8dba341a1ec2480d430be95ea ./src/parse-util.h +94febc8d13b68938aa14f8faa62dd7af ./src/hash-funcs.h +1cd0ddd3f190bf93ec85a1623bb5e17e ./src/io-util.h +2a536e225a711b3fb7fb017ed4544e3a ./src/terminal-util.h +41e8f3df1b04c922e41bcdbed327253f ./src/hashmap.h +4842d798fb1d0a566e9edbf17a22ee00 ./src/sd-messages.h +3dd2a316d5c534f6e54d8be4df10d65b ./src/missing.h +ae3632e7c2938dbe4364240f00dd2a1b ./src/attributes.h +505c3c5b01ee275e16c1f5ffc8fae983 ./src/dirent-util.h +ea8ca7ab30795d904235e3e97e725637 ./src/conf-files.h +5472deff0ed38594d9d9c8d5c73c8170 ./src/string-util.h +1a2a4d5adcec93b80ef9cdc4c6779c9b ./src/path-util.h +34a476d651b0d052c50248b249b1d16e ./src/strxcpyx.c +a55a301d81836119ee3dfd45b8a5fc2b ./autogen.sh +8f60e4504f9ef65a9ede825617158803 ./tests/run +c4298c9b3104c3e01d7964326957a340 ./README +761b9d083bd4741484292ce03510f40a ./build-aux/test-driver +086b8da5a251be943f06d3a927bbe60e ./build-aux/missing +7b40bf051e76f597c5e40b14bc2df7ec ./build-aux/config.sub +0e7bbbcbab44193b41459a5c981d1507 ./build-aux/config.guess +b090c5891571c820e91d345a9551af44 ./build-aux/install-sh +b816f92498a6ec8138d9ec53a14bcaa4 ./build-aux/compile +6ecafe15a6088eb7a2f4f2aadbb240ce ./build-aux/depcomp +1a33c3961ce973cdcfc810d81931645c ./build-aux/ltmain.sh +855ef2c77d9eb5e3f07a717e235d28ec ./configure.ac +3be9524adbc33584341d3da4549e26c7 ./configure +004626cec5dff8b05244eb9dd515862b ./Makefile.am +4fbd65380cdd255951079008b364516c ./LICENSE.LGPL2.1 +14173f1f00b539d08c5453caddd5348b ./aclocal.m4 +c3fcc39a9745316eee69d2a3fadc3921 ./config.h.in +a84adb10220cd27413908abde9afbdc5 ./TODO diff --git a/debian/autoreconf.before b/debian/autoreconf.before new file mode 100644 index 0000000..0b9e084 --- /dev/null +++ b/debian/autoreconf.before @@ -0,0 +1,198 @@ +symlink ./m4/intltool.m4 +symlink ./build/.libs/libutils.la +symlink ./po/Makefile.in.in +377b16af7f362324ef6741681a3a7699 ./install_depends.sh +accb0d822cc0d126ab79f39fde9f9a11 ./m4/arch.m4 +30bf3f59677ca1f75150b5a2f399550b ./m4/.gitignore +fc8c18fdd9bda25c8259086a766e98aa ./m4/attributes.m4 +9b7401bd4ac107b4225a6f580fe740a4 ./m4/ax_normalize_path.m4 +c1afc0a8cbf22d213d60d6031d0bb659 ./units/.gitignore +b65f4dc9969ed48813c6b24d4395eb9b ./units/systemd-bootchart.service.in +28dbb66b336e213aacc399c8e8d6ed12 ./build/libtool +deb9cabfb2d4412aed3c71fe0efb5ce1 ./build/units/systemd-bootchart.service +2c890373599b6a1b304f92939750205a ./build/config.log +7086fcf3a092ef1e99c22ce3fbfbce4e ./build/man/bootchart.conf.d.5 +bd0f725649e6122b313fe12061f87488 ./build/man/systemd-bootchart.1 +cecabdeb01ce5c0973430c5770e7e04a ./build/man/bootchart.conf.5 +3205a10b08e6b0c6fd1d842e299e07f9 ./build/src/libutils_la-fd-util.lo +741442742cb53825465e529c926c6862 ./build/src/libutils_la-strxcpyx.lo +89838bf489e2c4affe6a6f21913fca08 ./build/src/libutils_la-strv.lo +14ee00c389bddfb91c1e7f85af02da0e ./build/src/libutils_la-hash-funcs.lo +e787444a4c98ae7459165bf3d18b03df ./build/src/libutils_la-fs-util.lo +95686b955e1860797616513d1bfe638c ./build/src/libutils_la-alloc-util.lo +972498e63caaa28468e2b0de4f36c577 ./build/src/libutils_la-parse-util.lo +7859f85ad37df820131287a9faf28d92 ./build/src/libutils_la-process-util.lo +f34ede05f96626e5bf4c2f755d050d24 ./build/src/.deps/libutils_la-dirent-util.Plo +45b8e3cf37995c6d2af675a669b3273c ./build/src/.deps/libutils_la-alloc-util.Plo +5bca4745099ad4415adec480b3ef9dd2 ./build/src/.deps/libutils_la-utf8.Plo +6fb722312cb5d205c305580e08570aea ./build/src/.deps/libutils_la-cgroup-util.Plo +5f119dde96bf6cf7b2d1b312715018d9 ./build/src/.deps/libutils_la-hashmap.Plo +c2b689f587214adce0848aaa0106bb1b ./build/src/.deps/libutils_la-conf-files.Plo +a888a960f2791a2ade4bed1a57b9d7d7 ./build/src/.deps/libutils_la-random-util.Plo +d7c36270cbe6ee4f97041e6a49617acc ./build/src/.deps/libutils_la-terminal-util.Plo +352d8dca54e36013fe374a5ef67ecabd ./build/src/.deps/libutils_la-fs-util.Plo +922c5452b8834656f5aa155894a52445 ./build/src/.deps/libutils_la-strv.Plo +b7109f3d8d94ca0616a84d386862c421 ./build/src/.deps/libutils_la-io-util.Plo +544ddceadd059fde08ab86a1583c045b ./build/src/.deps/libutils_la-path-util.Plo +d37118a6d9cdd45c1f3c2d027d852993 ./build/src/.deps/libutils_la-process-util.Plo +114860b3d2a39b13013768fa9f504e4c ./build/src/.deps/store.Po +8368ceb969d8fe06dd15376c2c7497ef ./build/src/.deps/libutils_la-string-util.Plo +708b340b7b4fbf4a929ac6ce56770c53 ./build/src/.deps/bootchart.Po +0c59aadae9188f3e10363183a0e59fcf ./build/src/.deps/libutils_la-log.Plo +0b2a447c80a428e017cc8362b77c5240 ./build/src/.deps/libutils_la-time-util.Plo +b3a6284a7ff091955e5e5342303dc3b8 ./build/src/.deps/libutils_la-strxcpyx.Plo +faa3a7b1e632e1a47e6330e7ff459ebd ./build/src/.deps/libutils_la-mempool.Plo +0a879089f39a613ea067282089d2714c ./build/src/.deps/libutils_la-util.Plo +14589c1f5ae3f3e9bb0ec9ef8e6bbc70 ./build/src/.deps/libutils_la-hash-funcs.Plo +9947f7c7db31a99afe44f8becd817f40 ./build/src/.deps/libutils_la-conf-parser.Plo +b7eebb625eef662dbf7c9d9a6aef8403 ./build/src/.deps/libutils_la-parse-util.Plo +5252cc436aa3082a6413e8729d6cd313 ./build/src/.deps/libutils_la-siphash24.Plo +63c35b17602239a77d3f885e05f4bce6 ./build/src/.deps/svg.Po +d41d8cd98f00b204e9800998ecf8427e ./build/src/.deps/.dirstamp +994b4b7d17b6084d445aaa4c2cf8fdae ./build/src/.deps/libutils_la-fd-util.Plo +9c8537fb7db4c426a1f31cf12d90a53a ./build/src/.deps/libutils_la-fileio.Plo +426085d2e12635e41ffa13293270bc0b ./build/src/bootchart.o +b908ef66a521ef9867df6e6c07835deb ./build/src/libutils_la-string-util.lo +5b8697945ffeff7a27997aac33f8c3ea ./build/src/libutils_la-time-util.lo +aef1deacc46c91c0a9e7e3c62ca3c10a ./build/src/libutils_la-fileio.lo +89d9f8a501e84df912319662e79ee5bc ./build/src/libutils_la-log.lo +0d95d99e36ea783b6847b45952eb3705 ./build/src/libutils_la-dirent-util.lo +03406ea2e6fc82a6fc616c894f3a302d ./build/src/libutils_la-conf-parser.lo +c1921df67b36d3114f0d4646719f3aa1 ./build/src/libutils_la-io-util.lo +bf58bb8ccad932cf2fde369dfe02a9ce ./build/src/libutils_la-utf8.lo +f398642767378fbbe3c786dc53de0b10 ./build/src/svg.o +cf974dc55cb13240b85c4fd0bc804080 ./build/src/libutils_la-util.lo +605559e49d90302ef0354d1fba8f5491 ./build/src/libutils_la-terminal-util.lo +949d44797c30a20ad6c6cf932a8ad4a6 ./build/src/store.o +f812c9fed73fabf736d2b3430c5f4a94 ./build/src/libutils_la-siphash24.lo +bdcb566e91f1148b795819146e717281 ./build/src/libutils_la-cgroup-util.lo +aab493e91a60be21b660423bcb6e0915 ./build/src/libutils_la-random-util.lo +fe51001895364aee211d62a4a822a2fe ./build/src/libutils_la-hashmap.lo +a27edf8993544de7b96be19cd62dce5b ./build/src/libutils_la-conf-files.lo +b7b83ab76cf12f12716904a2ae052eea ./build/src/.libs/libutils_la-terminal-util.o +d9a79c3548defbceb3c7fa8f2da159c1 ./build/src/.libs/libutils_la-alloc-util.o +a64dc89db9e2c310bfe66e54ef566fda ./build/src/.libs/libutils_la-random-util.o +f75605eddb147231efa9d705ad3e4bf6 ./build/src/.libs/libutils_la-strv.o +e8a62251c522a0da67e731d166cbac85 ./build/src/.libs/libutils_la-strxcpyx.o +26eadce08acbbd0231749da14a6a868d ./build/src/.libs/libutils_la-conf-files.o +d71d78ecb28d617bdc5b56374ce2ac1d ./build/src/.libs/libutils_la-path-util.o +54faf822d8344bb3755a08bcbaa5eae1 ./build/src/.libs/libutils_la-parse-util.o +eb2939be90f3d20ac2c6b0c23f902a1e ./build/src/.libs/libutils_la-utf8.o +42f58ff5a71f5945198c4c57a398877b ./build/src/.libs/libutils_la-conf-parser.o +b699df79d58074e6652a2e2e718bec86 ./build/src/.libs/libutils_la-fd-util.o +ecf6c26a33187fbdfa426233a4aededa ./build/src/.libs/libutils_la-cgroup-util.o +c6dd993dbe5b6a846d2ea24c1cf7e178 ./build/src/.libs/libutils_la-util.o +b0ea355469dc1567b0a575316c7601b7 ./build/src/.libs/libutils_la-io-util.o +515b82b3470c14cdb386b9c94a560d84 ./build/src/.libs/libutils_la-fileio.o +a4d6dd916514addadd90113059b70173 ./build/src/.libs/libutils_la-process-util.o +150b5a1a51b7586dd2cc690848c6d518 ./build/src/.libs/libutils_la-dirent-util.o +4d05cfae7c8e3b1889f0a3366ef91b06 ./build/src/.libs/libutils_la-hashmap.o +51ba1d3f54c7d4d5fdf4fc8dba561916 ./build/src/.libs/libutils_la-log.o +ee39c793317491fdd40e7c7f6c8674e7 ./build/src/.libs/libutils_la-mempool.o +739313051ef660daab5f09f17aeeb0a1 ./build/src/.libs/libutils_la-fs-util.o +42ea41c57076c9f30f45cec468e92342 ./build/src/.libs/libutils_la-time-util.o +553e06ce2458601e21aba75c700459cd ./build/src/.libs/libutils_la-hash-funcs.o +5138aa9925a34915a3060957721216f4 ./build/src/.libs/libutils_la-string-util.o +ae0d4cf71d078dcbfe782a12137462f5 ./build/src/.libs/libutils_la-siphash24.o +d41d8cd98f00b204e9800998ecf8427e ./build/src/.dirstamp +67f50c60a0600646f2455dd70b21f096 ./build/src/libutils_la-mempool.lo +ba4b58cb7191fd81c1ad8748dc1a5167 ./build/src/libutils_la-path-util.lo +737e10e0e9430df8d00f73d5ec48df92 ./build/Makefile +d893b9e1c78852b6d3dac30863b147f4 ./build/config.status +5ab7a188164b832ab7d9a0a25d8dd369 ./build/libutils.la +5e899079548cc0dfcba5f2005eee7084 ./build/systemd-bootchart +5b4ca56d55157907052aeab4995fef53 ./build/config.h +b2708fd3c4fee210a9334d5c751eee76 ./build/.libs/libutils.a +91023a1d58d69b4916a8609882d782a8 ./build/stamp-h1 +cdcd7355d7f0547b8290d11e60aa7ed4 ./po/.gitignore +43073d2b230c655c2a27a7f1229fc6fe ./.gitignore +edda0492170de2c710e38eb676fd2a1d ./.github/workflows/ci.yml +7087d8f2dca8cbf6447753514fb161a2 ./man/custom-man.xsl +db4b6933775a71bbe4359652fd21b4ab ./man/systemd-bootchart.xml +b8205214553412d2b7bc0382180b729d ./man/.gitignore +d1322e751321d96d204d4a55e0b730fe ./man/bootchart.conf.xml +c8eee28824d8c22e222b51968ec9cddf ./man/standard-conf.xml +48fa0a5bab5f1961ebfedef0877d3c86 ./man/standard-options.xml +ae14886b8aec428c9cbb83e537562459 ./Makefile.in +751419260aa954499f7abaabaa882bbe ./LICENSE.GPL2 +df86776dc185d4d87c1f542caf0cfb05 ./src/_sd-common.h +efe04ae41058d08de5dc12540e66b2b4 ./src/cgroup-util.c +6d1731c8aac6ece96df450607485eeca ./src/util.c +021e22ec27dc5072673c066599c21408 ./src/utf8.c +053ad02573eca17b00b03ae7085aafec ./src/siphash24.c +28fb7223a9e667a3ecbcc1186d125999 ./src/alloc-util.h +6ee7ccb7725e972d82bfafeaed9659ec ./src/svg.h +594c39ae4f9f1803eb1bdbd0ea863e01 ./src/alloc-util.c +b5e7da7ffcd675f6fb4f500688f774d7 ./src/random-util.h +231d1e037e1360c848d3d53468ed694b ./src/io-util.c +0be53082f471e5e54d85eb3e5d8254a8 ./src/util.h +c8b5f98146230f3a67bef03ba7a245c8 ./src/cgroup-util.h +f5ce77e75c5a4bfb9680f46efcf7d35c ./src/fileio.c +4c9e2e9acd26bacdb1bce8db51cac183 ./src/utf8.h +49a7aa6b763b064073f00d1e8b0a2d0b ./src/parse-util.c +7cc496d1717f2132f1bf064ac6265f13 ./src/fs-util.h +57c1d62841effdcf13e4637f9fc77741 ./src/fs-util.c +a07155b62323a8976415ba23085b0fa3 ./src/stdio-util.h +51a200082dcb88d8d42604d6f4d5939b ./src/bootchart.conf +7d6aa8bda950e79bee603b4a2e161cd5 ./src/log.c +2609951fc730215811afd4631fd664aa ./src/strv.c +4a6ec9ec267df8e1f2081362cb87fae1 ./src/path-util.c +2df3afde7883b535d2583a499c55de6e ./src/unaligned.h +5b3d2e501816359f0e9d1df50c6e7588 ./src/time-util.c +3aafe3fcc7edf5354b19b4050021de3d ./src/hashmap.c +51d3cb93dce28853fe9416ce0466d218 ./src/macro.h +b888bda757b68ae833c8fe26c881c8e0 ./src/Makefile +ab875a6d0a636e26e172a23bc0c1fd75 ./src/fd-util.h +49adf9ab42789ca711add86d7fb308eb ./src/conf-parser.c +7f87bde7153da26f216f2b3411ffe734 ./src/build.h +55d776bb4d6ec39c59baa8f62cb1d61d ./src/strxcpyx.h +9978b48f253476779594f53c2a366885 ./src/log.h +6a011b3dee64c0a17a2c8a871d3844db ./src/bootchart.h +a0f4bcf06833534cd7a4633a73445536 ./src/architecture.h +797e96e4f438ca07e91fc57607512b72 ./src/mempool.h +305e55338baa25b75e3258ee47bd5120 ./src/dirent-util.c +1679368c24bd9372f9e58baef504a5ed ./src/siphash24.h +baaeb1f5cb9187bddb4bcf4c4fdb7ad8 ./src/process-util.c +9cc15a9a959176bbd45eef11af2eb746 ./src/set.h +1576713e3d69ab44ddc085f9d95d3987 ./src/string-util.c +3178a5c7acce1bb77dfa5eb827f90312 ./src/bootchart.c +67852a879b5b4b05a17b3e1db591fa3d ./src/store.c +30628d37d8896e76595fb541d6ffa16c ./src/mempool.c +5807d536e962ad222bda7d5cfaca6af4 ./src/terminal-util.c +c72a4629e0129bee2d0e9882405966ff ./src/conf-files.c +5e8620063b39d79ceb492eb16b104da7 ./src/def.h +e6e48cebe9c47da2311ac8517c225997 ./src/time-util.h +d6436a83142d029994893f4b02a568e5 ./src/strv.h +c9d9b148f95fb4a3ead67fa6d369ead0 ./src/process-util.h +9e576622e4f2172ea1e95b373f0db3da ./src/store.h +95af9044d6745b12abd31069617355a8 ./src/conf-parser.h +e692ee54ed6b4f4ec2d390b49b024dff ./src/svg.c +086ada3b896f1cffcbe46356980ab140 ./src/fd-util.c +0e4105b28d478ed0d7d21c52b6c5b56c ./src/list.h +cdcee35c4fed64553aaaf73bf33ed41a ./src/fileio.h +80d864c10331e74ee7203e8815f1a7bd ./src/random-util.c +9908473d6fcaafeb44ffcb2f4b73d80e ./src/hash-funcs.c +b8f22e74dec3fc79ce0d5f5c707b11f9 ./src/formats-util.h +f3cf87b8dba341a1ec2480d430be95ea ./src/parse-util.h +94febc8d13b68938aa14f8faa62dd7af ./src/hash-funcs.h +1cd0ddd3f190bf93ec85a1623bb5e17e ./src/io-util.h +2a536e225a711b3fb7fb017ed4544e3a ./src/terminal-util.h +41e8f3df1b04c922e41bcdbed327253f ./src/hashmap.h +4842d798fb1d0a566e9edbf17a22ee00 ./src/sd-messages.h +3dd2a316d5c534f6e54d8be4df10d65b ./src/missing.h +ae3632e7c2938dbe4364240f00dd2a1b ./src/attributes.h +505c3c5b01ee275e16c1f5ffc8fae983 ./src/dirent-util.h +ea8ca7ab30795d904235e3e97e725637 ./src/conf-files.h +5472deff0ed38594d9d9c8d5c73c8170 ./src/string-util.h +1a2a4d5adcec93b80ef9cdc4c6779c9b ./src/path-util.h +34a476d651b0d052c50248b249b1d16e ./src/strxcpyx.c +a55a301d81836119ee3dfd45b8a5fc2b ./autogen.sh +8f60e4504f9ef65a9ede825617158803 ./tests/run +c4298c9b3104c3e01d7964326957a340 ./README +855ef2c77d9eb5e3f07a717e235d28ec ./configure.ac +3be9524adbc33584341d3da4549e26c7 ./configure +004626cec5dff8b05244eb9dd515862b ./Makefile.am +4fbd65380cdd255951079008b364516c ./LICENSE.LGPL2.1 +14173f1f00b539d08c5453caddd5348b ./aclocal.m4 +c3fcc39a9745316eee69d2a3fadc3921 ./config.h.in +a84adb10220cd27413908abde9afbdc5 ./TODO diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..e5cc597 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,123 @@ +systemd-bootchart (236-1) unstable; urgency=medium + + [ liuyunhe ] + * add -t argument, when arg is set, the runtime counts will start from + nowtime + * add -d argument, when arg is set, we can specify the running duration + * fix the issue of CPU costs statistics are inaccurate while the threads + costs were not count by ps->total + + -- liuyunhe Wed, 09 Jul 2025 10:40:37 +0800 + +systemd-bootchart (235-2) unstable; urgency=medium + + [ Chris Hofstaedtler ] + * Assume UsrMerged install layout (DEP17 M2) (Closes: #1060363) + + -- Michael Biebl Wed, 10 Jan 2024 01:15:40 +0100 + +systemd-bootchart (235-1) unstable; urgency=medium + + [ Debian Janitor ] + * Remove constraints unnecessary since buster + * Trim trailing whitespace. + * Set upstream metadata fields: Bug-Database, Bug-Submit, Repository- + Browse. + + [ Luca Boccassi ] + * New upstream version 235 + * Drop Add-riscv64-support.patch, merged upstream + * Add myself to Uploaders + * Bump Standards-Version to 4.6.2, no changes + + -- Luca Boccassi Sat, 04 Nov 2023 00:20:04 +0000 + +systemd-bootchart (234-2) unstable; urgency=medium + + * Bump Standards-Version to 4.6.1 (no further changes required) + * Add riscv64 support (Closes: #1010255) + * Update debian/watch to version 4 + + -- Michael Biebl Sun, 24 Jul 2022 14:50:08 +0200 + +systemd-bootchart (234-1) unstable; urgency=medium + + * New upstream version 234 + * Rebase patches + + -- Michael Biebl Sun, 20 Dec 2020 20:55:05 +0100 + +systemd-bootchart (233-3) unstable; urgency=medium + + * Switch to debhelper-compat and bump compat level to 13 + * Switch to dh_installsystemd + * Bump Standards-Version to 4.5.1 + * Drop obsolete Breaks/Replaces + * Increase max PID and CPU constants. + The numbers were insufficient for modern servers. + Also avoid crash in svg_ps_bars which might be happening due to the + previous low max pids number. (Closes: #976922) + + -- Michael Biebl Sat, 12 Dec 2020 16:00:36 +0100 + +systemd-bootchart (233-2) unstable; urgency=medium + + [ Michael Biebl ] + * Update Vcs-* to point to https://salsa.debian.org + * Set Rules-Requires-Root to no + + [ Nicolas Braud-Santoni ] + * debian/copyright: Point to CC-1.0 license in /usr/share/common-licenses/ + (Closes: #882630) + + [ Martin Pitt ] + * debian/copyright: Use https URL for Format: + * Bump Standards-Version to 4.1.3 + * debian/copyright: Move global wildcard section to the top. + Fixes lintian warning + global-files-wildcard-not-first-paragraph-in-dep5-copyright. + + -- Martin Pitt Sun, 25 Mar 2018 23:53:27 +0200 + +systemd-bootchart (233-1) unstable; urgency=medium + + * New upstream version 233 + * Drop debian/patches/Revert-bootchart-fix-per-cpu-small-scales.patch + * Bump Standards-Version to 4.1.0 + + -- Michael Biebl Sat, 16 Sep 2017 19:12:17 +0200 + +systemd-bootchart (232-1) unstable; urgency=medium + + [ Michael Biebl ] + * New upstream version 232 + * Bump debhelper compat level to 10 for automatic dh-autoreconf + * Update Vcs-* following the latest recommendation + * Revert "bootchart: fix per-cpu & small scales." + + [ Felipe Sateler ] + * Do not enable systemd-bootchart.service by default + + -- Michael Biebl Sun, 18 Jun 2017 23:44:18 +0200 + +systemd-bootchart (231-1) unstable; urgency=medium + + * New upstream release. + * Use the git archive (gzipped) instead of the release tarball. The latter + is compressed using xz and causes failures with pristine-tar. + + -- Michael Biebl Wed, 14 Sep 2016 22:36:25 +0200 + +systemd-bootchart (230-2) unstable; urgency=medium + + * Fix paths in man pages + * Install upstream README which documents required kernel interfaces + + -- Michael Biebl Sun, 03 Jul 2016 14:52:06 +0200 + +systemd-bootchart (230-1) unstable; urgency=medium + + * Initial release. This got split off from the main systemd sources in + version 230. + + -- Martin Pitt Wed, 22 Jun 2016 15:13:08 +0200 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..fce1ded --- /dev/null +++ b/debian/control @@ -0,0 +1,45 @@ +Source: systemd-bootchart +Section: admin +Priority: optional +Maintainer: Debian systemd Maintainers +Uploaders: Michael Biebl , + Luca Boccassi , + Marco d'Itri , + Sjoerd Simons , + Martin Pitt +Standards-Version: 4.6.2 +Rules-Requires-Root: no +Vcs-Git: https://salsa.debian.org/systemd-team/systemd-bootchart.git +Vcs-Browser: https://salsa.debian.org/systemd-team/systemd-bootchart +Homepage: https://github.com/systemd/systemd-bootchart/ +Build-Depends: debhelper-compat (= 13), + intltool, + pkg-config, + libsystemd-dev, + xsltproc, + docbook-xsl, + docbook-xml, + +Package: systemd-bootchart +Architecture: linux-any +Multi-Arch: foreign +Depends: ${shlibs:Depends}, + ${misc:Depends}, +Description: boot performance graphing tool + systemd-bootchart is a tool, usually run at system startup, that collects the + CPU load, disk load, memory usage, as well as per-process information from a + running system. Collected results are output as an SVG graph. Normally, + systemd-bootchart is invoked by the kernel by passing + init=/lib/systemd/systemd-bootchart on the kernel command line. + systemd-bootchart will then fork the real init off to resume normal system + startup, while monitoring and logging startup information in the background. + . + After collecting a certain amount of data (usually 15–30 seconds, default 20s) + the logging stops and a graph is generated from the logged information. This + graph contains vital clues as to which resources are being used, in which + order, and where possible problems exist in the startup sequence of the + system. It is essentially a more detailed version of the systemd-analyze plot + function. + . + bootchart can also be used at any moment in time to collect and graph some + data for an amount of time. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..ec2a3f7 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,51 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: systemd-bootchart +Upstream-Contact: systemd-devel@lists.freedesktop.org +Source: https://github.com/systemd/systemd-bootchart/ + +Files: * +Copyright: Copyright 2000, 2005 Red Hat, Inc. + Copyright 2008-2013 Kay Sievers + Copyright 2010-2015 Lennart Poettering + Copyright 2013 Zbigniew Jędrzejewski-Szmek + Copyright 2014 Michal Schmidt + Copyright 2014 Tom Gundersen + Copyright 2015 Ronny Chevalier + Copyright (C) 1999, 2000 Tom Tromey + Copyright (C) 2009-2013 Intel Corporation +License: LGPL-2.1+ + +Files: src/siphash24.h + src/siphash24.c +Copyright: 2012 Jean-Philippe Aumasson + 2012 Daniel J. Bernstein +License: CC0-1.0 + To the extent possible under law, the author(s) have dedicated all copyright + and related and neighboring rights to this software to the public domain + worldwide. This software is distributed without any warranty. + . + The full text of the CC0 1.0 Universal license is available + https://creativecommons.org/publicdomain/zero/1.0/ and in + /usr/share/common-licenses/CC0-1.0 on Debian systems starting with Buster. + +Files: debian/* +Copyright: (C) 2016 Martin Pitt +License: LGPL-2.1+ + +License: LGPL-2.1+ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + . + You should have received a copy of the GNU Lesser General Public License along + with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + . + On Debian systems, the complete text of the GNU Lesser General Public + License version 2.1 can be found in ‘/usr/share/common-licenses/LGPL-2.1’. diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..e845566 --- /dev/null +++ b/debian/docs @@ -0,0 +1 @@ +README diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 0000000..478d845 --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,4 @@ +[DEFAULT] +pristine-tar = True +patch-numbers = False +debian-branch = master diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..0d94553 --- /dev/null +++ b/debian/rules @@ -0,0 +1,7 @@ +#! /usr/bin/make -f + +%: + dh $@ + +override_dh_installsystemd: + dh_installsystemd --no-enable diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml new file mode 100644 index 0000000..33c3a64 --- /dev/null +++ b/debian/salsa-ci.yml @@ -0,0 +1,4 @@ +--- +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/debian/tests/bootchart b/debian/tests/bootchart new file mode 100644 index 0000000..c8b7f62 --- /dev/null +++ b/debian/tests/bootchart @@ -0,0 +1,51 @@ +#!/bin/sh +# Author: Martin Pitt +set -e + +if ! [ -e /etc/default/grub ]; then + echo "Not using grub, skipping" + exit 0 +fi + +if ! [ -x /tmp/autopkgtest-reboot ]; then + echo "autopkgtest testbed does not support reboot, skipping" + exit 0 +fi + +if [ ! -e /proc/schedstat ]; then + echo "CONFIG_SCHEDSTAT not enabled on this kernel, bootchart not available" + exit 0 +fi + +# first stage: prepare bootchart boot +if [ -z "$ADT_REBOOT_MARK" ]; then + # append init= boot option + mkdir -p /etc/default/grub.d + cur_default=$(grep -h ^GRUB_CMDLINE_LINUX_DEFAULT /etc/default/grub $(ls /etc/default/grub.d/*.cfg 2>/dev/null || true) | tail -n1) + cur_default=$(echo "$cur_default" | sed 's!"$! init=/lib/systemd/systemd-bootchart"!') + echo "$cur_default" > /etc/default/grub.d/99-init-bootchart.cfg + update-grub 2>&1 + rm /etc/default/grub.d/99-init-bootchart.cfg + + /tmp/autopkgtest-reboot b1 +fi + +# second stage: should have booted with bootchart +update-grub 2>&1 # restore original initramfs + +timeout=180 +while [ ! -s /run/log/bootchart*.svg -a $timeout -ge 0 ]; do + timeout=$((timeout - 5)) + sleep 5 + echo "waiting for bootchart... (${timeout}s left)" +done +if [ ! -s /run/log/bootchart*.svg ]; then + echo "timed out waiting for bootchart" >&2 + exit 1 +fi + +if ! grep -q 'DOCTYPE svg' /run/log/bootchart*.svg; then + echo "ERROR: invalid bootchart:" >&2 + cat /run/log/bootchart*.svg >&2 + exit 1 +fi diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..b3766c0 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,2 @@ +Tests: bootchart +Restrictions: needs-root, isolation-machine diff --git a/debian/upstream/metadata b/debian/upstream/metadata new file mode 100644 index 0000000..e0f754a --- /dev/null +++ b/debian/upstream/metadata @@ -0,0 +1,4 @@ +--- +Bug-Database: https://github.com/systemd/systemd-bootchart/issues +Bug-Submit: https://github.com/systemd/systemd-bootchart/issues/new +Repository-Browse: https://github.com/systemd/systemd-bootchart diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..3dc7bf6 --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=4 +opts=filenamemangle=s/.+\/v?(\d+)\S*\.tar\.gz/systemd-bootchart-$1\.tar\.gz/,pgpmode=none \ + https://github.com/systemd/systemd-bootchart/tags .*/v?(\d+)\S*\.tar\.gz diff --git a/src/bootchart.c b/src/bootchart.c index 15aaa2e..f828762 100644 --- a/src/bootchart.c +++ b/src/bootchart.c @@ -84,6 +84,8 @@ bool arg_filter = true; bool arg_show_cmdline = false; bool arg_show_cgroup = false; bool arg_pss = false; +bool arg_from_nowtime = false; +int arg_duration = 0; bool arg_percpu = false; int arg_samples_len = DEFAULT_SAMPLES_LEN; /* we record len+1 (1 start sample) */ double arg_hz = DEFAULT_HZ; @@ -132,6 +134,8 @@ static void help(void) { printf("Usage: %s [OPTIONS]\n\n" "Options:\n" " -r --rel Record time relative to recording\n" + " -t --nowtime Caculate process run-time relative to now\n" + " -d --duration=DUR Duration of recording [%g], unit is seconds\n" " -f --freq=FREQ Sample frequency [%g]\n" " -n --samples=N Stop sampling at [%d] samples\n" " -x --scale-x=N Scale the graph horizontally [%g] \n" @@ -163,6 +167,8 @@ static int parse_argv(int argc, char *argv[]) { static const struct option options[] = { {"rel", no_argument, NULL, 'r' }, + {"nowtime", no_argument, NULL, 't' }, + {"duration", required_argument, NULL, 'd' }, {"freq", required_argument, NULL, 'f' }, {"samples", required_argument, NULL, 'n' }, {"pss", no_argument, NULL, 'p' }, @@ -183,12 +189,27 @@ static int parse_argv(int argc, char *argv[]) { if (getpid() == 1) opterr = 0; - while ((c = getopt_long(argc, argv, "erpf:n:o:i:FCchx:y:", options, NULL)) >= 0) + while ((c = getopt_long(argc, argv, "ertd:pf:n:o:i:FCchx:y:", options, NULL)) >= 0) switch (c) { case 'r': arg_relative = true; break; + case 't': + arg_from_nowtime = true; + break; + case 'd': + r = safe_atoi(optarg, &arg_duration); + if (r < 0) + log_warning_errno(r, "failed to parse --duration/-d argument '%s': %m", + optarg); + if (arg_samples_len != DEFAULT_SAMPLES_LEN) + { + log_warning("--duration/-d and --samples/-n are mutually exclusive."); + return -EINVAL; + } + arg_samples_len = 0; // 先设置为0, 等参数解析完成后再设置 + break; case 'f': r = safe_atod(optarg, &arg_hz); if (r < 0) @@ -205,6 +226,11 @@ static int parse_argv(int argc, char *argv[]) { arg_show_cgroup = true; break; case 'n': + if (arg_samples_len != DEFAULT_SAMPLES_LEN) + { + log_warning("--samples/-n and --duration/-d are mutually exclusive."); + return -EINVAL; + } r = safe_atoi(optarg, &arg_samples_len); if (r < 0) log_warning_errno(r, "failed to parse --samples/-n argument '%s': %m", @@ -256,6 +282,9 @@ static int parse_argv(int argc, char *argv[]) { return -EINVAL; } + if (arg_duration > 0) + arg_samples_len = arg_duration * arg_hz; + return 1; } @@ -399,7 +428,8 @@ int main(int argc, char *argv[]) { LIST_HEAD_INIT(head); /* main program loop */ - for (samples = 0; !exiting && samples < arg_samples_len; samples++) { + for (samples = 0; !exiting && samples < arg_samples_len; samples++) + { int res; double sample_stop; double elapsed; diff --git a/src/bootchart.conf b/src/bootchart.conf index 030a2a1..48010e6 100644 --- a/src/bootchart.conf +++ b/src/bootchart.conf @@ -16,7 +16,7 @@ #Frequency=25.0 #Relative=no #Filter=yes -#Output= +Output=/tmp #Init= #PlotMemoryUsage=no #PlotEntropyGraph=no diff --git a/src/bootchart.h b/src/bootchart.h index 1b0895e..1cb5796 100644 --- a/src/bootchart.h +++ b/src/bootchart.h @@ -31,6 +31,8 @@ #define MAXCPUS 512 #define MAXPIDS 4194304 +// #define PRINT_DEBUG() + struct block_stat_struct { /* /proc/vmstat pgpgin & pgpgout */ int bi; @@ -103,6 +105,8 @@ struct ps_struct { }; extern bool arg_relative; +extern bool arg_from_nowtime; +extern int arg_duration; extern bool arg_filter; extern bool arg_show_cmdline; extern bool arg_show_cgroup; diff --git a/src/store.c b/src/store.c index 785d408..631815a 100644 --- a/src/store.c +++ b/src/store.c @@ -119,6 +119,16 @@ static void garbage_collect_dead_processes(struct ps_struct *ps_first) { } } +static inline int _get_cpu_time_from_schedstat(FILE* statfp, double* rt, double* wt) +{ + char trt[256]; + char twt[256]; + if (!sscanf(statfp, "%s %s %*s", trt, twt)) + return -1; + *rt = atoll(trt); + *wt = atoll(twt); + return 0; +} int log_sample(DIR *proc, int sample, @@ -148,6 +158,7 @@ int log_sample(DIR *proc, struct ps_sched_struct *ps_prev = NULL; int procfd; int taskfd = -1; + bool newproc = false; sampledata = *ptr; @@ -229,9 +240,10 @@ int log_sample(DIR *proc, buf[n] = '\0'; sampledata->entropy_avail = atoi(buf); } - } + } //系统级整体数据解析完成 - while ((ent = readdir(proc)) != NULL) { + while ((ent = readdir(proc)) != NULL) + { char filename[PATH_MAX]; int pid; struct ps_struct *ps; @@ -245,14 +257,16 @@ int log_sample(DIR *proc, continue; ps = ps_first; - while (ps->next_running) { + while (ps->next_running) + { ps = ps->next_running; if (ps->pid == pid) break; } /* end of our LL? then append a new record */ - if (ps->pid != pid) { + if (ps->pid != pid) + { _cleanup_fclose_ FILE *st = NULL; char t[32]; struct ps_struct *parent; @@ -321,6 +335,8 @@ int log_sample(DIR *proc, if (r < 0) goto no_sched; + newproc = true; + ps->starttime /= 1000.0; no_sched: @@ -356,6 +372,7 @@ int log_sample(DIR *proc, * these are used to paint the tree coherently later * each parent has a LL of children, and a LL of siblings */ + // 设置进程的父子关系 if (pid != 1) { /* nothing to do for init atm */ @@ -386,7 +403,12 @@ int log_sample(DIR *proc, *children = ps; } } - } +#ifdef BOOTCHART_DEBUG + printf("Found new process [%s]%d -> Parent %d\n", ps->name, pid, ps->ppid); +#endif + } // 新进程添加完成,但是注意这里的第一个sample结构体并不会被后续代码操作 + + /* else -> found pid, append data in ps */ /* below here is all continuous logging parts - we get here on every @@ -409,23 +431,26 @@ int log_sample(DIR *proc, if (!sscanf(buf, "%s %s %*s", rt, wt)) continue; - ps->sample->next = new0(struct ps_sched_struct, 1); - if (!ps->sample->next) - return log_oom(); + if (!newproc || !arg_from_nowtime) + { + ps->sample->next = new0(struct ps_sched_struct, 1); + if (!ps->sample->next) + return log_oom(); - ps->sample->next->prev = ps->sample; - ps->sample = ps->sample->next; - ps->last = ps->sample; - ps->sample->runtime = atoll(rt); - ps->sample->waittime = atoll(wt); + // 如果是第一个采样,执行到这段代码的时候会跳过first sample,所以会导致ps->first->runtime == 0 + // 所以在first sample采样的时候要把相关数据也采集一遍 + ps->sample->next->prev = ps->sample; + ps->sample = ps->sample->next; + ps->last = ps->sample; + } + ps->sample->runtime = atoll(rt); // 全CPU 运行时间总计 + ps->sample->waittime = atoll(wt); // 全CPU 调度等待时间总计 ps->sample->sampledata = sampledata; ps->sample->ps_new = ps; if (ps_prev) ps_prev->cross = ps->sample; ps_prev = ps->sample; - ps->total = (ps->last->runtime - ps->first->runtime) - / 1000000000.0; /* Take into account CPU runtime/waittime spent in non-main threads of the process * by parsing "/proc/[pid]/task/[tid]/schedstat" for all [tid] != [pid] @@ -433,9 +458,11 @@ int log_sample(DIR *proc, */ /* Browse directory "/proc/[pid]/task" to know the thread ids of process [pid] */ + // 计算所有线程的信息数据 snprintf(filename, sizeof(filename), PID_FMT "/task", pid); taskfd = openat(procfd, filename, O_RDONLY|O_DIRECTORY|O_CLOEXEC); - if (taskfd >= 0) { + if (taskfd >= 0) + { _cleanup_closedir_ DIR *taskdir = NULL; taskdir = fdopendir(taskfd); @@ -483,6 +510,10 @@ int log_sample(DIR *proc, } } + // 将total的计算移到这里,解决total计算只处理了主线程的问题 + ps->total = (ps->last->runtime - ps->first->runtime) + / 1000000000.0; + if (!arg_pss) goto catch_rename; diff --git a/src/svg.c b/src/svg.c index 9183de4..74e77bf 100644 --- a/src/svg.c +++ b/src/svg.c @@ -911,7 +911,12 @@ static bool ps_filter(struct ps_struct *ps) { /* drop stuff that doesn't use any real CPU time */ if (ps->total <= 0.001) + { +#ifdef BOOTCHART_DEBUG + printf("Dropping process %s [%d] with no CPU time\n", ps->name, ps->pid); +#endif return true; + } return 0; } @@ -1039,7 +1044,8 @@ static void svg_ps_bars(FILE *of, /* pass 2 - ps boxes */ ps = ps_first; - while ((ps = get_next_ps(ps, ps_first))) { + while ((ps = get_next_ps(ps, ps_first))) + { _cleanup_free_ char *enc_name = NULL, *escaped = NULL; double endtime; double starttime; @@ -1055,6 +1061,11 @@ static void svg_ps_bars(FILE *of, /* leave some trace of what we actually filtered etc. */ fprintf(of, "\n", enc_name, ps->pid, ps->ppid, to_ms(ps->total)); +#ifdef BOOTCHART_DEBUG + printf("%s[%d] first runtime: %.03fms, last runtime: %.03fms\n", + ps->name, ps->pid, + to_ms(ps->first->runtime), to_ms(ps->last->runtime)); +#endif starttime = ps->first->sampledata->sampletime;