roebe 0.5.123

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of roebe might be problematic. Click here for more details.

Files changed (2734) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +2628 -0
  3. data/bin/blinking_cursor +7 -0
  4. data/bin/browser +7 -0
  5. data/bin/colourized_tokenitor1 +7 -0
  6. data/bin/colourized_tokenitor2 +7 -0
  7. data/bin/colourized_tokenitor3 +7 -0
  8. data/bin/colourized_tokenitor4 +7 -0
  9. data/bin/colourized_tokenitor5 +7 -0
  10. data/bin/compare_these_two_directories +7 -0
  11. data/bin/create_file_skeleton +7 -0
  12. data/bin/create_my_directories +7 -0
  13. data/bin/create_zip +7 -0
  14. data/bin/display_gcc_version +7 -0
  15. data/bin/do_a_google_search +7 -0
  16. data/bin/extract_gem_file +7 -0
  17. data/bin/fragment_maker +7 -0
  18. data/bin/generate_fstab_file +7 -0
  19. data/bin/hello_world +7 -0
  20. data/bin/in +7 -0
  21. data/bin/increment_application_version +7 -0
  22. data/bin/increment_application_version_then_push_the_gem +13 -0
  23. data/bin/install_all_registered_fonts +7 -0
  24. data/bin/install_my_addons +115 -0
  25. data/bin/interactive_file_creator +7 -0
  26. data/bin/kill_firefox +7 -0
  27. data/bin/kill_palemoon +7 -0
  28. data/bin/konsole_title +7 -0
  29. data/bin/larrow +7 -0
  30. data/bin/log10 +7 -0
  31. data/bin/menugenerator +7 -0
  32. data/bin/openpdf1 +7 -0
  33. data/bin/openpdf2 +7 -0
  34. data/bin/openpdf3 +7 -0
  35. data/bin/openpdf4 +7 -0
  36. data/bin/openpdf5 +7 -0
  37. data/bin/openpdf6 +7 -0
  38. data/bin/openpdf7 +7 -0
  39. data/bin/openpdf8 +7 -0
  40. data/bin/openpdf9 +7 -0
  41. data/bin/passwords +7 -0
  42. data/bin/path_generator +7 -0
  43. data/bin/print_this_unicode_symbol +7 -0
  44. data/bin/quick_colour_test +13 -0
  45. data/bin/rarrow +7 -0
  46. data/bin/rdate +7 -0
  47. data/bin/remove_this_substring_from_all_files +7 -0
  48. data/bin/replace_space_with_underscore +7 -0
  49. data/bin/rfirefox +7 -0
  50. data/bin/rinstall2 +7 -0
  51. data/bin/roebe +7 -0
  52. data/bin/roebe_documentation +7 -0
  53. data/bin/roebeshell +11 -0
  54. data/bin/ruby_cat +7 -0
  55. data/bin/ruby_dhcpcd +7 -0
  56. data/bin/run +7 -0
  57. data/bin/rxinitrc +7 -0
  58. data/bin/set_alias_1 +7 -0
  59. data/bin/set_alias_10 +7 -0
  60. data/bin/set_alias_2 +7 -0
  61. data/bin/set_alias_3 +7 -0
  62. data/bin/set_alias_4 +7 -0
  63. data/bin/set_alias_5 +7 -0
  64. data/bin/set_alias_6 +7 -0
  65. data/bin/set_alias_7 +7 -0
  66. data/bin/set_alias_8 +7 -0
  67. data/bin/set_alias_9 +7 -0
  68. data/bin/set_browser +7 -0
  69. data/bin/setpdf1 +7 -0
  70. data/bin/setpdf2 +7 -0
  71. data/bin/setpdf3 +7 -0
  72. data/bin/setpdf4 +7 -0
  73. data/bin/setpdf5 +7 -0
  74. data/bin/setpdf6 +7 -0
  75. data/bin/setpdf7 +7 -0
  76. data/bin/setpdf8 +7 -0
  77. data/bin/setpdf9 +7 -0
  78. data/bin/show_available_users +7 -0
  79. data/bin/show_ten_aliases +7 -0
  80. data/bin/simple_extractor +9 -0
  81. data/bin/symlink_directories_from_that_directory_to_the_current_directory +7 -0
  82. data/bin/symlink_everything_from_that_directory_to_this_directory +7 -0
  83. data/bin/symlink_files_from_that_directory_to_the_current_directory +7 -0
  84. data/bin/take_screenshot +7 -0
  85. data/bin/to_binary +7 -0
  86. data/bin/tokenitor +7 -0
  87. data/bin/trad +7 -0
  88. data/bin/vim_paradise +7 -0
  89. data/bin/wlan +7 -0
  90. data/doc/CONFIGURATION_FOR_THE_ROEBE_SHELL.md +381 -0
  91. data/doc/MANIFESTO_FOR_THE_ROEBE_SHELL_COMPONENT.md +391 -0
  92. data/doc/PHILOSOPHY_OF_THE_ROEBE_SHELL.md +64 -0
  93. data/doc/README.gen +2585 -0
  94. data/doc/add_ons_for_ruby/README.md +3 -0
  95. data/doc/add_ons_for_ruby/axlsx.md +60 -0
  96. data/doc/add_ons_for_ruby/fxruby.md +14 -0
  97. data/doc/add_ons_for_ruby/glimmer-libui.md +44 -0
  98. data/doc/add_ons_for_ruby/gosu.md +3 -0
  99. data/doc/add_ons_for_ruby/jruby.md +132 -0
  100. data/doc/add_ons_for_ruby/opal.md +34 -0
  101. data/doc/add_ons_for_ruby/prawn.md +12 -0
  102. data/doc/add_ons_for_ruby/sequel.md +51 -0
  103. data/doc/core/array.md +11 -0
  104. data/doc/deprecations.md +10 -0
  105. data/doc/diamond_shell_tutorial.cgi +802 -0
  106. data/doc/linux_may_have_issues.md +92 -0
  107. data/doc/misc/how_to_publish.md +49 -0
  108. data/doc/misc/the_perfect_book.md +14 -0
  109. data/doc/old_tutorial/README.md +7 -0
  110. data/doc/old_tutorial/old_diashell_tutorial.cgi +2105 -0
  111. data/doc/ruby_on_rails_tutorial/data_types_for_rails_migrations.md +11 -0
  112. data/doc/ruby_on_rails_tutorial/ruby_on_rails_tutorial.cgi +404 -0
  113. data/doc/sinatra_tutorial/sinatra_tutorial.cgi +7 -0
  114. data/doc/sinatra_tutorial/sinatra_tutorial.rb +930 -0
  115. data/doc/sinatra_tutorial/sinatra_tutorial.sinatra +56 -0
  116. data/doc/statistics/statistics.md +94 -0
  117. data/doc/todo/todo_for_the_roebe_project.md +1 -0
  118. data/doc/todo/todo_for_the_roebe_project_on_windows.md +8 -0
  119. data/doc/todo/todo_for_the_roebe_shell.md +1178 -0
  120. data/examples/rmagick/001_axes.rb +68 -0
  121. data/examples/rmagick/002_basic_2D_canvas.rb +29 -0
  122. data/examples/rmagick/003_a_walking_duck.rb +42 -0
  123. data/examples/rmagick/004_black_rectangle_with_red_border.rb +37 -0
  124. data/examples/rmagick/A_WALKING_DUCK.gif +0 -0
  125. data/examples/rmagick/foobar.png +0 -0
  126. data/lib/roebe/autoinclude.rb +4 -0
  127. data/lib/roebe/autoinclude_encoding.rb +11 -0
  128. data/lib/roebe/autoinclude_open.rb +3 -0
  129. data/lib/roebe/base/base.rb +25 -0
  130. data/lib/roebe/base/chdir.rb +43 -0
  131. data/lib/roebe/base/colours.rb +539 -0
  132. data/lib/roebe/base/commandline_arguments.rb +86 -0
  133. data/lib/roebe/base/constants.rb +25 -0
  134. data/lib/roebe/base/copy.rb +70 -0
  135. data/lib/roebe/base/editor.rb +18 -0
  136. data/lib/roebe/base/encoding.rb +54 -0
  137. data/lib/roebe/base/env.rb +22 -0
  138. data/lib/roebe/base/esystem.rb +84 -0
  139. data/lib/roebe/base/home_directory_of_user_x.rb +27 -0
  140. data/lib/roebe/base/is_on_roebe.rb +22 -0
  141. data/lib/roebe/base/misc.rb +357 -0
  142. data/lib/roebe/base/next.rb +29 -0
  143. data/lib/roebe/base/opnn.rb +46 -0
  144. data/lib/roebe/base/prototype.rb +409 -0
  145. data/lib/roebe/base/reset.rb +37 -0
  146. data/lib/roebe/base/run.rb +17 -0
  147. data/lib/roebe/base/simp.rb +25 -0
  148. data/lib/roebe/base/support_for_beautiful_url.rb +28 -0
  149. data/lib/roebe/base/symlink.rb +51 -0
  150. data/lib/roebe/base/time.rb +165 -0
  151. data/lib/roebe/base/verbose_truth.rb +21 -0
  152. data/lib/roebe/base/write_what_into.rb +33 -0
  153. data/lib/roebe/browser/README.md +5 -0
  154. data/lib/roebe/browser/browser.rb +26 -0
  155. data/lib/roebe/browser/constants.rb +43 -0
  156. data/lib/roebe/browser/firefox.rb +51 -0
  157. data/lib/roebe/browser/menu.rb +103 -0
  158. data/lib/roebe/browser/misc.rb +367 -0
  159. data/lib/roebe/browser/output_url_then_open_in_browser.rb +168 -0
  160. data/lib/roebe/browser/palemoon.rb +59 -0
  161. data/lib/roebe/browser/reset.rb +50 -0
  162. data/lib/roebe/cat/cat.rb +137 -0
  163. data/lib/roebe/cat/method.rb +14 -0
  164. data/lib/roebe/classes/add_irc_quote.rb +132 -0
  165. data/lib/roebe/classes/add_newline_after.rb +124 -0
  166. data/lib/roebe/classes/add_this_user_to_the_sudoers_file.rb +67 -0
  167. data/lib/roebe/classes/add_user_lighty.rb +104 -0
  168. data/lib/roebe/classes/aggregate_all_files_together_from_this_directory.rb +86 -0
  169. data/lib/roebe/classes/aliases.rb +683 -0
  170. data/lib/roebe/classes/all_games.rb +61 -0
  171. data/lib/roebe/classes/all_my_gems.rb +101 -0
  172. data/lib/roebe/classes/alphabetical_sorter.rb +117 -0
  173. data/lib/roebe/classes/apache_configuration_maker.rb +234 -0
  174. data/lib/roebe/classes/append_this.rb +156 -0
  175. data/lib/roebe/classes/append_to_line.rb +141 -0
  176. data/lib/roebe/classes/ascii/README.md +2 -0
  177. data/lib/roebe/classes/ascii/fix_missing_numbers_for_ascii_paradise.rb +96 -0
  178. data/lib/roebe/classes/at.rb +300 -0
  179. data/lib/roebe/classes/automounter.rb +181 -0
  180. data/lib/roebe/classes/available_classes.rb +219 -0
  181. data/lib/roebe/classes/backup_core_system.rb +223 -0
  182. data/lib/roebe/classes/basic_configure.rb +110 -0
  183. data/lib/roebe/classes/batch_generate_all_my_gems.rb +132 -0
  184. data/lib/roebe/classes/become_another_user.rb +86 -0
  185. data/lib/roebe/classes/bezirk.rb +91 -0
  186. data/lib/roebe/classes/birthday_notifications.rb +291 -0
  187. data/lib/roebe/classes/burn_iso/burn_iso.rb +274 -0
  188. data/lib/roebe/classes/burn_iso/constants.rb +43 -0
  189. data/lib/roebe/classes/burn_iso/initialize.rb +33 -0
  190. data/lib/roebe/classes/caesar_cipher.rb +88 -0
  191. data/lib/roebe/classes/calendar.rb +360 -0
  192. data/lib/roebe/classes/calendar_maker.rb +61 -0
  193. data/lib/roebe/classes/celsius_to_fahrenheit.rb +195 -0
  194. data/lib/roebe/classes/check_for_bad_blocks.rb +67 -0
  195. data/lib/roebe/classes/check_yaml.rb +71 -0
  196. data/lib/roebe/classes/chmod_current_time.rb +71 -0
  197. data/lib/roebe/classes/clipboard.rb +221 -0
  198. data/lib/roebe/classes/clock.rb +118 -0
  199. data/lib/roebe/classes/compare_these_two_directories.rb +95 -0
  200. data/lib/roebe/classes/compare_these_two_files.rb +167 -0
  201. data/lib/roebe/classes/compile_kernel.rb +114 -0
  202. data/lib/roebe/classes/config_generator.rb +204 -0
  203. data/lib/roebe/classes/conky.rb +121 -0
  204. data/lib/roebe/classes/conky_rcfile_generator.rb +61 -0
  205. data/lib/roebe/classes/convert_encoding_of_this_file.rb +215 -0
  206. data/lib/roebe/classes/convert_file_into_utf_encoding.rb +89 -0
  207. data/lib/roebe/classes/convert_this_cgi_file_into_a_sinatrafied_application.rb +145 -0
  208. data/lib/roebe/classes/copy_from_glibc.rb +134 -0
  209. data/lib/roebe/classes/copy_here.rb +76 -0
  210. data/lib/roebe/classes/copy_kernel_config.rb +59 -0
  211. data/lib/roebe/classes/copy_these_directories_to.rb +121 -0
  212. data/lib/roebe/classes/covid_lethality.rb +243 -0
  213. data/lib/roebe/classes/create_asoundrc_file.rb +66 -0
  214. data/lib/roebe/classes/create_benchmark_file.rb +77 -0
  215. data/lib/roebe/classes/create_desktop_file.rb +236 -0
  216. data/lib/roebe/classes/create_docbook_sgml_dtd_catalog.rb +113 -0
  217. data/lib/roebe/classes/create_file_skeleton/constants.rb +70 -0
  218. data/lib/roebe/classes/create_file_skeleton/create_file_skeleton.rb +470 -0
  219. data/lib/roebe/classes/create_file_skeleton/generate_c_string.rb +31 -0
  220. data/lib/roebe/classes/create_file_skeleton/generate_cpp_string.rb +33 -0
  221. data/lib/roebe/classes/create_file_skeleton/generate_ruby_string.rb +124 -0
  222. data/lib/roebe/classes/create_file_skeleton/reset.rb +56 -0
  223. data/lib/roebe/classes/create_file_skeleton/run.rb +23 -0
  224. data/lib/roebe/classes/create_firefox_extension.rb +186 -0
  225. data/lib/roebe/classes/create_iso.rb +203 -0
  226. data/lib/roebe/classes/create_iso_for_games.rb +308 -0
  227. data/lib/roebe/classes/create_jar_archive.rb +58 -0
  228. data/lib/roebe/classes/create_my_directories.rb +216 -0
  229. data/lib/roebe/classes/create_ruby_directory_layout.rb +125 -0
  230. data/lib/roebe/classes/create_zip.rb +112 -0
  231. data/lib/roebe/classes/css_analyzer.rb +125 -0
  232. data/lib/roebe/classes/current_monitor_resolution.rb +107 -0
  233. data/lib/roebe/classes/custom_table/custom_table.rb +198 -0
  234. data/lib/roebe/classes/daemonize.rb +131 -0
  235. data/lib/roebe/classes/date_sort.rb +149 -0
  236. data/lib/roebe/classes/day_calendar.rb +153 -0
  237. data/lib/roebe/classes/dbus.rb +132 -0
  238. data/lib/roebe/classes/delete_all_directories.rb +100 -0
  239. data/lib/roebe/classes/delete_empty_directories.rb +96 -0
  240. data/lib/roebe/classes/delete_empty_files.rb +142 -0
  241. data/lib/roebe/classes/dhcpcd.rb +125 -0
  242. data/lib/roebe/classes/differences_between_two_directories.rb +140 -0
  243. data/lib/roebe/classes/disable.rb +138 -0
  244. data/lib/roebe/classes/display_gcc_version.rb +135 -0
  245. data/lib/roebe/classes/do_a_google_search.rb +67 -0
  246. data/lib/roebe/classes/do_install.rb +233 -0
  247. data/lib/roebe/classes/done.rb +158 -0
  248. data/lib/roebe/classes/done_and_open.rb +183 -0
  249. data/lib/roebe/classes/doskey_generator.rb +198 -0
  250. data/lib/roebe/classes/downcase_directories.rb +83 -0
  251. data/lib/roebe/classes/downcase_extension.rb +136 -0
  252. data/lib/roebe/classes/download_from_this_url.rb +266 -0
  253. data/lib/roebe/classes/email.rb +635 -0
  254. data/lib/roebe/classes/enable.rb +59 -0
  255. data/lib/roebe/classes/enable_autologin.rb +378 -0
  256. data/lib/roebe/classes/english_to_german.rb +128 -0
  257. data/lib/roebe/classes/ethernet.rb +171 -0
  258. data/lib/roebe/classes/euclidian_distance.rb +148 -0
  259. data/lib/roebe/classes/extract_gem_file.rb +208 -0
  260. data/lib/roebe/classes/feet_to_centimetres.rb +106 -0
  261. data/lib/roebe/classes/fetch_random_line.rb +66 -0
  262. data/lib/roebe/classes/fetch_url.rb +77 -0
  263. data/lib/roebe/classes/file_parser.rb +126 -0
  264. data/lib/roebe/classes/file_renamer.rb +229 -0
  265. data/lib/roebe/classes/files_that_could_become_apps.rb +95 -0
  266. data/lib/roebe/classes/filter_apache_log.rb +90 -0
  267. data/lib/roebe/classes/find_all_files_encoded_in_iso.rb +99 -0
  268. data/lib/roebe/classes/find_all_files_with_a_question_mark.rb +148 -0
  269. data/lib/roebe/classes/find_duplicate_entries_in_alias_file.rb +168 -0
  270. data/lib/roebe/classes/find_empty_files.rb +88 -0
  271. data/lib/roebe/classes/find_expanded_alias.rb +267 -0
  272. data/lib/roebe/classes/find_out_version_of.rb +193 -0
  273. data/lib/roebe/classes/find_static_libraries.rb +220 -0
  274. data/lib/roebe/classes/fix_mcookie.rb +84 -0
  275. data/lib/roebe/classes/fix_timezone.rb +95 -0
  276. data/lib/roebe/classes/fluxbox/README.md +3 -0
  277. data/lib/roebe/classes/fluxbox/autogenerate_fluxbox_files.rb +20 -0
  278. data/lib/roebe/classes/fluxbox/generate_fluxbox_apps_file.rb +155 -0
  279. data/lib/roebe/classes/fluxbox/generate_fluxbox_keys_file.rb +110 -0
  280. data/lib/roebe/classes/fluxbox/install_fluxbox_style.rb +85 -0
  281. data/lib/roebe/classes/font_installer.rb +119 -0
  282. data/lib/roebe/classes/fotos_f/303/274r_ingrid.rb +50 -0
  283. data/lib/roebe/classes/fragment_maker.rb +141 -0
  284. data/lib/roebe/classes/general_overviewer.rb +258 -0
  285. data/lib/roebe/classes/generate_alsa_conf.rb +108 -0
  286. data/lib/roebe/classes/generate_etc_resolv_conf_file.rb +106 -0
  287. data/lib/roebe/classes/generate_fstab_file/generate_fstab_file.rb +255 -0
  288. data/lib/roebe/classes/generate_gemspec/constants.rb +58 -0
  289. data/lib/roebe/classes/generate_gemspec/generate_gemspec.rb +195 -0
  290. data/lib/roebe/classes/generate_locales.rb +114 -0
  291. data/lib/roebe/classes/generate_ls_colors.rb +92 -0
  292. data/lib/roebe/classes/generate_master_shell_script.rb +254 -0
  293. data/lib/roebe/classes/generate_nsswitch_conf.rb +110 -0
  294. data/lib/roebe/classes/generate_overview_of_the_locally_available_books.rb +178 -0
  295. data/lib/roebe/classes/generate_protocols.rb +253 -0
  296. data/lib/roebe/classes/generate_rewrite_rules.rb +266 -0
  297. data/lib/roebe/classes/generate_robots_txt_file.rb +104 -0
  298. data/lib/roebe/classes/generate_rtf_file.rb +132 -0
  299. data/lib/roebe/classes/generate_system_values.rb +164 -0
  300. data/lib/roebe/classes/generate_unit_files/README.md +9 -0
  301. data/lib/roebe/classes/generate_unit_files/generate_unit_files.rb +192 -0
  302. data/lib/roebe/classes/generate_xauthority_file.rb +119 -0
  303. data/lib/roebe/classes/generate_xorg_conf/constants.rb +145 -0
  304. data/lib/roebe/classes/generate_xorg_conf/generate_xorg_conf.rb +767 -0
  305. data/lib/roebe/classes/get_dependencies.rb +175 -0
  306. data/lib/roebe/classes/good_night.rb +72 -0
  307. data/lib/roebe/classes/google_url_cleaner.rb +147 -0
  308. data/lib/roebe/classes/grant_superuser_rights.rb +146 -0
  309. data/lib/roebe/classes/grub/grub_config_generator.rb +184 -0
  310. data/lib/roebe/classes/grub_appender.rb +246 -0
  311. data/lib/roebe/classes/gzip_this_file.rb +86 -0
  312. data/lib/roebe/classes/hello_world.rb +60 -0
  313. data/lib/roebe/classes/hex_to_rgb.rb +89 -0
  314. data/lib/roebe/classes/holiday.rb +99 -0
  315. data/lib/roebe/classes/hosts_appender.rb +171 -0
  316. data/lib/roebe/classes/html_form_fetcher.rb +101 -0
  317. data/lib/roebe/classes/icewm/README.md +3 -0
  318. data/lib/roebe/classes/icewm/icewm_keys_generator.rb +162 -0
  319. data/lib/roebe/classes/identical.rb +174 -0
  320. data/lib/roebe/classes/imdb.rb +86 -0
  321. data/lib/roebe/classes/in.rb +156 -0
  322. data/lib/roebe/classes/increment_application_version.rb +291 -0
  323. data/lib/roebe/classes/inhalt.rb +166 -0
  324. data/lib/roebe/classes/inputrc/constants.rb +37 -0
  325. data/lib/roebe/classes/inputrc/inputrc.rb +567 -0
  326. data/lib/roebe/classes/inputrc/misc.rb +11 -0
  327. data/lib/roebe/classes/install_debian_file.rb +172 -0
  328. data/lib/roebe/classes/install_flash/install_flash.rb +179 -0
  329. data/lib/roebe/classes/install_libreoffice/constants.rb +39 -0
  330. data/lib/roebe/classes/install_libreoffice/install_libreoffice.rb +232 -0
  331. data/lib/roebe/classes/install_my_gems.rb +100 -0
  332. data/lib/roebe/classes/install_openssl_certificates.rb +238 -0
  333. data/lib/roebe/classes/install_ruby_project.rb +180 -0
  334. data/lib/roebe/classes/interactive_file_creator.rb +229 -0
  335. data/lib/roebe/classes/into.rb +95 -0
  336. data/lib/roebe/classes/ipaste.rb +88 -0
  337. data/lib/roebe/classes/iso_to_usb.rb +239 -0
  338. data/lib/roebe/classes/java_header.rb +112 -0
  339. data/lib/roebe/classes/kde/install_this_konsole_theme.rb +87 -0
  340. data/lib/roebe/classes/kde/kde_konsole/constants.rb +54 -0
  341. data/lib/roebe/classes/kde/kde_konsole/help.rb +33 -0
  342. data/lib/roebe/classes/kde/kde_konsole/initialize.rb +40 -0
  343. data/lib/roebe/classes/kde/kde_konsole/kde_konsole.rb +37 -0
  344. data/lib/roebe/classes/kde/kde_konsole/menu.rb +200 -0
  345. data/lib/roebe/classes/kde/kde_konsole/misc.rb +333 -0
  346. data/lib/roebe/classes/kde/kde_konsole/reset.rb +42 -0
  347. data/lib/roebe/classes/kde/kde_konsole/run.rb +22 -0
  348. data/lib/roebe/classes/kde/kde_konsole_send_command.rb +95 -0
  349. data/lib/roebe/classes/kde/kde_servicemenus.rb +83 -0
  350. data/lib/roebe/classes/kde/konsole_new_tab.rb +124 -0
  351. data/lib/roebe/classes/kde/restore_kde.rb +103 -0
  352. data/lib/roebe/classes/kde/return_pid_of_kde_konsole.rb +30 -0
  353. data/lib/roebe/classes/kde/split_kde_konsole_tab_vertically.rb +28 -0
  354. data/lib/roebe/classes/key_value_parser.rb +145 -0
  355. data/lib/roebe/classes/keys_generator/constants.rb +72 -0
  356. data/lib/roebe/classes/keys_generator/keys_generator.rb +328 -0
  357. data/lib/roebe/classes/kill_firefox.rb +126 -0
  358. data/lib/roebe/classes/kill_palemoon.rb +132 -0
  359. data/lib/roebe/classes/last_called_logger/last_called_logger.rb +67 -0
  360. data/lib/roebe/classes/last_line.rb +69 -0
  361. data/lib/roebe/classes/left_hyphen_in_this_file.rb +74 -0
  362. data/lib/roebe/classes/level_subdirectories.rb +122 -0
  363. data/lib/roebe/classes/lighttpd_config_generator.rb +105 -0
  364. data/lib/roebe/classes/lilo_config_generator.rb +403 -0
  365. data/lib/roebe/classes/lotto/handle_quicktipps.rb +96 -0
  366. data/lib/roebe/classes/lotto/lotto_quicktip.rb +214 -0
  367. data/lib/roebe/classes/make_cookbooks_gem.rb +109 -0
  368. data/lib/roebe/classes/make_gem.rb +277 -0
  369. data/lib/roebe/classes/mark_this_directory.rb +76 -0
  370. data/lib/roebe/classes/married_with_children.rb +110 -0
  371. data/lib/roebe/classes/mate_terminal/rename_mate_terminal.rb +56 -0
  372. data/lib/roebe/classes/mbl.rb +228 -0
  373. data/lib/roebe/classes/meal_maker.rb +88 -0
  374. data/lib/roebe/classes/menu_generator/append_to.rb +35 -0
  375. data/lib/roebe/classes/menu_generator/constants.rb +80 -0
  376. data/lib/roebe/classes/menu_generator/menu_generator.rb +623 -0
  377. data/lib/roebe/classes/misc/README.md +2 -0
  378. data/lib/roebe/classes/misc/anteile.rb +91 -0
  379. data/lib/roebe/classes/modify_shebang_header/constants.rb +77 -0
  380. data/lib/roebe/classes/modify_shebang_header/menu.rb +36 -0
  381. data/lib/roebe/classes/modify_shebang_header/misc.rb +11 -0
  382. data/lib/roebe/classes/modify_shebang_header/modify_shebang_header.rb +313 -0
  383. data/lib/roebe/classes/modright.rb +110 -0
  384. data/lib/roebe/classes/monthly_activity_on_rubygems.rb +220 -0
  385. data/lib/roebe/classes/moodle.rb +182 -0
  386. data/lib/roebe/classes/mount_dvd.rb +92 -0
  387. data/lib/roebe/classes/mount_iso_file.rb +108 -0
  388. data/lib/roebe/classes/move_content_of_this_directory_to_that_directory_unless_target_already_exists.rb +119 -0
  389. data/lib/roebe/classes/move_file.rb +234 -0
  390. data/lib/roebe/classes/move_mouse.rb +75 -0
  391. data/lib/roebe/classes/mrxvt.rb +140 -0
  392. data/lib/roebe/classes/mrxvt_options.rb +295 -0
  393. data/lib/roebe/classes/my_default_webrick_server.rb +125 -0
  394. data/lib/roebe/classes/my_ip.rb +69 -0
  395. data/lib/roebe/classes/n_directories.rb +98 -0
  396. data/lib/roebe/classes/n_downloads_on_rubygems_org.rb +246 -0
  397. data/lib/roebe/classes/n_gems_exist_in_total.rb +136 -0
  398. data/lib/roebe/classes/n_symlinks.rb +137 -0
  399. data/lib/roebe/classes/nano_config.rb +176 -0
  400. data/lib/roebe/classes/nibble_converter.rb +172 -0
  401. data/lib/roebe/classes/non_symlinks.rb +115 -0
  402. data/lib/roebe/classes/number_to_english.rb +167 -0
  403. data/lib/roebe/classes/nutrition.rb +69 -0
  404. data/lib/roebe/classes/nvidia.rb +83 -0
  405. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/constants.rb +38 -0
  406. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/help.rb +27 -0
  407. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/obtain_audio_recordings_from_voice_recorder.rb +610 -0
  408. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/run.rb +22 -0
  409. data/lib/roebe/classes/on_screen_display.rb +317 -0
  410. data/lib/roebe/classes/one_line_passwords.rb +199 -0
  411. data/lib/roebe/classes/open_pdf.rb +293 -0
  412. data/lib/roebe/classes/open_random_book.rb +124 -0
  413. data/lib/roebe/classes/output_random_line.rb +93 -0
  414. data/lib/roebe/classes/output_text_then_assign_to_the_xorg_buffer.rb +114 -0
  415. data/lib/roebe/classes/pad_via_quotes.rb +63 -0
  416. data/lib/roebe/classes/parse_apache_log/constants.rb +55 -0
  417. data/lib/roebe/classes/parse_apache_log/parse_apache_log.rb +329 -0
  418. data/lib/roebe/classes/pascalsches_dreieck.rb +108 -0
  419. data/lib/roebe/classes/passwords.rb +489 -0
  420. data/lib/roebe/classes/path_generator/constants.rb +68 -0
  421. data/lib/roebe/classes/path_generator/misc.rb +332 -0
  422. data/lib/roebe/classes/path_generator/path_generator.rb +31 -0
  423. data/lib/roebe/classes/path_generator/reset.rb +33 -0
  424. data/lib/roebe/classes/percentage_counter.rb +84 -0
  425. data/lib/roebe/classes/permission_ascii_format.rb +228 -0
  426. data/lib/roebe/classes/php_to_ruby.rb +184 -0
  427. data/lib/roebe/classes/pound_to_kg_converter.rb +86 -0
  428. data/lib/roebe/classes/prepend_this.rb +256 -0
  429. data/lib/roebe/classes/prepend_this_string_to_every_line_of_this_file.rb +195 -0
  430. data/lib/roebe/classes/pristine_gems.rb +71 -0
  431. data/lib/roebe/classes/proper_english.rb +115 -0
  432. data/lib/roebe/classes/publish_gem.rb +245 -0
  433. data/lib/roebe/classes/pull_together.rb +126 -0
  434. data/lib/roebe/classes/purge_files_or_directories.rb +66 -0
  435. data/lib/roebe/classes/purge_gmon_out_files.rb +102 -0
  436. data/lib/roebe/classes/purge_ordoc_directories.rb +66 -0
  437. data/lib/roebe/classes/put_all_gems_into_this_project.rb +319 -0
  438. data/lib/roebe/classes/qemu/README.md +2 -0
  439. data/lib/roebe/classes/qemu/qemu.rb +72 -0
  440. data/lib/roebe/classes/quiz.rb +300 -0
  441. data/lib/roebe/classes/ram.rb +160 -0
  442. data/lib/roebe/classes/random_background.rb +208 -0
  443. data/lib/roebe/classes/random_open.rb +110 -0
  444. data/lib/roebe/classes/rbashrc.rb +160 -0
  445. data/lib/roebe/classes/rdate.rb +259 -0
  446. data/lib/roebe/classes/readme_generator/constants.rb +21 -0
  447. data/lib/roebe/classes/readme_generator/initialize.rb +38 -0
  448. data/lib/roebe/classes/readme_generator/misc.rb +515 -0
  449. data/lib/roebe/classes/readme_generator/readme_generator.rb +11 -0
  450. data/lib/roebe/classes/readme_generator/reset.rb +28 -0
  451. data/lib/roebe/classes/readme_generator/run.rb +20 -0
  452. data/lib/roebe/classes/remote_gems.rb +154 -0
  453. data/lib/roebe/classes/remove_bad_fluxbox_styles.rb +108 -0
  454. data/lib/roebe/classes/remove_comments/autoinclude.rb +3 -0
  455. data/lib/roebe/classes/remove_comments/constants.rb +22 -0
  456. data/lib/roebe/classes/remove_comments/remove_comments.rb +214 -0
  457. data/lib/roebe/classes/remove_directory.rb +210 -0
  458. data/lib/roebe/classes/remove_extension.rb +95 -0
  459. data/lib/roebe/classes/remove_file_extension.rb +111 -0
  460. data/lib/roebe/classes/remove_gems.rb +182 -0
  461. data/lib/roebe/classes/remove_lighty_logs.rb +61 -0
  462. data/lib/roebe/classes/remove_line.rb +172 -0
  463. data/lib/roebe/classes/remove_localhost.rb +312 -0
  464. data/lib/roebe/classes/remove_missing.rb +114 -0
  465. data/lib/roebe/classes/remove_newlines.rb +116 -0
  466. data/lib/roebe/classes/remove_this_substring_from_all_files.rb +70 -0
  467. data/lib/roebe/classes/replace_global_variables_in_this_file.rb +164 -0
  468. data/lib/roebe/classes/replace_space_with_underscore/constants.rb +38 -0
  469. data/lib/roebe/classes/replace_space_with_underscore/help.rb +37 -0
  470. data/lib/roebe/classes/replace_space_with_underscore/initialize.rb +30 -0
  471. data/lib/roebe/classes/replace_space_with_underscore/menu.rb +136 -0
  472. data/lib/roebe/classes/replace_space_with_underscore/replace_space_with_underscore.rb +402 -0
  473. data/lib/roebe/classes/replace_space_with_underscore/reset.rb +75 -0
  474. data/lib/roebe/classes/replace_what_with.rb +118 -0
  475. data/lib/roebe/classes/report_same_named_files.rb +82 -0
  476. data/lib/roebe/classes/require_everything.rb +155 -0
  477. data/lib/roebe/classes/return_aliases/return_n_aliases.rb +161 -0
  478. data/lib/roebe/classes/return_aliases/return_ten_aliases.rb +78 -0
  479. data/lib/roebe/classes/return_aliases/return_twenty_aliases.rb +79 -0
  480. data/lib/roebe/classes/return_random_image.rb +83 -0
  481. data/lib/roebe/classes/ruby_cat.rb +139 -0
  482. data/lib/roebe/classes/ruby_header.rb +122 -0
  483. data/lib/roebe/classes/ruby_main.rb +133 -0
  484. data/lib/roebe/classes/ruby_seq.rb +67 -0
  485. data/lib/roebe/classes/ruby_use_config_file.rb +104 -0
  486. data/lib/roebe/classes/ruby_version_switcher.rb +106 -0
  487. data/lib/roebe/classes/run/menu.rb +60 -0
  488. data/lib/roebe/classes/run/run.rb +679 -0
  489. data/lib/roebe/classes/rxinitrc/constants.rb +101 -0
  490. data/lib/roebe/classes/rxinitrc/help.rb +40 -0
  491. data/lib/roebe/classes/rxinitrc/run.rb +25 -0
  492. data/lib/roebe/classes/rxinitrc/rxinitrc.rb +534 -0
  493. data/lib/roebe/classes/scan_for_http_links.rb +110 -0
  494. data/lib/roebe/classes/schlafe.rb +101 -0
  495. data/lib/roebe/classes/serve_local_page.rb +280 -0
  496. data/lib/roebe/classes/set_aliases.rb +364 -0
  497. data/lib/roebe/classes/set_background.rb +113 -0
  498. data/lib/roebe/classes/set_chained.rb +79 -0
  499. data/lib/roebe/classes/set_normal_alias_to.rb +414 -0
  500. data/lib/roebe/classes/setup_chrooted_environment.rb +402 -0
  501. data/lib/roebe/classes/shells/generate_etc_shell_file.rb +115 -0
  502. data/lib/roebe/classes/show_appointments.rb +195 -0
  503. data/lib/roebe/classes/show_available_fonts.rb +141 -0
  504. data/lib/roebe/classes/show_available_users.rb +319 -0
  505. data/lib/roebe/classes/show_kernel_modules.rb +88 -0
  506. data/lib/roebe/classes/show_non_symlinks.rb +98 -0
  507. data/lib/roebe/classes/show_only_files.rb +90 -0
  508. data/lib/roebe/classes/show_prime_numbers.rb +72 -0
  509. data/lib/roebe/classes/show_sigint.rb +50 -0
  510. data/lib/roebe/classes/show_ten_aliases.rb +367 -0
  511. data/lib/roebe/classes/show_twenty_aliases.rb +243 -0
  512. data/lib/roebe/classes/simple_extractor.rb +118 -0
  513. data/lib/roebe/classes/size_of.rb +234 -0
  514. data/lib/roebe/classes/size_of_states.rb +170 -0
  515. data/lib/roebe/classes/skel_maker/constants.rb +65 -0
  516. data/lib/roebe/classes/skel_maker/skel_maker.rb +230 -0
  517. data/lib/roebe/classes/slogans.rb +290 -0
  518. data/lib/roebe/classes/slow_load.rb +65 -0
  519. data/lib/roebe/classes/sorted_output.rb +84 -0
  520. data/lib/roebe/classes/sourcerank.rb +76 -0
  521. data/lib/roebe/classes/std_renamer.rb +285 -0
  522. data/lib/roebe/classes/string_colour_parser.rb +165 -0
  523. data/lib/roebe/classes/sum_of_all_numbers.rb +153 -0
  524. data/lib/roebe/classes/supermerger.rb +121 -0
  525. data/lib/roebe/classes/symlink_all_directories_in_this_directory.rb +101 -0
  526. data/lib/roebe/classes/symlink_directories_from_that_directory_to_the_current_directory.rb +178 -0
  527. data/lib/roebe/classes/symlink_directory.rb +104 -0
  528. data/lib/roebe/classes/symlink_everything_from_that_directory_to_this_directory.rb +196 -0
  529. data/lib/roebe/classes/symlink_files_from_that_directory_to_the_current_directory/symlink_files_from_that_directory_to_the_current_directory.rb +256 -0
  530. data/lib/roebe/classes/syntax_checker.rb +191 -0
  531. data/lib/roebe/classes/system_checker.rb +646 -0
  532. data/lib/roebe/classes/take_screenshot.rb +396 -0
  533. data/lib/roebe/classes/tales_from_the_crypt.rb +519 -0
  534. data/lib/roebe/classes/terminal.rb +62 -0
  535. data/lib/roebe/classes/terminal_ps1.rb +128 -0
  536. data/lib/roebe/classes/test_for_psych.rb +73 -0
  537. data/lib/roebe/classes/test_openssl.rb +125 -0
  538. data/lib/roebe/classes/test_yaml.rb +70 -0
  539. data/lib/roebe/classes/threshold_splitter.rb +96 -0
  540. data/lib/roebe/classes/tic_tac_toe.rb +326 -0
  541. data/lib/roebe/classes/time/current_time_in_singapore.rb +121 -0
  542. data/lib/roebe/classes/time/display_weekdays.rb +82 -0
  543. data/lib/roebe/classes/time/query_world_time.rb +149 -0
  544. data/lib/roebe/classes/time/set_hardware_clock.rb +158 -0
  545. data/lib/roebe/classes/time/trivial_time_parser.rb +162 -0
  546. data/lib/roebe/classes/to_binary.rb +78 -0
  547. data/lib/roebe/classes/to_buy.rb +223 -0
  548. data/lib/roebe/classes/to_next.rb +139 -0
  549. data/lib/roebe/classes/to_squashfs.rb +73 -0
  550. data/lib/roebe/classes/to_tar_bz2.rb +62 -0
  551. data/lib/roebe/classes/to_utf.rb +87 -0
  552. data/lib/roebe/classes/today.rb +67 -0
  553. data/lib/roebe/classes/todo_overview.rb +87 -0
  554. data/lib/roebe/classes/top_ten_aliases.rb +104 -0
  555. data/lib/roebe/classes/total_pages_in_finished_books.rb +76 -0
  556. data/lib/roebe/classes/translate.rb +295 -0
  557. data/lib/roebe/classes/traverse_install.rb +242 -0
  558. data/lib/roebe/classes/treeview.rb +180 -0
  559. data/lib/roebe/classes/turn_ruby_file_into_gem.rb +195 -0
  560. data/lib/roebe/classes/twentyfour_hours_notation.rb +172 -0
  561. data/lib/roebe/classes/umlaut_converter.rb +137 -0
  562. data/lib/roebe/classes/undone.rb +126 -0
  563. data/lib/roebe/classes/unicode_snowman.rb +120 -0
  564. data/lib/roebe/classes/unified_padding.rb +144 -0
  565. data/lib/roebe/classes/unrar.rb +95 -0
  566. data/lib/roebe/classes/upcaser.rb +145 -0
  567. data/lib/roebe/classes/update.rb +333 -0
  568. data/lib/roebe/classes/update_static_html_pages_in_the_directory_containing_my_fotos.rb +73 -0
  569. data/lib/roebe/classes/upload_to_imgur.rb +137 -0
  570. data/lib/roebe/classes/usage.rb +158 -0
  571. data/lib/roebe/classes/usb/automount_usb.rb +82 -0
  572. data/lib/roebe/classes/usb/create_bootable_usb.rb +111 -0
  573. data/lib/roebe/classes/usb/usb_devices.rb +188 -0
  574. data/lib/roebe/classes/use_jruby.rb +68 -0
  575. data/lib/roebe/classes/vte.rb +110 -0
  576. data/lib/roebe/classes/wallpaper.rb +177 -0
  577. data/lib/roebe/classes/wikipedia.rb +99 -0
  578. data/lib/roebe/classes/wlan/constants.rb +72 -0
  579. data/lib/roebe/classes/wlan/eduroam/eduroam.rb +130 -0
  580. data/lib/roebe/classes/wlan/essid.rb +204 -0
  581. data/lib/roebe/classes/wlan/help.rb +101 -0
  582. data/lib/roebe/classes/wlan/initialize.rb +48 -0
  583. data/lib/roebe/classes/wlan/interactive.rb +52 -0
  584. data/lib/roebe/classes/wlan/menu.rb +336 -0
  585. data/lib/roebe/classes/wlan/misc.rb +330 -0
  586. data/lib/roebe/classes/wlan/reset.rb +38 -0
  587. data/lib/roebe/classes/wlan/run.rb +25 -0
  588. data/lib/roebe/classes/wlan/scan.rb +61 -0
  589. data/lib/roebe/classes/wlan/show_and_report.rb +73 -0
  590. data/lib/roebe/classes/wlan/wlan.rb +37 -0
  591. data/lib/roebe/classes/wochentag_anzeiger.rb +219 -0
  592. data/lib/roebe/classes/word_wrap.rb +45 -0
  593. data/lib/roebe/classes/xfce/README.md +2 -0
  594. data/lib/roebe/classes/xfce/set_xfce_wallpaper.rb +91 -0
  595. data/lib/roebe/classes/youtube_downloader.rb +157 -0
  596. data/lib/roebe/classes/zenity.rb +319 -0
  597. data/lib/roebe/classes/zoll.rb +88 -0
  598. data/lib/roebe/colours/colours.rb +44 -0
  599. data/lib/roebe/colours/determine_whether_colours_will_be_used.rb +71 -0
  600. data/lib/roebe/colours/ecomment.rb +36 -0
  601. data/lib/roebe/colours/html_colours.rb +176 -0
  602. data/lib/roebe/colours/permanently_disable_colours.rb +23 -0
  603. data/lib/roebe/colours/sdir.rb +34 -0
  604. data/lib/roebe/colours/sfancy.rb +26 -0
  605. data/lib/roebe/colours/sfile.rb +24 -0
  606. data/lib/roebe/colours/simp.rb +24 -0
  607. data/lib/roebe/colours/swarn.rb +24 -0
  608. data/lib/roebe/colours/use_colours.rb +17 -0
  609. data/lib/roebe/commandline/help.rb +122 -0
  610. data/lib/roebe/commandline/menu.rb +722 -0
  611. data/lib/roebe/commandline/misc.rb +278 -0
  612. data/lib/roebe/commandline/parse_commandline.rb +55 -0
  613. data/lib/roebe/configuration/autoinclude.rb +7 -0
  614. data/lib/roebe/configuration/class/configuration.rb +967 -0
  615. data/lib/roebe/configuration/module.rb +35 -0
  616. data/lib/roebe/constants/archive_types.rb +26 -0
  617. data/lib/roebe/constants/array_install_these_gem_projects.rb +114 -0
  618. data/lib/roebe/constants/constants.rb +97 -0
  619. data/lib/roebe/constants/directory_constants.rb +51 -0
  620. data/lib/roebe/constants/file_constants.rb +105 -0
  621. data/lib/roebe/constants/home_of_the_user_called_x.rb +14 -0
  622. data/lib/roebe/constants/misc.rb +124 -0
  623. data/lib/roebe/constants/newline.rb +16 -0
  624. data/lib/roebe/constants/roebe.rb +72 -0
  625. data/lib/roebe/constants/www.rb +32 -0
  626. data/lib/roebe/core/README.md +6 -0
  627. data/lib/roebe/core/array.rb +347 -0
  628. data/lib/roebe/core/dir.rb +124 -0
  629. data/lib/roebe/core/enumerable.rb +25 -0
  630. data/lib/roebe/core/file.rb +140 -0
  631. data/lib/roebe/core/fixnum.rb +150 -0
  632. data/lib/roebe/core/float.rb +86 -0
  633. data/lib/roebe/core/hash.rb +48 -0
  634. data/lib/roebe/core/integer.rb +41 -0
  635. data/lib/roebe/core/kernel.rb +82 -0
  636. data/lib/roebe/core/math.rb +61 -0
  637. data/lib/roebe/core/module.rb +91 -0
  638. data/lib/roebe/core/numeric.rb +64 -0
  639. data/lib/roebe/core/object.rb +53 -0
  640. data/lib/roebe/core/proc.rb +10 -0
  641. data/lib/roebe/core/process.rb +27 -0
  642. data/lib/roebe/core/range.rb +18 -0
  643. data/lib/roebe/core/string.rb +651 -0
  644. data/lib/roebe/core/struct.rb +22 -0
  645. data/lib/roebe/core/windows.rb +758 -0
  646. data/lib/roebe/css/project.css +38 -0
  647. data/lib/roebe/custom_methods/README.md +8 -0
  648. data/lib/roebe/custom_methods/constants.rb +53 -0
  649. data/lib/roebe/custom_methods/custom_methods.rb +5296 -0
  650. data/lib/roebe/documentation/README.md +2 -0
  651. data/lib/roebe/documentation/abbreviation.rb +48 -0
  652. data/lib/roebe/documentation/activerecord.rb +97 -0
  653. data/lib/roebe/documentation/ansi.rb +32 -0
  654. data/lib/roebe/documentation/app.rb +273 -0
  655. data/lib/roebe/documentation/argf.rb +50 -0
  656. data/lib/roebe/documentation/argv.rb +101 -0
  657. data/lib/roebe/documentation/array.rb +1089 -0
  658. data/lib/roebe/documentation/audio.rb +181 -0
  659. data/lib/roebe/documentation/base64.rb +27 -0
  660. data/lib/roebe/documentation/basic_object.rb +37 -0
  661. data/lib/roebe/documentation/benchmark.rb +39 -0
  662. data/lib/roebe/documentation/bigdecimal.rb +30 -0
  663. data/lib/roebe/documentation/binding.rb +51 -0
  664. data/lib/roebe/documentation/blocks.rb +43 -0
  665. data/lib/roebe/documentation/bundler.rb +40 -0
  666. data/lib/roebe/documentation/byebug.rb +34 -0
  667. data/lib/roebe/documentation/camping.rb +36 -0
  668. data/lib/roebe/documentation/case.rb +38 -0
  669. data/lib/roebe/documentation/caxlsx.rb +56 -0
  670. data/lib/roebe/documentation/cgi.rb +117 -0
  671. data/lib/roebe/documentation/chunkypng.rb +32 -0
  672. data/lib/roebe/documentation/class.rb +60 -0
  673. data/lib/roebe/documentation/classifier.rb +26 -0
  674. data/lib/roebe/documentation/closure.rb +216 -0
  675. data/lib/roebe/documentation/coderay.rb +96 -0
  676. data/lib/roebe/documentation/colours.rb +70 -0
  677. data/lib/roebe/documentation/comparable.rb +24 -0
  678. data/lib/roebe/documentation/conditionals.rb +69 -0
  679. data/lib/roebe/documentation/constants.rb +92 -0
  680. data/lib/roebe/documentation/conversions.rb +128 -0
  681. data/lib/roebe/documentation/css/default.css +181 -0
  682. data/lib/roebe/documentation/csv.rb +63 -0
  683. data/lib/roebe/documentation/daemons.rb +109 -0
  684. data/lib/roebe/documentation/dir.rb +95 -0
  685. data/lib/roebe/documentation/dl.rb +124 -0
  686. data/lib/roebe/documentation/documentation.rb +745 -0
  687. data/lib/roebe/documentation/drb.rb +123 -0
  688. data/lib/roebe/documentation/dsl.rb +45 -0
  689. data/lib/roebe/documentation/encoding.rb +157 -0
  690. data/lib/roebe/documentation/english.rb +28 -0
  691. data/lib/roebe/documentation/enumerable.rb +165 -0
  692. data/lib/roebe/documentation/enumerator.rb +33 -0
  693. data/lib/roebe/documentation/env.rb +30 -0
  694. data/lib/roebe/documentation/erb.rb +44 -0
  695. data/lib/roebe/documentation/errno.rb +41 -0
  696. data/lib/roebe/documentation/errorcodes.rb +42 -0
  697. data/lib/roebe/documentation/erubis.rb +134 -0
  698. data/lib/roebe/documentation/etc.rb +95 -0
  699. data/lib/roebe/documentation/eval.rb +37 -0
  700. data/lib/roebe/documentation/exception.rb +212 -0
  701. data/lib/roebe/documentation/falseclass.rb +22 -0
  702. data/lib/roebe/documentation/ferret.rb +41 -0
  703. data/lib/roebe/documentation/ffi.rb +43 -0
  704. data/lib/roebe/documentation/fiber.rb +44 -0
  705. data/lib/roebe/documentation/fiddle.rb +40 -0
  706. data/lib/roebe/documentation/file.rb +366 -0
  707. data/lib/roebe/documentation/fileutils.rb +78 -0
  708. data/lib/roebe/documentation/fixnum.rb +70 -0
  709. data/lib/roebe/documentation/float.rb +34 -0
  710. data/lib/roebe/documentation/for.rb +29 -0
  711. data/lib/roebe/documentation/fork.rb +43 -0
  712. data/lib/roebe/documentation/fpm.rb +54 -0
  713. data/lib/roebe/documentation/ftp.rb +83 -0
  714. data/lib/roebe/documentation/gc.rb +79 -0
  715. data/lib/roebe/documentation/gems.rb +435 -0
  716. data/lib/roebe/documentation/getoptlong.rb +36 -0
  717. data/lib/roebe/documentation/gist.rb +45 -0
  718. data/lib/roebe/documentation/global_variables.rb +44 -0
  719. data/lib/roebe/documentation/gmail.rb +39 -0
  720. data/lib/roebe/documentation/gosu.rb +36 -0
  721. data/lib/roebe/documentation/graphviz.rb +231 -0
  722. data/lib/roebe/documentation/gruff.rb +88 -0
  723. data/lib/roebe/documentation/gtk.rb +7929 -0
  724. data/lib/roebe/documentation/hash.rb +437 -0
  725. data/lib/roebe/documentation/hexapdf.md +56 -0
  726. data/lib/roebe/documentation/highline.rb +36 -0
  727. data/lib/roebe/documentation/hooks.rb +74 -0
  728. data/lib/roebe/documentation/iconv.rb +34 -0
  729. data/lib/roebe/documentation/imap.rb +25 -0
  730. data/lib/roebe/documentation/include_in_ruby.rb +30 -0
  731. data/lib/roebe/documentation/inline.rb +51 -0
  732. data/lib/roebe/documentation/inotify.rb +123 -0
  733. data/lib/roebe/documentation/install.rb +124 -0
  734. data/lib/roebe/documentation/instiki.rb +80 -0
  735. data/lib/roebe/documentation/integer.rb +55 -0
  736. data/lib/roebe/documentation/io.rb +116 -0
  737. data/lib/roebe/documentation/io_console.rb +52 -0
  738. data/lib/roebe/documentation/irb.rb +184 -0
  739. data/lib/roebe/documentation/iterators.rb +178 -0
  740. data/lib/roebe/documentation/jruby.md +34 -0
  741. data/lib/roebe/documentation/json.rb +70 -0
  742. data/lib/roebe/documentation/kernel.rb +179 -0
  743. data/lib/roebe/documentation/keywords.rb +48 -0
  744. data/lib/roebe/documentation/kramdown.rb +53 -0
  745. data/lib/roebe/documentation/lexer.rb +37 -0
  746. data/lib/roebe/documentation/libarchive.rb +91 -0
  747. data/lib/roebe/documentation/libburn.rb +44 -0
  748. data/lib/roebe/documentation/libui.md +62 -0
  749. data/lib/roebe/documentation/mail.rb +69 -0
  750. data/lib/roebe/documentation/marshal.rb +146 -0
  751. data/lib/roebe/documentation/math.rb +448 -0
  752. data/lib/roebe/documentation/matrix.rb +31 -0
  753. data/lib/roebe/documentation/mdreverse.rb +30 -0
  754. data/lib/roebe/documentation/mechanize.rb +213 -0
  755. data/lib/roebe/documentation/memcached.rb +35 -0
  756. data/lib/roebe/documentation/method_source.rb +30 -0
  757. data/lib/roebe/documentation/methods.rb +204 -0
  758. data/lib/roebe/documentation/midilib.rb +47 -0
  759. data/lib/roebe/documentation/mime.rb +33 -0
  760. data/lib/roebe/documentation/minitest.rb +61 -0
  761. data/lib/roebe/documentation/misc.rb +1353 -0
  762. data/lib/roebe/documentation/mkmf.md +95 -0
  763. data/lib/roebe/documentation/mkmf.rb +58 -0
  764. data/lib/roebe/documentation/module.rb +68 -0
  765. data/lib/roebe/documentation/mongrel.rb +98 -0
  766. data/lib/roebe/documentation/mp3info.rb +104 -0
  767. data/lib/roebe/documentation/mpd.rb +35 -0
  768. data/lib/roebe/documentation/mrplot.rb +84 -0
  769. data/lib/roebe/documentation/mruby.rb +36 -0
  770. data/lib/roebe/documentation/mutex.rb +56 -0
  771. data/lib/roebe/documentation/ncurses.rb +230 -0
  772. data/lib/roebe/documentation/network.rb +92 -0
  773. data/lib/roebe/documentation/nilclass.rb +25 -0
  774. data/lib/roebe/documentation/nokogiri.rb +48 -0
  775. data/lib/roebe/documentation/object.rb +232 -0
  776. data/lib/roebe/documentation/objectspace.rb +42 -0
  777. data/lib/roebe/documentation/observable.rb +26 -0
  778. data/lib/roebe/documentation/open3.rb +38 -0
  779. data/lib/roebe/documentation/open_uri.rb +68 -0
  780. data/lib/roebe/documentation/openid.rb +50 -0
  781. data/lib/roebe/documentation/openssl.rb +60 -0
  782. data/lib/roebe/documentation/openstruct.rb +62 -0
  783. data/lib/roebe/documentation/optparser.rb +216 -0
  784. data/lib/roebe/documentation/padrino.rb +22 -0
  785. data/lib/roebe/documentation/passenger.rb +24 -0
  786. data/lib/roebe/documentation/pathname.rb +85 -0
  787. data/lib/roebe/documentation/pdf.rb +382 -0
  788. data/lib/roebe/documentation/performance_in_ruby.md +29 -0
  789. data/lib/roebe/documentation/pp.rb +61 -0
  790. data/lib/roebe/documentation/prawn.md +213 -0
  791. data/lib/roebe/documentation/precedence.rb +46 -0
  792. data/lib/roebe/documentation/prime.rb +27 -0
  793. data/lib/roebe/documentation/proc.rb +116 -0
  794. data/lib/roebe/documentation/process.rb +231 -0
  795. data/lib/roebe/documentation/profiling.rb +85 -0
  796. data/lib/roebe/documentation/pry.rb +66 -0
  797. data/lib/roebe/documentation/pstore.rb +40 -0
  798. data/lib/roebe/documentation/psych.rb +27 -0
  799. data/lib/roebe/documentation/pty.rb +27 -0
  800. data/lib/roebe/documentation/puma.md +22 -0
  801. data/lib/roebe/documentation/rack.md +139 -0
  802. data/lib/roebe/documentation/ractor.md +13 -0
  803. data/lib/roebe/documentation/ragel.rb +32 -0
  804. data/lib/roebe/documentation/rake.rb +131 -0
  805. data/lib/roebe/documentation/ramaze.rb +79 -0
  806. data/lib/roebe/documentation/random.rb +36 -0
  807. data/lib/roebe/documentation/range.rb +45 -0
  808. data/lib/roebe/documentation/rational.rb +25 -0
  809. data/lib/roebe/documentation/rbconfig.rb +57 -0
  810. data/lib/roebe/documentation/rbenv.rb +39 -0
  811. data/lib/roebe/documentation/rdoc.rb +77 -0
  812. data/lib/roebe/documentation/readline.rb +289 -0
  813. data/lib/roebe/documentation/redcloth.rb +27 -0
  814. data/lib/roebe/documentation/redmine.rb +23 -0
  815. data/lib/roebe/documentation/refinements.rb +39 -0
  816. data/lib/roebe/documentation/regex.rb +534 -0
  817. data/lib/roebe/documentation/require_in_ruby.rb +39 -0
  818. data/lib/roebe/documentation/ripper.rb +59 -0
  819. data/lib/roebe/documentation/rspec.rb +43 -0
  820. data/lib/roebe/documentation/rtf.rb +77 -0
  821. data/lib/roebe/documentation/rubocop.rb +80 -0
  822. data/lib/roebe/documentation/ruby_c.rb +1989 -0
  823. data/lib/roebe/documentation/ruby_coding_guidelines.rb +177 -0
  824. data/lib/roebe/documentation/ruby_links.rb +100 -0
  825. data/lib/roebe/documentation/rubyvm.rb +37 -0
  826. data/lib/roebe/documentation/ruport.rb +36 -0
  827. data/lib/roebe/documentation/rvm.rb +31 -0
  828. data/lib/roebe/documentation/sdl.rb +204 -0
  829. data/lib/roebe/documentation/sequel.md +0 -0
  830. data/lib/roebe/documentation/set.rb +39 -0
  831. data/lib/roebe/documentation/shellwords.rb +50 -0
  832. data/lib/roebe/documentation/shoes.rb +30 -0
  833. data/lib/roebe/documentation/signal.rb +34 -0
  834. data/lib/roebe/documentation/singleton.rb +58 -0
  835. data/lib/roebe/documentation/slogans.rb +22 -0
  836. data/lib/roebe/documentation/slop.rb +44 -0
  837. data/lib/roebe/documentation/sockets.rb +129 -0
  838. data/lib/roebe/documentation/splat.rb +28 -0
  839. data/lib/roebe/documentation/spreadsheet.rb +152 -0
  840. data/lib/roebe/documentation/sqlite.rb +104 -0
  841. data/lib/roebe/documentation/statistics.rb +0 -0
  842. data/lib/roebe/documentation/stderr.rb +21 -0
  843. data/lib/roebe/documentation/stdin.rb +41 -0
  844. data/lib/roebe/documentation/stdout.rb +30 -0
  845. data/lib/roebe/documentation/string.rb +749 -0
  846. data/lib/roebe/documentation/stringio.rb +60 -0
  847. data/lib/roebe/documentation/stringscanner.rb +42 -0
  848. data/lib/roebe/documentation/struct.rb +63 -0
  849. data/lib/roebe/documentation/subclassing.rb +39 -0
  850. data/lib/roebe/documentation/symbols.rb +51 -0
  851. data/lib/roebe/documentation/system.rb +25 -0
  852. data/lib/roebe/documentation/systemu.rb +33 -0
  853. data/lib/roebe/documentation/tcpsocket.rb +36 -0
  854. data/lib/roebe/documentation/telnet.rb +50 -0
  855. data/lib/roebe/documentation/tempfile.rb +50 -0
  856. data/lib/roebe/documentation/thor.rb +41 -0
  857. data/lib/roebe/documentation/thread.rb +123 -0
  858. data/lib/roebe/documentation/time.rb +334 -0
  859. data/lib/roebe/documentation/tk.rb +475 -0
  860. data/lib/roebe/documentation/tracepoint.rb +28 -0
  861. data/lib/roebe/documentation/tty.md +9 -0
  862. data/lib/roebe/documentation/tty_prompt.rb +36 -0
  863. data/lib/roebe/documentation/unittest.rb +25 -0
  864. data/lib/roebe/documentation/unprintable_characters.rb +35 -0
  865. data/lib/roebe/documentation/watir.md +30 -0
  866. data/lib/roebe/documentation/webrick.md +194 -0
  867. data/lib/roebe/documentation/webrick.rb +151 -0
  868. data/lib/roebe/documentation/whois.rb +58 -0
  869. data/lib/roebe/documentation/windows.rb +329 -0
  870. data/lib/roebe/documentation/writeexcel.rb +61 -0
  871. data/lib/roebe/documentation/xml.rb +223 -0
  872. data/lib/roebe/documentation/xosd.rb +42 -0
  873. data/lib/roebe/documentation/yaml.rb +393 -0
  874. data/lib/roebe/documentation/yard.rb +69 -0
  875. data/lib/roebe/documentation/zip.rb +84 -0
  876. data/lib/roebe/documentation/zlib.rb +115 -0
  877. data/lib/roebe/dosbox/README.md +5 -0
  878. data/lib/roebe/dosbox/autoexec.conf +114 -0
  879. data/lib/roebe/dosbox/bios.conf +20 -0
  880. data/lib/roebe/dosbox/cpu.conf +42 -0
  881. data/lib/roebe/dosbox/cycles.conf +41 -0
  882. data/lib/roebe/dosbox/dos.conf +55 -0
  883. data/lib/roebe/dosbox/dosbox.conf +34 -0
  884. data/lib/roebe/dosbox/games.conf +37 -0
  885. data/lib/roebe/dosbox/generate_dosbox_config.rb +150 -0
  886. data/lib/roebe/dosbox/gus.conf +26 -0
  887. data/lib/roebe/dosbox/ipx.conf +14 -0
  888. data/lib/roebe/dosbox/keyboard.conf +17 -0
  889. data/lib/roebe/dosbox/midi.conf +18 -0
  890. data/lib/roebe/dosbox/mixer.conf +26 -0
  891. data/lib/roebe/dosbox/render.conf +31 -0
  892. data/lib/roebe/dosbox/sblaster.conf +38 -0
  893. data/lib/roebe/dosbox/sdl.conf +115 -0
  894. data/lib/roebe/dosbox/serial.conf +22 -0
  895. data/lib/roebe/dosbox/speaker.conf +20 -0
  896. data/lib/roebe/editors/README.md +2 -0
  897. data/lib/roebe/editors/ruby_nano.rb +88 -0
  898. data/lib/roebe/editors/vim_paradise/colours.rb +30 -0
  899. data/lib/roebe/editors/vim_paradise/constants.rb +113 -0
  900. data/lib/roebe/editors/vim_paradise/help.rb +37 -0
  901. data/lib/roebe/editors/vim_paradise/menu.rb +62 -0
  902. data/lib/roebe/editors/vim_paradise/run.rb +22 -0
  903. data/lib/roebe/editors/vim_paradise/vim_paradise.rb +630 -0
  904. data/lib/roebe/emoji/README.md +2 -0
  905. data/lib/roebe/emoji/emoji_table.rb +40 -0
  906. data/lib/roebe/encoding/encoding.rb +113 -0
  907. data/lib/roebe/extensions.rb +23 -0
  908. data/lib/roebe/gemrc/gemrc +19 -0
  909. data/lib/roebe/gui/cgi/interactive_caesar_cipher/interactive_caesar_cipher.cgi +56 -0
  910. data/lib/roebe/gui/cgi/md5_comparer/md5_comparer.cgi +83 -0
  911. data/lib/roebe/gui/glimmer/examples/001_hello_world.rb +8 -0
  912. data/lib/roebe/gui/glimmer/examples/002_basic_table_progress_bar.rb +29 -0
  913. data/lib/roebe/gui/glimmer/examples/003_form_table_example.rb +118 -0
  914. data/lib/roebe/gui/glimmer/microsoft_controller/microsoft_controller.rb +58 -0
  915. data/lib/roebe/gui/gtk2/code_generator/code_generator.config +6 -0
  916. data/lib/roebe/gui/gtk2/code_generator/code_generator.rb +39 -0
  917. data/lib/roebe/gui/gtk2/email/email.config +6 -0
  918. data/lib/roebe/gui/gtk2/email/email.rb +31 -0
  919. data/lib/roebe/gui/gtk2/ifconfig/ifconfig.rb +34 -0
  920. data/lib/roebe/gui/gtk2/send_email/send_email.rb +34 -0
  921. data/lib/roebe/gui/gtk2/show_aliases/show_aliases.rb +31 -0
  922. data/lib/roebe/gui/gtk2/show_ten_aliases/show_ten_aliases.rb +34 -0
  923. data/lib/roebe/gui/gtk2/world_capitals/capital_event_box.rb +18 -0
  924. data/lib/roebe/gui/gtk2/world_capitals/frame_for_world_capitals.rb +27 -0
  925. data/lib/roebe/gui/gtk2/world_capitals/world_capitals.rb +31 -0
  926. data/lib/roebe/gui/gtk3/code_generator/code_generator.rb +31 -0
  927. data/lib/roebe/gui/gtk3/email/email.rb +34 -0
  928. data/lib/roebe/gui/gtk3/ifconfig/ifconfig.rb +34 -0
  929. data/lib/roebe/gui/gtk3/interactive_caesar_cipher/interactive_caesar_cipher.rb +133 -0
  930. data/lib/roebe/gui/gtk3/md5_comparer/md5_comparer.rb +120 -0
  931. data/lib/roebe/gui/gtk3/send_email/send_email.rb +34 -0
  932. data/lib/roebe/gui/gtk3/shell/misc.rb +70 -0
  933. data/lib/roebe/gui/gtk3/shell/shell.rb +401 -0
  934. data/lib/roebe/gui/gtk3/show_aliases/show_aliases.rb +64 -0
  935. data/lib/roebe/gui/gtk3/show_ten_aliases/show_ten_aliases.rb +34 -0
  936. data/lib/roebe/gui/gtk3/system_widget/system_widget.rb +34 -0
  937. data/lib/roebe/gui/gtk3/task_viewer/task_viewer.rb +34 -0
  938. data/lib/roebe/gui/gtk3/todo_viewer/todo_viewer.rb +290 -0
  939. data/lib/roebe/gui/gtk3/wecker/wecker.rb +440 -0
  940. data/lib/roebe/gui/gtk3/wlan_information_center/README.md +9 -0
  941. data/lib/roebe/gui/gtk3/wlan_information_center/wlan_information_center.css +13 -0
  942. data/lib/roebe/gui/gtk3/wlan_information_center/wlan_information_center.rb +708 -0
  943. data/lib/roebe/gui/gtk3/world_capitals/capital_event_box.rb +24 -0
  944. data/lib/roebe/gui/gtk3/world_capitals/frame_for_world_capitals.rb +29 -0
  945. data/lib/roebe/gui/gtk3/world_capitals/world_capitals.rb +24 -0
  946. data/lib/roebe/gui/jruby/interactive_caesar_cipher/interactive_caesar_cipher.rb +112 -0
  947. data/lib/roebe/gui/libui/md5_comparer/md5_comparer.rb +89 -0
  948. data/lib/roebe/gui/libui/microsoft_controller/README.me +3 -0
  949. data/lib/roebe/gui/libui/microsoft_controller/microsoft_controller.rb +206 -0
  950. data/lib/roebe/gui/libui/rundll32/rundll32.rb +89 -0
  951. data/lib/roebe/gui/libui/shell/shell.rb +139 -0
  952. data/lib/roebe/gui/libui/show_aliases/show_aliases.rb +78 -0
  953. data/lib/roebe/gui/libui/show_ten_aliases/show_ten_aliases.rb +99 -0
  954. data/lib/roebe/gui/libui/todo_viewer/todo_viewer.rb +120 -0
  955. data/lib/roebe/gui/libui/wlan_interface/wlan_interface.rb +140 -0
  956. data/lib/roebe/gui/shared_code/code_generator/code_generator_module.rb +273 -0
  957. data/lib/roebe/gui/shared_code/email/email_module.rb +178 -0
  958. data/lib/roebe/gui/shared_code/ifconfig/ifconfig_module.rb +1168 -0
  959. data/lib/roebe/gui/shared_code/interactive_caesar_cipher/interactive_caesar_cipher_module.rb +135 -0
  960. data/lib/roebe/gui/shared_code/md5_comparer/md5_comparer_module.rb +244 -0
  961. data/lib/roebe/gui/shared_code/microsoft_controller/microsoft_controller_module.rb +215 -0
  962. data/lib/roebe/gui/shared_code/send_email/send_email.css +0 -0
  963. data/lib/roebe/gui/shared_code/send_email/send_email_module.rb +291 -0
  964. data/lib/roebe/gui/shared_code/shell/shell_module.rb +392 -0
  965. data/lib/roebe/gui/shared_code/show_aliases/show_aliases_module.rb +196 -0
  966. data/lib/roebe/gui/shared_code/show_ten_aliases/show_ten_aliases_module.rb +306 -0
  967. data/lib/roebe/gui/shared_code/system_widget/system_widget_module.rb +161 -0
  968. data/lib/roebe/gui/shared_code/task_viewer/task_viewer_module.rb +222 -0
  969. data/lib/roebe/gui/shared_code/wlan_interface/wlan_interface.css +13 -0
  970. data/lib/roebe/gui/shared_code/wlan_interface/wlan_interface_base.rb +0 -0
  971. data/lib/roebe/gui/shared_code/wlan_interface/wlan_interface_module.rb +0 -0
  972. data/lib/roebe/gui/shared_code/world_capitals/capital_event_box_module.rb +201 -0
  973. data/lib/roebe/gui/shared_code/world_capitals/frame_for_world_capitals_module.rb +84 -0
  974. data/lib/roebe/gui/shared_code/world_capitals/world_capitals_module.rb +276 -0
  975. data/lib/roebe/gui/sinatra/md5_comparer/md5_comparer.rb +108 -0
  976. data/lib/roebe/gui/swing/README.md +6 -0
  977. data/lib/roebe/gui/swing/interactive_caesar_cipher/InteractiveCaesarCipher.class +0 -0
  978. data/lib/roebe/gui/swing/interactive_caesar_cipher/InteractiveCaesarCipher.java +87 -0
  979. data/lib/roebe/gui/unified_widgets/README.md +5 -0
  980. data/lib/roebe/gui/unified_widgets/interactive_caesar_cipher/interactive_caesar_cipher.rb +137 -0
  981. data/lib/roebe/images/ROEBE_LOGO.png +0 -0
  982. data/lib/roebe/irb/README.md +3 -0
  983. data/lib/roebe/irb/irbrc +45 -0
  984. data/lib/roebe/irb/start_my_custom_irb.rb +88 -0
  985. data/lib/roebe/java_roebe/Ant.java +26 -0
  986. data/lib/roebe/java_roebe/EnglishToGerman.class +0 -0
  987. data/lib/roebe/java_roebe/EnglishToGerman.java +52 -0
  988. data/lib/roebe/java_roebe/MoveFile.class +0 -0
  989. data/lib/roebe/java_roebe/MoveFile.java +50 -0
  990. data/lib/roebe/java_roebe/MyIp.java +42 -0
  991. data/lib/roebe/java_roebe/RemoveLine.class +0 -0
  992. data/lib/roebe/java_roebe/RemoveLine.java +168 -0
  993. data/lib/roebe/java_roebe/ReturnRandomImage.class +0 -0
  994. data/lib/roebe/java_roebe/ReturnRandomImage.java +54 -0
  995. data/lib/roebe/java_roebe/SetBackground.class +0 -0
  996. data/lib/roebe/java_roebe/SetBackground.java +104 -0
  997. data/lib/roebe/java_roebe/ShowOnlyFiles.class +0 -0
  998. data/lib/roebe/java_roebe/ShowOnlyFiles.java +86 -0
  999. data/lib/roebe/java_roebe/ShowPrimeNumbers.class +0 -0
  1000. data/lib/roebe/java_roebe/ShowPrimeNumbers.java +75 -0
  1001. data/lib/roebe/java_roebe/TakeScreenshot.class +0 -0
  1002. data/lib/roebe/java_roebe/TakeScreenshot.java +126 -0
  1003. data/lib/roebe/java_roebe/TalesFromTheCrypt.class +0 -0
  1004. data/lib/roebe/java_roebe/TalesFromTheCrypt.java +128 -0
  1005. data/lib/roebe/java_roebe/ToBinary.class +0 -0
  1006. data/lib/roebe/java_roebe/ToBinary.java +21 -0
  1007. data/lib/roebe/java_roebe/ToBuy.java +94 -0
  1008. data/lib/roebe/java_roebe/ToTarBz2.class +0 -0
  1009. data/lib/roebe/java_roebe/ToTarBz2.java +57 -0
  1010. data/lib/roebe/java_roebe/Today.java +71 -0
  1011. data/lib/roebe/java_roebe/TodoOverview.class +0 -0
  1012. data/lib/roebe/java_roebe/TodoOverview.java +78 -0
  1013. data/lib/roebe/java_roebe/Translate.class +0 -0
  1014. data/lib/roebe/java_roebe/Translate.java +93 -0
  1015. data/lib/roebe/java_roebe/TwentyfourHoursNotation.class +0 -0
  1016. data/lib/roebe/java_roebe/TwentyfourHoursNotation.java +60 -0
  1017. data/lib/roebe/java_roebe/Undone.class +0 -0
  1018. data/lib/roebe/java_roebe/Undone.java +143 -0
  1019. data/lib/roebe/java_roebe/UnicodeSnowman.class +0 -0
  1020. data/lib/roebe/java_roebe/UnicodeSnowman.java +42 -0
  1021. data/lib/roebe/java_roebe/Upcaser.class +0 -0
  1022. data/lib/roebe/java_roebe/Upcaser.java +69 -0
  1023. data/lib/roebe/java_roebe/UploadToImgur.class +0 -0
  1024. data/lib/roebe/java_roebe/UploadToImgur.java +95 -0
  1025. data/lib/roebe/java_roebe/Wikipedia.class +0 -0
  1026. data/lib/roebe/java_roebe/Wikipedia.java +43 -0
  1027. data/lib/roebe/java_roebe/Zoll.class +0 -0
  1028. data/lib/roebe/java_roebe/Zoll.java +42 -0
  1029. data/lib/roebe/java_roebe/controller/ControllerWithCSSSupport$1.class +0 -0
  1030. data/lib/roebe/java_roebe/controller/ControllerWithCSSSupport.class +0 -0
  1031. data/lib/roebe/java_roebe/controller/ControllerWithCSSSupport.java +277 -0
  1032. data/lib/roebe/java_roebe/java_roebe/ShowPrimeNumbers.class +0 -0
  1033. data/lib/roebe/java_roebe/java_roebe/ShowPrimeNumbers.java +75 -0
  1034. data/lib/roebe/java_roebe/java_roebe/TakeScreenshot.class +0 -0
  1035. data/lib/roebe/java_roebe/java_roebe/TakeScreenshot.java +126 -0
  1036. data/lib/roebe/java_roebe/java_roebe/TalesFromTheCrypt.class +0 -0
  1037. data/lib/roebe/java_roebe/java_roebe/TalesFromTheCrypt.java +128 -0
  1038. data/lib/roebe/java_roebe/java_roebe/Zoll.class +0 -0
  1039. data/lib/roebe/java_roebe/java_roebe/Zoll.java +42 -0
  1040. data/lib/roebe/java_roebe/screenshot.png +0 -0
  1041. data/lib/roebe/java_roebe/show_the_content_of_this_directory/ShowTheContentOfThisDirectory.class +0 -0
  1042. data/lib/roebe/java_roebe/show_the_content_of_this_directory/ShowTheContentOfThisDirectory.java +50 -0
  1043. data/lib/roebe/jruby/jruby_enhancements.rb +18 -0
  1044. data/lib/roebe/jruby/swing/absolute_positioning_example.rb +75 -0
  1045. data/lib/roebe/jruby/swing/complete_windows_example.rb +90 -0
  1046. data/lib/roebe/jruby/swing/paint_demo.rb +37 -0
  1047. data/lib/roebe/jruby/swing/quit_button_example.rb +54 -0
  1048. data/lib/roebe/jruby/swing/simple_swing_example.rb +33 -0
  1049. data/lib/roebe/jruby/swing/tooltip_example.rb +90 -0
  1050. data/lib/roebe/jruby/swing/two_buttons_example.rb +62 -0
  1051. data/lib/roebe/linux/README.md +3 -0
  1052. data/lib/roebe/linux/linux.rb +106 -0
  1053. data/lib/roebe/linux/slackware/remove_pulseaudio.rb +34 -0
  1054. data/lib/roebe/linux/slackware/slackware.rb +122 -0
  1055. data/lib/roebe/math/README.md +4 -0
  1056. data/lib/roebe/math/anagram.rb +42 -0
  1057. data/lib/roebe/math/average_of_differences.rb +41 -0
  1058. data/lib/roebe/math/binning.rb +56 -0
  1059. data/lib/roebe/math/calculate_the_distance_between_two_points.rb +38 -0
  1060. data/lib/roebe/math/calculate_the_variance.rb +45 -0
  1061. data/lib/roebe/math/circle.rb +67 -0
  1062. data/lib/roebe/math/custom_math.rb +302 -0
  1063. data/lib/roebe/math/fact.rb +44 -0
  1064. data/lib/roebe/math/log10.rb +54 -0
  1065. data/lib/roebe/math/pi.rb +23 -0
  1066. data/lib/roebe/math/regel_von_sarrus.rb +70 -0
  1067. data/lib/roebe/math/traurige_oder_fr/303/266hliche_zahl.rb +47 -0
  1068. data/lib/roebe/math/zylinder.rb +59 -0
  1069. data/lib/roebe/mime_types/mime_types.rb +389 -0
  1070. data/lib/roebe/misc/README.md +1 -0
  1071. data/lib/roebe/misc/fluxbox_keys_file +117 -0
  1072. data/lib/roebe/misc/icewm_keys_file +88 -0
  1073. data/lib/roebe/misc/master_boot_record/master_boot_record +0 -0
  1074. data/lib/roebe/modules/as_uid.rb +61 -0
  1075. data/lib/roebe/modules/http_status_codes/constants.rb +105 -0
  1076. data/lib/roebe/modules/http_status_codes/http_status_codes.rb +59 -0
  1077. data/lib/roebe/modules/remove_html.rb +61 -0
  1078. data/lib/roebe/mouse/README.md +2 -0
  1079. data/lib/roebe/mouse/libffi_is_not_available.rb +70 -0
  1080. data/lib/roebe/mouse/mouse.rb +205 -0
  1081. data/lib/roebe/nano/README.md +42 -0
  1082. data/lib/roebe/nano/c.md +77 -0
  1083. data/lib/roebe/nano/cpp.md +68 -0
  1084. data/lib/roebe/nano/fasta.md +10 -0
  1085. data/lib/roebe/nano/general_settings.md +192 -0
  1086. data/lib/roebe/nano/html.md +7 -0
  1087. data/lib/roebe/nano/include.md +31 -0
  1088. data/lib/roebe/nano/java.md +31 -0
  1089. data/lib/roebe/nano/mail.md +36 -0
  1090. data/lib/roebe/nano/ml.md +21 -0
  1091. data/lib/roebe/nano/nano.cgi +23 -0
  1092. data/lib/roebe/nano/nanorc.md +16 -0
  1093. data/lib/roebe/nano/nexus.md +12 -0
  1094. data/lib/roebe/nano/opal.md +66 -0
  1095. data/lib/roebe/nano/patch_files.md +12 -0
  1096. data/lib/roebe/nano/perl.md +12 -0
  1097. data/lib/roebe/nano/php.md +25 -0
  1098. data/lib/roebe/nano/python.md +12 -0
  1099. data/lib/roebe/nano/ruby.md +122 -0
  1100. data/lib/roebe/nano/shell_scripts.md +15 -0
  1101. data/lib/roebe/nano/top.md +14 -0
  1102. data/lib/roebe/nano/yaml.md +70 -0
  1103. data/lib/roebe/nano/zzz_misc.md +13 -0
  1104. data/lib/roebe/no_colours.rb +7 -0
  1105. data/lib/roebe/pdf/README.md +1 -0
  1106. data/lib/roebe/pdf/prawn/all_in_one_showcasing_prawn.rb +160 -0
  1107. data/lib/roebe/project/project.rb +77 -0
  1108. data/lib/roebe/python/base/__pycache__/base.cpython-39.pyc +0 -0
  1109. data/lib/roebe/python/base/base.py +40 -0
  1110. data/lib/roebe/python/zoll.py +16 -0
  1111. data/lib/roebe/requires/basic_common_requires.rb +18 -0
  1112. data/lib/roebe/requires/colours.rb +7 -0
  1113. data/lib/roebe/requires/failsafe_require_of_beautiful_url.rb +12 -0
  1114. data/lib/roebe/requires/failsafe_require_of_opn.rb +12 -0
  1115. data/lib/roebe/requires/require_all_standalone_classes.rb +60 -0
  1116. data/lib/roebe/requires/require_all_standalone_modules.rb +61 -0
  1117. data/lib/roebe/requires/require_burn_iso.rb +5 -0
  1118. data/lib/roebe/requires/require_kde_konsole.rb +7 -0
  1119. data/lib/roebe/requires/require_menu_generator.rb +7 -0
  1120. data/lib/roebe/requires/require_remove_directory.rb +7 -0
  1121. data/lib/roebe/requires/require_ruby_header.rb +7 -0
  1122. data/lib/roebe/requires/require_the_browser_files.rb +11 -0
  1123. data/lib/roebe/requires/require_the_roebe_documentation.rb +11 -0
  1124. data/lib/roebe/requires/require_the_roebe_shell.rb +22 -0
  1125. data/lib/roebe/requires/require_the_run_class.rb +7 -0
  1126. data/lib/roebe/requires/require_the_toplevel_methods.rb +11 -0
  1127. data/lib/roebe/requires/require_the_whole_roebe_project.rb +75 -0
  1128. data/lib/roebe/requires/require_traverse_install.rb +7 -0
  1129. data/lib/roebe/requires/require_unicode.rb +31 -0
  1130. data/lib/roebe/setup/README.md +1 -0
  1131. data/lib/roebe/setup/setup.rb +1655 -0
  1132. data/lib/roebe/shell/README.md +3 -0
  1133. data/lib/roebe/shell/colours/colour_codes.rb +178 -0
  1134. data/lib/roebe/shell/colours/colours.rb +330 -0
  1135. data/lib/roebe/shell/commandline/commandline.rb +392 -0
  1136. data/lib/roebe/shell/configuration/configuration.rb +172 -0
  1137. data/lib/roebe/shell/gui/gtk3/vte_terminal_frame.rb +77 -0
  1138. data/lib/roebe/shell/help/colourized_help_line.rb +190 -0
  1139. data/lib/roebe/shell/help/documented_help_options.rb +254 -0
  1140. data/lib/roebe/shell/help/help.rb +105 -0
  1141. data/lib/roebe/shell/module_methods/anmeldung.rb +75 -0
  1142. data/lib/roebe/shell/module_methods/available_components.rb +78 -0
  1143. data/lib/roebe/shell/module_methods/benchmarks.rb +70 -0
  1144. data/lib/roebe/shell/module_methods/commandline_arguments.rb +35 -0
  1145. data/lib/roebe/shell/module_methods/encoding.rb +95 -0
  1146. data/lib/roebe/shell/module_methods/ftp.rb +65 -0
  1147. data/lib/roebe/shell/module_methods/generate_tab_completion.rb +96 -0
  1148. data/lib/roebe/shell/module_methods/home_directory.rb +108 -0
  1149. data/lib/roebe/shell/module_methods/main_file.rb +41 -0
  1150. data/lib/roebe/shell/module_methods/misc.rb +181 -0
  1151. data/lib/roebe/shell/module_methods/report_where_the_home_directory_can_be_found.rb +35 -0
  1152. data/lib/roebe/shell/module_methods/startup_time.rb +34 -0
  1153. data/lib/roebe/shell/project/project.rb +47 -0
  1154. data/lib/roebe/shell/session/session.rb +205 -0
  1155. data/lib/roebe/shell/shell/class_methods.rb +25 -0
  1156. data/lib/roebe/shell/shell/constants.rb +172 -0
  1157. data/lib/roebe/shell/shell/core/act_filetype_specific.rb +127 -0
  1158. data/lib/roebe/shell/shell/core/action.rb +42 -0
  1159. data/lib/roebe/shell/shell/core/add.rb +186 -0
  1160. data/lib/roebe/shell/shell/core/aliases.rb +161 -0
  1161. data/lib/roebe/shell/shell/core/all.rb +62 -0
  1162. data/lib/roebe/shell/shell/core/append.rb +113 -0
  1163. data/lib/roebe/shell/shell/core/archives.rb +76 -0
  1164. data/lib/roebe/shell/shell/core/arguments.rb +301 -0
  1165. data/lib/roebe/shell/shell/core/ascii.rb +127 -0
  1166. data/lib/roebe/shell/shell/core/assign.rb +141 -0
  1167. data/lib/roebe/shell/shell/core/audio.rb +482 -0
  1168. data/lib/roebe/shell/shell/core/autostart.rb +52 -0
  1169. data/lib/roebe/shell/shell/core/backup.rb +162 -0
  1170. data/lib/roebe/shell/shell/core/become.rb +41 -0
  1171. data/lib/roebe/shell/shell/core/birthdays.rb +42 -0
  1172. data/lib/roebe/shell/shell/core/browser.rb +278 -0
  1173. data/lib/roebe/shell/shell/core/buffer.rb +119 -0
  1174. data/lib/roebe/shell/shell/core/burning.rb +156 -0
  1175. data/lib/roebe/shell/shell/core/calculate.rb +77 -0
  1176. data/lib/roebe/shell/shell/core/call.rb +107 -0
  1177. data/lib/roebe/shell/shell/core/cat.rb +212 -0
  1178. data/lib/roebe/shell/shell/core/change_directory.rb +307 -0
  1179. data/lib/roebe/shell/shell/core/checks.rb +149 -0
  1180. data/lib/roebe/shell/shell/core/chmod.rb +54 -0
  1181. data/lib/roebe/shell/shell/core/clear_and_purge.rb +105 -0
  1182. data/lib/roebe/shell/shell/core/cliner.rb +36 -0
  1183. data/lib/roebe/shell/shell/core/clipboard.rb +45 -0
  1184. data/lib/roebe/shell/shell/core/collapse.rb +53 -0
  1185. data/lib/roebe/shell/shell/core/compile.rb +230 -0
  1186. data/lib/roebe/shell/shell/core/configuration.rb +532 -0
  1187. data/lib/roebe/shell/shell/core/conversions.rb +358 -0
  1188. data/lib/roebe/shell/shell/core/copy.rb +302 -0
  1189. data/lib/roebe/shell/shell/core/count.rb +76 -0
  1190. data/lib/roebe/shell/shell/core/cracks.rb +61 -0
  1191. data/lib/roebe/shell/shell/core/create.rb +410 -0
  1192. data/lib/roebe/shell/shell/core/cut.rb +207 -0
  1193. data/lib/roebe/shell/shell/core/debug.rb +125 -0
  1194. data/lib/roebe/shell/shell/core/defaults.rb +23 -0
  1195. data/lib/roebe/shell/shell/core/delay.rb +34 -0
  1196. data/lib/roebe/shell/shell/core/directory_actions.rb +241 -0
  1197. data/lib/roebe/shell/shell/core/disable.rb +468 -0
  1198. data/lib/roebe/shell/shell/core/documentation.rb +308 -0
  1199. data/lib/roebe/shell/shell/core/downcase.rb +45 -0
  1200. data/lib/roebe/shell/shell/core/download.rb +164 -0
  1201. data/lib/roebe/shell/shell/core/dump.rb +47 -0
  1202. data/lib/roebe/shell/shell/core/e.rb +70 -0
  1203. data/lib/roebe/shell/shell/core/editor.rb +373 -0
  1204. data/lib/roebe/shell/shell/core/email.rb +56 -0
  1205. data/lib/roebe/shell/shell/core/empty.rb +57 -0
  1206. data/lib/roebe/shell/shell/core/enable.rb +365 -0
  1207. data/lib/roebe/shell/shell/core/english.rb +47 -0
  1208. data/lib/roebe/shell/shell/core/ensure.rb +42 -0
  1209. data/lib/roebe/shell/shell/core/env.rb +141 -0
  1210. data/lib/roebe/shell/shell/core/escape_shell_characters.rb +25 -0
  1211. data/lib/roebe/shell/shell/core/esystem.rb +133 -0
  1212. data/lib/roebe/shell/shell/core/exit.rb +52 -0
  1213. data/lib/roebe/shell/shell/core/extract.rb +130 -0
  1214. data/lib/roebe/shell/shell/core/fetch.rb +68 -0
  1215. data/lib/roebe/shell/shell/core/file_actions.rb +271 -0
  1216. data/lib/roebe/shell/shell/core/find_and_search.rb +225 -0
  1217. data/lib/roebe/shell/shell/core/ftp.rb +224 -0
  1218. data/lib/roebe/shell/shell/core/gems.rb +101 -0
  1219. data/lib/roebe/shell/shell/core/generate.rb +460 -0
  1220. data/lib/roebe/shell/shell/core/get_file_listing.rb +230 -0
  1221. data/lib/roebe/shell/shell/core/get_var.rb +136 -0
  1222. data/lib/roebe/shell/shell/core/gist.rb +72 -0
  1223. data/lib/roebe/shell/shell/core/glob.rb +65 -0
  1224. data/lib/roebe/shell/shell/core/google.rb +36 -0
  1225. data/lib/roebe/shell/shell/core/hardware.rb +90 -0
  1226. data/lib/roebe/shell/shell/core/help.rb +451 -0
  1227. data/lib/roebe/shell/shell/core/history.rb +253 -0
  1228. data/lib/roebe/shell/shell/core/hostname.rb +21 -0
  1229. data/lib/roebe/shell/shell/core/images.rb +110 -0
  1230. data/lib/roebe/shell/shell/core/information.rb +143 -0
  1231. data/lib/roebe/shell/shell/core/install.rb +303 -0
  1232. data/lib/roebe/shell/shell/core/irb.rb +39 -0
  1233. data/lib/roebe/shell/shell/core/irc.rb +55 -0
  1234. data/lib/roebe/shell/shell/core/is.rb +72 -0
  1235. data/lib/roebe/shell/shell/core/iso.rb +225 -0
  1236. data/lib/roebe/shell/shell/core/jumpers.rb +41 -0
  1237. data/lib/roebe/shell/shell/core/log.rb +42 -0
  1238. data/lib/roebe/shell/shell/core/make.rb +83 -0
  1239. data/lib/roebe/shell/shell/core/merge.rb +133 -0
  1240. data/lib/roebe/shell/shell/core/misc.rb +1220 -0
  1241. data/lib/roebe/shell/shell/core/mode.rb +63 -0
  1242. data/lib/roebe/shell/shell/core/mount.rb +123 -0
  1243. data/lib/roebe/shell/shell/core/move.rb +64 -0
  1244. data/lib/roebe/shell/shell/core/open.rb +198 -0
  1245. data/lib/roebe/shell/shell/core/optimize.rb +63 -0
  1246. data/lib/roebe/shell/shell/core/passwords.rb +38 -0
  1247. data/lib/roebe/shell/shell/core/path.rb +156 -0
  1248. data/lib/roebe/shell/shell/core/pdf.rb +73 -0
  1249. data/lib/roebe/shell/shell/core/personal.rb +108 -0
  1250. data/lib/roebe/shell/shell/core/phone.rb +49 -0
  1251. data/lib/roebe/shell/shell/core/pid.rb +118 -0
  1252. data/lib/roebe/shell/shell/core/ping.rb +53 -0
  1253. data/lib/roebe/shell/shell/core/pkgconfig.rb +44 -0
  1254. data/lib/roebe/shell/shell/core/play.rb +244 -0
  1255. data/lib/roebe/shell/shell/core/popup.rb +55 -0
  1256. data/lib/roebe/shell/shell/core/printing.rb +27 -0
  1257. data/lib/roebe/shell/shell/core/protect.rb +176 -0
  1258. data/lib/roebe/shell/shell/core/queries.rb +204 -0
  1259. data/lib/roebe/shell/shell/core/question_answer.rb +97 -0
  1260. data/lib/roebe/shell/shell/core/random.rb +107 -0
  1261. data/lib/roebe/shell/shell/core/rbt.rb +69 -0
  1262. data/lib/roebe/shell/shell/core/read_file.rb +102 -0
  1263. data/lib/roebe/shell/shell/core/record.rb +94 -0
  1264. data/lib/roebe/shell/shell/core/register.rb +65 -0
  1265. data/lib/roebe/shell/shell/core/reload.rb +189 -0
  1266. data/lib/roebe/shell/shell/core/remove.rb +351 -0
  1267. data/lib/roebe/shell/shell/core/repackage.rb +34 -0
  1268. data/lib/roebe/shell/shell/core/repair.rb +99 -0
  1269. data/lib/roebe/shell/shell/core/repeat.rb +78 -0
  1270. data/lib/roebe/shell/shell/core/replace.rb +130 -0
  1271. data/lib/roebe/shell/shell/core/replay.rb +38 -0
  1272. data/lib/roebe/shell/shell/core/require.rb +101 -0
  1273. data/lib/roebe/shell/shell/core/ruby.rb +82 -0
  1274. data/lib/roebe/shell/shell/core/save.rb +127 -0
  1275. data/lib/roebe/shell/shell/core/scp.rb +75 -0
  1276. data/lib/roebe/shell/shell/core/screenshot.rb +98 -0
  1277. data/lib/roebe/shell/shell/core/serve.rb +221 -0
  1278. data/lib/roebe/shell/shell/core/set.rb +241 -0
  1279. data/lib/roebe/shell/shell/core/set_file_listing.rb +33 -0
  1280. data/lib/roebe/shell/shell/core/shellrc_file.rb +57 -0
  1281. data/lib/roebe/shell/shell/core/show_display_feedback_and_report.rb +2347 -0
  1282. data/lib/roebe/shell/shell/core/sleep.rb +63 -0
  1283. data/lib/roebe/shell/shell/core/sort.rb +47 -0
  1284. data/lib/roebe/shell/shell/core/split.rb +68 -0
  1285. data/lib/roebe/shell/shell/core/start.rb +111 -0
  1286. data/lib/roebe/shell/shell/core/stat.rb +111 -0
  1287. data/lib/roebe/shell/shell/core/strip.rb +47 -0
  1288. data/lib/roebe/shell/shell/core/switch.rb +69 -0
  1289. data/lib/roebe/shell/shell/core/symlink.rb +79 -0
  1290. data/lib/roebe/shell/shell/core/tab.rb +83 -0
  1291. data/lib/roebe/shell/shell/core/tasks.rb +93 -0
  1292. data/lib/roebe/shell/shell/core/tell_us_whether_this_program_exists.rb +45 -0
  1293. data/lib/roebe/shell/shell/core/test.rb +56 -0
  1294. data/lib/roebe/shell/shell/core/time.rb +72 -0
  1295. data/lib/roebe/shell/shell/core/toggle.rb +186 -0
  1296. data/lib/roebe/shell/shell/core/trainer.rb +72 -0
  1297. data/lib/roebe/shell/shell/core/translate.rb +53 -0
  1298. data/lib/roebe/shell/shell/core/treeview.rb +42 -0
  1299. data/lib/roebe/shell/shell/core/trigger.rb +54 -0
  1300. data/lib/roebe/shell/shell/core/unalias.rb +47 -0
  1301. data/lib/roebe/shell/shell/core/undo.rb +71 -0
  1302. data/lib/roebe/shell/shell/core/upcase.rb +58 -0
  1303. data/lib/roebe/shell/shell/core/update.rb +189 -0
  1304. data/lib/roebe/shell/shell/core/upload.rb +137 -0
  1305. data/lib/roebe/shell/shell/core/url.rb +168 -0
  1306. data/lib/roebe/shell/shell/core/use.rb +58 -0
  1307. data/lib/roebe/shell/shell/core/variables.rb +86 -0
  1308. data/lib/roebe/shell/shell/core/video.rb +288 -0
  1309. data/lib/roebe/shell/shell/core/watch.rb +45 -0
  1310. data/lib/roebe/shell/shell/core/webrick.rb +135 -0
  1311. data/lib/roebe/shell/shell/core/wecker.rb +53 -0
  1312. data/lib/roebe/shell/shell/core/whoami.rb +23 -0
  1313. data/lib/roebe/shell/shell/core/windows.rb +251 -0
  1314. data/lib/roebe/shell/shell/core/wlan.rb +22 -0
  1315. data/lib/roebe/shell/shell/core/yaml.rb +87 -0
  1316. data/lib/roebe/shell/shell/menu.rb +7974 -0
  1317. data/lib/roebe/shell/shell/misc.rb +293 -0
  1318. data/lib/roebe/shell/shell/reset.rb +297 -0
  1319. data/lib/roebe/shell/shell/shell.rb +2153 -0
  1320. data/lib/roebe/shell/shellrc_parser/shellrc_parser.rb +276 -0
  1321. data/lib/roebe/shell/standalone_classes/time_converter.rb +86 -0
  1322. data/lib/roebe/shell/standalone_classes/todo.rb +100 -0
  1323. data/lib/roebe/shell/yaml/configuration/autoconvert_numbers.yml +1 -0
  1324. data/lib/roebe/shell/yaml/configuration/be_verbose.yml +1 -0
  1325. data/lib/roebe/shell/yaml/configuration/cd_burn_program.yml +1 -0
  1326. data/lib/roebe/shell/yaml/configuration/check_for_isos.yml +1 -0
  1327. data/lib/roebe/shell/yaml/configuration/check_upcoming_exams.yml +1 -0
  1328. data/lib/roebe/shell/yaml/configuration/collapse.yml +1 -0
  1329. data/lib/roebe/shell/yaml/configuration/colours.yml +10 -0
  1330. data/lib/roebe/shell/yaml/configuration/debug.yml +1 -0
  1331. data/lib/roebe/shell/yaml/configuration/default_browser_location.yml +1 -0
  1332. data/lib/roebe/shell/yaml/configuration/default_delay.yml +1 -0
  1333. data/lib/roebe/shell/yaml/configuration/default_file_action.yml +1 -0
  1334. data/lib/roebe/shell/yaml/configuration/dictionaries.yml +2 -0
  1335. data/lib/roebe/shell/yaml/configuration/display_index.yml +1 -0
  1336. data/lib/roebe/shell/yaml/configuration/do_show_modification_time.yml +1 -0
  1337. data/lib/roebe/shell/yaml/configuration/dvd_burn_program.yml +1 -0
  1338. data/lib/roebe/shell/yaml/configuration/editor.yml +1 -0
  1339. data/lib/roebe/shell/yaml/configuration/enter_extracted_directory.yml +1 -0
  1340. data/lib/roebe/shell/yaml/configuration/events.yml +2 -0
  1341. data/lib/roebe/shell/yaml/configuration/guess_directory_name.yml +1 -0
  1342. data/lib/roebe/shell/yaml/configuration/jumper_directories.yml +9 -0
  1343. data/lib/roebe/shell/yaml/configuration/last_directory.yml +1 -0
  1344. data/lib/roebe/shell/yaml/configuration/logfile_for_history.yml +1 -0
  1345. data/lib/roebe/shell/yaml/configuration/may_we_generate_file_skeleton.yml +1 -0
  1346. data/lib/roebe/shell/yaml/configuration/may_we_use_ftp.yml +1 -0
  1347. data/lib/roebe/shell/yaml/configuration/mplayer_favourite_files.yml +1 -0
  1348. data/lib/roebe/shell/yaml/configuration/official_release.yml +1 -0
  1349. data/lib/roebe/shell/yaml/configuration/open_downloaded_pdf_files_at_once.yml +1 -0
  1350. data/lib/roebe/shell/yaml/configuration/operating_system.yml +1 -0
  1351. data/lib/roebe/shell/yaml/configuration/padding.yml +1 -0
  1352. data/lib/roebe/shell/yaml/configuration/pdf_viewer.yml +1 -0
  1353. data/lib/roebe/shell/yaml/configuration/preferred_encoding.yml +1 -0
  1354. data/lib/roebe/shell/yaml/configuration/protected_directories.yml +8 -0
  1355. data/lib/roebe/shell/yaml/configuration/remove_globbed_files.yml +1 -0
  1356. data/lib/roebe/shell/yaml/configuration/run_simulation.yml +1 -0
  1357. data/lib/roebe/shell/yaml/configuration/shall_we_log_the_user_input_history.yml +1 -0
  1358. data/lib/roebe/shell/yaml/configuration/shell_name.yml +1 -0
  1359. data/lib/roebe/shell/yaml/configuration/shell_prompt.yml +1 -0
  1360. data/lib/roebe/shell/yaml/configuration/shorten_directory_names.yml +1 -0
  1361. data/lib/roebe/shell/yaml/configuration/show_absolute_path.yml +1 -0
  1362. data/lib/roebe/shell/yaml/configuration/show_condensed_permissions.yml +1 -0
  1363. data/lib/roebe/shell/yaml/configuration/show_hidden_files.yml +1 -0
  1364. data/lib/roebe/shell/yaml/configuration/show_n_lines.yml +1 -0
  1365. data/lib/roebe/shell/yaml/configuration/simplified.yml +1 -0
  1366. data/lib/roebe/shell/yaml/configuration/stop_on_missing_symlink.yml +1 -0
  1367. data/lib/roebe/shell/yaml/configuration/title_renamer.yml +1 -0
  1368. data/lib/roebe/shell/yaml/configuration/translate_unknown_words.yml +1 -0
  1369. data/lib/roebe/shell/yaml/configuration/truncate_long_file_names.yml +1 -0
  1370. data/lib/roebe/shell/yaml/configuration/upload_screenshots.yml +1 -0
  1371. data/lib/roebe/shell/yaml/configuration/use_aliases.yml +1 -0
  1372. data/lib/roebe/shell/yaml/configuration/use_colours.yml +1 -0
  1373. data/lib/roebe/shell/yaml/configuration/use_dictionary.yml +1 -0
  1374. data/lib/roebe/shell/yaml/configuration/use_irb_drop.yml +1 -0
  1375. data/lib/roebe/shell/yaml/configuration/use_irc.yml +1 -0
  1376. data/lib/roebe/shell/yaml/configuration/use_konsole_colours.yml +1 -0
  1377. data/lib/roebe/shell/yaml/configuration/use_readline.yml +1 -0
  1378. data/lib/roebe/shell/yaml/configuration/video_collection.yml +1 -0
  1379. data/lib/roebe/shell/yaml/configuration/video_player.yml +1 -0
  1380. data/lib/roebe/shell/yaml/configuration/which_bin_shell_to_use.yml +1 -0
  1381. data/lib/roebe/shell/yaml/configuration/which_shell.yml +1 -0
  1382. data/lib/roebe/shell/yaml/default_apps.yml +7 -0
  1383. data/lib/roebe/shell/yaml/ignore_these_last_commands.yml +12 -0
  1384. data/lib/roebe/shell/yaml/lazy_load_these_components.yml +51 -0
  1385. data/lib/roebe/shell_scripts/README.md +13 -0
  1386. data/lib/roebe/shell_scripts/bashrc +39 -0
  1387. data/lib/roebe/shell_scripts/check_bootloader.sh +30 -0
  1388. data/lib/roebe/shell_scripts/cliner.sh +98 -0
  1389. data/lib/roebe/shell_scripts/colour_grey_matrix.sh +7 -0
  1390. data/lib/roebe/shell_scripts/coloured_calendar.sh +25 -0
  1391. data/lib/roebe/shell_scripts/compile_ruby.sh +58 -0
  1392. data/lib/roebe/shell_scripts/completion_for_rf.sh +1065 -0
  1393. data/lib/roebe/shell_scripts/count_down.sh +13 -0
  1394. data/lib/roebe/shell_scripts/create_new_file.sh +25 -0
  1395. data/lib/roebe/shell_scripts/custom_prompts.sh +39 -0
  1396. data/lib/roebe/shell_scripts/do_install.sh +24 -0
  1397. data/lib/roebe/shell_scripts/do_stripped_install.sh +22 -0
  1398. data/lib/roebe/shell_scripts/echo_loop_example.sh +4 -0
  1399. data/lib/roebe/shell_scripts/extname.sh +21 -0
  1400. data/lib/roebe/shell_scripts/extract.sh +42 -0
  1401. data/lib/roebe/shell_scripts/extract_archive.sh +59 -0
  1402. data/lib/roebe/shell_scripts/first_character.sh +31 -0
  1403. data/lib/roebe/shell_scripts/how_to_obtain_user_input.sh +17 -0
  1404. data/lib/roebe/shell_scripts/install_base_roebe.sh +41 -0
  1405. data/lib/roebe/shell_scripts/lfs/001_binutils_1.sh +19 -0
  1406. data/lib/roebe/shell_scripts/lfs/002_gcc_1.sh +36 -0
  1407. data/lib/roebe/shell_scripts/lfs/003_linux_1.sh +24 -0
  1408. data/lib/roebe/shell_scripts/lfs/004_glibc_1.sh +42 -0
  1409. data/lib/roebe/shell_scripts/lfs/005_libstdc++_1.sh +25 -0
  1410. data/lib/roebe/shell_scripts/lfs/006_m4_2.sh +22 -0
  1411. data/lib/roebe/shell_scripts/lfs/007_ncurses_2.sh +39 -0
  1412. data/lib/roebe/shell_scripts/lfs/008_bash_2.sh +21 -0
  1413. data/lib/roebe/shell_scripts/lfs/009_coreutils_2.sh +25 -0
  1414. data/lib/roebe/shell_scripts/lfs/010_diffutils_2.sh +20 -0
  1415. data/lib/roebe/shell_scripts/lfs/011_file_2.sh +25 -0
  1416. data/lib/roebe/shell_scripts/lfs/012_findutils_2.sh +20 -0
  1417. data/lib/roebe/shell_scripts/lfs/013_gawk_2.sh +21 -0
  1418. data/lib/roebe/shell_scripts/lfs/014_grep_2.sh +20 -0
  1419. data/lib/roebe/shell_scripts/lfs/015_gzip_2.sh +20 -0
  1420. data/lib/roebe/shell_scripts/lfs/016_make_2.sh +20 -0
  1421. data/lib/roebe/shell_scripts/lfs/017_patch_2.sh +17 -0
  1422. data/lib/roebe/shell_scripts/lfs/018_sed_2.sh +19 -0
  1423. data/lib/roebe/shell_scripts/lfs/019_tar_2.sh +16 -0
  1424. data/lib/roebe/shell_scripts/lfs/020_xz_2.sh +15 -0
  1425. data/lib/roebe/shell_scripts/lfs/021_binutils_2.sh +30 -0
  1426. data/lib/roebe/shell_scripts/lfs/022_gcc_2.sh +50 -0
  1427. data/lib/roebe/shell_scripts/lfs/README.md +28 -0
  1428. data/lib/roebe/shell_scripts/lfs/lfs_build_variables.sh +247 -0
  1429. data/lib/roebe/shell_scripts/lfs/lfs_variables.sh +31 -0
  1430. data/lib/roebe/shell_scripts/lfs/libstdc++_2.sh +20 -0
  1431. data/lib/roebe/shell_scripts/lfs/ruby_2.sh +11 -0
  1432. data/lib/roebe/shell_scripts/list_colours.sh +25 -0
  1433. data/lib/roebe/shell_scripts/locales.sh +15 -0
  1434. data/lib/roebe/shell_scripts/loop_example.sh +5 -0
  1435. data/lib/roebe/shell_scripts/lower.sh +21 -0
  1436. data/lib/roebe/shell_scripts/misc.sh +327 -0
  1437. data/lib/roebe/shell_scripts/musl_cross_compiler.sh +178 -0
  1438. data/lib/roebe/shell_scripts/no_caps.sh +16 -0
  1439. data/lib/roebe/shell_scripts/number_guessing_game.sh +37 -0
  1440. data/lib/roebe/shell_scripts/parameters_example.sh +58 -0
  1441. data/lib/roebe/shell_scripts/query_parameters.sh +58 -0
  1442. data/lib/roebe/shell_scripts/remove_broken_symlinks_in_the_current_working_directory.sh +1 -0
  1443. data/lib/roebe/shell_scripts/reset_path.sh +15 -0
  1444. data/lib/roebe/shell_scripts/return_random_file.sh +20 -0
  1445. data/lib/roebe/shell_scripts/shell_file_containing_the_html_colours.sh +148 -0
  1446. data/lib/roebe/shell_scripts/show_semigraphic_characters.sh +14 -0
  1447. data/lib/roebe/shell_scripts/show_site_ruby.sh +15 -0
  1448. data/lib/roebe/shell_scripts/source_in_all_completions.sh +9 -0
  1449. data/lib/roebe/shell_scripts/true_ata.sh +34 -0
  1450. data/lib/roebe/shell_scripts/truecolour_line.sh +13 -0
  1451. data/lib/roebe/shell_scripts/zenity_count_to_100.sh +5 -0
  1452. data/lib/roebe/sinatra/README.md +6 -0
  1453. data/lib/roebe/sinatra/erb_example/erb_example.erb +10 -0
  1454. data/lib/roebe/sinatra/erb_example/erb_example.rb +13 -0
  1455. data/lib/roebe/sinatra/inline_template_example/inline_template_example.rb +27 -0
  1456. data/lib/roebe/sinatra/modify_http_response_headers_example/modify_http_response_headers_example.rb +13 -0
  1457. data/lib/roebe/sinatra/multi_urls/multi_urls.rb +29 -0
  1458. data/lib/roebe/sinatra/optional_route.rb +19 -0
  1459. data/lib/roebe/sinatra/query_the_name/query_the_name.rb +7 -0
  1460. data/lib/roebe/sinatra/rock_paper_and_scissors_example/rock_paper_and_scissors_example.rb +51 -0
  1461. data/lib/roebe/sinatra/route_definition_examples/route_definition_examples.rb +25 -0
  1462. data/lib/roebe/sinatra/send_file_example/send_file_example.rb +54 -0
  1463. data/lib/roebe/sinatra/session_counter/session_counter.rb +53 -0
  1464. data/lib/roebe/sinatra/show_the_environment_variables/show_the_environment_variables.rb +9 -0
  1465. data/lib/roebe/sinatra/simple_authentication/simple_authentication.rb +25 -0
  1466. data/lib/roebe/sinatra/simple_hello_world/simple_hello_world.rb +5 -0
  1467. data/lib/roebe/sinatra/sinatra_authentication_example/sinatra_authentication_example.rb +117 -0
  1468. data/lib/roebe/sinatra/sinatra_example_with_rack_component/sinatra_example_with_rack_component.rb +15 -0
  1469. data/lib/roebe/sinatra/subclassing_sinatra_example/subclassing_sinatra_example.rb +19 -0
  1470. data/lib/roebe/snippets/README.md +1 -0
  1471. data/lib/roebe/snippets/first_argument.rb +5 -0
  1472. data/lib/roebe/snippets/obtain_all_descendants.rb +25 -0
  1473. data/lib/roebe/sql_paradise/commands.rb +604 -0
  1474. data/lib/roebe/sql_paradise/create_database.rb +43 -0
  1475. data/lib/roebe/sql_paradise/create_table.rb +47 -0
  1476. data/lib/roebe/sql_paradise/insert_into.rb +77 -0
  1477. data/lib/roebe/sql_paradise/sql_command.rb +22 -0
  1478. data/lib/roebe/sql_paradise/sql_paradise.rb +181 -0
  1479. data/lib/roebe/time/README.md +6 -0
  1480. data/lib/roebe/time/seconds.rb +71 -0
  1481. data/lib/roebe/time/time.rb +117 -0
  1482. data/lib/roebe/toplevel_methods/arrow_keys.rb +37 -0
  1483. data/lib/roebe/toplevel_methods/ascii_paradise.rb +23 -0
  1484. data/lib/roebe/toplevel_methods/autoprune.rb +40 -0
  1485. data/lib/roebe/toplevel_methods/background.rb +90 -0
  1486. data/lib/roebe/toplevel_methods/base64.rb +37 -0
  1487. data/lib/roebe/toplevel_methods/beautify_system.rb +25 -0
  1488. data/lib/roebe/toplevel_methods/blinking_cursor.rb +88 -0
  1489. data/lib/roebe/toplevel_methods/boku_opening_times.rb +30 -0
  1490. data/lib/roebe/toplevel_methods/build_all_my_local_gems.rb +39 -0
  1491. data/lib/roebe/toplevel_methods/bundle_exam_results.rb +48 -0
  1492. data/lib/roebe/toplevel_methods/c_debug.rb +22 -0
  1493. data/lib/roebe/toplevel_methods/calculate_bmi.rb +41 -0
  1494. data/lib/roebe/toplevel_methods/calculate_hypotenuse.rb +26 -0
  1495. data/lib/roebe/toplevel_methods/chained.rb +19 -0
  1496. data/lib/roebe/toplevel_methods/chdir.rb +44 -0
  1497. data/lib/roebe/toplevel_methods/check_whether_an_internet_connection_is_available.rb +38 -0
  1498. data/lib/roebe/toplevel_methods/chroot.rb +170 -0
  1499. data/lib/roebe/toplevel_methods/cliner.rb +69 -0
  1500. data/lib/roebe/toplevel_methods/colourize_files_and_directories.rb +69 -0
  1501. data/lib/roebe/toplevel_methods/colourized_tokenitor.rb +56 -0
  1502. data/lib/roebe/toplevel_methods/convert_global_env.rb +34 -0
  1503. data/lib/roebe/toplevel_methods/copy_setup_rb_file.rb +27 -0
  1504. data/lib/roebe/toplevel_methods/copy_the_linux_kernel.rb +38 -0
  1505. data/lib/roebe/toplevel_methods/cp_to_here.rb +34 -0
  1506. data/lib/roebe/toplevel_methods/crazy_make_mode.rb +70 -0
  1507. data/lib/roebe/toplevel_methods/create_directory.rb +35 -0
  1508. data/lib/roebe/toplevel_methods/create_directory_layout.rb +58 -0
  1509. data/lib/roebe/toplevel_methods/create_this_c_file.rb +36 -0
  1510. data/lib/roebe/toplevel_methods/disable.rb +27 -0
  1511. data/lib/roebe/toplevel_methods/display_array.rb +97 -0
  1512. data/lib/roebe/toplevel_methods/display_mbr.rb +33 -0
  1513. data/lib/roebe/toplevel_methods/does_this_program_exist.rb +57 -0
  1514. data/lib/roebe/toplevel_methods/does_this_terminal_support_unicode.rb +27 -0
  1515. data/lib/roebe/toplevel_methods/downcase_all_entries_in_the_current_directory.rb +43 -0
  1516. data/lib/roebe/toplevel_methods/download_certdata.rb +29 -0
  1517. data/lib/roebe/toplevel_methods/download_emojis.rb +48 -0
  1518. data/lib/roebe/toplevel_methods/e.rb +33 -0
  1519. data/lib/roebe/toplevel_methods/editor.rb +47 -0
  1520. data/lib/roebe/toplevel_methods/enable.rb +27 -0
  1521. data/lib/roebe/toplevel_methods/env.rb +40 -0
  1522. data/lib/roebe/toplevel_methods/esystem.rb +22 -0
  1523. data/lib/roebe/toplevel_methods/extract.rb +53 -0
  1524. data/lib/roebe/toplevel_methods/fibonacci.rb +104 -0
  1525. data/lib/roebe/toplevel_methods/files.rb +350 -0
  1526. data/lib/roebe/toplevel_methods/generate_konsole_css_file.rb +82 -0
  1527. data/lib/roebe/toplevel_methods/grab_colour.rb +31 -0
  1528. data/lib/roebe/toplevel_methods/halloween.rb +104 -0
  1529. data/lib/roebe/toplevel_methods/hello_world.rb +28 -0
  1530. data/lib/roebe/toplevel_methods/heredocs.rb +28 -0
  1531. data/lib/roebe/toplevel_methods/hostname.rb +38 -0
  1532. data/lib/roebe/toplevel_methods/human_readable.rb +41 -0
  1533. data/lib/roebe/toplevel_methods/images.rb +28 -0
  1534. data/lib/roebe/toplevel_methods/important_pdf_files.rb +131 -0
  1535. data/lib/roebe/toplevel_methods/increase_volume.rb +19 -0
  1536. data/lib/roebe/toplevel_methods/install_and_update_rcfiles.rb +26 -0
  1537. data/lib/roebe/toplevel_methods/install_linux_kernel_api_headers.rb +50 -0
  1538. data/lib/roebe/toplevel_methods/install_nss.rb +52 -0
  1539. data/lib/roebe/toplevel_methods/install_roebe_addons.rb +68 -0
  1540. data/lib/roebe/toplevel_methods/install_rust.rb +27 -0
  1541. data/lib/roebe/toplevel_methods/install_the_cascadia_font.rb +59 -0
  1542. data/lib/roebe/toplevel_methods/install_the_hack_font.rb +69 -0
  1543. data/lib/roebe/toplevel_methods/install_the_jet_brains_mono_font.rb +55 -0
  1544. data/lib/roebe/toplevel_methods/install_this_font.rb +80 -0
  1545. data/lib/roebe/toplevel_methods/install_this_locale.rb +30 -0
  1546. data/lib/roebe/toplevel_methods/install_vivaldi.rb +33 -0
  1547. data/lib/roebe/toplevel_methods/instance_variable_get.rb +22 -0
  1548. data/lib/roebe/toplevel_methods/irb.rb +34 -0
  1549. data/lib/roebe/toplevel_methods/is_on_roebe.rb +64 -0
  1550. data/lib/roebe/toplevel_methods/jp2a.rb +49 -0
  1551. data/lib/roebe/toplevel_methods/keywords.rb +30 -0
  1552. data/lib/roebe/toplevel_methods/lighttpd.rb +65 -0
  1553. data/lib/roebe/toplevel_methods/load_custom_ruby_files.rb +41 -0
  1554. data/lib/roebe/toplevel_methods/load_yaml.rb +28 -0
  1555. data/lib/roebe/toplevel_methods/mama.rb +25 -0
  1556. data/lib/roebe/toplevel_methods/master_boot_record.rb +84 -0
  1557. data/lib/roebe/toplevel_methods/math.rb +29 -0
  1558. data/lib/roebe/toplevel_methods/misc.rb +475 -0
  1559. data/lib/roebe/toplevel_methods/module_methods.rb +425 -0
  1560. data/lib/roebe/toplevel_methods/mount_procs.rb +25 -0
  1561. data/lib/roebe/toplevel_methods/move_file.rb +38 -0
  1562. data/lib/roebe/toplevel_methods/move_to_torrent_directory.rb +48 -0
  1563. data/lib/roebe/toplevel_methods/multimedia.rb +117 -0
  1564. data/lib/roebe/toplevel_methods/n_characters_in_this_file.rb +45 -0
  1565. data/lib/roebe/toplevel_methods/nano_addons.rb +36 -0
  1566. data/lib/roebe/toplevel_methods/new_konsole_tab.rb +21 -0
  1567. data/lib/roebe/toplevel_methods/newstud/newstud1.rb +24 -0
  1568. data/lib/roebe/toplevel_methods/newstud/newstud10.rb +24 -0
  1569. data/lib/roebe/toplevel_methods/newstud/newstud11.rb +24 -0
  1570. data/lib/roebe/toplevel_methods/newstud/newstud12.rb +24 -0
  1571. data/lib/roebe/toplevel_methods/newstud/newstud13.rb +24 -0
  1572. data/lib/roebe/toplevel_methods/newstud/newstud14.rb +24 -0
  1573. data/lib/roebe/toplevel_methods/newstud/newstud15.rb +24 -0
  1574. data/lib/roebe/toplevel_methods/newstud/newstud16.rb +24 -0
  1575. data/lib/roebe/toplevel_methods/newstud/newstud17.rb +24 -0
  1576. data/lib/roebe/toplevel_methods/newstud/newstud18.rb +24 -0
  1577. data/lib/roebe/toplevel_methods/newstud/newstud19.rb +24 -0
  1578. data/lib/roebe/toplevel_methods/newstud/newstud2.rb +24 -0
  1579. data/lib/roebe/toplevel_methods/newstud/newstud20.rb +24 -0
  1580. data/lib/roebe/toplevel_methods/newstud/newstud21.rb +24 -0
  1581. data/lib/roebe/toplevel_methods/newstud/newstud22.rb +24 -0
  1582. data/lib/roebe/toplevel_methods/newstud/newstud23.rb +24 -0
  1583. data/lib/roebe/toplevel_methods/newstud/newstud24.rb +24 -0
  1584. data/lib/roebe/toplevel_methods/newstud/newstud25.rb +24 -0
  1585. data/lib/roebe/toplevel_methods/newstud/newstud3.rb +24 -0
  1586. data/lib/roebe/toplevel_methods/newstud/newstud4.rb +24 -0
  1587. data/lib/roebe/toplevel_methods/newstud/newstud5.rb +24 -0
  1588. data/lib/roebe/toplevel_methods/newstud/newstud6.rb +24 -0
  1589. data/lib/roebe/toplevel_methods/newstud/newstud7.rb +24 -0
  1590. data/lib/roebe/toplevel_methods/newstud/newstud8.rb +24 -0
  1591. data/lib/roebe/toplevel_methods/newstud/newstud9.rb +24 -0
  1592. data/lib/roebe/toplevel_methods/newstud.rb +23 -0
  1593. data/lib/roebe/toplevel_methods/no_caps.rb +29 -0
  1594. data/lib/roebe/toplevel_methods/ntrad.rb +36 -0
  1595. data/lib/roebe/toplevel_methods/open_in_browser.rb +39 -0
  1596. data/lib/roebe/toplevel_methods/open_in_editor.rb +29 -0
  1597. data/lib/roebe/toplevel_methods/open_in_editor_and_browser.rb +38 -0
  1598. data/lib/roebe/toplevel_methods/open_ports.rb +59 -0
  1599. data/lib/roebe/toplevel_methods/opnn.rb +31 -0
  1600. data/lib/roebe/toplevel_methods/permanently_set_project_base_directory_to.rb +40 -0
  1601. data/lib/roebe/toplevel_methods/platform.rb +46 -0
  1602. data/lib/roebe/toplevel_methods/pp_output.rb +31 -0
  1603. data/lib/roebe/toplevel_methods/prime_numbers.rb +22 -0
  1604. data/lib/roebe/toplevel_methods/programs_directory.rb +29 -0
  1605. data/lib/roebe/toplevel_methods/purgeboth.rb +51 -0
  1606. data/lib/roebe/toplevel_methods/puts_this.rb +29 -0
  1607. data/lib/roebe/toplevel_methods/rds.rb +33 -0
  1608. data/lib/roebe/toplevel_methods/regex.rb +87 -0
  1609. data/lib/roebe/toplevel_methods/register_sigint.rb +67 -0
  1610. data/lib/roebe/toplevel_methods/remove_user.rb +29 -0
  1611. data/lib/roebe/toplevel_methods/repetition_pattern.rb +38 -0
  1612. data/lib/roebe/toplevel_methods/replace_leading_file_name.rb +35 -0
  1613. data/lib/roebe/toplevel_methods/replace_localhost_with_data.rb +39 -0
  1614. data/lib/roebe/toplevel_methods/report_classes.rb +51 -0
  1615. data/lib/roebe/toplevel_methods/report_the_location_of_the_default_browser.rb +40 -0
  1616. data/lib/roebe/toplevel_methods/require_this_roebe_class.rb +23 -0
  1617. data/lib/roebe/toplevel_methods/return_all_remote_entries_from_this_url.rb +38 -0
  1618. data/lib/roebe/toplevel_methods/return_date.rb +23 -0
  1619. data/lib/roebe/toplevel_methods/return_even_numbered_lines_from_this_file.rb +37 -0
  1620. data/lib/roebe/toplevel_methods/return_pwd.rb +16 -0
  1621. data/lib/roebe/toplevel_methods/rinstall2.rb +115 -0
  1622. data/lib/roebe/toplevel_methods/rubyzip.rb +85 -0
  1623. data/lib/roebe/toplevel_methods/run_this_file_in_the_background.rb +26 -0
  1624. data/lib/roebe/toplevel_methods/sanitize_url.rb +74 -0
  1625. data/lib/roebe/toplevel_methods/set_ten_aliases.rb +25 -0
  1626. data/lib/roebe/toplevel_methods/setup.rb +37 -0
  1627. data/lib/roebe/toplevel_methods/show_beauty_string.rb +27 -0
  1628. data/lib/roebe/toplevel_methods/show_processes.rb +31 -0
  1629. data/lib/roebe/toplevel_methods/silent_redirection.rb +17 -0
  1630. data/lib/roebe/toplevel_methods/sitelibdir.rb +24 -0
  1631. data/lib/roebe/toplevel_methods/studium1.rb +30 -0
  1632. data/lib/roebe/toplevel_methods/time.rb +173 -0
  1633. data/lib/roebe/toplevel_methods/to_bool.rb +31 -0
  1634. data/lib/roebe/toplevel_methods/to_camelcase.rb +19 -0
  1635. data/lib/roebe/toplevel_methods/to_mp3.rb +40 -0
  1636. data/lib/roebe/toplevel_methods/to_underscore.rb +36 -0
  1637. data/lib/roebe/toplevel_methods/tokenitor.rb +29 -0
  1638. data/lib/roebe/toplevel_methods/trad.rb +56 -0
  1639. data/lib/roebe/toplevel_methods/unicode/README.md +1 -0
  1640. data/lib/roebe/toplevel_methods/unicode/colourful_unicode_snowmen.rb +151 -0
  1641. data/lib/roebe/toplevel_methods/unicode/completed.rb +57 -0
  1642. data/lib/roebe/toplevel_methods/unicode/decompose_this_unicode_symbol.rb +26 -0
  1643. data/lib/roebe/toplevel_methods/unicode/display_unicode_snowman.rb +31 -0
  1644. data/lib/roebe/toplevel_methods/unicode/download_unicode_dataset.rb +31 -0
  1645. data/lib/roebe/toplevel_methods/unicode/map_input_to_unicode_symbol.rb +249 -0
  1646. data/lib/roebe/toplevel_methods/unicode/popular_unicode_symbols.rb +1079 -0
  1647. data/lib/roebe/toplevel_methods/unicode/return_all_unicode_symbols.rb +26 -0
  1648. data/lib/roebe/toplevel_methods/unicode/unicode_block_elements.rb +255 -0
  1649. data/lib/roebe/toplevel_methods/unicode/unicode_chess_symbols.rb +162 -0
  1650. data/lib/roebe/toplevel_methods/update_pciids.rb +71 -0
  1651. data/lib/roebe/toplevel_methods/update_the_main_pdf_viewer_file_with_this_program.rb +55 -0
  1652. data/lib/roebe/toplevel_methods/variables.rb +26 -0
  1653. data/lib/roebe/toplevel_methods/verbose_truth.rb +23 -0
  1654. data/lib/roebe/toplevel_methods/video.rb +40 -0
  1655. data/lib/roebe/toplevel_methods/warning.rb +173 -0
  1656. data/lib/roebe/toplevel_methods/webrick.rb +80 -0
  1657. data/lib/roebe/toplevel_methods/wget.rb +17 -0
  1658. data/lib/roebe/toplevel_methods/whois.rb +36 -0
  1659. data/lib/roebe/toplevel_methods/windows.rb +22 -0
  1660. data/lib/roebe/toplevel_methods/wlan/bring_up_this_wlan_device.rb +51 -0
  1661. data/lib/roebe/toplevel_methods/wlan/scan_for_wlan_spots.rb +39 -0
  1662. data/lib/roebe/toplevel_methods/word_frequencies.rb +55 -0
  1663. data/lib/roebe/toplevel_methods/write_what_into.rb +86 -0
  1664. data/lib/roebe/toplevel_methods/xorg_buffer.rb +30 -0
  1665. data/lib/roebe/toplevel_methods/zlib.rb +57 -0
  1666. data/lib/roebe/urxvt/config +7 -0
  1667. data/lib/roebe/validation/README.md +3 -0
  1668. data/lib/roebe/validation/validate_roeberia_environment_variables.rb +128 -0
  1669. data/lib/roebe/version/version.rb +54 -0
  1670. data/lib/roebe/windows/bat/README.md +1 -0
  1671. data/lib/roebe/windows/bat/compile_gtk_application_hello_world_example.bat +1 -0
  1672. data/lib/roebe/windows/bat/screenCapture.bat +282 -0
  1673. data/lib/roebe/windows/doskey.md +50452 -0
  1674. data/lib/roebe/windows/misc.rb +40 -0
  1675. data/lib/roebe/windows/powershell.rb +341 -0
  1676. data/lib/roebe/windows/usb_devices.rb +38 -0
  1677. data/lib/roebe/www/GhostBSD/GhostBSD.cgi +7 -0
  1678. data/lib/roebe/www/GhostBSD/GhostBSD.rb +39 -0
  1679. data/lib/roebe/www/GhostBSD/GhostBSD.sinatra +56 -0
  1680. data/lib/roebe/www/IntelliJ_IDEA/tutorial.cgi +30 -0
  1681. data/lib/roebe/www/LATEX/LATEX.md +29 -0
  1682. data/lib/roebe/www/LEDS/LEDS.cgi +7 -0
  1683. data/lib/roebe/www/LEDS/LEDS.rb +201 -0
  1684. data/lib/roebe/www/LEDS/LEDS.sinatra +58 -0
  1685. data/lib/roebe/www/OLEDS/OLEDS.md +44 -0
  1686. data/lib/roebe/www/RAM/RAM.cgi +7 -0
  1687. data/lib/roebe/www/RAM/RAM.rb +254 -0
  1688. data/lib/roebe/www/RAM/RAM.sinatra +56 -0
  1689. data/lib/roebe/www/REST/REST.md +12 -0
  1690. data/lib/roebe/www/SDL/SDL.cgi +7 -0
  1691. data/lib/roebe/www/SDL/SDL.rb +710 -0
  1692. data/lib/roebe/www/SDL/SDL.sinatra +56 -0
  1693. data/lib/roebe/www/X3D/X3D.cgi +7 -0
  1694. data/lib/roebe/www/X3D/X3D.rb +46 -0
  1695. data/lib/roebe/www/X3D/X3D.sinatra +56 -0
  1696. data/lib/roebe/www/aging/aging.cgi +7 -0
  1697. data/lib/roebe/www/aging/aging.rb +1229 -0
  1698. data/lib/roebe/www/aging/aging.sinatra +56 -0
  1699. data/lib/roebe/www/aids/aids.cgi +7 -0
  1700. data/lib/roebe/www/aids/aids.rb +240 -0
  1701. data/lib/roebe/www/aids/aids.sinatra +56 -0
  1702. data/lib/roebe/www/ajax/ajax.cgi +7 -0
  1703. data/lib/roebe/www/ajax/ajax.rb +88 -0
  1704. data/lib/roebe/www/ajax/ajax.sinatra +56 -0
  1705. data/lib/roebe/www/algorithms/algorithms.cgi +7 -0
  1706. data/lib/roebe/www/algorithms/algorithms.rb +68 -0
  1707. data/lib/roebe/www/algorithms/algorithms.sinatra +56 -0
  1708. data/lib/roebe/www/allegro/allegro.cgi +7 -0
  1709. data/lib/roebe/www/allegro/allegro.rb +396 -0
  1710. data/lib/roebe/www/allegro/allegro.sinatra +56 -0
  1711. data/lib/roebe/www/amino_acids/amino_acids.cgi +7 -0
  1712. data/lib/roebe/www/amino_acids/amino_acids.rb +34 -0
  1713. data/lib/roebe/www/amino_acids/amino_acids.sinatra +56 -0
  1714. data/lib/roebe/www/amusing_bits/fussball_zitate.cgi +7 -0
  1715. data/lib/roebe/www/amusing_bits/fussball_zitate.rb +182 -0
  1716. data/lib/roebe/www/amusing_bits/fussball_zitate.sinatra +56 -0
  1717. data/lib/roebe/www/amusing_bits/george_bush/george_bush.cgi +7 -0
  1718. data/lib/roebe/www/amusing_bits/george_bush/george_bush.rb +189 -0
  1719. data/lib/roebe/www/amusing_bits/george_bush/george_bush.sinatra +56 -0
  1720. data/lib/roebe/www/amusing_bits/lustige_menschen/lustige_menschen.cgi +7 -0
  1721. data/lib/roebe/www/amusing_bits/lustige_menschen/lustige_menschen.rb +138 -0
  1722. data/lib/roebe/www/amusing_bits/lustige_menschen/lustige_menschen.sinatra +56 -0
  1723. data/lib/roebe/www/amusing_bits/lustige_tiere/lustige_tiere.cgi +9 -0
  1724. data/lib/roebe/www/amusing_bits/lustige_tiere/lustige_tiere.rb +209 -0
  1725. data/lib/roebe/www/amusing_bits/lustige_tiere/lustige_tiere.sinatra +56 -0
  1726. data/lib/roebe/www/amusing_bits/the_iraq_war/the_iraq_war.cgi +7 -0
  1727. data/lib/roebe/www/amusing_bits/the_iraq_war/the_iraq_war.rb +57 -0
  1728. data/lib/roebe/www/amusing_bits/the_iraq_war/the_iraq_war.sinatra +56 -0
  1729. data/lib/roebe/www/anthropology/anthropology.cgi +7 -0
  1730. data/lib/roebe/www/anthropology/anthropology.rb +26 -0
  1731. data/lib/roebe/www/anthropology/anthropology.sinatra +56 -0
  1732. data/lib/roebe/www/antibodies/antibodies.cgi +7 -0
  1733. data/lib/roebe/www/antibodies/antibodies.rb +78 -0
  1734. data/lib/roebe/www/antibodies/antibodies.sinatra +56 -0
  1735. data/lib/roebe/www/ants/ants.cgi +7 -0
  1736. data/lib/roebe/www/ants/ants.rb +145 -0
  1737. data/lib/roebe/www/ants/ants.sinatra +56 -0
  1738. data/lib/roebe/www/ants/news.md +90 -0
  1739. data/lib/roebe/www/apache/apache.cgi +7 -0
  1740. data/lib/roebe/www/apache/apache.rb +1164 -0
  1741. data/lib/roebe/www/apache/apache.sinatra +56 -0
  1742. data/lib/roebe/www/apache/configuration/add_handler.conf +26 -0
  1743. data/lib/roebe/www/apache/configuration/add_type.conf +29 -0
  1744. data/lib/roebe/www/apache/configuration/autogenerated_rewrite_rules.conf +66 -0
  1745. data/lib/roebe/www/apache/configuration/document_root.conf +32 -0
  1746. data/lib/roebe/www/apache/configuration/email.conf +8 -0
  1747. data/lib/roebe/www/apache/configuration/error_log.conf +36 -0
  1748. data/lib/roebe/www/apache/configuration/load_modules.conf +48 -0
  1749. data/lib/roebe/www/apache/configuration/mime_module.conf +11 -0
  1750. data/lib/roebe/www/apache/configuration/php.conf +22 -0
  1751. data/lib/roebe/www/apache/configuration/proxy_html_module.conf +6 -0
  1752. data/lib/roebe/www/apache/configuration/rewrite_rules.conf +137 -0
  1753. data/lib/roebe/www/apache/configuration/ruby.conf +13 -0
  1754. data/lib/roebe/www/apache/configuration/server_name.conf +10 -0
  1755. data/lib/roebe/www/apache/configuration/server_root.conf +6 -0
  1756. data/lib/roebe/www/apache/configuration/unixd_module.conf +22 -0
  1757. data/lib/roebe/www/apple/apple.cgi +7 -0
  1758. data/lib/roebe/www/apple/apple.rb +238 -0
  1759. data/lib/roebe/www/apple/apple.sinatra +56 -0
  1760. data/lib/roebe/www/arduino/arduino.cgi +7 -0
  1761. data/lib/roebe/www/arduino/arduino.rb +255 -0
  1762. data/lib/roebe/www/arduino/arduino.sinatra +56 -0
  1763. data/lib/roebe/www/arduino/sketches/0001_blink.sketch +30 -0
  1764. data/lib/roebe/www/ariolante_und_das_k/303/244tzchen/ariolante_und_das_k/303/244tzchen.cgi +7 -0
  1765. data/lib/roebe/www/ariolante_und_das_k/303/244tzchen/ariolante_und_das_k/303/244tzchen.rb +229 -0
  1766. data/lib/roebe/www/ariolante_und_das_k/303/244tzchen/ariolante_und_das_k/303/244tzchen.sinatra +61 -0
  1767. data/lib/roebe/www/armaturen/armaturen.cgi +7 -0
  1768. data/lib/roebe/www/armaturen/armaturen.rb +93 -0
  1769. data/lib/roebe/www/armaturen/armaturen.sinatra +56 -0
  1770. data/lib/roebe/www/art/art.cgi +7 -0
  1771. data/lib/roebe/www/art/art.rb +274 -0
  1772. data/lib/roebe/www/art/art.sinatra +52 -0
  1773. data/lib/roebe/www/artificial_intelligence/artificial_intelligence.cgi +7 -0
  1774. data/lib/roebe/www/artificial_intelligence/artificial_intelligence.rb +515 -0
  1775. data/lib/roebe/www/artificial_intelligence/artificial_intelligence.sinatra +56 -0
  1776. data/lib/roebe/www/atomkraftwerke/atomkraftwerke.cgi +7 -0
  1777. data/lib/roebe/www/atomkraftwerke/atomkraftwerke.rb +320 -0
  1778. data/lib/roebe/www/atomkraftwerke/atomkraftwerke.sinatra +56 -0
  1779. data/lib/roebe/www/bacteria/bacteria.cgi +7 -0
  1780. data/lib/roebe/www/bacteria/bacteria.rb +32 -0
  1781. data/lib/roebe/www/bacteria/bacteria.sinatra +56 -0
  1782. data/lib/roebe/www/batterien/batterien.cgi +9 -0
  1783. data/lib/roebe/www/batterien/batterien.rb +158 -0
  1784. data/lib/roebe/www/batterien/batterien.sinatra +56 -0
  1785. data/lib/roebe/www/beamte/beamte.cgi +7 -0
  1786. data/lib/roebe/www/beamte/beamte.rb +19 -0
  1787. data/lib/roebe/www/beamte/beamte.sinatra +56 -0
  1788. data/lib/roebe/www/beauty/beauty.cgi +9 -0
  1789. data/lib/roebe/www/beauty/beauty.rb +130 -0
  1790. data/lib/roebe/www/beauty/beauty.sinatra +56 -0
  1791. data/lib/roebe/www/biobricks/biobricks.cgi +7 -0
  1792. data/lib/roebe/www/biobricks/biobricks.rb +19 -0
  1793. data/lib/roebe/www/biobricks/biobricks.sinatra +56 -0
  1794. data/lib/roebe/www/biochemistry/biochemistry.cgi +7 -0
  1795. data/lib/roebe/www/biochemistry/biochemistry.rb +320 -0
  1796. data/lib/roebe/www/biochemistry/biochemistry.sinatra +56 -0
  1797. data/lib/roebe/www/bioinformatics/bioinformatics.cgi +11 -0
  1798. data/lib/roebe/www/bioinformatics/bioinformatics.rb +406 -0
  1799. data/lib/roebe/www/bioinformatics/bioinformatics.sinatra +56 -0
  1800. data/lib/roebe/www/biology/biology.md +9 -0
  1801. data/lib/roebe/www/biomaterials/biomaterials.cgi +7 -0
  1802. data/lib/roebe/www/biomaterials/biomaterials.rb +337 -0
  1803. data/lib/roebe/www/biomaterials/biomaterials.sinatra +56 -0
  1804. data/lib/roebe/www/biotechnology/biotechnology.cgi +7 -0
  1805. data/lib/roebe/www/biotechnology/biotechnology.rb +134 -0
  1806. data/lib/roebe/www/biotechnology/biotechnology.sinatra +56 -0
  1807. data/lib/roebe/www/blender3d/blender3d.cgi +7 -0
  1808. data/lib/roebe/www/blender3d/blender3d.rb +265 -0
  1809. data/lib/roebe/www/blender3d/blender3d.sinatra +56 -0
  1810. data/lib/roebe/www/blog/blog.cgi +9 -0
  1811. data/lib/roebe/www/blog/blog.rb +258 -0
  1812. data/lib/roebe/www/blog/blog.sinatra +56 -0
  1813. data/lib/roebe/www/bluefish/README.md +5 -0
  1814. data/lib/roebe/www/bluefish/STD.bfproject +62 -0
  1815. data/lib/roebe/www/bluefish/STD.bfproject~ +62 -0
  1816. data/lib/roebe/www/bluefish/TODO.md +6 -0
  1817. data/lib/roebe/www/bsd/bsd.cgi +7 -0
  1818. data/lib/roebe/www/bsd/bsd.rb +90 -0
  1819. data/lib/roebe/www/bsd/bsd.sinatra +56 -0
  1820. data/lib/roebe/www/calculator/calculator.cgi +7 -0
  1821. data/lib/roebe/www/calculator/calculator.rb +15 -0
  1822. data/lib/roebe/www/calculator/calculator.sinatra +56 -0
  1823. data/lib/roebe/www/cameras/cameras.cgi +9 -0
  1824. data/lib/roebe/www/cameras/cameras.rb +339 -0
  1825. data/lib/roebe/www/cameras/cameras.sinatra +56 -0
  1826. data/lib/roebe/www/cancer/cancer.cgi +7 -0
  1827. data/lib/roebe/www/cancer/cancer.rb +97 -0
  1828. data/lib/roebe/www/cancer/cancer.sinatra +56 -0
  1829. data/lib/roebe/www/cats/cats.cgi +7 -0
  1830. data/lib/roebe/www/cats/cats.rb +309 -0
  1831. data/lib/roebe/www/cats/cats.sinatra +56 -0
  1832. data/lib/roebe/www/cellbiology/cellbiology.cgi +7 -0
  1833. data/lib/roebe/www/cellbiology/cellbiology.rb +376 -0
  1834. data/lib/roebe/www/cellbiology/cellbiology.sinatra +56 -0
  1835. data/lib/roebe/www/cellulose/cellulose.cgi +7 -0
  1836. data/lib/roebe/www/cellulose/cellulose.rb +28 -0
  1837. data/lib/roebe/www/cellulose/cellulose.sinatra +56 -0
  1838. data/lib/roebe/www/chromium/chromium.cgi +7 -0
  1839. data/lib/roebe/www/chromium/chromium.rb +39 -0
  1840. data/lib/roebe/www/chromium/chromium.sinatra +56 -0
  1841. data/lib/roebe/www/cmake/CMakeTemplate.txt +48 -0
  1842. data/lib/roebe/www/cmake/cmake.cgi +7 -0
  1843. data/lib/roebe/www/cmake/cmake.rb +146 -0
  1844. data/lib/roebe/www/cmake/cmake.sinatra +52 -0
  1845. data/lib/roebe/www/codepages/codepages.cgi +9 -0
  1846. data/lib/roebe/www/codepages/codepages.rb +17 -0
  1847. data/lib/roebe/www/codepages/codepages.sinatra +56 -0
  1848. data/lib/roebe/www/compact_disc/compact_disc.cgi +7 -0
  1849. data/lib/roebe/www/compact_disc/compact_disc.rb +124 -0
  1850. data/lib/roebe/www/compact_disc/compact_disc.sinatra +56 -0
  1851. data/lib/roebe/www/compiling/compiling.cgi +9 -0
  1852. data/lib/roebe/www/compiling/compiling.rb +2578 -0
  1853. data/lib/roebe/www/compiling/compiling.sinatra +52 -0
  1854. data/lib/roebe/www/conference_talks/conference_talks.md +11 -0
  1855. data/lib/roebe/www/conky/conky.cgi +7 -0
  1856. data/lib/roebe/www/conky/conky.rb +132 -0
  1857. data/lib/roebe/www/conky/conky.sinatra +56 -0
  1858. data/lib/roebe/www/conky/my_conkyrc_04.02.2020 +83 -0
  1859. data/lib/roebe/www/consumers/consumers.cgi +7 -0
  1860. data/lib/roebe/www/consumers/consumers.rb +23 -0
  1861. data/lib/roebe/www/consumers/consumers.sinatra +56 -0
  1862. data/lib/roebe/www/covid19/covid19.cgi +10 -0
  1863. data/lib/roebe/www/covid19/covid19.rb +1890 -0
  1864. data/lib/roebe/www/covid19/covid19.sinatra +56 -0
  1865. data/lib/roebe/www/creativity/creativity.cgi +9 -0
  1866. data/lib/roebe/www/creativity/creativity.rb +25 -0
  1867. data/lib/roebe/www/creativity/creativity.sinatra +56 -0
  1868. data/lib/roebe/www/crispr/crispr.cgi +7 -0
  1869. data/lib/roebe/www/crispr/crispr.rb +237 -0
  1870. data/lib/roebe/www/crispr/crispr.sinatra +56 -0
  1871. data/lib/roebe/www/cron/cron.cgi +7 -0
  1872. data/lib/roebe/www/cron/cron.rb +99 -0
  1873. data/lib/roebe/www/cron/cron.sinatra +56 -0
  1874. data/lib/roebe/www/cyanobacteria/cyanobacteria.cgi +7 -0
  1875. data/lib/roebe/www/cyanobacteria/cyanobacteria.rb +47 -0
  1876. data/lib/roebe/www/cyanobacteria/cyanobacteria.sinatra +56 -0
  1877. data/lib/roebe/www/cytogenetics/cytogenetics.cgi +7 -0
  1878. data/lib/roebe/www/cytogenetics/cytogenetics.rb +18 -0
  1879. data/lib/roebe/www/cytogenetics/cytogenetics.sinatra +56 -0
  1880. data/lib/roebe/www/databases/postgresql/postgresql.cgi +7 -0
  1881. data/lib/roebe/www/databases/postgresql/postgresql.rb +321 -0
  1882. data/lib/roebe/www/databases/postgresql/postgresql.sinatra +56 -0
  1883. data/lib/roebe/www/databases/postgresql/psqlrc +22 -0
  1884. data/lib/roebe/www/databases/sqlite/sqlite.cgi +7 -0
  1885. data/lib/roebe/www/databases/sqlite/sqlite.rb +624 -0
  1886. data/lib/roebe/www/databases/sqlite/sqlite.sinatra +56 -0
  1887. data/lib/roebe/www/designing/SLOGANS.md +3 -0
  1888. data/lib/roebe/www/designing_and_art/designing_and_art.cgi +9 -0
  1889. data/lib/roebe/www/designing_and_art/designing_and_art.rb +856 -0
  1890. data/lib/roebe/www/designing_and_art/designing_and_art.sinatra +56 -0
  1891. data/lib/roebe/www/designing_on_linux/designing_on_linux.cgi +7 -0
  1892. data/lib/roebe/www/designing_on_linux/designing_on_linux.rb +66 -0
  1893. data/lib/roebe/www/designing_on_linux/designing_on_linux.sinatra +56 -0
  1894. data/lib/roebe/www/developmental_biology/developmental_biology.cgi +7 -0
  1895. data/lib/roebe/www/developmental_biology/developmental_biology.rb +84 -0
  1896. data/lib/roebe/www/developmental_biology/developmental_biology.sinatra +56 -0
  1897. data/lib/roebe/www/die_erde/die_erde.cgi +7 -0
  1898. data/lib/roebe/www/die_erde/die_erde.rb +43 -0
  1899. data/lib/roebe/www/die_erde/die_erde.sinatra +56 -0
  1900. data/lib/roebe/www/die_herrenlose_katze/die_herrenlose_katze.cgi +7 -0
  1901. data/lib/roebe/www/die_herrenlose_katze/die_herrenlose_katze.rb +477 -0
  1902. data/lib/roebe/www/die_herrenlose_katze/die_herrenlose_katze.sinatra +61 -0
  1903. data/lib/roebe/www/die_katze_im_schnee/die_katze_im_schnee.cgi +7 -0
  1904. data/lib/roebe/www/die_katze_im_schnee/die_katze_im_schnee.rb +302 -0
  1905. data/lib/roebe/www/die_katze_im_schnee/die_katze_im_schnee.sinatra +61 -0
  1906. data/lib/roebe/www/direct_democracy/direct_democracy.cgi +7 -0
  1907. data/lib/roebe/www/direct_democracy/direct_democracy.rb +45 -0
  1908. data/lib/roebe/www/direct_democracy/direct_democracy.sinatra +56 -0
  1909. data/lib/roebe/www/distcc/distcc.cgi +7 -0
  1910. data/lib/roebe/www/distcc/distcc.rb +78 -0
  1911. data/lib/roebe/www/distcc/distcc.sinatra +56 -0
  1912. data/lib/roebe/www/documentation/README.md +3 -0
  1913. data/lib/roebe/www/documentation/documentation.rb +98 -0
  1914. data/lib/roebe/www/dolphin/add_to_vlc_playlist.desktop +12 -0
  1915. data/lib/roebe/www/dosbox/autogenerated_dosbox.conf +776 -0
  1916. data/lib/roebe/www/dosbox/dosbox.cgi +7 -0
  1917. data/lib/roebe/www/dosbox/dosbox.rb +238 -0
  1918. data/lib/roebe/www/dosbox/dosbox.sinatra +52 -0
  1919. data/lib/roebe/www/drucker/drucker.cgi +7 -0
  1920. data/lib/roebe/www/drucker/drucker.rb +253 -0
  1921. data/lib/roebe/www/drucker/drucker.sinatra +56 -0
  1922. data/lib/roebe/www/economy/economy.cgi +7 -0
  1923. data/lib/roebe/www/economy/economy.rb +16 -0
  1924. data/lib/roebe/www/economy/economy.sinatra +56 -0
  1925. data/lib/roebe/www/economy/mieten_und_wohnen.cgi +7 -0
  1926. data/lib/roebe/www/economy/mieten_und_wohnen.rb +37 -0
  1927. data/lib/roebe/www/economy/mieten_und_wohnen.sinatra +56 -0
  1928. data/lib/roebe/www/emacs/emacs.cgi +7 -0
  1929. data/lib/roebe/www/emacs/emacs.rb +71 -0
  1930. data/lib/roebe/www/emacs/emacs.sinatra +56 -0
  1931. data/lib/roebe/www/embeddable_interface.rb +50 -0
  1932. data/lib/roebe/www/encodings/encodings.cgi +7 -0
  1933. data/lib/roebe/www/encodings/encodings.rb +80 -0
  1934. data/lib/roebe/www/encodings/encodings.sinatra +56 -0
  1935. data/lib/roebe/www/english/english.cgi +7 -0
  1936. data/lib/roebe/www/english/english.rb +63 -0
  1937. data/lib/roebe/www/english/english.sinatra +52 -0
  1938. data/lib/roebe/www/erben/erben.cgi +7 -0
  1939. data/lib/roebe/www/erben/erben.rb +41 -0
  1940. data/lib/roebe/www/erben/erben.sinatra +56 -0
  1941. data/lib/roebe/www/ern/303/244hrung/ern/303/244hrung.cgi +7 -0
  1942. data/lib/roebe/www/ern/303/244hrung/ern/303/244hrung.rb +253 -0
  1943. data/lib/roebe/www/ern/303/244hrung/ern/303/244hrung.sinatra +56 -0
  1944. data/lib/roebe/www/ethik/ethik.md +4 -0
  1945. data/lib/roebe/www/euphemismen_und_werturteile/euphemismen_und_werturteile.cgi +9 -0
  1946. data/lib/roebe/www/euphemismen_und_werturteile/euphemismen_und_werturteile.rb +291 -0
  1947. data/lib/roebe/www/euphemismen_und_werturteile/euphemismen_und_werturteile.sinatra +56 -0
  1948. data/lib/roebe/www/evolution/evolution.cgi +7 -0
  1949. data/lib/roebe/www/evolution/evolution.rb +281 -0
  1950. data/lib/roebe/www/evolution/evolution.sinatra +52 -0
  1951. data/lib/roebe/www/excel/excel.cgi +7 -0
  1952. data/lib/roebe/www/excel/excel.rb +23 -0
  1953. data/lib/roebe/www/excel/excel.sinatra +56 -0
  1954. data/lib/roebe/www/festplatten/festplatten.cgi +7 -0
  1955. data/lib/roebe/www/festplatten/festplatten.rb +804 -0
  1956. data/lib/roebe/www/festplatten/festplatten.sinatra +56 -0
  1957. data/lib/roebe/www/fire/fire.cgi +9 -0
  1958. data/lib/roebe/www/fire/fire.rb +802 -0
  1959. data/lib/roebe/www/fire/fire.sinatra +56 -0
  1960. data/lib/roebe/www/firefox/firefox.cgi +11 -0
  1961. data/lib/roebe/www/firefox/firefox.rb +1324 -0
  1962. data/lib/roebe/www/firefox/firefox.sinatra +56 -0
  1963. data/lib/roebe/www/food/food.cgi +7 -0
  1964. data/lib/roebe/www/food/food.rb +252 -0
  1965. data/lib/roebe/www/food/food.sinatra +56 -0
  1966. data/lib/roebe/www/fox/fox.cgi +7 -0
  1967. data/lib/roebe/www/fox/fox.rb +890 -0
  1968. data/lib/roebe/www/fox/fox.sinatra +56 -0
  1969. data/lib/roebe/www/ftp/ftp.cgi +7 -0
  1970. data/lib/roebe/www/ftp/ftp.rb +134 -0
  1971. data/lib/roebe/www/ftp/ftp.sinatra +56 -0
  1972. data/lib/roebe/www/funk/funk.cgi +7 -0
  1973. data/lib/roebe/www/funk/funk.rb +385 -0
  1974. data/lib/roebe/www/funk/funk.sinatra +56 -0
  1975. data/lib/roebe/www/gedichte/gedichte.cgi +7 -0
  1976. data/lib/roebe/www/gedichte/gedichte.rb +13 -0
  1977. data/lib/roebe/www/gedichte/gedichte.sinatra +56 -0
  1978. data/lib/roebe/www/gene_expression/SLOGANS.md +22 -0
  1979. data/lib/roebe/www/gene_therapy/06.08.2008_Human_gene_therapy_for_RPE65_isomerase_deficiency.md +29 -0
  1980. data/lib/roebe/www/gene_therapy/28.11.2008_Gentherapie_am_Auge_erfolgreich.md +43 -0
  1981. data/lib/roebe/www/gene_therapy/31.01.2000_Earlier_Gene_Test_Deaths_Not_Reported.md +62 -0
  1982. data/lib/roebe/www/gene_therapy/SLOGANS.md +8 -0
  1983. data/lib/roebe/www/genetics/genetics.cgi +7 -0
  1984. data/lib/roebe/www/genetics/genetics.rb +1128 -0
  1985. data/lib/roebe/www/genetics/genetics.sinatra +52 -0
  1986. data/lib/roebe/www/genomics/genomics.cgi +7 -0
  1987. data/lib/roebe/www/genomics/genomics.rb +73 -0
  1988. data/lib/roebe/www/genomics/genomics.sinatra +56 -0
  1989. data/lib/roebe/www/gesundheit/diabetes/diabetes.cgi +7 -0
  1990. data/lib/roebe/www/gesundheit/diabetes/diabetes.rb +71 -0
  1991. data/lib/roebe/www/gesundheit/diabetes/diabetes.sinatra +56 -0
  1992. data/lib/roebe/www/gesundheit/metabolic_syndrome/metabolic_syndrome.cgi +7 -0
  1993. data/lib/roebe/www/gesundheit/metabolic_syndrome/metabolic_syndrome.rb +47 -0
  1994. data/lib/roebe/www/gesundheit/metabolic_syndrome/metabolic_syndrome.sinatra +56 -0
  1995. data/lib/roebe/www/gesundheit/myokarditis/myokarditis.cgi +7 -0
  1996. data/lib/roebe/www/gesundheit/myokarditis/myokarditis.rb +113 -0
  1997. data/lib/roebe/www/gesundheit/myokarditis/myokarditis.sinatra +56 -0
  1998. data/lib/roebe/www/gimp/gimp.cgi +7 -0
  1999. data/lib/roebe/www/gimp/gimp.rb +1488 -0
  2000. data/lib/roebe/www/gimp/gimp.sinatra +56 -0
  2001. data/lib/roebe/www/ginger_der_bandit/ginger_der_bandit.cgi +7 -0
  2002. data/lib/roebe/www/ginger_der_bandit/ginger_der_bandit.rb +901 -0
  2003. data/lib/roebe/www/ginger_der_bandit/ginger_der_bandit.sinatra +61 -0
  2004. data/lib/roebe/www/git/git.cgi +7 -0
  2005. data/lib/roebe/www/git/git.rb +264 -0
  2006. data/lib/roebe/www/git/git.sinatra +52 -0
  2007. data/lib/roebe/www/git/gitconfig +7 -0
  2008. data/lib/roebe/www/gnuplot/force.dat +16 -0
  2009. data/lib/roebe/www/gnuplot/gnuplot.cgi +7 -0
  2010. data/lib/roebe/www/gnuplot/gnuplot.rb +389 -0
  2011. data/lib/roebe/www/gnuplot/gnuplot.sinatra +56 -0
  2012. data/lib/roebe/www/gnuplot/number_of_eukaryotic_genes.dat +25 -0
  2013. data/lib/roebe/www/gobolinux/gobolinux.cgi +12 -0
  2014. data/lib/roebe/www/gobolinux/gobolinux.rb +1390 -0
  2015. data/lib/roebe/www/gobolinux/gobolinux.sinatra +56 -0
  2016. data/lib/roebe/www/google/google.cgi +7 -0
  2017. data/lib/roebe/www/google/google.rb +32 -0
  2018. data/lib/roebe/www/google/google.sinatra +56 -0
  2019. data/lib/roebe/www/graphviz/graphviz.cgi +7 -0
  2020. data/lib/roebe/www/graphviz/graphviz.rb +196 -0
  2021. data/lib/roebe/www/graphviz/graphviz.sinatra +56 -0
  2022. data/lib/roebe/www/grub/README.md +1 -0
  2023. data/lib/roebe/www/grub/grub.cgi +7 -0
  2024. data/lib/roebe/www/grub/grub.rb +574 -0
  2025. data/lib/roebe/www/grub/grub.sinatra +56 -0
  2026. data/lib/roebe/www/grub/std_menu.lst +88 -0
  2027. data/lib/roebe/www/haiku/haiku.cgi +9 -0
  2028. data/lib/roebe/www/haiku/haiku.rb +73 -0
  2029. data/lib/roebe/www/haiku/haiku.sinatra +56 -0
  2030. data/lib/roebe/www/hardware/computersysteme/computersysteme.cgi +7 -0
  2031. data/lib/roebe/www/hardware/computersysteme/computersysteme.rb +365 -0
  2032. data/lib/roebe/www/hardware/computersysteme/computersysteme.sinatra +56 -0
  2033. data/lib/roebe/www/hardware/heizk/303/266rper/heizk/303/266rper.cgi +7 -0
  2034. data/lib/roebe/www/hardware/heizk/303/266rper/heizk/303/266rper.rb +55 -0
  2035. data/lib/roebe/www/hardware/heizk/303/266rper/heizk/303/266rper.sinatra +56 -0
  2036. data/lib/roebe/www/hardware/kabel_und_adaptoren/kabel_und_adaptoren.cgi +7 -0
  2037. data/lib/roebe/www/hardware/kabel_und_adaptoren/kabel_und_adaptoren.rb +339 -0
  2038. data/lib/roebe/www/hardware/kabel_und_adaptoren/kabel_und_adaptoren.sinatra +56 -0
  2039. data/lib/roebe/www/hardware/schrauben_muttern_und_n/303/244gel/schrauben_muttern_und_n/303/244gel.cgi +7 -0
  2040. data/lib/roebe/www/hardware/schrauben_muttern_und_n/303/244gel/schrauben_muttern_und_n/303/244gel.rb +99 -0
  2041. data/lib/roebe/www/hardware/schrauben_muttern_und_n/303/244gel/schrauben_muttern_und_n/303/244gel.sinatra +56 -0
  2042. data/lib/roebe/www/hardware_assembly/hardware_assembly.cgi +10 -0
  2043. data/lib/roebe/www/hardware_assembly/hardware_assembly.rb +265 -0
  2044. data/lib/roebe/www/hardware_assembly/hardware_assembly.sinatra +56 -0
  2045. data/lib/roebe/www/heart/heart.cgi +7 -0
  2046. data/lib/roebe/www/heart/heart.rb +53 -0
  2047. data/lib/roebe/www/heart/heart.sinatra +56 -0
  2048. data/lib/roebe/www/history/KNOWLEDGE_BITS.md +2 -0
  2049. data/lib/roebe/www/history/yaml/scientific_history.yml +1 -0
  2050. data/lib/roebe/www/hiveos/hiveos.cgi +9 -0
  2051. data/lib/roebe/www/hiveos/hiveos.rb +834 -0
  2052. data/lib/roebe/www/hiveos/hiveos.sinatra +56 -0
  2053. data/lib/roebe/www/htop/htop.md +1 -0
  2054. data/lib/roebe/www/humans_are_funny/humans_are_funny.cgi +7 -0
  2055. data/lib/roebe/www/humans_are_funny/humans_are_funny.rb +21 -0
  2056. data/lib/roebe/www/humans_are_funny/humans_are_funny.sinatra +52 -0
  2057. data/lib/roebe/www/h/303/244user/h/303/244user.cgi +7 -0
  2058. data/lib/roebe/www/h/303/244user/h/303/244user.rb +115 -0
  2059. data/lib/roebe/www/h/303/244user/h/303/244user.sinatra +56 -0
  2060. data/lib/roebe/www/icewm/icewm.cgi +7 -0
  2061. data/lib/roebe/www/icewm/icewm.rb +34 -0
  2062. data/lib/roebe/www/icewm/icewm.sinatra +56 -0
  2063. data/lib/roebe/www/icewm/keys +88 -0
  2064. data/lib/roebe/www/icewm/menu_file +171 -0
  2065. data/lib/roebe/www/icewm/preferences +1043 -0
  2066. data/lib/roebe/www/icewm/programs +322 -0
  2067. data/lib/roebe/www/icewm/theme +11 -0
  2068. data/lib/roebe/www/icewm/toolbar +7 -0
  2069. data/lib/roebe/www/icewm/winoptions +61 -0
  2070. data/lib/roebe/www/ifpi_austria/ifpi_austria.cgi +7 -0
  2071. data/lib/roebe/www/ifpi_austria/ifpi_austria.rb +351 -0
  2072. data/lib/roebe/www/ifpi_austria/ifpi_austria.sinatra +56 -0
  2073. data/lib/roebe/www/immunology/immunology.cgi +7 -0
  2074. data/lib/roebe/www/immunology/immunology.rb +851 -0
  2075. data/lib/roebe/www/immunology/immunology.sinatra +56 -0
  2076. data/lib/roebe/www/individual_page_viewer/individual_page_viewer.cgi +7 -0
  2077. data/lib/roebe/www/individual_page_viewer/individual_page_viewer.rb +41 -0
  2078. data/lib/roebe/www/individual_page_viewer/individual_page_viewer.sinatra +52 -0
  2079. data/lib/roebe/www/inkscape/inkscape.cgi +9 -0
  2080. data/lib/roebe/www/inkscape/inkscape.rb +84 -0
  2081. data/lib/roebe/www/inkscape/inkscape.sinatra +56 -0
  2082. data/lib/roebe/www/inspirational_people/inspirational_people.cgi +11 -0
  2083. data/lib/roebe/www/inspirational_people/inspirational_people.rb +644 -0
  2084. data/lib/roebe/www/inspirational_people/inspirational_people.sinatra +56 -0
  2085. data/lib/roebe/www/interesting_linux_distributions/interesting_linux_distributions.md +71 -0
  2086. data/lib/roebe/www/interviews/interviews.cgi +7 -0
  2087. data/lib/roebe/www/interviews/interviews.rb +14 -0
  2088. data/lib/roebe/www/interviews/interviews.sinatra +56 -0
  2089. data/lib/roebe/www/irc/irc.cgi +7 -0
  2090. data/lib/roebe/www/irc/irc.rb +41 -0
  2091. data/lib/roebe/www/irc/irc.sinatra +56 -0
  2092. data/lib/roebe/www/irc_quotes/irc_quotes.md +835 -0
  2093. data/lib/roebe/www/jobs/jobs.cgi +9 -0
  2094. data/lib/roebe/www/jobs/jobs.rb +83 -0
  2095. data/lib/roebe/www/jobs/jobs.sinatra +56 -0
  2096. data/lib/roebe/www/json/example1.json +18 -0
  2097. data/lib/roebe/www/json/json.cgi +7 -0
  2098. data/lib/roebe/www/json/json.rb +32 -0
  2099. data/lib/roebe/www/json/json.sinatra +56 -0
  2100. data/lib/roebe/www/kaizen/kaizen.cgi +7 -0
  2101. data/lib/roebe/www/kaizen/kaizen.rb +15 -0
  2102. data/lib/roebe/www/kaizen/kaizen.sinatra +56 -0
  2103. data/lib/roebe/www/kde/kde.cgi +1293 -0
  2104. data/lib/roebe/www/kde/kde.rb +162 -0
  2105. data/lib/roebe/www/kde/kde.sinatra +56 -0
  2106. data/lib/roebe/www/kde/konsolerc +40 -0
  2107. data/lib/roebe/www/kde/konsoleui.rc +65 -0
  2108. data/lib/roebe/www/kde/yakuakerc +8 -0
  2109. data/lib/roebe/www/klimawandel/klimawandel.cgi +7 -0
  2110. data/lib/roebe/www/klimawandel/klimawandel.rb +100 -0
  2111. data/lib/roebe/www/klimawandel/klimawandel.sinatra +56 -0
  2112. data/lib/roebe/www/kriminelle_firmen/kriminelle_firmen.cgi +7 -0
  2113. data/lib/roebe/www/kriminelle_firmen/kriminelle_firmen.rb +26 -0
  2114. data/lib/roebe/www/kriminelle_firmen/kriminelle_firmen.sinatra +52 -0
  2115. data/lib/roebe/www/krita/krita.cgi +7 -0
  2116. data/lib/roebe/www/krita/krita.rb +53 -0
  2117. data/lib/roebe/www/krita/krita.sinatra +56 -0
  2118. data/lib/roebe/www/k/303/244se/k/303/244se.cgi +9 -0
  2119. data/lib/roebe/www/k/303/244se/k/303/244se.rb +114 -0
  2120. data/lib/roebe/www/k/303/244se/k/303/244se.sinatra +56 -0
  2121. data/lib/roebe/www/languages/languages.cgi +7 -0
  2122. data/lib/roebe/www/languages/languages.rb +66 -0
  2123. data/lib/roebe/www/languages/languages.sinatra +52 -0
  2124. data/lib/roebe/www/laser/laser.cgi +7 -0
  2125. data/lib/roebe/www/laser/laser.rb +179 -0
  2126. data/lib/roebe/www/laser/laser.sinatra +56 -0
  2127. data/lib/roebe/www/latex/HelloWorld.tex +9 -0
  2128. data/lib/roebe/www/latex/latex.cgi +7 -0
  2129. data/lib/roebe/www/latex/latex.rb +77 -0
  2130. data/lib/roebe/www/latex/latex.sinatra +56 -0
  2131. data/lib/roebe/www/law/law.cgi +7 -0
  2132. data/lib/roebe/www/law/law.rb +932 -0
  2133. data/lib/roebe/www/law/law.sinatra +56 -0
  2134. data/lib/roebe/www/lego/lego.cgi +7 -0
  2135. data/lib/roebe/www/lego/lego.rb +53 -0
  2136. data/lib/roebe/www/lego/lego.sinatra +52 -0
  2137. data/lib/roebe/www/libreoffice/empty_libreoffice_document.docx +0 -0
  2138. data/lib/roebe/www/libreoffice/empty_libreoffice_document.odt +0 -0
  2139. data/lib/roebe/www/libreoffice/empty_libreoffice_presentation.odp +0 -0
  2140. data/lib/roebe/www/libreoffice/empty_libreoffice_spreadsheet.xls +1 -0
  2141. data/lib/roebe/www/libreoffice/libreoffice.cgi +9 -0
  2142. data/lib/roebe/www/libreoffice/libreoffice.rb +66 -0
  2143. data/lib/roebe/www/libreoffice/libreoffice.sinatra +56 -0
  2144. data/lib/roebe/www/libreoffice/macros/README.md +4 -0
  2145. data/lib/roebe/www/libreoffice/macros/hello_world.macro +24 -0
  2146. data/lib/roebe/www/libreoffice/macros/hello_world_in_python.py_macro +7 -0
  2147. data/lib/roebe/www/lighttpd/autogenerated_lighttpd.conf +426 -0
  2148. data/lib/roebe/www/lighttpd/configuration/cgi.conf +21 -0
  2149. data/lib/roebe/www/lighttpd/configuration/dir_listing.conf +15 -0
  2150. data/lib/roebe/www/lighttpd/configuration/document_root.conf +11 -0
  2151. data/lib/roebe/www/lighttpd/configuration/groupname.conf +9 -0
  2152. data/lib/roebe/www/lighttpd/configuration/index.conf +29 -0
  2153. data/lib/roebe/www/lighttpd/configuration/logfiles.conf +18 -0
  2154. data/lib/roebe/www/lighttpd/configuration/mimetypes.conf +86 -0
  2155. data/lib/roebe/www/lighttpd/configuration/modules.conf +75 -0
  2156. data/lib/roebe/www/lighttpd/configuration/php.conf +11 -0
  2157. data/lib/roebe/www/lighttpd/configuration/pid_file.conf +1 -0
  2158. data/lib/roebe/www/lighttpd/configuration/port.conf +13 -0
  2159. data/lib/roebe/www/lighttpd/configuration/redirects.conf +67 -0
  2160. data/lib/roebe/www/lighttpd/configuration/status.conf +29 -0
  2161. data/lib/roebe/www/lighttpd/configuration/upload.conf +5 -0
  2162. data/lib/roebe/www/lighttpd/configuration/username.conf +4 -0
  2163. data/lib/roebe/www/lighttpd/lighttpd.cgi +7 -0
  2164. data/lib/roebe/www/lighttpd/lighttpd.rb +132 -0
  2165. data/lib/roebe/www/lighttpd/lighttpd.sinatra +52 -0
  2166. data/lib/roebe/www/lilo/lilo.cgi +9 -0
  2167. data/lib/roebe/www/lilo/lilo.conf +71 -0
  2168. data/lib/roebe/www/lilo/lilo.rb +114 -0
  2169. data/lib/roebe/www/lilo/lilo.sinatra +56 -0
  2170. data/lib/roebe/www/links/links.cgi +9 -0
  2171. data/lib/roebe/www/links/links.rb +310 -0
  2172. data/lib/roebe/www/links/links.sinatra +56 -0
  2173. data/lib/roebe/www/linux/ICEWM/preferences +1476 -0
  2174. data/lib/roebe/www/linux/fedora/fedora.cgi +7 -0
  2175. data/lib/roebe/www/linux/fedora/fedora.rb +37 -0
  2176. data/lib/roebe/www/linux/fedora/fedora.sinatra +56 -0
  2177. data/lib/roebe/www/linux/linux.cgi +12 -0
  2178. data/lib/roebe/www/linux/linux.rb +6360 -0
  2179. data/lib/roebe/www/linux/linux.sinatra +56 -0
  2180. data/lib/roebe/www/linux/linuxmint/linuxmint.cgi +7 -0
  2181. data/lib/roebe/www/linux/linuxmint/linuxmint.rb +36 -0
  2182. data/lib/roebe/www/linux/linuxmint/linuxmint.sinatra +56 -0
  2183. data/lib/roebe/www/linux/resources/Xdefaults +180 -0
  2184. data/lib/roebe/www/linux_certifications/linux_certifications.cgi +7 -0
  2185. data/lib/roebe/www/linux_certifications/linux_certifications.rb +15 -0
  2186. data/lib/roebe/www/linux_certifications/linux_certifications.sinatra +56 -0
  2187. data/lib/roebe/www/linux_commands/linux_commands.cgi +7 -0
  2188. data/lib/roebe/www/linux_commands/linux_commands.rb +4701 -0
  2189. data/lib/roebe/www/linux_commands/linux_commands.sinatra +56 -0
  2190. data/lib/roebe/www/linux_distributions/linux_distributions.cgi +9 -0
  2191. data/lib/roebe/www/linux_distributions/linux_distributions.rb +2686 -0
  2192. data/lib/roebe/www/linux_distributions/linux_distributions.sinatra +56 -0
  2193. data/lib/roebe/www/llvm/llvm.cgi +7 -0
  2194. data/lib/roebe/www/llvm/llvm.rb +38 -0
  2195. data/lib/roebe/www/llvm/llvm.sinatra +56 -0
  2196. data/lib/roebe/www/luft/luft.cgi +7 -0
  2197. data/lib/roebe/www/luft/luft.rb +15 -0
  2198. data/lib/roebe/www/luft/luft.sinatra +52 -0
  2199. data/lib/roebe/www/luft/luft_english.md +96 -0
  2200. data/lib/roebe/www/luft/luft_german.md +117 -0
  2201. data/lib/roebe/www/m4/m4.cgi +7 -0
  2202. data/lib/roebe/www/m4/m4.rb +24 -0
  2203. data/lib/roebe/www/m4/m4.sinatra +56 -0
  2204. data/lib/roebe/www/make/make.cgi +7 -0
  2205. data/lib/roebe/www/make/make.rb +216 -0
  2206. data/lib/roebe/www/make/make.sinatra +56 -0
  2207. data/lib/roebe/www/markdown/cheat_sheet.md +17 -0
  2208. data/lib/roebe/www/markdown/example.md +232 -0
  2209. data/lib/roebe/www/marketing/marketing.cgi +7 -0
  2210. data/lib/roebe/www/marketing/marketing.rb +22 -0
  2211. data/lib/roebe/www/marketing/marketing.sinatra +56 -0
  2212. data/lib/roebe/www/mars/mars.cgi +7 -0
  2213. data/lib/roebe/www/mars/mars.rb +51 -0
  2214. data/lib/roebe/www/mars/mars.sinatra +52 -0
  2215. data/lib/roebe/www/mathematics/logarithmus/logarithmus.cgi +40 -0
  2216. data/lib/roebe/www/mathematics/mathematics.cgi +7 -0
  2217. data/lib/roebe/www/mathematics/mathematics.rb +910 -0
  2218. data/lib/roebe/www/mathematics/mathematics.sinatra +52 -0
  2219. data/lib/roebe/www/meson/meson.cgi +7 -0
  2220. data/lib/roebe/www/meson/meson.rb +45 -0
  2221. data/lib/roebe/www/meson/meson.sinatra +56 -0
  2222. data/lib/roebe/www/metabolic_pathways/metabolic_pathways.cgi +9 -0
  2223. data/lib/roebe/www/metabolic_pathways/metabolic_pathways.rb +196 -0
  2224. data/lib/roebe/www/metabolic_pathways/metabolic_pathways.sinatra +56 -0
  2225. data/lib/roebe/www/methods_in_molecular_biology/methods_in_molecular_biology.cgi +7 -0
  2226. data/lib/roebe/www/methods_in_molecular_biology/methods_in_molecular_biology.rb +156 -0
  2227. data/lib/roebe/www/methods_in_molecular_biology/methods_in_molecular_biology.sinatra +56 -0
  2228. data/lib/roebe/www/microbiology/microbiology.cgi +7 -0
  2229. data/lib/roebe/www/microbiology/microbiology.rb +581 -0
  2230. data/lib/roebe/www/microbiology/microbiology.sinatra +56 -0
  2231. data/lib/roebe/www/microphones/microphones.cgi +7 -0
  2232. data/lib/roebe/www/microphones/microphones.rb +53 -0
  2233. data/lib/roebe/www/microphones/microphones.sinatra +56 -0
  2234. data/lib/roebe/www/microscopy/microscopy.cgi +7 -0
  2235. data/lib/roebe/www/microscopy/microscopy.rb +182 -0
  2236. data/lib/roebe/www/microscopy/microscopy.sinatra +56 -0
  2237. data/lib/roebe/www/microsoft/how_to_compile_from_source_on_windows/how_to_compile_from_source_on_windows.cgi +7 -0
  2238. data/lib/roebe/www/microsoft/how_to_compile_from_source_on_windows/how_to_compile_from_source_on_windows.rb +57 -0
  2239. data/lib/roebe/www/microsoft/how_to_compile_from_source_on_windows/how_to_compile_from_source_on_windows.sinatra +56 -0
  2240. data/lib/roebe/www/microsoft/microsoft.cgi +11 -0
  2241. data/lib/roebe/www/microsoft/microsoft.rb +2260 -0
  2242. data/lib/roebe/www/microsoft/microsoft.sinatra +56 -0
  2243. data/lib/roebe/www/mikrobielle_physiologie/mikrobielle_physiologie.cgi +7 -0
  2244. data/lib/roebe/www/mikrobielle_physiologie/mikrobielle_physiologie.rb +373 -0
  2245. data/lib/roebe/www/mikrobielle_physiologie/mikrobielle_physiologie.sinatra +56 -0
  2246. data/lib/roebe/www/military/military.cgi +7 -0
  2247. data/lib/roebe/www/military/military.rb +23 -0
  2248. data/lib/roebe/www/military/military.sinatra +56 -0
  2249. data/lib/roebe/www/mitochondria/mitochondria.cgi +31 -0
  2250. data/lib/roebe/www/module_www.rb +27 -0
  2251. data/lib/roebe/www/molecular_therapies/molecular_therapies.cgi +7 -0
  2252. data/lib/roebe/www/molecular_therapies/molecular_therapies.rb +166 -0
  2253. data/lib/roebe/www/molecular_therapies/molecular_therapies.sinatra +56 -0
  2254. data/lib/roebe/www/mrxvt/mrxvtrc +424 -0
  2255. data/lib/roebe/www/multimedia_and_law/multimedia_and_law.cgi +7 -0
  2256. data/lib/roebe/www/multimedia_and_law/multimedia_and_law.rb +118 -0
  2257. data/lib/roebe/www/multimedia_and_law/multimedia_and_law.sinatra +56 -0
  2258. data/lib/roebe/www/mysql/mysql.cgi +7 -0
  2259. data/lib/roebe/www/mysql/mysql.rb +544 -0
  2260. data/lib/roebe/www/mysql/mysql.sinatra +52 -0
  2261. data/lib/roebe/www/nanotechnology/nanotechnology.cgi +7 -0
  2262. data/lib/roebe/www/nanotechnology/nanotechnology.rb +173 -0
  2263. data/lib/roebe/www/nanotechnology/nanotechnology.sinatra +56 -0
  2264. data/lib/roebe/www/nato/nato.cgi +7 -0
  2265. data/lib/roebe/www/nato/nato.rb +35 -0
  2266. data/lib/roebe/www/nato/nato.sinatra +52 -0
  2267. data/lib/roebe/www/netbsd/netbsd.cgi +7 -0
  2268. data/lib/roebe/www/netbsd/netbsd.rb +27 -0
  2269. data/lib/roebe/www/netbsd/netbsd.sinatra +52 -0
  2270. data/lib/roebe/www/networking_on_linux/networking_on_linux.cgi +7 -0
  2271. data/lib/roebe/www/networking_on_linux/networking_on_linux.rb +1607 -0
  2272. data/lib/roebe/www/networking_on_linux/networking_on_linux.sinatra +56 -0
  2273. data/lib/roebe/www/neurobiology/neurobiology.cgi +7 -0
  2274. data/lib/roebe/www/neurobiology/neurobiology.md +19 -0
  2275. data/lib/roebe/www/neurobiology/neurobiology.rb +280 -0
  2276. data/lib/roebe/www/neurobiology/neurobiology.sinatra +56 -0
  2277. data/lib/roebe/www/news/news.cgi +7 -0
  2278. data/lib/roebe/www/news/news.rb +20 -0
  2279. data/lib/roebe/www/news/news.sinatra +56 -0
  2280. data/lib/roebe/www/news/news_content.md +2788 -0
  2281. data/lib/roebe/www/nginx/nginx.cgi +7 -0
  2282. data/lib/roebe/www/nginx/nginx.rb +18 -0
  2283. data/lib/roebe/www/nginx/nginx.sinatra +56 -0
  2284. data/lib/roebe/www/nim/nim.cgi +7 -0
  2285. data/lib/roebe/www/nim/nim.rb +77 -0
  2286. data/lib/roebe/www/nim/nim.sinatra +56 -0
  2287. data/lib/roebe/www/nosql/nosql.cgi +7 -0
  2288. data/lib/roebe/www/nosql/nosql.rb +23 -0
  2289. data/lib/roebe/www/nosql/nosql.sinatra +52 -0
  2290. data/lib/roebe/www/ntfs/ntfs.cgi +7 -0
  2291. data/lib/roebe/www/ntfs/ntfs.rb +41 -0
  2292. data/lib/roebe/www/ntfs/ntfs.sinatra +56 -0
  2293. data/lib/roebe/www/n/303/244chtliche_jagd/n/303/244chtliche_jagd.cgi +7 -0
  2294. data/lib/roebe/www/n/303/244chtliche_jagd/n/303/244chtliche_jagd.rb +461 -0
  2295. data/lib/roebe/www/n/303/244chtliche_jagd/n/303/244chtliche_jagd.sinatra +61 -0
  2296. data/lib/roebe/www/ogre3d/ogre3d.cgi +7 -0
  2297. data/lib/roebe/www/ogre3d/ogre3d.rb +247 -0
  2298. data/lib/roebe/www/ogre3d/ogre3d.sinatra +56 -0
  2299. data/lib/roebe/www/openbsd/openbsd.cgi +7 -0
  2300. data/lib/roebe/www/openbsd/openbsd.rb +28 -0
  2301. data/lib/roebe/www/openbsd/openbsd.sinatra +56 -0
  2302. data/lib/roebe/www/opengl/opengl.cgi +9 -0
  2303. data/lib/roebe/www/opengl/opengl.rb +193 -0
  2304. data/lib/roebe/www/opengl/opengl.sinatra +56 -0
  2305. data/lib/roebe/www/openssl/openssl.cgi +7 -0
  2306. data/lib/roebe/www/openssl/openssl.rb +60 -0
  2307. data/lib/roebe/www/openssl/openssl.sinatra +56 -0
  2308. data/lib/roebe/www/opera/opera.cgi +7 -0
  2309. data/lib/roebe/www/opera/opera.rb +38 -0
  2310. data/lib/roebe/www/opera/opera.sinatra +56 -0
  2311. data/lib/roebe/www/operating_systems/reactos/reactos.cgi +9 -0
  2312. data/lib/roebe/www/operating_systems/reactos/reactos.rb +96 -0
  2313. data/lib/roebe/www/operating_systems/reactos/reactos.sinatra +56 -0
  2314. data/lib/roebe/www/optical_character_recognition/optical_character_recognition.cgi +7 -0
  2315. data/lib/roebe/www/optical_character_recognition/optical_character_recognition.rb +85 -0
  2316. data/lib/roebe/www/optical_character_recognition/optical_character_recognition.sinatra +56 -0
  2317. data/lib/roebe/www/our_solar_system/our_solar_system.cgi +7 -0
  2318. data/lib/roebe/www/our_solar_system/our_solar_system.rb +393 -0
  2319. data/lib/roebe/www/our_solar_system/our_solar_system.sinatra +56 -0
  2320. data/lib/roebe/www/packaging_on_linux/packaging_on_linux.cgi +7 -0
  2321. data/lib/roebe/www/packaging_on_linux/packaging_on_linux.rb +385 -0
  2322. data/lib/roebe/www/packaging_on_linux/packaging_on_linux.sinatra +56 -0
  2323. data/lib/roebe/www/palemoon/palemoon.cgi +7 -0
  2324. data/lib/roebe/www/palemoon/palemoon.rb +102 -0
  2325. data/lib/roebe/www/palemoon/palemoon.sinatra +56 -0
  2326. data/lib/roebe/www/paradise_island/paradise_island.cgi +9 -0
  2327. data/lib/roebe/www/paradise_island/paradise_island.rb +418 -0
  2328. data/lib/roebe/www/paradise_island/paradise_island.sinatra +56 -0
  2329. data/lib/roebe/www/patente/patente.cgi +7 -0
  2330. data/lib/roebe/www/patente/patente.rb +55 -0
  2331. data/lib/roebe/www/patente/patente.sinatra +56 -0
  2332. data/lib/roebe/www/pdf/pdf.cgi +7 -0
  2333. data/lib/roebe/www/pdf/pdf.rb +130 -0
  2334. data/lib/roebe/www/pdf/pdf.sinatra +56 -0
  2335. data/lib/roebe/www/pekwm/autoproperties +219 -0
  2336. data/lib/roebe/www/pekwm/config +72 -0
  2337. data/lib/roebe/www/pekwm/keys +301 -0
  2338. data/lib/roebe/www/pekwm/menu +97 -0
  2339. data/lib/roebe/www/pekwm/mouse +141 -0
  2340. data/lib/roebe/www/pekwm/start +18 -0
  2341. data/lib/roebe/www/pekwm/vars +2 -0
  2342. data/lib/roebe/www/phones_and_mobile_phones/phones_and_mobile_phones.cgi +7 -0
  2343. data/lib/roebe/www/phones_and_mobile_phones/phones_and_mobile_phones.rb +66 -0
  2344. data/lib/roebe/www/phones_and_mobile_phones/phones_and_mobile_phones.sinatra +56 -0
  2345. data/lib/roebe/www/photosynthesis/photosynthesis.cgi +7 -0
  2346. data/lib/roebe/www/photosynthesis/photosynthesis.rb +23 -0
  2347. data/lib/roebe/www/photosynthesis/photosynthesis.sinatra +56 -0
  2348. data/lib/roebe/www/physics/physics.cgi +7 -0
  2349. data/lib/roebe/www/physics/physics.rb +281 -0
  2350. data/lib/roebe/www/physics/physics.sinatra +56 -0
  2351. data/lib/roebe/www/physiology/physiology.cgi +7 -0
  2352. data/lib/roebe/www/physiology/physiology.rb +306 -0
  2353. data/lib/roebe/www/physiology/physiology.sinatra +56 -0
  2354. data/lib/roebe/www/pidgin/pidgin.cgi +7 -0
  2355. data/lib/roebe/www/pidgin/pidgin.rb +10 -0
  2356. data/lib/roebe/www/pidgin/pidgin.sinatra +56 -0
  2357. data/lib/roebe/www/plants/plants.cgi +7 -0
  2358. data/lib/roebe/www/plants/plants.rb +29 -0
  2359. data/lib/roebe/www/plants/plants.sinatra +56 -0
  2360. data/lib/roebe/www/politics/politics.cgi +7 -0
  2361. data/lib/roebe/www/politics/politics.rb +24 -0
  2362. data/lib/roebe/www/politics/politics.sinatra +56 -0
  2363. data/lib/roebe/www/politics/yaml/wahlbeteiligung_wien.yml +6 -0
  2364. data/lib/roebe/www/porg/main.m +26 -0
  2365. data/lib/roebe/www/porg/porg.cgi +7 -0
  2366. data/lib/roebe/www/porg/porg.rb +14 -0
  2367. data/lib/roebe/www/porg/porg.sinatra +56 -0
  2368. data/lib/roebe/www/porg/rpaco_base.h +19 -0
  2369. data/lib/roebe/www/porg/rpaco_base.m +20 -0
  2370. data/lib/roebe/www/povray/povray.cgi +7 -0
  2371. data/lib/roebe/www/povray/povray.rb +289 -0
  2372. data/lib/roebe/www/povray/povray.sinatra +56 -0
  2373. data/lib/roebe/www/povray/povray_files/sphere_and_lights.pov +14 -0
  2374. data/lib/roebe/www/povray/povray_files/sphere_and_lights_test.pov +28 -0
  2375. data/lib/roebe/www/powershell/powershell.cgi +7 -0
  2376. data/lib/roebe/www/powershell/powershell.rb +31 -0
  2377. data/lib/roebe/www/powershell/powershell.sinatra +56 -0
  2378. data/lib/roebe/www/preisvergleiche/preisvergleiche.cgi +7 -0
  2379. data/lib/roebe/www/preisvergleiche/preisvergleiche.rb +53 -0
  2380. data/lib/roebe/www/preisvergleiche/preisvergleiche.sinatra +56 -0
  2381. data/lib/roebe/www/presentations/fuzzy_words_versus_action_words.md +9 -0
  2382. data/lib/roebe/www/presentations/presentations.cgi +7 -0
  2383. data/lib/roebe/www/presentations/presentations.rb +102 -0
  2384. data/lib/roebe/www/presentations/presentations.sinatra +52 -0
  2385. data/lib/roebe/www/presentations/useful_words.md +16 -0
  2386. data/lib/roebe/www/problems_of_the_european_union/problems_of_the_european_union.cgi +7 -0
  2387. data/lib/roebe/www/problems_of_the_european_union/problems_of_the_european_union.rb +416 -0
  2388. data/lib/roebe/www/problems_of_the_european_union/problems_of_the_european_union.sinatra +52 -0
  2389. data/lib/roebe/www/programming_advice/programming_advice.yml +13 -0
  2390. data/lib/roebe/www/programming_bible/programming_bible.cgi +7 -0
  2391. data/lib/roebe/www/programming_bible/programming_bible.rb +32 -0
  2392. data/lib/roebe/www/programming_bible/programming_bible.sinatra +56 -0
  2393. data/lib/roebe/www/programming_languages/R/R.cgi +9 -0
  2394. data/lib/roebe/www/programming_languages/R/R.rb +1368 -0
  2395. data/lib/roebe/www/programming_languages/R/R.sinatra +56 -0
  2396. data/lib/roebe/www/programming_languages/R/examples/boxplot_example.R +42 -0
  2397. data/lib/roebe/www/programming_languages/R/functions/functions.R +104 -0
  2398. data/lib/roebe/www/programming_languages/javascript/javascript.cgi +10 -0
  2399. data/lib/roebe/www/programming_languages/javascript/javascript.rb +313 -0
  2400. data/lib/roebe/www/programming_languages/javascript/javascript.sinatra +56 -0
  2401. data/lib/roebe/www/propaganda/propaganda.cgi +7 -0
  2402. data/lib/roebe/www/propaganda/propaganda.rb +29 -0
  2403. data/lib/roebe/www/propaganda/propaganda.sinatra +56 -0
  2404. data/lib/roebe/www/protein_engineering/protein_engineering.cgi +5 -0
  2405. data/lib/roebe/www/protein_engineering/protein_engineering.rb +124 -0
  2406. data/lib/roebe/www/protein_engineering/protein_engineering.sinatra +56 -0
  2407. data/lib/roebe/www/proteins/proteins.cgi +7 -0
  2408. data/lib/roebe/www/proteins/proteins.rb +32 -0
  2409. data/lib/roebe/www/proteins/proteins.sinatra +56 -0
  2410. data/lib/roebe/www/psychologie/psychologie.cgi +7 -0
  2411. data/lib/roebe/www/psychologie/psychologie.rb +195 -0
  2412. data/lib/roebe/www/psychologie/psychologie.sinatra +56 -0
  2413. data/lib/roebe/www/publishing_scientific_papers/useful_phrases_and_tips_for_publishing_scientific_papers.md +256 -0
  2414. data/lib/roebe/www/quotes/quotes.cgi +7 -0
  2415. data/lib/roebe/www/quotes/quotes.rb +393 -0
  2416. data/lib/roebe/www/quotes/quotes.sinatra +52 -0
  2417. data/lib/roebe/www/radioactivity/radioactivity.cgi +36 -0
  2418. data/lib/roebe/www/ratpoison/ratpoisonrc +62 -0
  2419. data/lib/roebe/www/restriktionsenzyme/restriktionsenzyme.cgi +7 -0
  2420. data/lib/roebe/www/restriktionsenzyme/restriktionsenzyme.rb +78 -0
  2421. data/lib/roebe/www/restriktionsenzyme/restriktionsenzyme.sinatra +56 -0
  2422. data/lib/roebe/www/rfid/rfid.cgi +7 -0
  2423. data/lib/roebe/www/rfid/rfid.rb +956 -0
  2424. data/lib/roebe/www/rfid/rfid.sinatra +56 -0
  2425. data/lib/roebe/www/robots/robots.cgi +9 -0
  2426. data/lib/roebe/www/robots/robots.rb +18 -0
  2427. data/lib/roebe/www/robots/robots.sinatra +56 -0
  2428. data/lib/roebe/www/routers/routers.cgi +7 -0
  2429. data/lib/roebe/www/routers/routers.rb +46 -0
  2430. data/lib/roebe/www/routers/routers.sinatra +56 -0
  2431. data/lib/roebe/www/ruby_viewer/ruby_viewer.cgi +7 -0
  2432. data/lib/roebe/www/ruby_viewer/ruby_viewer.rb +60 -0
  2433. data/lib/roebe/www/ruby_viewer/ruby_viewer.sinatra +56 -0
  2434. data/lib/roebe/www/scanner/scanner.cgi +9 -0
  2435. data/lib/roebe/www/scanner/scanner.rb +185 -0
  2436. data/lib/roebe/www/scanner/scanner.sinatra +56 -0
  2437. data/lib/roebe/www/science/science.cgi +7 -0
  2438. data/lib/roebe/www/science/science.rb +1841 -0
  2439. data/lib/roebe/www/science/science.sinatra +56 -0
  2440. data/lib/roebe/www/security/security.cgi +7 -0
  2441. data/lib/roebe/www/security/security.rb +264 -0
  2442. data/lib/roebe/www/security/security.sinatra +52 -0
  2443. data/lib/roebe/www/sed/sed_script_remove_colours.sed +1 -0
  2444. data/lib/roebe/www/shells/shells.cgi +7 -0
  2445. data/lib/roebe/www/shells/shells.rb +258 -0
  2446. data/lib/roebe/www/shells/shells.sinatra +56 -0
  2447. data/lib/roebe/www/shops/shops.cgi +7 -0
  2448. data/lib/roebe/www/shops/shops.rb +26 -0
  2449. data/lib/roebe/www/shops/shops.sinatra +56 -0
  2450. data/lib/roebe/www/simpsons/simpsons.cgi +7 -0
  2451. data/lib/roebe/www/simpsons/simpsons.rb +24 -0
  2452. data/lib/roebe/www/simpsons/simpsons.sinatra +56 -0
  2453. data/lib/roebe/www/socken/socken.cgi +7 -0
  2454. data/lib/roebe/www/socken/socken.rb +25 -0
  2455. data/lib/roebe/www/socken/socken.sinatra +56 -0
  2456. data/lib/roebe/www/solarzellen/solarzellen.cgi +7 -0
  2457. data/lib/roebe/www/solarzellen/solarzellen.rb +13 -0
  2458. data/lib/roebe/www/solarzellen/solarzellen.sinatra +56 -0
  2459. data/lib/roebe/www/space_exploration/space_exploration.cgi +7 -0
  2460. data/lib/roebe/www/space_exploration/space_exploration.rb +23 -0
  2461. data/lib/roebe/www/space_exploration/space_exploration.sinatra +56 -0
  2462. data/lib/roebe/www/statistik/statistik.cgi +7 -0
  2463. data/lib/roebe/www/statistik/statistik.rb +612 -0
  2464. data/lib/roebe/www/statistik/statistik.sinatra +56 -0
  2465. data/lib/roebe/www/std_linux.rb +83 -0
  2466. data/lib/roebe/www/strom/strom.cgi +7 -0
  2467. data/lib/roebe/www/strom/strom.rb +74 -0
  2468. data/lib/roebe/www/strom/strom.sinatra +56 -0
  2469. data/lib/roebe/www/sudoers/sudoers +43 -0
  2470. data/lib/roebe/www/svg/svg.cgi +7 -0
  2471. data/lib/roebe/www/svg/svg.rb +47 -0
  2472. data/lib/roebe/www/svg/svg.sinatra +56 -0
  2473. data/lib/roebe/www/synthetic_biology/synthetic_biology.cgi +7 -0
  2474. data/lib/roebe/www/synthetic_biology/synthetic_biology.rb +165 -0
  2475. data/lib/roebe/www/synthetic_biology/synthetic_biology.sinatra +56 -0
  2476. data/lib/roebe/www/systemd/systemd.cgi +9 -0
  2477. data/lib/roebe/www/systemd/systemd.rb +50 -0
  2478. data/lib/roebe/www/systemd/systemd.sinatra +56 -0
  2479. data/lib/roebe/www/techniques_in_molecular_biology/techniques_in_molecular_biology.cgi +7 -0
  2480. data/lib/roebe/www/techniques_in_molecular_biology/techniques_in_molecular_biology.rb +95 -0
  2481. data/lib/roebe/www/techniques_in_molecular_biology/techniques_in_molecular_biology.sinatra +56 -0
  2482. data/lib/roebe/www/terminals/lilyterm.md +8 -0
  2483. data/lib/roebe/www/terminals/terminals.cgi +7 -0
  2484. data/lib/roebe/www/terminals/terminals.rb +125 -0
  2485. data/lib/roebe/www/terminals/terminals.sinatra +56 -0
  2486. data/lib/roebe/www/the_linux_kernel/the_linux_kernel.cgi +11 -0
  2487. data/lib/roebe/www/the_linux_kernel/the_linux_kernel.rb +1660 -0
  2488. data/lib/roebe/www/the_linux_kernel/the_linux_kernel.sinatra +56 -0
  2489. data/lib/roebe/www/thinking_methods/thinking_methods.cgi +7 -0
  2490. data/lib/roebe/www/thinking_methods/thinking_methods.rb +144 -0
  2491. data/lib/roebe/www/thinking_methods/thinking_methods.sinatra +56 -0
  2492. data/lib/roebe/www/thunderbird/thunderbird.cgi +7 -0
  2493. data/lib/roebe/www/thunderbird/thunderbird.rb +70 -0
  2494. data/lib/roebe/www/thunderbird/thunderbird.sinatra +56 -0
  2495. data/lib/roebe/www/time/time.cgi +7 -0
  2496. data/lib/roebe/www/time/time.rb +82 -0
  2497. data/lib/roebe/www/time/time.sinatra +56 -0
  2498. data/lib/roebe/www/tmux/tmux.cgi +7 -0
  2499. data/lib/roebe/www/tmux/tmux.rb +34 -0
  2500. data/lib/roebe/www/tmux/tmux.sinatra +56 -0
  2501. data/lib/roebe/www/toxikologie/toxikologie.cgi +7 -0
  2502. data/lib/roebe/www/toxikologie/toxikologie.rb +35 -0
  2503. data/lib/roebe/www/toxikologie/toxikologie.sinatra +56 -0
  2504. data/lib/roebe/www/trac/trac.cgi +7 -0
  2505. data/lib/roebe/www/trac/trac.rb +46 -0
  2506. data/lib/roebe/www/trac/trac.sinatra +56 -0
  2507. data/lib/roebe/www/training/training.cgi +7 -0
  2508. data/lib/roebe/www/training/training.rb +278 -0
  2509. data/lib/roebe/www/training/training.sinatra +52 -0
  2510. data/lib/roebe/www/transcription/transcription.cgi +43 -0
  2511. data/lib/roebe/www/udev/udev.cgi +7 -0
  2512. data/lib/roebe/www/udev/udev.rb +128 -0
  2513. data/lib/roebe/www/udev/udev.sinatra +56 -0
  2514. data/lib/roebe/www/unionfs/unionfs.cgi +8 -0
  2515. data/lib/roebe/www/unionfs/unionfs.rb +325 -0
  2516. data/lib/roebe/www/unionfs/unionfs.sinatra +56 -0
  2517. data/lib/roebe/www/usb/usb.cgi +7 -0
  2518. data/lib/roebe/www/usb/usb.rb +743 -0
  2519. data/lib/roebe/www/usb/usb.sinatra +52 -0
  2520. data/lib/roebe/www/vectors/vectors.cgi +7 -0
  2521. data/lib/roebe/www/vectors/vectors.rb +53 -0
  2522. data/lib/roebe/www/vectors/vectors.sinatra +56 -0
  2523. data/lib/roebe/www/view_via_pre_tag/README.md +2 -0
  2524. data/lib/roebe/www/view_via_pre_tag/view_via_pre_tag.cgi +26 -0
  2525. data/lib/roebe/www/vim/aliases/vim_aliases.yml +487 -0
  2526. data/lib/roebe/www/vim/autocmds/vim_autocmds +50 -0
  2527. data/lib/roebe/www/vim/colours/desert.vim +105 -0
  2528. data/lib/roebe/www/vim/colours/golden.vim +72 -0
  2529. data/lib/roebe/www/vim/colours/sienna.vim +47 -0
  2530. data/lib/roebe/www/vim/colours/softblue.vim +45 -0
  2531. data/lib/roebe/www/vim/colours/zenburn.vim +135 -0
  2532. data/lib/roebe/www/vim/functions/functions +185 -0
  2533. data/lib/roebe/www/vim/mappings/mappings.md +372 -0
  2534. data/lib/roebe/www/vim/matrix/matrix.vim +316 -0
  2535. data/lib/roebe/www/vim/tetris/tetris.vim +331 -0
  2536. data/lib/roebe/www/vim/vim.cgi +7 -0
  2537. data/lib/roebe/www/vim/vim.rb +856 -0
  2538. data/lib/roebe/www/vim/vim.sinatra +52 -0
  2539. data/lib/roebe/www/vim/vimrc/vimrc +332 -0
  2540. data/lib/roebe/www/virology/virology.cgi +7 -0
  2541. data/lib/roebe/www/virology/virology.rb +514 -0
  2542. data/lib/roebe/www/virology/virology.sinatra +56 -0
  2543. data/lib/roebe/www/virtual_reality/virtual_reality.cgi +7 -0
  2544. data/lib/roebe/www/virtual_reality/virtual_reality.rb +155 -0
  2545. data/lib/roebe/www/virtual_reality/virtual_reality.sinatra +52 -0
  2546. data/lib/roebe/www/visual_studio/visual_studio.cgi +7 -0
  2547. data/lib/roebe/www/visual_studio/visual_studio.rb +29 -0
  2548. data/lib/roebe/www/visual_studio/visual_studio.sinatra +56 -0
  2549. data/lib/roebe/www/vitamines/vitamines.cgi +11 -0
  2550. data/lib/roebe/www/vitamines/vitamines.rb +105 -0
  2551. data/lib/roebe/www/vitamines/vitamines.sinatra +56 -0
  2552. data/lib/roebe/www/vnc/vnc.cgi +7 -0
  2553. data/lib/roebe/www/vnc/vnc.rb +28 -0
  2554. data/lib/roebe/www/vnc/vnc.sinatra +56 -0
  2555. data/lib/roebe/www/voice_recorders/voice_recorders.cgi +7 -0
  2556. data/lib/roebe/www/voice_recorders/voice_recorders.rb +48 -0
  2557. data/lib/roebe/www/voice_recorders/voice_recorders.sinatra +52 -0
  2558. data/lib/roebe/www/wahrscheinlichkeit/wahrscheinlichkeit.cgi +7 -0
  2559. data/lib/roebe/www/wahrscheinlichkeit/wahrscheinlichkeit.rb +270 -0
  2560. data/lib/roebe/www/wahrscheinlichkeit/wahrscheinlichkeit.sinatra +56 -0
  2561. data/lib/roebe/www/war_in_Ukraine_2022/war_in_Ukraine_2022.cgi +7 -0
  2562. data/lib/roebe/www/war_in_Ukraine_2022/war_in_Ukraine_2022.rb +84 -0
  2563. data/lib/roebe/www/war_in_Ukraine_2022/war_in_Ukraine_2022.sinatra +56 -0
  2564. data/lib/roebe/www/waschmaschinen/waschmaschinen.cgi +7 -0
  2565. data/lib/roebe/www/waschmaschinen/waschmaschinen.rb +136 -0
  2566. data/lib/roebe/www/waschmaschinen/waschmaschinen.sinatra +52 -0
  2567. data/lib/roebe/www/webserving/webserving.cgi +7 -0
  2568. data/lib/roebe/www/webserving/webserving.rb +905 -0
  2569. data/lib/roebe/www/webserving/webserving.sinatra +52 -0
  2570. data/lib/roebe/www/weechat/weechat.cgi +7 -0
  2571. data/lib/roebe/www/weechat/weechat.rb +166 -0
  2572. data/lib/roebe/www/weechat/weechat.sinatra +52 -0
  2573. data/lib/roebe/www/wein/wein.cgi +7 -0
  2574. data/lib/roebe/www/wein/wein.rb +16 -0
  2575. data/lib/roebe/www/wein/wein.sinatra +56 -0
  2576. data/lib/roebe/www/wget/wgetrc +124 -0
  2577. data/lib/roebe/www/why_linux/why_linux.cgi +7 -0
  2578. data/lib/roebe/www/why_linux/why_linux.rb +301 -0
  2579. data/lib/roebe/www/why_linux/why_linux.sinatra +56 -0
  2580. data/lib/roebe/www/wikis/wikis.cgi +7 -0
  2581. data/lib/roebe/www/wikis/wikis.rb +18 -0
  2582. data/lib/roebe/www/wikis/wikis.sinatra +56 -0
  2583. data/lib/roebe/www/wine/wine.cgi +7 -0
  2584. data/lib/roebe/www/wine/wine.rb +323 -0
  2585. data/lib/roebe/www/wine/wine.sinatra +52 -0
  2586. data/lib/roebe/www/wine/wine_config +69 -0
  2587. data/lib/roebe/www/wings3d/data/House_Villa.wings +0 -0
  2588. data/lib/roebe/www/wings3d/wings3d.cgi +7 -0
  2589. data/lib/roebe/www/wings3d/wings3d.rb +56 -0
  2590. data/lib/roebe/www/wings3d/wings3d.sinatra +56 -0
  2591. data/lib/roebe/www/witze/witze.cgi +9 -0
  2592. data/lib/roebe/www/witze/witze.rb +1040 -0
  2593. data/lib/roebe/www/witze/witze.sinatra +56 -0
  2594. data/lib/roebe/www/wlan/wlan.cgi +9 -0
  2595. data/lib/roebe/www/wlan/wlan.rb +760 -0
  2596. data/lib/roebe/www/wlan/wlan.sinatra +56 -0
  2597. data/lib/roebe/www/wlan/wpa_supplicant.conf +57 -0
  2598. data/lib/roebe/www/working_from_home/working_from_home.md +60 -0
  2599. data/lib/roebe/www/world_health_organization/world_health_organization.cgi +7 -0
  2600. data/lib/roebe/www/world_health_organization/world_health_organization.rb +69 -0
  2601. data/lib/roebe/www/world_health_organization/world_health_organization.sinatra +56 -0
  2602. data/lib/roebe/www/xampp/xampp.cgi +7 -0
  2603. data/lib/roebe/www/xampp/xampp.rb +126 -0
  2604. data/lib/roebe/www/xampp/xampp.sinatra +56 -0
  2605. data/lib/roebe/www/xchat/xchat.cgi +7 -0
  2606. data/lib/roebe/www/xchat/xchat.rb +146 -0
  2607. data/lib/roebe/www/xchat/xchat.sinatra +56 -0
  2608. data/lib/roebe/www/xmas/xmas.cgi +7 -0
  2609. data/lib/roebe/www/xmas/xmas.rb +521 -0
  2610. data/lib/roebe/www/xmas/xmas.sinatra +56 -0
  2611. data/lib/roebe/www/xorg/xorg.cgi +9 -0
  2612. data/lib/roebe/www/xorg/xorg.rb +2912 -0
  2613. data/lib/roebe/www/xorg/xorg.sinatra +56 -0
  2614. data/lib/roebe/www/yeast/yeast.cgi +7 -0
  2615. data/lib/roebe/www/yeast/yeast.rb +139 -0
  2616. data/lib/roebe/www/yeast/yeast.sinatra +56 -0
  2617. data/lib/roebe/www/zenity/zenity.cgi +7 -0
  2618. data/lib/roebe/www/zenity/zenity.rb +208 -0
  2619. data/lib/roebe/www/zenity/zenity.sinatra +56 -0
  2620. data/lib/roebe/www/zitieren/example.md +10 -0
  2621. data/lib/roebe/www/zitieren/wie_zitiert_man_in_der_Wissenschaft_richtig.md +261 -0
  2622. data/lib/roebe/www/zoologie/zoologie.cgi +7 -0
  2623. data/lib/roebe/www/zoologie/zoologie.gtk +150 -0
  2624. data/lib/roebe/www/zoologie/zoologie.rb +162 -0
  2625. data/lib/roebe/www/zoologie/zoologie.sinatra +56 -0
  2626. data/lib/roebe/www/zoom/zoom.cgi +7 -0
  2627. data/lib/roebe/www/zoom/zoom.rb +55 -0
  2628. data/lib/roebe/www/zoom/zoom.sinatra +56 -0
  2629. data/lib/roebe/www/zsh/zshrc +360 -0
  2630. data/lib/roebe/xml/catalog +29 -0
  2631. data/lib/roebe/yaml/advertisement_servers.yml +18 -0
  2632. data/lib/roebe/yaml/autogenerate_these_rewrite_rules/autogenerate_these_rewrite_rules.yml +131 -0
  2633. data/lib/roebe/yaml/autostart_these_programs.yml +22 -0
  2634. data/lib/roebe/yaml/bezirke_in_wien/bezirke_in_wien.yml +29 -0
  2635. data/lib/roebe/yaml/boot_settings/boot_settings.yml +53 -0
  2636. data/lib/roebe/yaml/browser.yml +1 -0
  2637. data/lib/roebe/yaml/compile/compile.yml +262 -0
  2638. data/lib/roebe/yaml/current_ruby_versions.yml +12 -0
  2639. data/lib/roebe/yaml/directory_structure.yml +121 -0
  2640. data/lib/roebe/yaml/display_settings/display_settings.yml +184 -0
  2641. data/lib/roebe/yaml/e_kennzeichnungen/e_kennzeichnungen.yml +101 -0
  2642. data/lib/roebe/yaml/error_codes/error_codes.yml +342 -0
  2643. data/lib/roebe/yaml/escape_codes/escape_codes.yml +12 -0
  2644. data/lib/roebe/yaml/famous_bboys/famous_bboys.yml +14 -0
  2645. data/lib/roebe/yaml/file_information.yml +34 -0
  2646. data/lib/roebe/yaml/fonts/fonts.yml +33 -0
  2647. data/lib/roebe/yaml/forbidden_IPs.yml +2 -0
  2648. data/lib/roebe/yaml/fstab/fstab.yml +122 -0
  2649. data/lib/roebe/yaml/funstuff/am/303/274sante_deutsche_w/303/266rter.yml +2 -0
  2650. data/lib/roebe/yaml/gnome/gnome.yml +8 -0
  2651. data/lib/roebe/yaml/holidays/holidays.yml +24 -0
  2652. data/lib/roebe/yaml/http_status_codes/http_status_codes.yml +52 -0
  2653. data/lib/roebe/yaml/individual_environment_variables/cflags.yml +59 -0
  2654. data/lib/roebe/yaml/individual_environment_variables/lang.yml +75 -0
  2655. data/lib/roebe/yaml/individual_environment_variables/ldflags.yml +2 -0
  2656. data/lib/roebe/yaml/individual_environment_variables/term.yml +14 -0
  2657. data/lib/roebe/yaml/ip_suffix/ip_suffix.yml +22 -0
  2658. data/lib/roebe/yaml/irc/irc.yml +11 -0
  2659. data/lib/roebe/yaml/kde/kde.yml +54 -0
  2660. data/lib/roebe/yaml/kernel/kernel.yml +11 -0
  2661. data/lib/roebe/yaml/kernel_config/kernel_config.yml +79 -0
  2662. data/lib/roebe/yaml/linux_kernel_settings.yml +11 -0
  2663. data/lib/roebe/yaml/ls_colors.yml +17 -0
  2664. data/lib/roebe/yaml/main_avi.yml +1 -0
  2665. data/lib/roebe/yaml/main_editor.yml +1 -0
  2666. data/lib/roebe/yaml/main_jpg.yml +1 -0
  2667. data/lib/roebe/yaml/main_pdf.yml +1 -0
  2668. data/lib/roebe/yaml/main_png.yml +1 -0
  2669. data/lib/roebe/yaml/mark_this_directory.yml +1 -0
  2670. data/lib/roebe/yaml/mime/mime.yml +615 -0
  2671. data/lib/roebe/yaml/mime_types.yml +37 -0
  2672. data/lib/roebe/yaml/monitors/monitors.yml +127 -0
  2673. data/lib/roebe/yaml/n_people_in_these_countries.yml +31 -0
  2674. data/lib/roebe/yaml/name_for_the_wireless_interface.yml +1 -0
  2675. data/lib/roebe/yaml/pdf/pdf1.yml +1 -0
  2676. data/lib/roebe/yaml/pdf/pdf2.yml +1 -0
  2677. data/lib/roebe/yaml/pdf/pdf3.yml +1 -0
  2678. data/lib/roebe/yaml/pdf/pdf4.yml +1 -0
  2679. data/lib/roebe/yaml/pdf/pdf5.yml +1 -0
  2680. data/lib/roebe/yaml/pdf/pdf6.yml +1 -0
  2681. data/lib/roebe/yaml/pdf/pdf7.yml +1 -0
  2682. data/lib/roebe/yaml/pdf/pdf8.yml +1 -0
  2683. data/lib/roebe/yaml/pdf/pdf9.yml +1 -0
  2684. data/lib/roebe/yaml/peoples_age.yml +6 -0
  2685. data/lib/roebe/yaml/ports/ports.yml +50 -0
  2686. data/lib/roebe/yaml/posix_character_classes.yml +13 -0
  2687. data/lib/roebe/yaml/project_base_directory.yml +0 -0
  2688. data/lib/roebe/yaml/rufnummern_in_/303/266sterreich/rufnummern_in_/303/266sterreich.yml +5 -0
  2689. data/lib/roebe/yaml/size_of_countries.yml +197 -0
  2690. data/lib/roebe/yaml/statistics/statistics.yml +17 -0
  2691. data/lib/roebe/yaml/sternzeichen/sternzeichen.yml +16 -0
  2692. data/lib/roebe/yaml/system/system.yml +80 -0
  2693. data/lib/roebe/yaml/temperature_of_the_planets_in_our_solar_system/temperature_of_the_planets_in_our_solar_system.yml +22 -0
  2694. data/lib/roebe/yaml/test/README.md +4 -0
  2695. data/lib/roebe/yaml/test/umlaute.yml +2 -0
  2696. data/lib/roebe/yaml/the_beginning_of_linux/the_beginning_of_linux.yml +29 -0
  2697. data/lib/roebe/yaml/use_colours.yml +1 -0
  2698. data/lib/roebe/yaml/world_capitals/world_capitals.yml +204 -0
  2699. data/lib/roebe/yaml/world_geography_and_people/world_geography_and_people.yml +13 -0
  2700. data/lib/roebe.rb +7 -0
  2701. data/roebe.gemspec +104 -0
  2702. data/test/hello_world/hello_world.rb +1 -0
  2703. data/test/misc/README.md +2 -0
  2704. data/test/misc/arity_example.rb +44 -0
  2705. data/test/misc/display_the_shell_colours.rb +48 -0
  2706. data/test/misc/fetch_a_specific_key_from_a_hash.rb +26 -0
  2707. data/test/misc/fork_example.rb +15 -0
  2708. data/test/misc/hello_world.rb +1 -0
  2709. data/test/misc/heredoc_example.rb +9 -0
  2710. data/test/misc/minimal_irc_bot/minimal_irc_bot.rb +33 -0
  2711. data/test/misc/name_of_this_script.rb +12 -0
  2712. data/test/misc/read_keypresses.rb +79 -0
  2713. data/test/misc/readline/README.md +1 -0
  2714. data/test/misc/readline/completion_for_a_static_list.rb +33 -0
  2715. data/test/misc/simple_sigint_example.rb +51 -0
  2716. data/test/misc/simple_user_input_via_stdin_or_Readline_example.rb +14 -0
  2717. data/test/misc/tcp_socket_example.rb +28 -0
  2718. data/test/misc/tracer.rb +39 -0
  2719. data/test/misc/with_border.rb +22 -0
  2720. data/test/testing_cat.rb +3 -0
  2721. data/test/testing_class_configuration/testing_class_configuration.rb +81 -0
  2722. data/test/testing_core_functionality_of_ruby/README.md +6 -0
  2723. data/test/testing_core_functionality_of_ruby/file_test.rb +1 -0
  2724. data/test/testing_core_functionality_of_ruby/verbose_file_copy.rb +5 -0
  2725. data/test/testing_google_url_cleaner.rb +25 -0
  2726. data/test/testing_http_status_codes.rb +13 -0
  2727. data/test/testing_identical.rb +17 -0
  2728. data/test/testing_move_file.rb +14 -0
  2729. data/test/testing_permission_ascii_format.rb +23 -0
  2730. data/test/testing_sql_paradise.rb +17 -0
  2731. data/test/testing_the_roebe_shell.rb +31 -0
  2732. data/test/testing_twentyfour_hours_notation.rb +37 -0
  2733. data/test/testing_zenity.rb +26 -0
  2734. metadata +2877 -0
@@ -0,0 +1,2578 @@
1
+ # =========================================================================== #
2
+ # === MAIN_BACKGROUND_COLOR
3
+ # =========================================================================== #
4
+ MAIN_BACKGROUND_COLOR = 'background-color: #e7e5e2'
5
+
6
+ german('Compiling') {
7
+ autoextend
8
+ css_style TEMPLATE2.to_s+'
9
+ td { padding-left:3px;padding-right:3px;}
10
+ img {border:0px solid black;}
11
+ span {font-weight:400;}
12
+ pre {font-size:1.15em;}
13
+ div {line-height:inherit;}
14
+
15
+ div.default {
16
+ border:1px solid slateblue;
17
+ padding: 0.75em;
18
+ padding-top: 0.3em;
19
+ margin-top: 0.4em;
20
+ color: black;
21
+ '+MAIN_BACKGROUND_COLOR+'
22
+ }
23
+
24
+ p.default {
25
+ margin-left:0.5em;
26
+ text-indent:5px;
27
+ padding: 12px;
28
+ font-weight:normal;
29
+ color: black;
30
+ '+MAIN_BACKGROUND_COLOR+'
31
+ }
32
+
33
+
34
+ p {
35
+ margin-left:0.5em;
36
+ text-indent:5px;
37
+ font-weight:normal;
38
+ color: black;
39
+ '+MAIN_BACKGROUND_COLOR+'
40
+ }
41
+
42
+ body {
43
+ line-height:110%;
44
+ padding-right: 1.5em;
45
+ }
46
+ tt {font-weight:600}
47
+
48
+
49
+ a { text-decoration: none; }
50
+
51
+ '
52
+ favicon 'PC/OS/LINUX/COMPILING_FAVICON.png'
53
+ body_css_class 'FW5 mar0px pad0px BG_Black'
54
+ body_css_style MAIN_BACKGROUND_COLOR
55
+ font_size 'default'
56
+
57
+ # =========================================================================== #
58
+ # === GLIBC_REPLY
59
+ # =========================================================================== #
60
+ GLIBC_REPLY = 'marl2em'
61
+
62
+ # =========================================================================== #
63
+ # === command
64
+ # =========================================================================== #
65
+ def command(i); e i, CMD; end
66
+ alias cmd command
67
+
68
+ # =========================================================================== #
69
+ # === command2
70
+ # =========================================================================== #
71
+ def command2(i)
72
+ e i, CMD2
73
+ end; alias cmd2 command2
74
+
75
+ # =========================================================================== #
76
+ # === frage
77
+ # =========================================================================== #
78
+ def frage(i, optional_id = '')
79
+ br
80
+ e sg(:yel,'bblack2 marr4px')+i,
81
+ 'FS1_4em BO BLOCK s0_5em',
82
+ optional_id,
83
+ 'color: darkblue'
84
+ end
85
+
86
+ # =========================================================================== #
87
+ # Dots
88
+ # =========================================================================== #
89
+ DOT109 = dot 109, 'marr8px'
90
+ DOT108 = dot 108, 'marr8px'
91
+ DOT107 = dot 107, 'marr8px'
92
+ DOT106 = dot 106, 'marr8px'
93
+ DOT105 = dot 105, 'marr8px'
94
+ DOT104 = dot 104, 'marr8px'
95
+
96
+ # =========================================================================== #
97
+ # === COMPILE_HEADER2
98
+ # =========================================================================== #
99
+ COMPILE_HEADER2 = 'mars0_1em pad2px BO darkblue FW4'
100
+ # =========================================================================== #
101
+ # === COMPILE_HEADER3
102
+ # =========================================================================== #
103
+ COMPILE_HEADER3 = 'mars0_5em slateblue pad4px FI martb3px BO BG_White Black'
104
+
105
+ # =========================================================================== #
106
+ # === compile_header4
107
+ # =========================================================================== #
108
+ def compile_header4(i, extra_css = '')
109
+ h4 i,'mars2_5em darkgreen pad2px martb3px FW4 ind0px '+extra_css
110
+ end
111
+ compile_header5='mars3em pad2px FW4 martb3px'
112
+ # =========================================================================== #
113
+ # === PKG_CSS_ANSWER_CLASS
114
+ # =========================================================================== #
115
+ PKG_CSS_ANSWER_CLASS='s1em martb1px'
116
+ CMD = 'marl1em BO'
117
+ CMD2 = 'marl2em BO'
118
+ CMD3 = 'marl3em BO'
119
+
120
+ # =========================================================================== #
121
+ # === head
122
+ # =========================================================================== #
123
+ def head(i)
124
+ h3 dot(103,'marr8px')+i,'FI'
125
+ end
126
+
127
+ # =========================================================================== #
128
+ # === display_internal_sitemap
129
+ # =========================================================================== #
130
+ def display_internal_sitemap
131
+ div('posab mar5px pad0_5em','','top:3.5em;right:30px;
132
+ background-color:#c9c2b7; border:3px solid slateblue') {
133
+ h2 'Sitemap','padl0_5em FI mart1px marb1em'
134
+ # ===================================================================== #
135
+ # SITEMAP TAG
136
+ # ===================================================================== #
137
+ abr '#gcc_compile',
138
+ content: 'GCC'
139
+ abr '#autoconf',
140
+ content: 'Autoconfigure'
141
+ abr '#distributed_compiling',
142
+ content: 'Distributed Compiling'
143
+ abr '#configure_ac', content: 'configure.ac'
144
+ abr '#CFLAGS', content: 'CFLAGS'
145
+ abr '#distcc', content: 'DISTCC'
146
+ abr '#make', content: 'Make'
147
+ abr '#kobject', content: 'KObject'
148
+ abr '#kd', content: 'Der LD Linker'
149
+ abr '#pkg', content: 'PKG'
150
+ abr '#pkgconfig', content: 'Pkgconfig'
151
+ abr '#bootstrapping', content: 'Bootstrapping'
152
+ abr '#crosscompiling', content: 'Crosscompiling'
153
+ abr '#glibc', content: 'Glibc'
154
+ abr '#uclibc', content: 'Uclibc'
155
+ abr '#elf', content: 'ELF'
156
+ abr '#libtool', content: 'Libtool'
157
+ abr '#shared_libs', content: 'Shared Libraries'
158
+ abr '#appendix_compiling', content: 'Anhang zu Compiling'
159
+ abr '#chroot', content: 'Chroot'
160
+ abr '#libiconv',
161
+ content: 'Libiconv'
162
+ }
163
+ end
164
+
165
+ doc('pad5px s0_5em mar1px FW5 BG_Black padtb0_5em',
166
+ 'compiling') {
167
+ h2 'Compiling',
168
+ 'martb2px'
169
+ display_internal_sitemap
170
+ h1 sg(:angry_smiley,'padr1em', :drag)+'Compiling','yel mart4px'
171
+ div('mar0_2em pad10px s1em FW4 VERD mart1px','compilation',
172
+ 'border-top: 10px solid slateblue;
173
+ border-left:6px solid slateblue;
174
+ border-right:4px solid slateblue;
175
+ border-bottom:4px solid slateblue;'+
176
+ MAIN_BACKGROUND_COLOR){
177
+ # ======================================================================= #
178
+ # ALLGEMEINES ZUM KONFIGURIEREN VON SOURCE DATEIEN
179
+ # ======================================================================= #
180
+ p('mart1px') {
181
+ h2 dot(106, 'marr8px')+'Allgemein lassen sich zu der Ambition,
182
+ Programme aus den Quellen heraus zu kompilieren,
183
+ einige Punkte feststellen:','bigger BO black'
184
+ }
185
+ div('ind1em marl1em') {
186
+ e 'Beginnen wir mit <b>GNU autoconfigure</b>.'
187
+ br
188
+ e '<b>configure</b> ist ein script, welches durch
189
+ <b>GNU autoconfigure</b> bereitgestellt wird.'
190
+ br
191
+ e 'Es überprüft das System, und erstellt ein <b>Makefile</b>,
192
+ das ans System angepasst ist.
193
+ Es ist somit ein script in einem aktuellen Verzeichnis
194
+ und sollte mit <b>./configure</b> aufgerufen
195
+ werden (sofern man sich in diesem Verzeichnis befindet.)'; br
196
+ e '<b>Make</b> wiederum ist ein Programm, das zb typischerweise
197
+ in <b>/usr/bin/make</b> residiert - bei mir hingegen auf
198
+ <b>/Programs/Make/Current/bin/make</b>.'
199
+ br
200
+ e 'Das <b>eigentliche Kompilieren</b> eines Programmes kann
201
+ nun bis zu <b>vier Phasen</b> umfassen, die immer in
202
+ dieser Reihenfolge abgearbeitet werden:'
203
+ br
204
+ css_class = 'marl3em slateblue BOLD'
205
+ counter_li ' preprocessing',css_class
206
+ counter_li ' compilation',css_class
207
+ counter_li ' assembly',css_class
208
+ counter_li ' linking',css_class
209
+ p_default {
210
+ e 'Der <b>Vorteil von GNU autoconfigure</b> liegt darin,
211
+ das der selbe Source Code auf <i>verschiedenen</i>
212
+ Plattformen kompiliert werden kann.'
213
+ br
214
+ anm 'Man erkennt Autoconf Dateien an der Endung <b>.ac</b>'
215
+ }
216
+ p {
217
+ e 'Die Gesamtaufgabe der portablen Konfiguration, Übersetzung
218
+ und Installation von Programmen und Bibliotheken wird von
219
+ insgesamt <b>drei</b> Programmen erledigt:'
220
+ e 'Autoconf erzeugt aus einem Beschreibungsfile
221
+ (<b>configure.in</b>) ein <b>Shell-Skript</b> - das
222
+ vielleicht bereits bekannte <b>./configure</b> Skript,
223
+ welches wiederum durch kurze Test-Programme und -Skripten
224
+ die Eigenschaften des Ziel-Betriebssystems feststellt,
225
+ unter anderen werden auch einige headerfiles kontrolliert.'
226
+ br
227
+ anm 'Übrigens, fehlt einmal die <b>configure Datei</b>,
228
+ kann man sie unter Umständen mittels:
229
+ <b>aclocal; autoconf; ./autogen.sh</b>'
230
+ br
231
+ e '<b>aclocal</b> erzeugt dabei aus dem Inhalt von configure.in
232
+ Dateien die entsprechenden aclocal.m4-Dateien.','','configure_in'
233
+ e 'Aus den nun generierten Makefile-Fragmenten
234
+ (Makefile.in) wird endgültige Makefile erzeugt.'
235
+ e 'Automake erlaubt es, aus einer knappen Spezifikation
236
+ der zu erzeugenden Programme und der Quellfiles,'
237
+ e 'aus denen sie gebaut werden sollen (Makefile.am),
238
+ Makefile.ins zu erzeugen, die den GNU Coding Standards
239
+ entsprechen.'
240
+ e 'Mit anderen Worten, aus Makefile.am wird ein
241
+ Makefile.in. (Makefile.am -> Makefile.in)'
242
+ }
243
+ p {
244
+ s2 '<b>Libtool</b> erlaubt schließlich die portable
245
+ Erzeugung von Shared Libraries. Mehr zu Libtool '
246
+ abr 'hier',
247
+ content: 'hier', css_class: 'BO slateblue'
248
+ }
249
+ p {
250
+ e 'Der <b>Runtine Linker</b> muss auch imstande sein, diese
251
+ Shared Libraries zu finden.'
252
+ e 'Shared Libraries werden von dem <b>Loader /lib/ld-linux.so.X</b>
253
+ gefunden.'
254
+ br
255
+ e 'ld-linux.so sucht ALLE verwendeten Libraries von dem
256
+ aufgerufenen Programm.'
257
+ }
258
+ p {
259
+ e 'Folgendes Bild mag einem helfen, Autoconfigure
260
+ besser zu verstehen:'
261
+ br
262
+ dimg 'PC/OS/LINUX/AUTOCONFIGURE_IMAGE.png',
263
+ 'bblack3 mart5px marl5em'
264
+ }
265
+ p {
266
+ e 'Zu <b>configure.in</b> ist zu sagen, das es von dem m4
267
+ Macro Processor bearbeitet wird.'
268
+ br
269
+ e 'Abgesehen von diesen Macros ist es einfach nur ein shell
270
+ script.'
271
+ e 'Die Macros sind M4 Macros und ein Entwickler der mit GNU
272
+ Autoconfigure arbeitet muss diese Macros verwenden.'
273
+ e '(Es wird empfohlen mit einer bestehenden configure.in
274
+ Datei anzufangen und diese den Bedürfnissen
275
+ entsprechend anzupassen.)','marl1em','m4' # rfcompile m4
276
+ e 'M4 Macros sehen hässlich aus und sind es auch.
277
+ Kommentare geschehen nach dem Schlüsselwort dnl.'
278
+ e 'Per Konvention beginnen alle Macros von Autoconf
279
+ mit <b>AC_</b>'
280
+ br
281
+ e 'Die (spezifischen) Macros von <b>automake</b>
282
+ beginnen allesamt mit <b>AM_</b>'
283
+ e 'Man sollte auch bedenken das AC_CHECK_HEADER
284
+ und die andere AC_* Macros immer in [] Quotes gesetzt
285
+ werden sollten.'
286
+ }
287
+ p {
288
+ e 'Beispiel für <b>configure.in</b> Strukturen:'
289
+ cmd 'AC_INIT(libfoo.h)'
290
+ e 'libfoo.h sollte hier mit einer Header Datei ersetzt
291
+ werden, die in der Library mitgeliefert wird. Der Zweck
292
+ von AC_INIT ist es, Autoconf zu initialisieren.'
293
+ anm ' AC_INIT muss immer als erstes in
294
+ configure.in stehen!'
295
+ cmd 'AM_CONFIG_HEADER(config.h)'
296
+ e 'Dies hier erzeugt eine .config.h Datei'
297
+ br
298
+ e 'Mittels'
299
+ cmd 'AM_INIT_AUTOMAKE(libfoo,0.0.0)'
300
+ e 'gibt man den <darkblue>Namen des Projekt</> zu
301
+ automake an (inklusive Version Numbering).'
302
+ br
303
+ e 'Das was dahinter kommt sind die Versionen -
304
+ in Reihenfolge die "major", "minor", "micro" Versionen.'
305
+ br
306
+ e 'Die folgenden 3 Macros initialisieren
307
+ den C compiler und libtool:'
308
+ br
309
+ cmd 'AC_PROG_CC'
310
+ cmd2 'Erlaubt auch optional die Angabe anderer
311
+ Compile: <b>AC_PROG_CC(cl egcs gcc cc)</b>'
312
+ cmd 'AC_PROG_CPP'
313
+ cmd 'AM_PROG_LIBTOOL'
314
+ br
315
+ e 'Die CPP Line setzt den C Präprozessor
316
+ fest, der für einige Library Tests notwendig ist.'
317
+ br
318
+ e 'AM_MAINTAINER_MODE schaltet den Maintainer Mode ein:'
319
+ br
320
+ cmd 'AC_CHECK_LIB(appname, test_function)'
321
+ br
322
+ e '# Find out about the host we are building on:'
323
+ br
324
+ cmd 'AC_CANONICAL_HOST'
325
+ br
326
+ cmd 'AC_ARG_ENABLE(opi,[ --enable-opi include support for OPI comments]'
327
+ }
328
+ div('pad1em BG_Black','','color:#B0E0E6') {
329
+ e 'Um ./configure mit einem bestimmten Ziel zu
330
+ kompilieren ist die --prefix=/target Option wichtig.'
331
+ br
332
+ e 'Hat man noch Libraries, muss man eventuell
333
+ <a href="#LDCONFIG" class="slateblue">ldconfig</a> verwenden, damit
334
+ diese auch gefunden werden (post-make install method)'
335
+ }
336
+ div {
337
+ e '<b>Autoconf</b> setzt ausserdem selbst einige Variablen, wie
338
+ zB die Variable <b>prefix</b>, die im Makefile.in als
339
+ <b>@prefix@</b> gekennzeichnet ist.'
340
+ br
341
+ e 'Ein Makefile wiederum ist eine Datei, die das Programm
342
+ <b>make</b> benutzt, um Programme zu kompilieren.
343
+ Ändert man eine Datei, die Bestandteil des Programm ist,
344
+ kann man wiederum make aufrufen, um nur jene Teile zu
345
+ ändern, die auch <b>geändert werden müssen</b>.'
346
+ e 'Das war der Hauptgrund für die Entwicklung von make.
347
+ Mit anderen Worten kann man den Make Prozess getrost
348
+ unterbrechen und ihn <b>später</b> wieder neu starten.'
349
+ e 'Im <a href="#makefile">Anhang</a> findet man eine Liste
350
+ von Makros und ein Beispiel für ein gutes Makefile.'
351
+ br
352
+ e 'C Programme die in mehrere Dateien aufgeteilt
353
+ sind, lassen sich mittels gcc auch kompilieren.'
354
+ e 'header Files muss man dabei nicht angeben, da sie in
355
+ der .c Quelldatei beschrieben werden, allerdings muss man
356
+ die .c Dateien alle angeben, zb:'
357
+ cmd ' gcc -Wall main.c hello_fn.c -o newhello'
358
+ cmd ' gcc -Wall foobar1.c foobar2.c foobar_n.c -o newhello'
359
+ br
360
+ lem 'Dies ist bei grossen Programmen nicht mehr wirklich
361
+ praktisch, da man bei jeder Änderungen in der .c Datei alles
362
+ neu kompilieren müsste.'
363
+ br
364
+ }
365
+ }
366
+ }
367
+ div('default') {
368
+ dimg 'PC/OS/LINUX/COMPILING_SOFTWARE.png','bblack3 FLR'
369
+ h2 DOT108+'Compilation / Kompilierung | Configuration / Konfiguration',
370
+ COMPILE_HEADER3+' mars0_5em','', 'border-bottom:1px dotted darkgreen'
371
+ h3 'Was bedeuten die verschiedenen Compile / Configure
372
+ options?',COMPILE_HEADER3,'autoconfigure' #autoconfigure tag
373
+ table2 's3em FS1em FW5','autoconf','',
374
+ '--prefix=/usr,--prefix=$HOME,
375
+ <b class="firebrick">--prefix=$PROGRAMS/NAME_DES_PROGRAMMES</b>',
376
+ 'Wo installieren wir Binaries, Libraries und weitere Dateien hin?
377
+ Eben genau dorthin, oder in dein $HOME dir.',
378
+ '--with-','Gibt an, welche zusätzlichen Libraries mit
379
+ installiert werden sollen.
380
+ Manchmal gibt man mittels --with auch an, wo
381
+ verschiedene Bibliotheken zu finden sind, zB:
382
+ --with-qt=/opt/qt3',
383
+ '--enable-confdir=LOCATION','setzt wohin Konfigurationsdateien gehen sollen.',
384
+ '--cache-file=FILE','cache test results in FILE. Configure
385
+ unterstützt caching, und hier teilt man mit wo der Cache liegt.'
386
+ e 'Allgemeiner kann man dies hier nutzen um die Installation eines
387
+ Programmes zu adaptieren:'
388
+ p('ind0px marl1em'){
389
+ cmd3 '<b>--bindir=DIR</b> user executables [EPREFIX/bin]'
390
+ cmd3 '<b>--datadir=DIR</b> read-only architecture-independent data [PREFIX/share]'
391
+ cmd3 '<b>--infodir=DIR </b> info documentation [PREFIX/info]'
392
+ cmd3 '<b>--libdir=DIR </b> object code libraries [EPREFIX/lib]'
393
+ cmd3 '<b>--libexecdir=DIR </b> program executables [EPREFIX/libexec]'
394
+ cmd3 '<b>--localstatedir=DIR </b> modifiable single-machine data [PREFIX/var]'
395
+ cmd3 '<b>--sbindir=DIR </b> system admin executables [EPREFIX/sbin]'
396
+ cmd3 '<b>--sysconfdir=DIR </b>read-only single-machine data [PREFIX/etc]'
397
+ cmd3 '<b>--sharedstatedir=DIR</b> modifiable architecture-independent data [PREFIX/com]'
398
+ cmd3 '<b>--includedir=DIR </b> C header files [PREFIX/include]'
399
+ cmd3 '<b>--oldincludedir=DIR </b> C header files for non-gcc [/usr/include]'
400
+ cmd3 '<b>--mandir=DIR </b> man documentation [PREFIX/man]'
401
+ }
402
+ e 'Will man in einem <b>configure.ac Script</b> eine Variable
403
+ setzen geht dies so:'
404
+ br
405
+ cmd 'DEINE_VARIABLE="-L/irgendein/Wert"'
406
+ br
407
+ h3 'Beispiele:',COMPILE_HEADER3,'','configure'
408
+ compile_header4 'configure --prefix=$PROGRAMS/SDL-1.2.8'
409
+ }
410
+ # ========================================================================= #
411
+ # GCC TAG gcc tag
412
+ # ========================================================================= #
413
+ # GCC ist das A und O.
414
+ # ========================================================================= #
415
+ div('default mart5px'){
416
+ e sg(:pfeil10,'marr1em')+'Kommen wir nun zu GCC - der compiler Suite ...'
417
+ h1 sg('PC/OS/LINUX/GCC_FAVICON.png','',:drag)+
418
+ 'About GCC / Über GCC',COMPILE_HEADER3+' mars0_5em mart1em wid60',
419
+ 'gcc_compile','border-bottom:2px solid slateblue'
420
+ br
421
+ e 'Man kann Programme in .o Objekt Dateien kompilieren, und diese
422
+ .o Dateien später verknüpfen (<b>linking</b>).'
423
+ br
424
+ e 'Dieses Erstellen von <b>.o Dateien</b> geht mit
425
+ der <b>-c Option</b> so:'
426
+ br
427
+ cmd ' gcc -Wall -c test1.c'
428
+ br
429
+ e 'Die entstehenden .o Dateien kann man nun wie folgt verknüpfen:'
430
+ br
431
+ cmd ' gcc main.o hello_fn.o -o hello'
432
+ br
433
+ e '(Beim Verlinken macht die -Wall Option keinen Sinn, da ja bereits
434
+ vorher die Quelldateien überprüft wurden - hoffentlich. Objekt Dateien
435
+ enhalten bereits den Maschinencode.)'
436
+ br
437
+ e 'Mittels -l können Libraries verlinkt werden. Alternativ
438
+ kann der reelle Pfad angeben werden, dies ist aber nicht
439
+ besonders praktisch.'
440
+ br
441
+ e 'Um zum Beispiel gegen die Math Library zu linken würde das hier
442
+ funktionieren:'
443
+ cmd 'gcc -Wall calc.c -lm -o calc'
444
+ br
445
+ e 'Übrigens linkt -l default mässig nur gegen .a Libraries, nicht
446
+ gegen .so Libraries.'
447
+ e '-Wall findet auch keine Problem während des Erstellen
448
+ des Programmcodes, zb bei einem NULL Pointer.'
449
+ br
450
+ e 'Auch hier kommt es auf die Reihenfolge an - Bibliotheken
451
+ die zuerst erscheinen (von links nach rechts) werden zuerst
452
+ eingebunden.'
453
+ br
454
+ e 'Wie findet gcc die Libraries und Include Dateien?'
455
+ e 'Defaultmässig sucht gcc für header Dateien
456
+ (Include Path) in:'
457
+ cmd ' /usr/local/include/'
458
+ cmd ' /usr/include/'
459
+ e 'Für Libraries (Link Path) nutzt gcc:'
460
+ cmd ' /usr/local/lib/'
461
+ cmd ' /usr/lib/'
462
+ e 'Die /local Varianten werden zuerst '+sg(:rufzeichen)+'
463
+ durchsucht.'
464
+ br
465
+ e 'Gibt es Bibliotheken, die in anderen Verzeichnissen residieren,
466
+ muss man die <b>Suchpfade erweitern</b>. Dazu nutzt man -I und -L,
467
+ wobei der ld Linker manchmal nicht die Dateien finden kann, und
468
+ zb so einen Fehler ausgibt:'
469
+ cmd ' /usr/bin/ld: cannot find -lgdbm'
470
+ br
471
+ e 'Den absoluten Pfad von header Files in
472
+ <b>#include</b> anzugeben ist nicht so gut, da dies
473
+ auf anderen Systemen meistens nicht mehr funktioniert.'
474
+ br
475
+ e 'Mittels <b>"-nostdinc"</b> kann man normale
476
+ Suchpfade ignorieren, das mag wichtig sein wenn man
477
+ alternative Include Verzeichnisse verwenden will.'
478
+ br
479
+ e 'Den <b>C Include Path</b> kann man auch weiters so setzen:'
480
+ cmd ' C_INCLUDE_PATH=/opt/gdbm-1.8.3/include'
481
+ br
482
+ e 'Ähnliches geht auch mit <b>CPLUS_INCLUDE_PATH</b> für CPP Dateien.
483
+ Diese beiden Variablen werden erst nach /usr/local/include und
484
+ /usr/include durchsucht.'
485
+ e 'Um mehrere Verzeichnisse anzugeben können
486
+ die Einträge mit <b>:</b> getrennt werden.'
487
+ br
488
+ e 'Statische Libraries haben einige Nachteile, der
489
+ prominenteste Nachteil ist, das Programme viel grösser werden.'
490
+ e 'Gcc versucht daher immer, shared Libraries zu
491
+ nutzen (by default). Wann immer ein libNAME.a vorhanden
492
+ ist, versucht gcc herauszufinden ob es nicht eine
493
+ libNAME.so Version davon gibt. Gibt es diese, so
494
+ wird sie anstatt von libNAME.a benutzt.'
495
+ e 'Dieses Verhalten kann aber ausgeschalten werden,
496
+ indem man gcc mitteilt, dies nicht zu tun (-static):'
497
+ cmd 'gcc -Wall -static -L/opt/gdbm-1.8.3/lib/
498
+ dbmain.c -lgdbm'
499
+ e 'Will man 64 Bit Binaries mit GCC erzeugen, verwendet
500
+ man die <b>-m64</b> flag.'
501
+ cmd 'gcc -m64 foobar.c -o foobar'
502
+ e 'GNU GCC hat einige Dialekte drauf, die mit -ansi und -pedantic
503
+ kontrolliert werden können. -ansi zb schaltet bestimmte Keywörter
504
+ im GNU GCC aus, wie asm, und erlaubt somit die Verwendung einer
505
+ Variablen die asm genannt wird.'
506
+ e 'Weitere GNU GCC Variablen, die nicht in Ansi vorkommen,
507
+ sind <b>inline, typeof, unix und vax</b>.'
508
+ e 'Die Verwendung von -pedantic und -ansi sorgt
509
+ dafür das alle GNU C Extensions zurückgewiesen werden.'
510
+ e 'Dies hilft, wirklich portablen C Code zu schreiben.'
511
+ e '-Wall kombiniert man oft mit -W, die zwei sind
512
+ leider nicht das selbe.'
513
+ br
514
+ e 'Ansonsten kann man testweise probieren, sein C Programm
515
+ mit <b>jenen folgenden Optionen</b> zu kompilieren (aliased
516
+ auf <b>gccbig</b>):'
517
+ cmd ' gcc -ansi -pedantic -Wall -W -Wconversion
518
+ -Wshadow -Wcast-qual -Wwrite-strings'
519
+ e 'Debug Information kann man nutzen,
520
+ und zwar mittels -g. Dies bläht aber das Executable auf.'
521
+ e 'Crashed ein Program, dann kann das
522
+ OS ein core file (.core) schreiben. '
523
+ br
524
+ e 'Wird kein core dump file erstellt, liegt dies wohl
525
+ an einem Bash setting, welches man hiermit beseitigen kann:'
526
+ cmd ' ulimit -c unlimited'
527
+ e 'Nun kann man <i>gdb</i> nutzen:'
528
+ cmd ' gdb EXECUTABLE-FILE CORE-FILE'
529
+ cmd ' gdb a.out core.32214'
530
+ e 'Ein breakpoint stoppt das Exekutieren eines Programmes, und
531
+ gibt die Kontrolle zurück zu dem Debugger. Das Kommando dazu
532
+ ist <b>break</b>'
533
+ e 'Seit GCC 4 gibt es die Compile Option
534
+ <b>-fvisibility=hidden</b>. Erstellt man eine shared
535
+ library mit dieser Flag, dann versteckt GCC alle
536
+ Symbole die nicht explizit als visible markiert sind.'
537
+ e '-fvisibility=hidden verkürzt oft die Ladezeiten,
538
+ insofern ist es eine nützliche Compiler Option.'
539
+ e '-Wc++-compat ist auch recht nützlich, denn es gibt einem
540
+ Warnungen über Constructs die einen C++ Compiler stören könnten.'
541
+ e 'Der GCC ld-wrapper ist collect2.'
542
+ # 32 Bit Applikationen kompilieren, mittels -m32.
543
+ frage 'Wie kompiliere ich eine 32-Bit Applikation mittels GCC
544
+ auf einem 64-bit System?','m32'
545
+ e 'Dies erfolgt mittels der <b>-m32</b> bzw. der <b>-m64</b> Option.'
546
+ br
547
+ e 'Diese Optionen generieren Code für eine 32-bit oder eben
548
+ für eine 64-bit Umgebung.'
549
+ br
550
+ lem 'Die 32-bit Umgebung setzt int, long und pointer zu 32 bits
551
+ and erstellt Code der auf jedem i386 System läuft.'
552
+ lem 'Die 64-bit Umgebung sets int to 32 bits and long
553
+ and pointer to 64 bits and generates code for AMDs x86-64
554
+ architecture.'
555
+ br
556
+ e 'Hier Beispiele.'
557
+ br
558
+ e 'Kompilieren für eine <b>32 bit Version</b>:'
559
+ cmd ' gcc -m32 -o output32 hello.c'
560
+ e 'Kompilieren für eine <b>64 bit Version</b>:'
561
+ cmd ' gcc -m64 -o output64 hello.c'
562
+ br
563
+ e 'Und das Resultat ruft man wie folgt auf:'
564
+ cmd ' ./output32'
565
+ # ======================================================================= #
566
+ # CODING STANDARDS zu GCC
567
+ # ======================================================================= #
568
+ h2 sg(:scale,'marr8px')+'Coding Standards für GCC',COMPILE_HEADER3,'coding_standards'
569
+ compile_header4 '<a href="http://www.gnu.org/prep/standards/standards.html#Preface">
570
+ http://www.gnu.org/prep/standards/</a>'
571
+ # ======================================================================= #
572
+ # GCC FLAGS.
573
+ # ======================================================================= #
574
+ h4 'Was gibt es zu gcc und den gcc Flags zu sagen?',
575
+ COMPILE_HEADER3,'gcc'
576
+ compile_header4 'GCC ist das *nix Tool schlecht hin zum Erstellen von
577
+ ausführbaren Dateien aus .c oder .gcc Dateien.
578
+ Als solches ist gcc lediglich ein <b>Front End</b>.
579
+ Es handelt sich bei GCC (<b>GNU Compiler Collection</b>) um einen
580
+ ANSI C compiler mit Unterstützung für K&R C, C++, Objective C,
581
+ Java, Fortran, Ada, treelang.
582
+ GCC analysiert welche Sources man hat und bestimmt dann den
583
+ passenden Compiler dazu.
584
+ Beispiel - der Ada compiler heisst gnat1 und der
585
+ C compiler heisst cc1.<br/>
586
+ GCC ist auch gut beim Erstellen von Debugging Information, und
587
+ unterstützt auch Intel IA-64 Prozessoren.
588
+ Die erste Version erschien am <b>22. März 1987</b>.
589
+ Mittlerweile umfasst GCC über 25.000 Dateien mit mehr als
590
+ 2,1 Millionen Zeilen Code. <br/>
591
+ Mit dem <b>Tree-SSA-Projekt</b>, das ab GCC 4.0 verwendet wird,
592
+ wurden zwei neue Formen von sprachunabhängigen Bäumen
593
+ eingeführt (<b>GENERIC und GIMPLE</b>) <br/>
594
+ Parsing wird nun durchgeführt, indem ein temporärer sprachabhängiger
595
+ Baum nach <b>GENERIC</b> konvertiert wird. Der so genannte <b>Gimplifier</b>
596
+ überführt diese komplexe Form in die SSA-basierte GIMPLE-Form,
597
+ von der ausgehend eine Reihe neuer sprach- und architekturunabhängiger
598
+ Optimierungen durchgeführt werden können.
599
+ Übrigens - Optimierungen an diesen "Bäumen" passt normalerweise
600
+ nicht in das Schema von <b>Frontend</b> und <b>Backend</b> -
601
+ Die GCC-Entwickler haben diesem Teil des Compilers daher den
602
+ Namen <b>Middleend</b> gegeben.
603
+ Zu den gegenwärtig am SSA-Baum durchgeführten Optimierungen
604
+ gehören Dead Code Elimination, Partial Redundancy Elimination,
605
+ Global Value Numbering, Sparse Conditional Constant
606
+ Propagation, und Scalar replacement of Aggregates.
607
+ Array-basierende Optimierungen wie zum Beispiel automatische
608
+ Vektorisierung, wie sie der Intel-Compiler anbietet, werden
609
+ gegenwärtig entwickelt. <br/>
610
+ Binaries die unter GCC kompiliert werden, sollten
611
+ auch auf anderen Computern funktionieren - Rechner A
612
+ kann daher auch für Rechner B, C und D die Binaries
613
+ erstellen, die diese Rechner nutzen. Das mag in
614
+ einem Netzwerk hilfreich sein.<br>
615
+ Folgendes Command zeigt einem welche Symbole
616
+ gcc versteht:<br>
617
+ echo \'main(){printf("hello world\n"}\' | gcc -E -v -'
618
+ compile_header4 'GCC Braucht zum Funzen einige Dateien und Libraries,
619
+ unter anderem auch die cc<b>1 Library</b>. Zb hier:<br/>
620
+ /usr/libexec/gcc/i386-unknown-linux/3.4.4/cc1
621
+ /usr/libexec/gcc/i386-unknown-linux/3.4.4/cc1obj
622
+ /usr/libexec/gcc/i386-unknown-linux/3.4.4/cc1plus'
623
+ # ======================================================================= #
624
+ # CREATE OBJECT FILE WITH GCC
625
+ # ======================================================================= #
626
+ h3 'Wie erstelle ich ein Objekt File mit gcc?',COMPILE_HEADER3
627
+ compile_header4 'gcc -g -O -c main.c','BO '
628
+ # ======================================================================= #
629
+ # WOZU OBJECT FILE
630
+ # ======================================================================= #
631
+ h3 'Wozu brauche ich ein Objekt File?',COMPILE_HEADER3
632
+ compile_header4 'Es speicht den Quellcode einer Datei. Hat man sehr
633
+ viele Dateien, so','BO '
634
+ # ======================================================================= #
635
+ # CREATE OBJECT FILE WITH GCC WITHOUT DOING ALL STEPS
636
+ # ======================================================================= #
637
+ h3 'Wie erstelle ich ein Objekt File mit gcc ohne alle Schritte
638
+ auszuführen?',COMPILE_HEADER3
639
+ compile_header4 '<i class="darkblue">gcc -c DEINE_C_DATEI</i> <br/>
640
+ Hiermit wird nur eine Objektdatei erzeugt. Die
641
+ Option -c dient zum Überspringen des Linker Teil.'
642
+ # ======================================================================= #
643
+ # GCC'S SEARCH DIRS AUSGEBEN
644
+ # ======================================================================= #
645
+ h3 'Wie find ich heraus, für welchen Ort gcc configured war?',COMPILE_HEADER3
646
+ compile_header4 'gcc --print-search-dirs'
647
+ # ======================================================================= #
648
+ # GCC ABBRUCH NACH PRÄPROZESSOR
649
+ # ======================================================================= #
650
+ h3 'Wie veranlasse ich gcc dazu abzubrechen nach dem Präprozessor?',
651
+ COMPILE_HEADER3
652
+ compile_header4 'gcc -E'
653
+ # ======================================================================= #
654
+ # GCC FLAGS GCC OPTIONEN
655
+ # OPTIONEN -I und -D
656
+ # rf comp gcc_optionen
657
+ # ======================================================================= #
658
+ h3 'Was bedeuten die gcc Optionen mit -I, -L und -D? (Include Flags)',
659
+ COMPILE_HEADER3+' mart2em','gcc_optionen'
660
+ compile_header4 '-I wird für INCLUDE Zeugs genutzt, -D dient als Hilfe
661
+ für den C-Compiler.'
662
+ br
663
+ e 'Mittels -I werden library headers gefunden.'
664
+ e 'Die Option -L wird für den Linker genutzt, damit werden
665
+ shared objects miteinander gelinkt. Mittels der
666
+ Option --nodefaultinc kann man gcc veranlassen nichts
667
+ zu inkludieren. Mittels -E kann man anschauen,
668
+ was das Präprozessor macht.'
669
+ div('marl2em') {
670
+ e 'Hier eine Übersicht über einige wichtigere GCC Optionen:'
671
+ table2 'marl1em','','',
672
+ '-g','Die -g flag wird zum Erzeugen der
673
+ debug Symbols und line number Information genutzt: gcc test.c -g',
674
+ '-O0','schaltet alle Optimierungen aus'
675
+ }
676
+ frage 'Was bedeutet --disable-multilib?'
677
+ e 'multiple target libraries to support different target variants
678
+ will not be built. The default is to build predefined set of them.'
679
+ br
680
+ e 'Auf 64 Bit Systemen wird durch diese Option nur der 64 bits
681
+ native compiler gebastelt, ohne 32 bits legacy.'
682
+ h4 'GCC Links und Ressourcen','s2em'
683
+ div('mars1em pad0_1em') {
684
+ abr 'http://gcc.gnu.org/',
685
+ content: 'GCC Homepage'
686
+ }
687
+ # ======================================================================= #
688
+ # configure.ac tag. autoconf tag
689
+ # ======================================================================= #
690
+ h4 'configure.ac','','configure_ac'
691
+ e 'Um bestimmte Packages abzufragen via pkgconfig, kann man dies
692
+ hier nutzen in configure.ac:'
693
+ br
694
+ cmd 'PKG_CHECK_MODULES([GNOME], [gtk > 1.2.8 gnomeui >= 1.2.0])'
695
+ br
696
+ e 'Aus den configure.ac scripts wird das portable configure
697
+ script erstellt.'
698
+ br
699
+ h4 'Optimierungen mit GCC'
700
+ }
701
+ # ======================================================================= #
702
+ # aclocal.m4 tag.
703
+ # ======================================================================= #
704
+ div('default'){
705
+ h3 'Was gibt es zu aclocal.m4 zu sagen?',COMPILE_HEADER3,'aclocal.m4'
706
+ compile_header4 'M4 ist eine ziemlich komplexe Makro-Expansionssprache,
707
+ deren Syntax kompliziert ist.
708
+ Solche Makros werden üblicherweise in aclocal.m4
709
+ untergebracht, wenn sie nur für das Paket verwendet
710
+ werden, oder in acsite.m4, wenn sie auch in anderen
711
+ Paketen benutzt werden können.'
712
+ h3 'Was gibts zu GNU autoconfigure zu sagen?',
713
+ COMPILE_HEADER3
714
+ compile_header4 'Zu finden auf <a href="http://www.gnu.org/software/autoconf/">Autoconf</a>.
715
+ Autoconfigure besteht aus m4 macros, die shell scripts erstellen.
716
+ Dabei muss man GNU m4 installiert haben.
717
+ (Auto)configure führt einige SystemTests durch, speichert
718
+ diese Information meistens in einer Datei namens <b>config.cache</b>
719
+ und produziert letzten Endes Konfigurations Skripte, die
720
+ unabhängig von Autoconf laufen können - ein Enduser
721
+ muss daher nicht autoconf haben, um in den Genuss seiner
722
+ Vorteile zu kommen.
723
+ Zudem werden beim Kompilieren sogenannte Flags zu Rate gezogen, die zB
724
+ LDFLAGS genannt werden, und auf die korrekten Verzeichnisse hinzeigen.
725
+ Das configure script gibt Fehlermeldung aus, sofern eine configure option
726
+ nit gefunden wurde, zB Unknown Option n. Auch werden während
727
+ der configure Phase niemals aktiv Änderungen vorgenommen, zb
728
+ durch Erstellen von Verzeichnissen - dies wird durch <b>make</b>
729
+ bzw <b>install</b> dann vorgenommen.'
730
+ h3 'Wie finde ich raus, welches --prefix= configure genutzt hat?',
731
+ COMPILE_HEADER3
732
+ compile_header4 'In der Datei <b>config.log</b>, greppen a la<br/>
733
+ grep "prefix=\'*\'" config.log |non } <br/>
734
+ Übrigens bestimmt ./configure automatisch das /usr/local
735
+ das prefix ist.'
736
+ }
737
+ # ========================================================== #
738
+ # AM MACROS
739
+ # ========================================================== #
740
+ div('default s1em White'){
741
+ h3 'Wie nutze ich GNU autoconfigure für ein Programm, wenn es
742
+ noch nicht GNU autoconfigure nutzt?',
743
+ COMPILE_HEADER3
744
+ compile_header4 'Zur Theorie dazu, siehen den Absatz weiter
745
+ oben. Ansonsten startet man mit der Erstellung der Datei
746
+ configure.in. Sie sollten diese Macros haben:'
747
+ e 'AM_ICONV','BO'
748
+ br
749
+ e 'The AM_ICONV macro tests for the presence of the
750
+ POSIX/XSI iconv def family in either
751
+ the C library or a separate libiconv library.'
752
+ e 'AC_INIT, AC_PREREQ(VERSION), AM_INIT_AUTOMAKE, AM_CONFIG_headER,
753
+ AM_MAINTAINER_MODE, AC_EXEEXT, AC_PROG_CC, AC_PROG_CXX,
754
+ AM_PROG_LIBTOOL, AC_DEFINe _GNU_SOURCE), AC_OUTPUT,'
755
+ anm 'Note: AC_INIT is always the first Macro in a
756
+ configure.in script'
757
+ }
758
+ p {
759
+ e 'Nun schreibt man <b>Makefile.am</b>.'
760
+ }
761
+ # ========================================================================= #
762
+ # glibc tag glib-config --cflags glib tag. rf compile glibc
763
+ # ========================================================================= #
764
+ div('default pad1em') {
765
+ h2 'Glibc, Glib und ld.so'
766
+ div('FS1_1em ind1em','glibc') {
767
+ e '<b>glibc</b>, die <b>GNU C-Bibliothek</b>, ist eine freie
768
+ Implementation der Standard C Library - die
769
+ <b>Standard C Bibliothek unter Linux</b>.'
770
+ br
771
+ e 'GLib hingegen wiederum ist eine <b>Low-level core Bibliothek</b>,
772
+ die die <b>Basis zu GTK+ und Gnome</b> bildet. Dies sollte man im
773
+ Kopf behalten damit man diese zwei Bibliotheken nicht verwechselt.'
774
+ br
775
+ e 'Ein grosses Design Ziel der glibc Bibliothek ist die
776
+ <b>Portabilität</b>, dies bedeutet aber auch, das Applikationen
777
+ grösser werden, da portabler Code mitgeschleppt bzw kompiliert
778
+ werden muss.'
779
+ e 'Dies ist zB der Fall bei statischen Programmverknüpfungen,
780
+ wenn die Bibliothekfunktionen in die Exec kopiert werden - also
781
+ bei allen lib Dateien, die <b>.a</b> Dateien sind, ansonsten
782
+ sind sie shared objects mit <b>.so</b> Endung.'
783
+ e 'Glibc steht unter <b>LGPL</b>, damit sie als Bibliothek
784
+ auch unter nicht freier Software verwendet werden kann und darf.'
785
+ e 'Sie erfüllt zudem die C-Standards.'
786
+ br
787
+ e 'Warum brauchen wir die Glibc überhaupt auf Linux?'
788
+ e 'Glibc ist die <b>wichtigste</b> C Bibliothek.'
789
+ e 'Sie definiert die system calls und andere
790
+ Grundoperationen wie open, malloc, printf, exit','marl1em'
791
+ e 'Ohne sie kann man keine C Programme kompilieren
792
+ - oder betreiben.'
793
+ # ======================================================================= #
794
+ # neueste glibc version
795
+ # ======================================================================= #
796
+ e 'Die neueste Version der glibc trägt
797
+ Versionsnummer 2.7 (Stand: 24 NOV 2007)'
798
+ br
799
+ e 'Es gibt übrigens schlankere Versionen von libc, zB
800
+ <b>uClibc</b> und <b>dietlibc</b>. Zu dietlibc ein paar
801
+ Beispiele im gleich folgenden Anhang.'
802
+ e '<b>glibc</b> wird von allen Programm verwendet.
803
+ Wenn man also glibc upgraded, werden die aktuell
804
+ laufenden Programme noch immer auf die alte (nun
805
+ eventuell gelöschte glibc Bibliothek zugreifen.
806
+ Neue Programme, die nun gestartet werden, nutzen die
807
+ neuere glibc Bibliothek - sofern vorhanden.'
808
+ br
809
+ e 'Eng verwandt mit glibc ist die Datei <b>ld.so</b>, die
810
+ normalerweise unter <b>/lib/ld.so</b> zu finden ist.'
811
+ e 'ld.so ist der <b>dynamic library loader</b>.'
812
+ e 'Jedes Binary das shared library verwendet, hatte früher 3K
813
+ start-up code. Der war notwendig um die shared libraries zu
814
+ finden und laden.'
815
+ e sg(:ausrufungszeichen,'marr4px')+
816
+ 'Aber was ist wenn Glibc gebrochen, also
817
+ nicht verwendbar, ist?','s2em'
818
+ e 'Gute Frage - einige gebräuchliche Fehler
819
+ sind folgende:'
820
+ e 'Um die Glib Version herauszufinden:'
821
+ e ' glib-config --version',GLIBC_REPLY
822
+ e 'bzw'
823
+ e ' pkg-config glib --cflags',GLIBC_REPLY
824
+ e 'und um die GTK Version herauszufinden'
825
+ e ' gtk-config --version',GLIBC_REPLY
826
+ br
827
+ e 'Um glibc auch in zb /usr/local zu installieren
828
+ kann man diese Option nutzen:'
829
+ br
830
+ e ' --disable-sanity-checks ',GLIBC_REPLY
831
+ br
832
+ e 'Um nun sein System auf eine neue Libc zu portieren,
833
+ sollte man in etwa so vorgehen:'
834
+ br
835
+ e '1 Wichtige Dateien in /libc backupen:'
836
+ br
837
+ cmd 'cd /libcp libc.so* libm.* /libc_backup'
838
+ br
839
+ abr 'http://www.gnu.org/software/libc/',
840
+ content: 'Offizielle Homepage der Libc'
841
+ abr 'http://www.linuxfromscratch.org/lfs/view/development/chapter05/glibc.html',
842
+ content: 'LFS Build Instructions der GLibc'
843
+ div('default') {
844
+ # ============================================================ #
845
+ # upgrade glibc tag. upgrade tag
846
+ # rf compiling glibc_upgrade
847
+ # ============================================================ #
848
+ h2 sg('PC/OS/LINUX/UPGRADE.png','bblack1 marr4px')+
849
+ 'Upgraden der Glibc','','glibc_upgrade'
850
+ p('','upgrade'){
851
+ e 'Da ich immer wieder Probleme mit dem Glibc Upgrade
852
+ hatte, hier eine Liste an Dingen, die ich für einen
853
+ <b>Glibc Upgrade</b> empfehle:'
854
+ }
855
+ p('marl3em ind0px') {
856
+ e '(1) Einige Programme sollten statisch kompiliert werden,
857
+ zumindest aber <b>make</b> und nach Möglichkeit auch
858
+ <b>tar</b> sowie <b>m4</b>'
859
+ br
860
+ e '(2) Für den Fall der Fälle braucht man wohl auch
861
+ statische Versionen von <b>binutils</b>, <b>coreutils</b>
862
+ und auch <b>busybox</b>'
863
+ br
864
+ e '(3) Auch <b>ncurses</b> sollte statisch kompiliert
865
+ werden, sowie <b>bash</b>, <b>bzip</b>, <b>gawk</b>,
866
+ <b>grub</b>, <b>nano</b> und - ganz
867
+ wichtig - auch <b>sed</b>.'
868
+ br
869
+ anm ' Hier die <b>Liste</b>:'
870
+ br
871
+ e 'make, tar, m4, binutils, busybox, coreutils, bash, bzip2,
872
+ gawk, grub, nano, sed, findutils','marl3em'
873
+ e '(4) Nun sollte man rebooten und
874
+ <b>init=/bin/bash</b> durchführen.'
875
+ e 'Nachdem man Glibc upgegraded hat, sollte man
876
+ <b>init -u</b> laufen lassen.'
877
+ e 'Nun ist es wichtig die GCC Specs anzupassen.'
878
+ br
879
+ e 'Also mal folgendes Command durchführen:'
880
+ br
881
+ cmd ' gcc -v'
882
+ br
883
+ e 'reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs'
884
+ e 'gcc version 2.7.2.2'
885
+ br
886
+ e 'Auch wird empfohlen, binutils, Gcc und coreutils
887
+ erneut zu kompilieren ("rebuild" nachdem das Upgrade
888
+ der Glibc geklappt hat. (Danach muss eventuell auch
889
+ der Kernel neu gebastelt werden.)'
890
+ }
891
+ div {
892
+ h2 dot(102)+'Glibc Komponenten (Components of the GNU C Library:'
893
+ e '<table border="1" cellpadding="3" bordercolor="# 333333">
894
+ <tr>
895
+ <td>Component</td>
896
+ <td>Description</td>
897
+ </tr>
898
+ <tr>
899
+ <td><tt>ld.so</tt></td>
900
+ <td>Dynamic linker/loader</td>
901
+ </tr>
902
+ <tr>
903
+ <td><tt>libc</tt></td>
904
+ <td>Provides the majority of the C library routines
905
+ (The file libc.so is a simple text file)</td>
906
+ </tr>
907
+ <tr>
908
+ <td><tt>libcrypt</tt></td>
909
+ <td>Implements cryptography routines</td>
910
+ </tr>
911
+ <tr>
912
+ <td><tt>libdl</tt></td>
913
+ <td>Enables dynamic loading of shared objects</td>
914
+ </tr>
915
+ <tr>
916
+ <td><tt>libm</tt></td>
917
+ <td>Provides the math routines for the C library</td>
918
+ </tr>
919
+ <tr>
920
+ <td><tt>libnss_compat</tt></td>
921
+ <td>Implements Name Service Switch (<em>NSS</em> compatibility routines)</td>
922
+ </tr>
923
+ <tr>
924
+ <td><tt>libnss_dns</tt></td>
925
+ <td>Enables NSS routines for Domain Name Service (<em>DNS</em> lookups)</td>
926
+ </tr>
927
+ <tr>
928
+ <td><tt>libnss_files</tt></td>
929
+ <td>Provides file-based NSS services</td>
930
+ </tr>
931
+ <tr>
932
+ <td><tt>libnss_hesiod</tt></td>
933
+ <td>Implements NSS services for Hesiod name resolution</td>
934
+ </tr>
935
+ <tr>
936
+ <td><tt>libnss_nis</tt></td>
937
+ <td>Enables NIS database lookups for NSS</td>
938
+ </tr>
939
+ <tr>
940
+ <td><tt>libnss_nisplus</tt></td>
941
+ <td>Enables NIS+ database lookups for NSS</td>
942
+ </tr>
943
+ <tr>
944
+ <td><tt>libpthread</tt></td>
945
+ <td>Provides POSIX threads support routines for programming with pthreads</td>
946
+ </tr>
947
+ <tr>
948
+ <td><tt>libresolv</tt></td>
949
+ <td>Implements standard name resolution services</td>
950
+ </tr>
951
+ <tr>
952
+ <td><tt>libthread_db</tt></td>
953
+ <td>Provides debugging routines for pthreads-based programs</td>
954
+ </tr>
955
+ <tr>
956
+ <td><tt>libutil</tt>'
957
+ ctd
958
+ td 'Implements login and user accounting routines'
959
+ ctdctr
960
+ ctable
961
+ }
962
+ }
963
+ }
964
+ }
965
+ # ========================================================================= #
966
+ # OPTIMIEREN
967
+ # ========================================================================= #
968
+ h3 'Wie optimiere ich?',COMPILE_HEADER3
969
+ compile_header4 'zB mit --enable-CXXOPT= --enable-COPT='
970
+ # ========================================================================= #
971
+ # CLEANING
972
+ # ========================================================================= #
973
+ h3 'Wie räume ich mittels <b>make</b> auf?',COMPILE_HEADER3
974
+ compile_header4 ' make -C ld clean # dies würde alle erstellten
975
+ Dateien löschen.'
976
+ # ========================================================================= #
977
+ # LIB_PATH target
978
+ # ========================================================================= #
979
+ h3 'Wie spezifiziere ich ein anderes LIB_PATH target via make?',COMPILE_HEADER3
980
+ compile_header4 ' make -C ld LIB_PATH=/tools/lib'
981
+ # ========================================================================= #
982
+ # BOOTSTRAPPING
983
+ # ========================================================================= #
984
+ h3 'Was macht <b>make bootstrap</b>?',COMPILE_HEADER3
985
+ compile_header4 'Kompiliert das ganze mehrere Male. Alternativ dazu kann
986
+ man auch <b>make bootstrap-lean</b> nutzen.'
987
+ # ========================================================================= #
988
+ # GUESS HOST SYSTEM VALUES
989
+ # ========================================================================= #
990
+ h3 'Gibt es einen Weg, die Werte des Host System zu überprüfen?',
991
+ COMPILE_HEADER3
992
+ compile_header4 './config.guess'
993
+ # ========================================================================= #
994
+ # ALLGEMEIN - KOMPILIEREN VON SOFTWARE AUF LINUX
995
+ # ========================================================================= #
996
+ h2 'Allgemeines Chit-Chat über Kompilieren von Software
997
+ auf Linux','BO '+compile_header5
998
+ e 'Tools die mit Autoconf verwandt sind, bzw. eine ähnliche
999
+ Funktionalität erfüllen sind <b>Metaconfig</b> und <b>imake</b>.
1000
+ Mittels disable-static verbietet man das Erstellen von statischen
1001
+ Bibliotheken, es werden nur dynamische Bibliotheken verwendet.','s2em'
1002
+ # ========================================================================= #
1003
+ # BESTIMME PRÄPROZESSOR VARIABLEN BEIM KOMPILIEREN
1004
+ # ========================================================================= #
1005
+ h3 'Wie kann ich Präprozessor Variablen bestimmen beim Kompilieren?',
1006
+ COMPILE_HEADER3
1007
+ compile_header4 'Mittels <b>-D</b>, wie in -DNDEBUG'
1008
+ # ========================================================================= #
1009
+ # GCC ENVIRONMENT VARIABLES
1010
+ # ========================================================================= #
1011
+ h3 'Welche Environment Variable nutzt GCC?',COMPILE_HEADER3
1012
+ compile_header4 'GCC_EXEC_PREFIX'
1013
+ # ========================================================================= #
1014
+ # CROSS COMPILING - The Art of
1015
+ # ========================================================================= #
1016
+ h3 'Cross Compiling - was gibts dazu zusagen?',
1017
+ COMPILE_HEADER3,'crosscompiling'
1018
+ compile_header4 'Cross compiling is the act of the building source code on
1019
+ one system, the <b>build host</b>, into executables or
1020
+ libraries to be run on a different host, the
1021
+ <b>native host</b>.
1022
+ The build host and the native host may differ in operating
1023
+ system and/or processor type.<br/>
1024
+ Der Hauptgrund ist, das die Prozessorleistung des native host
1025
+ meist ziemlich gering ist, zb weil es sich um einen alten
1026
+ Computer handelt.'
1027
+ # ========================================================================= #
1028
+ # COMPILE SPEED
1029
+ # ========================================================================= #
1030
+ h3 'Compile Speed - wie kann ich das compilen schneller
1031
+ durchführen?',COMPILE_HEADER3,'speedy_compile'
1032
+ compile_header4 'Ich kann hier nur allgemeine Tipps geben.
1033
+ Nutze <b>tmpfs</b>.'
1034
+ # ========================================================================= #
1035
+ # MACROS und Fehlermeldungen
1036
+ # ========================================================================= #
1037
+ # UNDEFINED MACRO LIST
1038
+ # ========================================================================= #
1039
+ h3 'Was tun wenn ich die Fehlermeldung <b>Undefined Macro argument
1040
+ list</b> erhalte?',COMPILE_HEADER3
1041
+ compile_header4 'Im Makefile bei <b>CFLAGS</b> die Option
1042
+ -no-cpp-precomp hinzufügen.'
1043
+ e 'Übrigens: Mehr zu Macros sieht man hier:'
1044
+ br
1045
+ abr 'http://autoconf-archive.cryp.to/',
1046
+ content: 'http://autoconf-archive.cryp.to/'
1047
+ # ========================================================================= #
1048
+ # FEHLER HANDLING bei configure.
1049
+ # ========================================================================= #
1050
+ h3 'Was tun wenn ich einen Fehler erhalte, das configure nicht
1051
+ den host type herausfinden kann?',
1052
+ COMPILE_HEADER3
1053
+ compile_header4 'config.sub und config.guess
1054
+ mit den Versionen von /usr/libexec austauschen.
1055
+ config.cache löschen.'
1056
+ h3 'Was gehört in /usr/libexec? Was ist libexec?'
1057
+ h4 sg(:pfeil_rechts, 'marr1em')+'Programme, die ausschliesslich von
1058
+ <b>internen executables</b> verwendet werden (können). GCC libexec
1059
+ wären somit alle jene Programme, die nur von GCC intern verwendet
1060
+ werden.','marl2em'
1061
+ e 'Wenn eine Bibliothek Programme aufruft die nur durch eine
1062
+ Bibliothek aufgerufen werden können, so sind sie libexec
1063
+ Dateien (und meistens in /usr/libexec zu finden).'
1064
+ # ========================================================================= #
1065
+ # LINKING tag ld tag
1066
+ # ========================================================================= #
1067
+ h2 'ld',
1068
+ 'martb3px '+COMPILE_HEADER2
1069
+ div('default'){
1070
+ h3 'Was gibts zu <b>ld</b> zu sagen?',COMPILE_HEADER3
1071
+ p {
1072
+ e 'ld ist <b>GNU Linker</b>. Die Grundeinstellung ist der Wert
1073
+ von echo $LIBPATH. Fehlt LIBPATH dann wird einfach
1074
+ /usr/lib:/lib genommen.'
1075
+ br
1076
+ e 'ld verwendet die Variable SEARCH_DIR(path)+'
1077
+ br
1078
+ e 'The SEARCH_DIR command adds path to the
1079
+ list of paths where ld looks for archive libraries.
1080
+ Using SEARCH_DIR(path) is exactly like using -L path
1081
+ on the command line (see Command Line Options).'
1082
+ br
1083
+ e 'If both are used, then the linker will search both paths.'
1084
+ br
1085
+ e 'Alle Pfade, die mit -L spezifiziert werden, werden
1086
+ zuallererst durchsucht.'
1087
+ }
1088
+ }
1089
+ # ========================================================================= #
1090
+ # statisches kompilieren
1091
+ # ========================================================================= #
1092
+ div('default') {
1093
+ h2 'Statisches Kompilieren mittels GCC'
1094
+ e 'Vorweg - <b>statische Bibliotheken</b> sind Bibliotheken,
1095
+ in denen der eigentliche Code der Subroutinen mit
1096
+ der ausführbaren Datei gebunden wird.'
1097
+ br
1098
+ e 'Der Code für Routinen wie printf() kann allerdings ziemlich lang sein.
1099
+ Weil viele Programme häufig aufgerufene Routinen aus den Libraries
1100
+ benutzen, ist es besser diesen Teil nur einmal zu verwenden.'
1101
+ br
1102
+ e 'Hier kommen die <b>Shared Libraries</b> ins Spiel.'
1103
+ }
1104
+ # ========================================================================= #
1105
+ # === crtbegin.o tag
1106
+ # ========================================================================= #
1107
+ div('default') {
1108
+ h4 'crtbegin.o'
1109
+ e 'gcc uses <b>crtbegin.o</b> to find the start of the constructors,
1110
+ so we make sure it is first.'
1111
+ br
1112
+ e 'A wildcard means that it doesnt matter which
1113
+ directory crtbegin.o is in.'
1114
+ }
1115
+ # ========================================================================= #
1116
+ # === PMK TAG
1117
+ # ========================================================================= #
1118
+ div('default bblack3') {
1119
+ h2 'Premake Kit'
1120
+ div {
1121
+ h2 'PMK tutorial'
1122
+ e 'Make nutzt ein makefile, pmk nutzt ein pmkfile. Ein pmkfile
1123
+ hat ein paar Commands die die Source Abhängigkeiten testen.
1124
+ Danach werden Template Dateien prozessiert.'
1125
+ br
1126
+ e 'Das erste Command in einem pmkfile ist <b>SETTINGS</b>, zum Beispiel'
1127
+ br
1128
+ cmd 'SETTINGS {'
1129
+ cmd2 ' TARGET = ("Makefile.in")'
1130
+ cmd '}'
1131
+ br
1132
+ e 'Das Ziel hier ist Makefile.in.'
1133
+ br
1134
+ e 'Um etwas zu definieren wird DEFINE genutzt:'
1135
+ br
1136
+ cmd 'DEFINE {'
1137
+ cmd2 ' PACKAGE = "hello"'
1138
+ cmd2 ' VERSION = "0.1"'
1139
+ cmd '}'
1140
+ br
1141
+ e 'Folgende spezielle Namen/Tags werden ersetzt:'
1142
+ br
1143
+ cmd '@PACKAGE@, @VERSION@'
1144
+ br
1145
+ e 'Angenommen wir haben eine hello.c Datei, die
1146
+ einen string header braucht. Dann baut man das ein:'
1147
+ br
1148
+ cmd 'CHECK_headER(header_string) {'
1149
+ cmd2 ' NAME = "string.h"'
1150
+ cmd '}'
1151
+ br
1152
+ e 'NAME hat hier den header drinnen, der gechecked
1153
+ werden soll.'
1154
+ br
1155
+ e 'Ist der check erfolgreich, wird dieses Label
1156
+ als true angenommen, ansonsten false.'
1157
+ br
1158
+ e 'So erstellt man ein Test Makefile.in'
1159
+ br
1160
+ cmd 'echo "PACKAGE=@PACKAGE@" > Makefile.in'
1161
+ cmd 'echo "VERSION=@VERSION@" >> Makefile.in'
1162
+ br
1163
+ e 'Nun kann man <b>pmk</b> aufrufen.'
1164
+ br
1165
+ e 'Eine Library kann man so abfragen'
1166
+ br
1167
+ cmd 'CHECK_LIB(lib_curses) {'
1168
+ cmd2 ' NAME = "curses"'
1169
+ cmd '}'
1170
+ }
1171
+ h2 'Links'
1172
+ abr 'http://pmk.sourceforge.net/pkgconfig.php',
1173
+ content: 'PreMakeKit - Alternative zu pkgconfig'
1174
+ }
1175
+ div {
1176
+ abr :local_make,
1177
+ content: 'Make'
1178
+ }
1179
+ # ========================================================================= #
1180
+ # === LDCONFIG TAG
1181
+ # ========================================================================= #
1182
+ div('default','ldconfig'){
1183
+ h2 'ldconfig'
1184
+ br
1185
+ e 'ldconfig aktualisiert alle (shared) Libraries auf einem System -
1186
+ gibt das ganze in einen Cache, so das Programme mit shared
1187
+ libraries nicht das Filesystem jedes mal durchsuchen müssen.'
1188
+ br
1189
+ e 'Es nimmt die Information von <b>/etc/ld.so.conf</b> auf.'
1190
+ br
1191
+ e 'Dabei unterscheidet man folgende verschiedene Library-Names:'
1192
+ p('s3em') {
1193
+ b 'Realname ','darkslateblue';
1194
+ e 'Libary:'
1195
+ br
1196
+ cmd ' /usr/lib/libreadline.so.3.0'
1197
+ br
1198
+ b 'Sonamed ','darkslateblue'
1199
+ br
1200
+ e 'Library:'
1201
+ br
1202
+ cmd ' /usr/lib/libreadline.so.3'
1203
+ br
1204
+ b 'Linkername ','darkslateblue'
1205
+ br
1206
+ e 'Library:'
1207
+ br
1208
+ cmd ' /usr/lib/libreadline.so'
1209
+ }
1210
+ e 'Die Datei /etc/ld.so.cache ist insofern wichtig, da sie
1211
+ die Performance des <b>ld.so</b> abr beschleunigt.'
1212
+ }
1213
+ # ========================================================================= #
1214
+ # === memory, ram, System
1215
+ # ========================================================================= #
1216
+ div('FSI pad5px BG_White','','memory'){
1217
+ h3 'Segmentation Fault',
1218
+ 'mart4px BG_Black FW5 wid96 FS1em BOLD pad8px s1_5em slateblue'
1219
+ e 'Passiert wenn ein Programm versucht Speicherwerte zu
1220
+ nutzen, die nicht freigemacht wurden. Das Programm meldet
1221
+ sich zurück mit einem <i>core dump</i>.'
1222
+ }
1223
+ # ========================================================================= #
1224
+ # === LIBICONV TAG
1225
+ # ========================================================================= #
1226
+ h3 'Was macht libiconv?',
1227
+ COMPILE_HEADER3,
1228
+ 'libiconv'
1229
+ div('BG_White Black','libiconv') {
1230
+ e 'Nachdem man GNU libiconv kompiliert hat, sollte man GNU gettext
1231
+ erneut kompilieren, damit es libiconv verwenden kann.'
1232
+ br
1233
+ e 'Libiconv in der Glibc wird so gechecked:'
1234
+ br
1235
+ cmd ' checking for iconv_open() in -lc... yes'
1236
+ br
1237
+ e 'Offensichtlich ist sie vorhanden °_°'
1238
+ }
1239
+ # ========================================================================= #
1240
+ # === GCC Troubleshooting.
1241
+ # ========================================================================= #
1242
+ p_default {
1243
+ e 'Mögliche Probleme mit GCC:'
1244
+ br
1245
+ e 'Man muss immer auf korrekte headers achten. Ich hatte
1246
+ einmal Probleme, da gcc die falschen headers nutzte.'
1247
+ br
1248
+ e 'Nachdem ich die falschen headers löschte, kam das Problem
1249
+ nicht mehr auf.'
1250
+ br
1251
+ e 'Cannot guess build type'
1252
+ br
1253
+ e 'In diesem Falle kann man dem configure script
1254
+ <b>--build=i686</b> übergeben.'
1255
+ }
1256
+ # ========================================================================= #
1257
+ # === libsuffix
1258
+ # ========================================================================= #
1259
+ div('default') {
1260
+ e '<b>--disable-libsuffix</b> hilft manchmal bei Problemen mit KDE
1261
+ und ähnlichem.'
1262
+ }
1263
+ # ========================================================================= #
1264
+ # === C Standard Files. Was macht zB stdio.h?
1265
+ # ========================================================================= #
1266
+ div('default'){
1267
+ h3 'Was macht stdio.h?',
1268
+ COMPILE_HEADER3
1269
+ compile_header4 'Die <b>stdio.h</b> Bibliothek kümmert sich um
1270
+ standard input und output Funktionen für C Programmierer.'
1271
+ }
1272
+ # ========================================================================= #
1273
+ # === Bootstrapping TAG bootstrap tag
1274
+ #
1275
+ # rf compile bootstrapping
1276
+ # ========================================================================= #
1277
+ div('default'){
1278
+ h1 dot(102)+'Bootstrapping','','bootstrapping'
1279
+ h3 'Bootstrapping, Toolchains und Erstellen eines LFS mit Hilfe von uLibc'
1280
+ p {
1281
+ e 'Jeder <b>Prozess</b>, der ein kompliziertes System
1282
+ aktiviert, wird <b>Bootstrapping</b> genannt.'
1283
+ }
1284
+ p('ind0px'){
1285
+ e 'Auf Englisch hört sich dies ein wenig anders an:'
1286
+ br
1287
+ e '<quote>
1288
+ "The term to bootstrap refers to a person who tries to
1289
+ stand up by pulling on his boots."
1290
+ </quote>'
1291
+ br
1292
+ e 'In operating systems the term refers to the process in
1293
+ which a part of the operating system is brought into
1294
+ the Main Memory, with the processor executing those
1295
+ instructions. At bootstrapping the internal data
1296
+ structures of the Linux Kernel are initialized, values
1297
+ are set to the constituent variable s, and processes
1298
+ are created that usually spawn other significant
1299
+ processes later.','padl1em'
1300
+ br
1301
+ e 'Computer bootstrapping is a long and complicated
1302
+ task because when the computer is switched on all the
1303
+ hardware devices are in an unpredictable state, while
1304
+ the RAM is inactive and in a random state. Thus,
1305
+ the thing to keep in mind is the process called
1306
+ bootstrapping is highly dependent on the computer
1307
+ architecture in question.'
1308
+ }
1309
+ h4 'Die <b>setup </b> Funktion','','setup'
1310
+ p {
1311
+ s2 'The setup def can be found in the file '
1312
+ e '/usr/src/ KERNEL_V /arch/i386/boot/setup.S','BO'
1313
+ br
1314
+ e 'The code of the setup assembly language
1315
+ def is placed by the linker immediately after the
1316
+ integrated boot loader of the Kernel, that is,
1317
+ at offset 0x200 of the Kernel Image file.
1318
+ This allows the boot loader to locate the code easily and
1319
+ copy it onto the RAM starting from the physical address
1320
+ x00090200.'
1321
+ br
1322
+ e 'Now the question that comes up is:
1323
+ What does this setup def do? As its name
1324
+ suggests, it is supposed to set up something.
1325
+ As we all know for the Kernel to operate properly all
1326
+ the hardware devices in the computer must be detected
1327
+ and then initialized in an orderly fashion.
1328
+ The setup def initializes all the hardware
1329
+ devices and thus creates an environment for the Kernel
1330
+ to operate in.'
1331
+ br
1332
+ e 'Normally the BIOS should do all this.
1333
+ Although the BIOS already initialized most hardware,
1334
+ the Linux Kernel does NOT rely on it and initializes
1335
+ all of the hardware in its own fashion!'
1336
+ br
1337
+ e 'But, if someone asks, well, why does Linux
1338
+ operate in such a way? The answer to this question
1339
+ is both very easy yet extremely difficult to explain.
1340
+ The Linux Kernel had been so designed to enhance
1341
+ portability and robustness. This is one of the
1342
+ many features that makes the Linux Kernel very flexible -
1343
+ and unique.'
1344
+ br
1345
+ e 'The setup code mainly performs the following tasks:'
1346
+ br
1347
+ e '1. First, total amount of physical RAM available to the
1348
+ system is detected. It invokes a BIOS procedure for detecting
1349
+ the RAM.'
1350
+ br
1351
+ e '2. Sets the Keyboard repeat delay and rate.'
1352
+ br
1353
+ e '3. The Video adapter card is detected.'
1354
+ br
1355
+ e '4. The Disk Controller is reinitialized and hard disk
1356
+ parameters are determined.'
1357
+ br
1358
+ e '5. Checks for an IBM Micro Channel bus (MCA+'
1359
+ br
1360
+ e '6. Checks for a PS/2 pointing device (bus mouse+'
1361
+ br
1362
+ e '7. Checks for Advanced Power Management (APM BIOS support.'
1363
+ br
1364
+ e '8. Checks the position of the Kernel Image loaded in RAM.
1365
+ If loaded "low" in RAM (when using zImage, at physical
1366
+ address 0x00010000 it is moved to "high" in RAM (at physical
1367
+ address 0x00001000.
1368
+ But, if the Kernel image is a "bzImage" loaded in "high"
1369
+ of RAM already, then it is not moved anywhere.'
1370
+ br
1371
+ e '9. Sets up the Interrupt Descriptor Table (IDT and
1372
+ a Global Descriptor Table (GDT+'
1373
+ br
1374
+ e '10. If a floating-point unit (FPU is present, it is now
1375
+ reset.'
1376
+ br
1377
+ e '11. The PIC (Programmable Interrupt Controller is
1378
+ reprogrammed at this step.'
1379
+ br
1380
+ e '12. The cpU is switched from "Real mode" to "Protected
1381
+ mode" by setting the PE bit in the cr0 status register.'
1382
+ br
1383
+ e '13. Jumps to the stratup_32( assembly language function. '
1384
+ }
1385
+ }
1386
+ # ====================================================================== #
1387
+ # === Bibliotheken und Linux lib tab libraries tag
1388
+ # ====================================================================== #
1389
+ div('default'){
1390
+ h2 'Bibliotheken und Linux'
1391
+ p {
1392
+ e 'Der Haupt Loader auf einem Linux System ist
1393
+ /lib/ld-linux.so.X, wobei X die VersionNummer
1394
+ kennzeichnet.'
1395
+ br
1396
+ e 'Beispiel hierzu:'
1397
+ br
1398
+ cmd ' ld-2.3.6.so'
1399
+ cmd ' stat /lib/ld-2.5.so'
1400
+ br
1401
+ e 'Dieser Loader ist sehr wichtig - er findet nämlich alle
1402
+ anderen Shared Libraries.'
1403
+ br
1404
+ e 'Und woher weiss er, welche Verzeichnisse er durchsuchen muss?'
1405
+ br
1406
+ e 'Er zieht die Datei <b>/etc/ld.so.conf</b> hierfür heran.'
1407
+ }
1408
+ # ====================================================================== #
1409
+ # shared libraries tag
1410
+ # ====================================================================== #
1411
+ p('','shared_libs') {
1412
+ e 'Was gibts zu Shared Libraries zu sagen?','BO darkblue'
1413
+ br
1414
+ e '<b>Shared Libraries</b> werden von Programmen
1415
+ geladen, sobald sie starten. Alle Programm können
1416
+ die selbe shared library nutzen.'
1417
+ e 'Shared Libraries haben bestimmte Namen:
1418
+ Sie starten mit <b>lib</b>, dann kommt der <b>eigentliche
1419
+ Name</b>, dann kommt noch <b>.so</b>, ein <b>Punkt</b>,
1420
+ und die <b>Versions Nummer</b>.'
1421
+ e 'Der echte Name ist der Name des C Files,
1422
+ der die Bibliothek beschreibt.'
1423
+ br
1424
+ e 'Jede shared library hat einen besonderen Namen, den
1425
+ sogenannten <b>soname</b>.'
1426
+ br
1427
+ e 'Der soname hat das Prefix lib, den Namen der Library
1428
+ sowie die Endung <b>.so</b>, meist noch einen Punkt
1429
+ und eine Versionsnummer.'
1430
+ br
1431
+ e 'Die Versionsnummer wird erneuert sobald eben eine neue
1432
+ Version rausgebracht wird.'
1433
+ br
1434
+ e 'Ein genereller Vorteil der Shared Libraries ist es,
1435
+ das sie nicht nur weniger RAM verbrauchen, sondern auch
1436
+ weniger Disk Space.'
1437
+ br
1438
+ e 'Warum? Der Kernel muss nur eine einzige Kopie der
1439
+ shared Libary im Speicher halten.'
1440
+ br
1441
+ e 'Zudem kann man einfacher einen Fehler beheben,
1442
+ da man nicht viele weitere Programme kompilieren muss.'
1443
+ br
1444
+ e 'Es gibt aber auch einen Nachteil, es können
1445
+ sich Funktionen ändern. Dagegen helfen Versions Nummern -
1446
+ jede shared Library hat eine Version.'
1447
+ br
1448
+ e 'Wird nun ein Programm gegen eine shared library
1449
+ gelinkt, so speichert sie auch die Versions Nummer.'
1450
+ br
1451
+ e 'Was bedeuten nun die Nummern?'
1452
+ br
1453
+ e 'Die HauptNummer zeigt an, das es wohl einige grosse Änderungen
1454
+ gab zwischen der Vorgängerversion. Es kann also zu einigen
1455
+ Problemen kommen.'
1456
+ br
1457
+ e 'Die WenigerNummer - minor zeigt lediglich Fehlerbereinigungen an.'
1458
+ br
1459
+ e 'Beispiel:'
1460
+ br
1461
+ cmd 'libFLAC.so ist ein Symlink auf libFLAC.so.7.0.0'
1462
+ br
1463
+ e 'Eine shared library wird grundsätzlich im <b>ELF binary
1464
+ format</b> gespeichert - Executable and Linkable Format.'
1465
+ br
1466
+ e 'Es gibt natürlich auch Architektur-spezifische Fakten
1467
+ die man wissen muss. So muss man auf manchen Architekturen,
1468
+ AMD64 als Beispiel zu nennen, shared libraries
1469
+ "PIC-enabled" kompilieren.'
1470
+ }
1471
+ # ======================================================================= #
1472
+ # === ELF TAG
1473
+ # ======================================================================= #
1474
+ div('default') {
1475
+ h2 'Das ELF binary format','','elf'
1476
+ p('ind0px') {
1477
+ e 'Der ELF Standard ist historisch bedingt gewachsen.'
1478
+ br
1479
+ e 'ELF ist besser und flexibler als a.out und COFF.'
1480
+ }
1481
+ }
1482
+ }
1483
+ # ========================================================================= #
1484
+ # === udp tag
1485
+ # ========================================================================= #
1486
+ div('default FSI pad5px','','udp') {
1487
+ h3 'UDP','mart2px'
1488
+ e 'Das U in UDP heisst User.'
1489
+ }
1490
+ # ========================================================================= #
1491
+ # === AUTOCONF
1492
+ # ========================================================================= #
1493
+ div('default','autoconf') {
1494
+ h2 'Was geschieht beim Erstellen von Autoconf input files, und wie
1495
+ mache ich das? Wo genau hilft mir Autoconf und wie ist sein Bezug
1496
+ zu Autoscan?',COMPILE_HEADER3
1497
+ h1 sg(:red_dot,'marr0_3em')+'Autoconfigure'
1498
+ e 'Autoscan erstellt <b>configure.scan</b>, und daraus
1499
+ dann <b>configure.in</b>'
1500
+ br
1501
+ e 'Dazu checkt Autoscan Quelldateien im Verzeichnis, und sucht nach
1502
+ allgemein bekannten plattformspezifischen Problemen oder Regeln.'
1503
+ br
1504
+ e 'Wie ist nun das Verhältnis zu Autoconf?'
1505
+ br
1506
+ e 'Das Programm Autoconf liest eben die Datei configure.in ein, und
1507
+ erzeugt daraus ein Shell-Skript namens <b>configure</b>. Genau dieses
1508
+ Shell-Skript wird dann später vom Benutzer auf seinem Rechner aufgerufen,
1509
+ um das Paket für sein System zu konfigurieren. Außerdem müssen anstelle
1510
+ normaler Makefiles sogenannte Makefile.in geschrieben werden. Diese
1511
+ ähneln Makefiles, können aber in Klammeraffen eingeschlossene
1512
+ <b>Platzhalter</b> haben, die dann beim Aufruf von configure mit für
1513
+ das System passenden Werten ersetzt werden. (=Makros)'
1514
+ br
1515
+ e 'Typischerweise sehen die dann z.Bsp so aus:'
1516
+ br
1517
+ e 'hello: hello.cc'
1518
+ br
1519
+ e ' @CXX@ -o hello hello.cc','marl2em'
1520
+ br
1521
+ l2em ANMERKUNG+'Man achte auf die @CXX@ Variable, die später
1522
+ ersetzt wird.'
1523
+ br
1524
+ s2 'Nehmen wir als konkretes Beispiel die Angabe einer header
1525
+ Datei '
1526
+ e '<b>#include '+htmlentities('<fcntl.h>')+'</b>.'
1527
+ br
1528
+ e 'Mit dem existierenden Macro <b>AC_CHECK_HEADER</b> kann
1529
+ man nun autoconf überprüfen lassen, ob es besagte header
1530
+ Datei auch gibt. Beispiel eben: AC_CHECK_HEADER(fcntl.h)'
1531
+ br
1532
+ e 'Findet Autoconf diese Datei, so wird ein Präprozessorsymbol
1533
+ namens HAVE_FCNTL_H definiert - man sieht, alles wird hier per
1534
+ Konvention gross geschrieben.'
1535
+ br
1536
+ e 'Im Quelltext sähe dies in etwa so aus:'
1537
+ br
1538
+ cmd2 htmlentities('#ifdef HAVE_FCNTL_H')
1539
+ cmd2 htmlentities('#include <fcntl.h>')
1540
+ cmd2 htmlentities('#endif')+' '
1541
+ br
1542
+ e 'Beim eigentlichen Kompilieren fügt nun autoconf dies hier dazu:'
1543
+ br
1544
+ e '<b>-DHAVE_FCNTL_H=1</b>, man sieht das dies absolut keine
1545
+ Hexerei ist. Allerdings können durch viele solcher -D Flags die
1546
+ maximal zulässige Anzahl an Zeichen auf der Kommandozeile schnell
1547
+ überschritten werden.'
1548
+ br
1549
+ e 'Dies kann man umgehen, indem man <b>AC_CONFIG_headER(config.h)</b>
1550
+ angibt. Hierdurch werden alle #defines in der Angegebene Datei
1551
+ config.h gespeichert.'
1552
+ br
1553
+ e 'Als einziges #define steht dann auf der
1554
+ Kommandozeile -DHAVE_CONFIG_H=1 dabei.'
1555
+ br
1556
+ e 'Im Quelltext sieht dies dann so aus:'
1557
+ br
1558
+ cmd htmlentities('#ifdef HAVE_CONFIG_H')
1559
+ cmd htmlentities('#include <config.h>')
1560
+ cmd htmlentities('#endif')
1561
+ cmd htmlentities('#ifdef HAVE_FCNTL_H')
1562
+ cmd htmlentities('#include <fcntl.h>')
1563
+ cmd htmlentities('#endif')
1564
+ br
1565
+ e 'Bezüglich Macros ist noch zu sagen, das configure.in
1566
+ <b>AC_INIT(file)</b> zu Beginn, und <b>AC_OUTPUT(...)</b>
1567
+ am Ende braucht.'
1568
+ br
1569
+ e 'AC_OUTPUT akzeptiert auch ein Argument, wie zum Beispiel
1570
+ bei <b>AC_OUTPUT(Makefile)</b>'
1571
+ br
1572
+ e '<blue>Autoconf</> nimmt <b>configure.in</b> und erstellt
1573
+ die Datei <b>configure</b>.
1574
+ Danach nimmt <b>configure</b> Makefile.in und config.h.in,
1575
+ und erstellt ein <b>Makefile</b> und die Datei
1576
+ <b>config.h</b> davon.'
1577
+ br
1578
+ e 'aclocal.m4 und acsite.m4 halten weitere Features bereit.
1579
+ Autoheader kann verwendet werden um config.h.in von
1580
+ acconfig.h zu erstellen.'
1581
+ br
1582
+ e 'config.h.in wird durch den Autoheader erstellt.'
1583
+ }
1584
+ # ========================================================================= #
1585
+ # GNU Configure Optionen.
1586
+ # ========================================================================= #
1587
+ div('default') {
1588
+ h2 'GNU Configure optionen:'
1589
+ br
1590
+ e 'Achtung: Die Optionen sind nicht immer vorhanden.'
1591
+ br
1592
+ cmd ' --disable-werror'
1593
+ br
1594
+ e 'This prevents the build from stopping in the event that there
1595
+ are Warnungen von dem Host Compiler.'
1596
+ }
1597
+ # ========================================================================= #
1598
+ # === Ccache
1599
+ #
1600
+ # ccache tag
1601
+ #
1602
+ # rf compile ccache
1603
+ #
1604
+ # ========================================================================= #
1605
+ div('default marb1em','ccache','border: 1px solid mediumpurple;') {
1606
+ h2 'CCACHE','mart1px'
1607
+ e 'Was ist <b>ccache</b>?'
1608
+ br
1609
+ e '<b>ccache</b> ist ein <b>compiler cache</b>. Er beschleunigt
1610
+ das erneute Kompilieren indem vorhergehende Kompilationen
1611
+ gespeichert werden.'
1612
+ br
1613
+ e 'Er unterstützt die Sprachen C, C++, Objective-C und
1614
+ Objective-C++.'
1615
+ br
1616
+ e 'Der Cache wird normalerweise in $HOME/.ccache gespeichert.
1617
+ Dies kann man jedoch über die CCACHE_DIR Environment Variable
1618
+ ändern. Den Cache können so auch mehrere Anwender
1619
+ verwenden - hier muss man aber auf die Permissions des
1620
+ Cache aufpassen (und man muss allen Anwendern vertrauen
1621
+ können).'
1622
+ br
1623
+ e 'Jeder der den Cache verwendet muss Schreibzugriff haben,
1624
+ also eine umask von 002.'
1625
+ br
1626
+ e 'Das <b>setgid bit</b> muss auch gesetzt werden damit alle
1627
+ Unterverzeichnisse auch bei der richtigen Gruppe gesetzt sind.'
1628
+ br
1629
+ e 'Um die Statistiken auf den Ausgangszustand zurückzusetzen,
1630
+ verwende:'
1631
+ br
1632
+ cmd ' ccache -z'
1633
+ br
1634
+ e 'To remove all cached files:'
1635
+ br
1636
+ cmd ' ccache -C'
1637
+ br
1638
+ e 'Run ccache together with distcc:'
1639
+ br
1640
+ cmd ' CCACHE_PREFIX=distcc'
1641
+ br
1642
+ e 'Man sollte den cache size anpassen, für beste Resultate.'
1643
+ br
1644
+ e 'Dies geschieht wie folgt:'
1645
+ br
1646
+ cmd ' ccache --max-size 32G'
1647
+ br
1648
+ abr 'http://ccache.samba.org/',
1649
+ content: 'DEF',
1650
+ css_class: 'marl2em'
1651
+ abr 'http://ccache.samba.org/manual.html',
1652
+ content: 'DEF',
1653
+ css_class: 'marl2em'
1654
+ }
1655
+ # ========================================================================= #
1656
+ # === CYGWIN TAG
1657
+ # ========================================================================= #
1658
+ div('mart1em pad1em BG_white Black','CYGWIN') {
1659
+ e 'Was ist Cygwin?','','cygwin'
1660
+ e 'Eine Linux-like Umgebung für Windows.',
1661
+ 'pad2px','',
1662
+ 'border-left: 2px ridge darkblue;
1663
+ border-top: 2px ridge darkblue'
1664
+ e 'Zum Deinstallieren nicht auf Software\Cygnus Solutions vergessen!'
1665
+ abr :microsoft,
1666
+ content: 'Hier mehr Information'
1667
+ }
1668
+ # ========================================================================= #
1669
+ # === LD_PRELOAD tag
1670
+ # ========================================================================= #
1671
+ div('mart1em pad1em default',
1672
+ 'LD_PRELOAD',
1673
+ 'RANDOM_BORDER_3PX'){
1674
+ h2 'LD_PRELOAD','ld_preload'
1675
+ p('default','preload') {
1676
+ e 'LD_PRELOAD zeigt zu deinen eigenen Shared Libraries.'
1677
+ br
1678
+ e 'Es wird der Loader angeweisen weitere Libraries in Programme zu laden.'
1679
+ br
1680
+ e 'zlib scheint die LD_PRELOAD library zu nutzen, und macht
1681
+ transparente Dekompressionen.'
1682
+ br
1683
+ e 'Function Interposing benutzt unter Linux die
1684
+ Umgebungsvariable $LD_PRELOAD.'
1685
+ br
1686
+ e 'SuperUser Access kann auf Linux Systemen manchmal durch
1687
+ eine modifizierte libc.so.5 via LD_PRELOAD erreicht werden.'
1688
+ br
1689
+ e 'Ein recht bekanntes Programm das die LD_PRELOAD
1690
+ Methode verwendet ist <b>CheckInstall</b>'
1691
+ br
1692
+ e 'Mittels einer LD_PRELOAD library kann man andere
1693
+ Commands wie dlopen() intercepten.'
1694
+ br
1695
+ e 'Modern day implementations of ld.so(8) examine the
1696
+ LD_PRELOAD environmental variable'
1697
+ br
1698
+ e 'Whitespace-separated list of additional shared libraries
1699
+ to load before all others'
1700
+ br
1701
+ anm 'Wenn eine Funktion sowohl in der LD_PRELOAD Bibliothek,
1702
+ als auch in glibc erscheint, so hat LD_PRELOAD eine höhere
1703
+ Präferenz. ("LD_PRELOAD wins")'
1704
+ e 'Die ursprüngliche Funktion kann aber noch immer mittels
1705
+ dlopen(3) bzw mit syscall(2) angesprochen werden.'
1706
+ br
1707
+ e 'By hijacking a function or system call, the behavior can
1708
+ be altered'
1709
+ br
1710
+ e 'Hier ein Beispiel wie man sie setzt:'
1711
+ br
1712
+ cmd ' export LD_PRELOAD="/usr/X11R6/lib/libX11.so.6:/usr/X11R6/lib/libXt.so.6"'
1713
+ br
1714
+ e 'Zum Anzeigen der LD_PRELOAD Variable:'
1715
+ br
1716
+ cmd ' echo $LD_PRELOAD'
1717
+ }
1718
+ div {
1719
+ h2 dot(108)+'Anhang zu LD_PRELOAD'
1720
+ br
1721
+ e htmlentities('include <stdio.h>;')
1722
+ e htmlentities('include <dlfcn.h>;')
1723
+ pre '
1724
+ int main()
1725
+ {
1726
+ void* handle;
1727
+ printf("calling close...\n");
1728
+ close 12345
1729
+ printf("close called.\n");
1730
+ printf("calling dlopen...\n");
1731
+ handle = dlopen( "somefile", 0 );
1732
+ printf("dlopen called.\n");
1733
+ return 0;
1734
+ }'
1735
+ h2 dot(108,'marr8px')+'LD_PRELOAD Library','marb1em'
1736
+ e htmlentities('include <stdio.h>;')
1737
+ e htmlentities('include <dlfcn.h>;')
1738
+ cmd '#if defined(RTLD_NEXT)'
1739
+ cmd '#define REAL_LIBC RTLD_NEXT'
1740
+ cmd '#else'
1741
+ br
1742
+ pre '
1743
+ #define REAL_LIBC ((void *) -1L)
1744
+ #endif
1745
+
1746
+ void* dlopen(const char *file, int mode)
1747
+ {
1748
+ static void* (*o_dlopen) ( const char *file, int mode )=0;
1749
+ printf( "dlopen was called\n"
1750
+ o_dlopen = (void*(*)(const char *file, int mode)) dlsym(REAL_LIBC,
1751
+ "dlopen"
1752
+ return (*o_dlopen)( file, mode
1753
+ }
1754
+
1755
+ int close int fd )
1756
+ {
1757
+ static int (*o_close) ( int fd )=0;
1758
+ printf( "close was called\n"
1759
+ o_close = (int(*)( int fd )) dlsym(REAL_LIBC, "close"
1760
+ return (*o_close)( fd
1761
+ }'
1762
+ e 'Kompilieren des obigen Beispieles sollte so gehen:'
1763
+ br
1764
+ cmd 'gcc -Wall -fPIC -shared -o preload.so preload.c -ldl'
1765
+ br
1766
+ e 'Was man hier wissen muss ist, das ld die Definitionen
1767
+ genau in der Reihe prozessiert, wie sie auch in der
1768
+ command line übergeben wurden.'
1769
+ }
1770
+ e 'Interessante Links zu LD_PRELOAD'
1771
+ p {
1772
+ abr_self 'http://michael.toren.net/slides/lkm-alternatives/TABLE_OF_CONTENTS.html'
1773
+ }
1774
+ }
1775
+ # ========================================================================= #
1776
+ # Was bedeuten die Variablen?
1777
+ # ========================================================================= #
1778
+ h3 'Hier die Erklärung der Variablen und Compiler Flags',COMPILE_HEADER3,
1779
+ 'cflags'
1780
+ table2 'BO','','CFLAGS',
1781
+ 'CC','Zu verwendender C-Compiler',
1782
+ 'CXX','Zu verwendender C++-Compiler',
1783
+ 'CFLAGS','Debug- und Optimierungsoptionen für den C-Compiler.
1784
+ Mittels --cflags erhält man Info wo die include
1785
+ Dateien sind, zb <i>gtk-config --cflags </i><br/>
1786
+ CFLAGS sind C compiler flags, die zum Optimieren von Code
1787
+ verwendet werden - Bekanntes Beispiel für nicht besonders aggressive
1788
+ Optimisierung: <br/>
1789
+ export CFLAGS="-O2 -march=i686"<br/>
1790
+ Die -0 Settings sind folgende<br/>
1791
+ <b class="red">-O3</b> Höchstes Level. Maschinen spezifischer Code
1792
+ wird generiert. Auto-magically adds the -finline-functions
1793
+ and -frename-registers flags. Nachteil ist aber das
1794
+ die Programme etwas grösser werden, und damit
1795
+ länger beim Laden brauchen.<br/>
1796
+ <b class="red">-02</b> Most Makefiles have this set up as Default, performs
1797
+ all supported optimizations that do not involve a space-speed
1798
+ tradeoff. Adds the -fforce-mem flag auto-magically. <br/>
1799
+ <b class="red">-01</b> Minimal optimizations are performed. Default for the
1800
+ compiler, if nothing is given.<br/>
1801
+ <b class="red">-00</b> Do no optimize at all. <br/>
1802
+ <b class="red">-0s</b> Same as -O2 but does additional optimizations for size. ',
1803
+ 'cpPFLAGS','Include-Verzeichnisse und andere verschiedene C-Compileroptionen. ',
1804
+ 'CXXFLAGS','Debug- und Optimierungsoptionen für den C++-Compiler',
1805
+ 'DEFS','<b>-D</b> Optionen für den C-Compiler (zB -DLINUX ',
1806
+ 'LDFLAGS','Optionen für den Linker (zB -s für automatisches Stripping
1807
+ e.g. -L<lib dir> if you have libraries in a
1808
+ nonstandard directory <lib dir>, LDFLAGS=-L/System/Links/Libraries',
1809
+ 'LIBS','-l und -L Optionen für den Linker, wobei man
1810
+ den genauen Pfad für -L auch angeben kann zb
1811
+ via <b>-L/pfad/zu/lib</b>.
1812
+ --libs returniert einen abr string, beispiel
1813
+ <b>gtk-config --libs</b> '
1814
+ # ========================================================================= #
1815
+ # Hier die configure und compiler flags, zb
1816
+ # --with-gxx-include-dir=/usr/include/c++/3.3
1817
+ # ========================================================================= #
1818
+ div 'default'
1819
+ h2 'Compiler und Configure Flags Explained'
1820
+ h3 'Was ist --with-gxx-include-dir=/usr/include/c++/3.3?',COMPILE_HEADER3
1821
+ h3 'Was ist -fomit-frame-pointer?',COMPILE_HEADER3
1822
+ compile_header4 'Dieses flag - auch als "magic flag" bekannt - verbessert die
1823
+ execution time, während die Binärgrösse etwas grösser wird. Auf x86
1824
+ führt dieses CFLAG dazu, das <b>debugging</b> nit mehr funzt.
1825
+ Daher sollte man es nicht aktivieren, wenn man etwas
1826
+ debuggen möchte. Der Compiler verwendet einen Register
1827
+ (Frame Pointer, um "stack trace debugging" zu ermöglichen.
1828
+ Wird dieser Frame Pointer nun omitted (weggelassen,
1829
+ dann wird der Register geleert - das führt dazu
1830
+ das Programme schneller rennen, da sie nicht so oft
1831
+ zum RAM zugreifen müssen. Einziger potentieller Nachteil
1832
+ ist eben das man den Debuggung output verliert.'
1833
+ h3 'Was bedeutet -mcpu=pentium3?',COMPILE_HEADER3
1834
+ compile_header4 'Dieses flag optimiert den Code für Pentium3,
1835
+ jedoch läuft der code auch auf i386 Architekturen.
1836
+ Nutzt man hingegen -march=pentium3 so läuft der Code nur auf
1837
+ Pentium3 (siehe auch unten)'
1838
+ h3 'Was bedeutet -march=pentium3?',COMPILE_HEADER3
1839
+ compile_header4 'Der code läuft nur auf Pentium3.
1840
+ 386 Architekturen. Übrigens: Setzt man -march=arch so ist auch -mcpu=arch
1841
+ genutzt. (<i>"honored"</i>'
1842
+ h3 'Was bedeutet -funrollloop?',COMPILE_HEADER3
1843
+ compile_header4 'Binaries sind grösser aber eventuell auch schneller.'
1844
+ h3 'Wie schalte ich bestimmte Funktionen eines
1845
+ Paket ein oder aus?',COMPILE_HEADER3
1846
+ compile_header4 'mit --enable und --disable'
1847
+ h3 'Was gibts zu GNU make zu sagen?',COMPILE_HEADER3
1848
+ compile_header4 'Makefile.am<br/>
1849
+ Kompiliert man ein .c File mit gcc ohne die Option -o (für
1850
+ output zu nuzen, so heisst die enstehende Datei
1851
+ <b>a.out</b>. a.out ist somit die Default
1852
+ Datei'
1853
+ h3 'Wie erreiche ich es, das das configure script weniger
1854
+ output generiert?',COMPILE_HEADER3
1855
+ compile_header4 'mit der Option <b>-q</b>'
1856
+ h3 'Was ist mit der Fehlermeldung error while loading shared
1857
+ libraries: libstdc++.so.5?',COMPILE_HEADER3
1858
+ compile_header4 'compat-libstdc++-33'
1859
+ div {
1860
+ h3 'Was ist mit der Fehlermeldung /lib/cpp fails
1861
+ sanity check?',COMPILE_HEADER3
1862
+ compile_header4 'Da ist ein Fehler beim C++ Compiler.
1863
+ Wahrscheinlich weil ein C++ Compiler nicht installiert
1864
+ wurde. Oder es handelt sich um fehlende
1865
+ linux-libc-headers. Und wenn der C++ Compiler wirklich
1866
+ irgendwo installiert ist, dann hilft ein Symlink.
1867
+ ZB wenn cc1plus nicht gefunden wurde. Zb '
1868
+ p {
1869
+ e 'ln -s /usr/lib/gcc/i486-linux-gnu/4.0.3/cc1 cc1plus'
1870
+ e 'Hmm, ob cc1plus nur ein symlink zu cc1 ist?'
1871
+ br
1872
+ e 'Das ist dann ein Symlink zum Beispiel so:'
1873
+ br
1874
+ cmd ' /lib/cpp . /usr/bin/cpp'
1875
+ }
1876
+ }
1877
+ div('default') {
1878
+ e '-fPIC tells to this gcc that it should generate PIC
1879
+ output, which saves a register for the location
1880
+ of the location of the library'
1881
+ }
1882
+ # ========================================================================= #
1883
+ # uclibc TAG ucl tag.
1884
+ # rf comp uclibc
1885
+ # ========================================================================= #
1886
+ div {
1887
+ h2 dot(102)+'Uclibc','','uclibc'
1888
+ p { e 'UClibc ist eine kleine Libc Variante.' }
1889
+ abr 'http://www.uclibc.org/',
1890
+ content: 'UClibc Homepage'
1891
+ }
1892
+ # ========================================================================= #
1893
+ # DIETLIBC TAG
1894
+ # rf comp dietlibc
1895
+ # ========================================================================= #
1896
+ div('default'){
1897
+ h2 dot(102)+'Dietlibc','','dietlibc'
1898
+ p_default {
1899
+ e 'Viele Distributionen setzen in ihren Initial-RAM-Disks
1900
+ (Initrd und Installationsumgebungen schon länger auf
1901
+ Dietlibc, weil damit kompilierte Programme auch schneller
1902
+ starten als Programme mittels Glibc.'
1903
+ abr 'http://www.fefe.de/dietlibc/',
1904
+ content: 'Offizielle Homepage von dietlibc',
1905
+ css_class: 'marl2em slateblue'
1906
+ }
1907
+ p_default {
1908
+ e 'Wie kompiliere ich ein Autoconf Programm mit diet libc?'
1909
+ e 'Setze CC wie zb so:'
1910
+ br
1911
+ cmd ' CC="diet gcc -nostdinc" ./configure --disable-nls'
1912
+ br
1913
+ e 'Wie kompiliere ich "normal"?'
1914
+ br
1915
+ cmd ' CC="diet gcc -nostdinc" ./configure --disable-nls
1916
+ --disable-shared --enable-static --host=i686'
1917
+ br
1918
+ e 'Eventuell muss man noch --disable-shared und
1919
+ --enable-static hinzufügen, für Programme die
1920
+ Libtool verwenden.'
1921
+ }
1922
+ }
1923
+ div('default') {
1924
+ h4 'Wie finde ich heraus, welche glibc Version ich habe?'
1925
+ h5 ' ldd --version',GLIBC_REPLY
1926
+ h4 'Wie finde ich heraus, welche Verzeichnisse glibc durchsucht?'
1927
+ h5 ' glib-config --cflags',GLIBC_REPLY
1928
+ h5 'Dies mag manchmal Probleme bereiten, vor allem bei
1929
+ Gobolinux ähnlichen Verzeichnisstrukturen. Man sollte auf
1930
+ alle Fälle ldconfig nach der Installation durchführen,
1931
+ und die Verzeichnisse in /etc/ld.so.conf eintragen.
1932
+ Man kann übrigens auch pkg-config
1933
+ benutzen, zum command siehe den Eintrag zu
1934
+ pkg-config.',GLIBC_REPLY
1935
+ h4 'Wie finde ich heraus, welche Library-Verzeichnisse
1936
+ von glib durchsucht werden?'
1937
+ h5 ' glib-config --libs',GLIBC_REPLY
1938
+ }
1939
+ # ========================================================================= #
1940
+ # === M4 TAG. rf compile m4
1941
+ # ========================================================================= #
1942
+ div('default','m4'){
1943
+ h2 dot(102)+'M4','marb1em'
1944
+ e 'Der Standard-Ort unter Linux, unter dem M4 Daten speichert,
1945
+ ist <b>/usr/share/aclocal</b>.'
1946
+ p {
1947
+ e 'm4_pattern_allow'
1948
+ br
1949
+ cmd ' m4_pattern_allow(AM_CONFIG_headERS'
1950
+ br
1951
+ e '(Das findet man dann zb in configure.ac)'
1952
+ br
1953
+ e 'Eine Variable kann man so deklarieren:'
1954
+ br
1955
+ cmd ' m4_define([crow_dep_dbus_glib], [0.70])'
1956
+ }
1957
+ }
1958
+ # ========================================================================= #
1959
+ # === KOBJECT TAG
1960
+ # ========================================================================= #
1961
+ div('default','kobject') {
1962
+ h2 'Kobject'
1963
+ e 'A kobject is an object of <b>type struct kobject</b>. Kobjects
1964
+ have a name and a reference count.'
1965
+ br
1966
+ e 'A kobject also has a parent pointer (allowing kobjects to be
1967
+ arranged into hierarchies, a specific type, and, perhaps, a
1968
+ representation in the sysfs virtual filesystem.'
1969
+ br
1970
+ e 'Kobjects are generally not interesting on their own instead,
1971
+ they are usually embedded within some other structure which
1972
+ contains the stuff the code is really interested in.'
1973
+ }
1974
+ # ========================================================================= #
1975
+ # CHROOT TAG
1976
+ # rf compile chroot
1977
+ # ========================================================================= #
1978
+ div('default') {
1979
+ h2 'Chroot','','chroot'
1980
+ p {
1981
+ e 'Das Verwenden von Chroot mag beim Kompilieren manchmal
1982
+ Vorteile bringen, denn ...'
1983
+ br
1984
+ e sg(:pfeil5)+'Chroot erstellt eine <b>abgekapselte
1985
+ Umgebung</b>.'
1986
+ br
1987
+ e 'Eine Chroot Umgebung mag einem auch helfen,
1988
+ "host errors" zu umgehen - zb wenn eine header Datei genutzt
1989
+ wird, die auf einem anderen Computer nicht existiert.'
1990
+ }
1991
+ p {
1992
+ e 'Für mehr Info über Chroot siehe bitte folgenden Abschnitt:'
1993
+ br
1994
+ abr 'cmd#chroot',
1995
+ content: 'Chroot',
1996
+ css_class: 'BO slateblue marl2em'
1997
+ }
1998
+ }
1999
+ # ========================================================================= #
2000
+ # === cmake tag
2001
+ # ========================================================================= #
2002
+ div('default') {
2003
+ abr :local_cmake, content: 'cmake'
2004
+ }
2005
+ # ========================================================================= #
2006
+ # Compile options zu GCC erklärt.
2007
+ # rf compile compile_options
2008
+ # ========================================================================= #
2009
+ div {
2010
+ h1 'Compile Options zu GCC:','','compile_options'
2011
+ table2 'marl1em','','',
2012
+ '-fomit-fame-pointer','Diese Option macht Programme
2013
+ schneller während der Lafuzeit. Potentieller Nachteil ist das
2014
+ das Debugging nicht mehr möglich ist.
2015
+ (-O schaltet -fomit-frame-pointer recht oft automatisch ein.)',
2016
+ '-funrollloop','will give you a bigger executable that may be
2017
+ a tad faster'
2018
+ # ======================================================================= #
2019
+ # Besondere options zu GCC
2020
+ # rf compile gcc_options
2021
+ # ======================================================================= #
2022
+ div {
2023
+ h1 'Besondere Anweisungen und Optionen zu GCC:','','gcc_options'
2024
+ table2 'marl1em','','',
2025
+ '-D','Die -D Option teilt GCC mit, das er weitere #defines
2026
+ während der Compile Time verwenden sollte. Zum Beispiel ist
2027
+ -DSRC_DIR=\"/usr/local/src\" das selbe wie in der Datei
2028
+ #define SRC_DIR \"/usr/local/src\"
2029
+ Haupteinsatzzweck dieser Option ist das Hard-coding von
2030
+ Configuration Data wie File Paths etc...'
2031
+ }
2032
+ div {
2033
+ h2 'GCC spezifische Macros:'
2034
+ table2 'mars1em','','',
2035
+ 'GLIBCXX','War früher GLIBCPP'
2036
+ }
2037
+ }
2038
+ # ========================================================================= #
2039
+ # === Header Files #header
2040
+ # ========================================================================= #
2041
+ div('','header') {
2042
+ h2 'Anhang C (Header Files)'
2043
+ h3 'Header Files eines Linux Systems'
2044
+ cmd ' /usr/include/stdio.h'
2045
+ cmd ' /usr/include/sys/types.h'
2046
+ cmd ' /usr/include/sys/stat.h'
2047
+ cmd ' /usr/include/sys/signal.h'
2048
+ cmd ' /usr/include/sys/ctype.h'
2049
+ br
2050
+ e 'Mein Script rminimal_environment.rb kopiert die relevanten Dateien.'
2051
+ }
2052
+ # ========================================================================= #
2053
+ # Besondere Variablen
2054
+ # ========================================================================= #
2055
+ div('mart2em'){
2056
+ h1 'Besondere Variablen zu GCC:'
2057
+ p {
2058
+ e 'CHOST','BO'
2059
+ br
2060
+ marl1em 'zb CHOST="i686-pc-linux-gnu"'
2061
+ br
2062
+ e 'CFLAGS','BO'
2063
+ br
2064
+ marl1em 'zb CFLAGS="-O2 -march=k6 -mcpu=k6"'
2065
+ marl1em ' CFLAGS="-pipe"'
2066
+ br
2067
+ e 'The CFLAG -pipe will cause the compiler to pipe the data
2068
+ into the next function as opposed to storing temporary files
2069
+ to the Hard Drive and accessing it from there. This will help
2070
+ speed up compile times, especially with larger programs,
2071
+ however causes more RAM to be used during compilation.'
2072
+ br
2073
+ lem 'zb CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"'
2074
+ br
2075
+ boldbr 'CXXFLAGS'
2076
+ e 'zb CXXFLAGS="---CFLAGSend"','marl1em'
2077
+ }
2078
+ }
2079
+ # ========================================================================= #
2080
+ # === Libtool
2081
+ #
2082
+ # WAS MACHT LIBTOOL? Libtool tag. lib tag. #libtool
2083
+ #
2084
+ # libtool tag
2085
+ # rf compiling libtool
2086
+ # ========================================================================= #
2087
+ div('default','Libtool') {
2088
+ h2 sg(:package)+' Was macht libtool?',COMPILE_HEADER3,'libtool'
2089
+ e 'Libtool ist ein 7584 Zeilen langes Shell-Script, das eine
2090
+ allgemeine Schnittstelle für <b>shared Libraries</b> (Bibliotheken,
2091
+ also <b>.so Objekte</b>) bereit stellt.'
2092
+ br
2093
+ cmd ' cat /usr/bin/libtool'
2094
+ br
2095
+ e 'Libtool nimmt Informationen etwas ungewöhnlich auf:'
2096
+ br
2097
+ e sg(:pfeil10)+'Der Compiler darf <b>nicht</b> bestimmen, welche
2098
+ System Bibliotheken genutzt werden sollen.','marl2em'
2099
+ br
2100
+ e 'Wie löst Libtool dies dann auf?'
2101
+ br
2102
+ e 'Es parsed den Output von:'
2103
+ br
2104
+ cmd ' gcc ARGS -v'
2105
+ br
2106
+ e 'sowie von:'
2107
+ br
2108
+ cmd ' gcc -nostdlibs ARGS -v'
2109
+ br
2110
+ e 'Danach, wenn es Zeit wird eine Bibliothek zu
2111
+ verknüpfen, verwendet <b>libtool direkt ld</b>.'
2112
+ br
2113
+ e 'Es fügt selbständig <b>crt.0</b> hinzu.'
2114
+ br
2115
+ e 'Der Gedanke dahinter ist, das Libtool <b>selbständig</b>
2116
+ alle Information erhalten kann - nichts soll vor
2117
+ Libtool versteckt sein.'
2118
+ br
2119
+ e 'Auch die Spec Datei von GCC soll sich Libtool nicht
2120
+ entziehen. Ziemlich radikal und schlau oder?'
2121
+ br
2122
+ e 'Die Idee hinter Libtool war auch genial:'
2123
+ br
2124
+ e 'Es sollte nur ein Script geben, mit dem man C Dateien
2125
+ kompilieren und (miteinander) verknüpfen kann, und somit
2126
+ Executables, static libraries und dynamic libraries erstellen kann.
2127
+ Daher auch der Name LIB-Tool, kurz für Library Tool.','marl2em'
2128
+ br
2129
+ e 'Libtool kommt auch mit libltdl, eine Bibliothek die verwendet
2130
+ wird um während der Laufzeit Extensions zu laden.'
2131
+ br
2132
+ e 'Wichtige Informationen bezieht Libtool aus den <b>.la</b>
2133
+ Dateien - diese sind normalerweise nicht einfach verschiebbar.'
2134
+ br
2135
+ e 'Linktool arbeitet in <b>6 verschiedenen Modes:</b>
2136
+ ( Compile, Link, Execute, Install, Finish, Uninstall )'
2137
+ br
2138
+ e dot(102)+'Compile Mode','marl3em'
2139
+ e dot(102)+'Link Mode','marl3em'
2140
+ e dot(102)+'Execute Mode','marl3em'
2141
+ e dot(102)+'Install Mode','marl3em'
2142
+ e dot(102)+'Finish Mode','marl3em'
2143
+ e dot(102)+'Uninstall Mode','marl3em'
2144
+ br
2145
+ e 'Der abr Mode ist hierbei sehr wichtig, denn gerade bei ihm
2146
+ kommt es des öfteren zu einem Fehler.'
2147
+ br
2148
+ e 'Soweit so gut...'
2149
+ br
2150
+ e 'Das Problem mit Libtool ist aber, das es 232KB gross ist.'
2151
+ br
2152
+ e 'Jedes mal wenn man etwas mit Autotooled Projekten erstellt,
2153
+ für JEDE C Datei in diesem Projekt, wird libtool aufgerufen.'
2154
+ br
2155
+ e 'Das führt nun dazu, das in manchen Situationen
2156
+ das Aufrufen und Verwenden von Libtool länger dauert
2157
+ als das eigentliche Kompilieren der C Dateien im Projekt.'
2158
+ br
2159
+ e 'Um LibTool kennenzulernen sollte man sich nun
2160
+ zuerst einmal in diesem Verzeichnis umsehen:'
2161
+ br
2162
+ cmd ' cd /usr/share/libtool'
2163
+ br
2164
+ e 'Will man ein reloadable Object erstellen, geht dies so:'
2165
+ br
2166
+ cmd ' ld -r -o output.o foobar.o'
2167
+ br
2168
+ e 'Hier ein Beispiel wie man relinked:'
2169
+ br
2170
+ cmd ' libtool --mode=link gcc -g -O -o libhello.la foo.o hello.o'
2171
+ br
2172
+ e 'Es kann aber auch mit Libtool zu Fehlermeldungen kommen wie zb:'
2173
+ br
2174
+ cmd 'libtool: relink: warning:
2175
+ `/usr/lib/gcc/i386-redhat-linux/3.4.6/../../..//libjpeg.la\'
2176
+ seems to be moved'
2177
+ br
2178
+ e 'Hier werden die Informationen der .la Dateien genutzt.'
2179
+ br
2180
+ e '<b>Fehlermeldungen</b> werden in <b>ltdl.h</b> über LT_ERROR
2181
+ behandelt, leider gibt es zum Teil dämliche Fehlermeldung wie
2182
+ "can not install directory" nur aufgrund eines
2183
+ nicht "konformen" Verzeichnispfad ...'
2184
+ br
2185
+ e 'Sehr wichtig ist die Variable
2186
+ <b>sys_lib_search_path_spec</b> im Libtool script,
2187
+ ich füge da gerne /System/Links/Libraries hinzu.'
2188
+ br
2189
+ e 'When you compile a program like The Gimp, it will probably abr
2190
+ with many libraries, some of which were linked against pango when
2191
+ it was still installed under /usr.'
2192
+ br
2193
+ pre '
2194
+ In this case, these libraries will have dead references in their
2195
+ own .la files. Libtool has this very nifty feature that it will
2196
+ automagically abr against dependent libraries of the libraries you
2197
+ use (which is normally automatically done by modern linkers on modern
2198
+ OSes, but since its not portable, we cant rely on this, and Libtool
2199
+ does it for you).
2200
+ So basically, when you abr against libfoo and there is a libfoo.la,
2201
+ libtool will read it to find out what are the dependencies of libfoo
2202
+ and add them recursively to the linking command. In your case, you are
2203
+ probably using libraries whose .la files are still referencing pango
2204
+ from under /usr/lib, hence the problem (that just an educated guess,
2205
+ there can be other reasons, of course).
2206
+ # grep -l pango /usr/lib{,64}/*.la
2207
+ You will see that many of them have the location of pangos la file
2208
+ stored in them.
2209
+ For example:
2210
+ # grep pango /usr/lib/libavahi-ui.la
2211
+ dependency_libs= /usr/lib/libavahi-client.la /usr/lib/libdbus-1.la
2212
+ /usr/lib/libavahi-glib.la /usr/lib/libavahi-common.la
2213
+ /usr/lib/libgtk-x11-2.0.la /usr/lib/libgdk-x11-2.0.la
2214
+ /usr/lib/libatk-1.0.la /usr/lib/libgdk_pixbuf-2.0.la
2215
+ /usr/lib/libpangocairo-1.0.la /usr/lib/libcairo.la
2216
+ /usr/lib/libpangoft2-1.0.la /usr/lib/libpango-1.0.la
2217
+ /usr/lib/libpango-1.0.la /usr/lib/libgobject-2.0.la
2218
+ /usr/lib/libgmodule-2.0.la /usr/lib/libcairo.la
2219
+ /usr/lib/libfontconfig.la /usr/lib/libfreetype.la /usr/lib/libexpat.la
2220
+ /usr/lib/libpng12.la -lz /usr/lib/libXrender.la /usr/lib/libX11.la
2221
+ /usr/lib/libxcb-xlib.la /usr/lib/libxcb.la /usr/lib/libXau.la
2222
+ /usr/lib/libXdmcp.la -lm /usr/lib/libgobject-2.0.la
2223
+ /usr/lib/libgmodule-2.0.la /usr/lib/libglib-2.0.la -ldl
2224
+ /usr/lib/libglib-2.0.la /usr/lib/libgdbm.la
2225
+ /opt/gcc/current/lib/libssp.la
2226
+ It saved all that from the last time that pango was installed
2227
+ and that software which requires pango libraries was compiled and installed.
2228
+ Now you have an understanding of what needs to be modified, right?
2229
+ All those .la files that have references to pango libraries need to
2230
+ be modified.
2231
+ The la files installed by pango are probably something like:
2232
+ /usr/lib/libpango-1.0.la
2233
+ /usr/lib/libpangocairo-1.0.la
2234
+ /usr/lib/libpangoft2-1.0.la
2235
+ /usr/lib/libpangox-1.0.la
2236
+ /usr/lib/libpangoxft-1.0.la
2237
+ Using sed -i you can edit all those files and replace
2238
+ the old locations for where the libpango libtool archive files were stored
2239
+ with the new location.
2240
+ After that you should also check for an .la file that has in it a
2241
+ direct reference
2242
+ to a pango library file and not just a .la file.
2243
+ And edit those also to reflect the new path to where pango is installed.
2244
+ Yes, it is not so easy...
2245
+ But in order to adjust the first one I might type something like
2246
+ what I have below for merely the ia32 architecture and assuming
2247
+ that /usr/lib64 is not used.
2248
+ # grep -l "/usr/lib/libpango-1.0.la" /usr/lib/*.la |
2249
+ xargs -rL64 sed -i
2250
+ "s:/usr/lib/libpango-1.0.la:/opt/pango/lib/libpango-1.0.la:g"
2251
+ Now it will assume pango is installed in /opt/pango
2252
+ However, the same must be done for:
2253
+ /usr/lib/libpangocairo-1.0.la
2254
+ /usr/lib/libpangoft2-1.0.la
2255
+ /usr/lib/libpangox-1.0.la
2256
+ /usr/lib/libpangoxft-1.0.la
2257
+ Yes editing .la files is a bit of a pain.
2258
+ Basically that is how it works.'
2259
+ br
2260
+ e 'Using grep, xargs, sed you can fix all the .la files
2261
+ with references to the old installed locations of pango.
2262
+ Or you could edit them by hand if you have a couple
2263
+ free hours.'
2264
+ br
2265
+ e 'Die aktuelle Version von libtool findet man auf'
2266
+ br
2267
+ abr 'http://www.gnu.org/software/libtool/libtool.html',
2268
+ content: 'http://www.gnu.org/software/libtool/libtool.html',
2269
+ css_class: 'BO marl2em'
2270
+ }
2271
+ # ========================================================================= #
2272
+ # === pkg-config tag, pkg tag
2273
+ # ========================================================================= #
2274
+ div('default FW4','pkg_config','') {
2275
+ h2 dot(104)+'About PKG - Config','FI','',
2276
+ 'border-top:3px solid slateblue;
2277
+ border-bottom:3px solid slateblue'
2278
+ h3 'pkg-config is a helper tool for managing library compile/link
2279
+ flags that work with automake and autoconf. It helps to compile
2280
+ software. It also replaces the ubiquitous *-config scripts you
2281
+ may have seen with a single tool. /
2282
+ Mit anderen Worten, mit Hilfe von pkg-config kann man Library
2283
+ flags in Verbindung mit automake und autoconf managen. Es nutzt
2284
+ zudem die Environment Variable <br>
2285
+ <b class="s2em">
2286
+ echo PKG_CONFIG_PATH
2287
+ </b><br>
2288
+ Default Location wo die pc Dateien normalerweise sind ist
2289
+ <b>/usr/lib/pkgconfig</b><br>
2290
+ Um weitere Dateien hinzuzufügen kann man die Pfade zu
2291
+ PKG_CONFIG_PATH angeben.','ind1em FW4'
2292
+ h2 dot(102)+'pkg-config spezifische FAQ','FI darkblue s1em','pkg'
2293
+ h4 'Herausfinden der include directories, wo der compiler nachschaut?'
2294
+ h5 'pkg-config --cflags PROGRAMM',PKG_CSS_ANSWER_CLASS
2295
+ h5 'pkg-config --cflags gtk+-2.0',PKG_CSS_ANSWER_CLASS
2296
+ h5 'pkg-config --cflags xrender',PKG_CSS_ANSWER_CLASS
2297
+ h5 'pkg-config --cflags pango',PKG_CSS_ANSWER_CLASS
2298
+ h5 'pkg-config --cflags atk',PKG_CSS_ANSWER_CLASS
2299
+ h5 'pkg-config --cflags glib-2.0',PKG_CSS_ANSWER_CLASS
2300
+ h5 'pkg-config --libs --cflags glib-2.0',PKG_CSS_ANSWER_CLASS
2301
+ br
2302
+ e 'Alle Pakete kann man so angezeigt bekommen:'
2303
+ br
2304
+ e 'pkg-config --list-all', PKG_CSS_ANSWER_CLASS
2305
+ h5 '(Beispiel Ergebnisse:
2306
+ -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include
2307
+ -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2
2308
+ -I/usr/include/freetype2/config -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
2309
+ ','FI martb1px'
2310
+ h5 'pkg-config glib --cflags','BOLD '+PKG_CSS_ANSWER_CLASS
2311
+ h4 'Wie finde ich via pkg-config heraus, welche Version von libpng
2312
+ installiert ist? Oder von Wand oder von Vorbis?'
2313
+ p('PKG_CSS_ANSWER_CLASS') {
2314
+ e 'pkg-config --modversion gtksourceview-1.0'
2315
+ e 'pkg-config --modversion libpng'
2316
+ e 'pkg-config --modversion Wand'
2317
+ e 'pkg-config --modversion vorbis'
2318
+ e 'pkg-config --modversion pango'
2319
+ e 'pkg-config --modversion atk'
2320
+ e 'pkg-config --modversion glib-2.0'
2321
+ e 'pkg-config --modversion glib'
2322
+ e 'pkg-config --modversion gtk+-2.0'
2323
+ e 'pkg-config --modversion cairo'
2324
+ e 'pkg-config --modversion qt-mt'
2325
+ e 'pkg-config --modversion sdl'
2326
+ e 'pkg-config --modversion libglade'
2327
+ e 'pkg-config --modversion gstreamer-0.10'
2328
+ }
2329
+ h4 'Wie kombiniere ich das ganze?'
2330
+ h5 'pkg-config --libs --cflags glib-2.0',PKG_CSS_ANSWER_CLASS
2331
+ h4 'Wie sieht ein typisches .pc File aus?'
2332
+ pre ' <b>prefix</b>=/usr
2333
+ <b>exec_prefix</b>=/usr
2334
+ <b>libdir</b>=/usr/lib
2335
+ <b>includedir</b>=/usr/include
2336
+ <b>target</b>=x11
2337
+ <b>gtk_binary_version</b>=2.4.0
2338
+ gtk_host=i386-unknown-linux-gnu
2339
+ <b>Name</b>: GTK+
2340
+ <b>Description</b>: GIMP Tool Kit (targetend target
2341
+ <b>Version</b>: 2.8.6
2342
+ <b>Requires</b>: gdk-targetend-2.0 atk cairo
2343
+ <b>Libs</b>: -Llibdirend -lgtk-targetend-2.0
2344
+ <b>Cflags</b>: -Iincludedirend/gtk-2.0','FS1_5em'
2345
+ br
2346
+ e 'Man kann auch Compile Flags angeben, zum Beispiel:'
2347
+ br
2348
+ cmd 'Libs.private: -lpthread'
2349
+ br
2350
+ div {
2351
+ h3 'Links bezüglich pkg','marb8px'
2352
+ p('marl1em mart1px ind0') {
2353
+ abr 'http://pkgconfig.freedesktop.org/wiki/',
2354
+ content: 'pkgconfig Wiki',
2355
+ css_class: 'slateblue'
2356
+ abr 'http://pmk.sourceforge.net/pkgconfig.php',
2357
+ content: 'PreMakeKit - Alternative zu pkgconfig',
2358
+ css_class: 'slateblue'
2359
+ }
2360
+ }
2361
+ }
2362
+ # =========================================================================== #
2363
+ # === Appendix zu Compiling
2364
+ # =========================================================================== #
2365
+ div('default') {
2366
+ h1 'Appendix zu Compiling','appendix_compiling'
2367
+ table2 's1em','','',
2368
+ '<b>Macro Prototype</b>','<b>Comments</b>',
2369
+ 'AC_INIT(sourcefile',
2370
+ 'Initializes autoconf, should be the <b>first macro</b> called
2371
+ in <b>configure.in</b>. sourcefile is the name (relative to
2372
+ current directory of a source file from your code.',
2373
+ 'AC_PROG_CC ','Determines a C compiler to use, sets the CC
2374
+ variable. If this is GCC, set the GCC variable to yes, otherwise
2375
+ no. Initializes the CFLAGS variable if it has not been set
2376
+ already (to override CFLAGS, do it in configure.in
2377
+ BEFORE calling this macro',
2378
+ 'AC_PROG_CXX','Determines a C++ compiler to use, sets
2379
+ the CXX variable. If this is the GNU C++ compiler, set GXX
2380
+ to yes, otherwise no. Initializes the CXXFLAGS variable if
2381
+ it has not been set already (to override CXXFLAGS, do it
2382
+ in configure.in BEFORE calling this macro. Ist also auch
2383
+ recht wichtig, und prüft ob man einen C++ Compiler hat.',
2384
+ 'AC_LANG_C','Tests the C compiler',
2385
+ 'AC_LANG_cpLUSPLUS','Tests the C++ compiler',
2386
+ 'AC_PROG_INSTALL ','Set variable INSTALL to the path of
2387
+ a BSD-compatible install program (see install (1. If not
2388
+ found, set it to dir/install-sh -c , looking in the
2389
+ directories specified to AC_CONFIG_AUX_DIR. Also sets
2390
+ INSTALL_SCRIPT and INSTALL_PROGRAM to (INSTALL, and
2391
+ INSTALL_DATA to (INSTALL -m 644. You must provide a
2392
+ install-sh file in the current directory (unless you use
2393
+ AC_CONFIG_AUX_DIR -- the common practice is to provide a
2394
+ install-sh file else autoconf will refuse to run.',
2395
+ 'AC_PATH_X',"ry to locate the X window system's includes
2396
+ and libraries, and sets the variables x_includes and
2397
+ x_libraries to their locations.",
2398
+ 'AC_PATH_XTRA','Like the previous, but adds the required
2399
+ include flags to X_CFLAGS and required linking flags
2400
+ to X_LIBS.',
2401
+ '<b>AC_PATH_PROG</b>(a,b[,c[,d]],a=variable-name,
2402
+ b=prog-to-check,c=value-if-not-found, d=path',
2403
+ 'Looks for prog-to-check in PATH, and sets variable-name to
2404
+ the full path if found, or to value-if-not-found if not.',
2405
+ 'AC_PROG_MAKE_SET ','If make predefines the variable MAKE,
2406
+ define output variable SET_MAKE to be empty. Otherwise,
2407
+ define SET_MAKE to contain MAKE=make',
2408
+ 'AC_OUTPUT(files [,a[,b]] ','Create output files.
2409
+ Perform substitutions on files, which contains a list of
2410
+ files separated by spaces. (is writes, say, Makefile,
2411
+ from a Makefile.in file, spec from spec.in, and so on.
2412
+ The name given here is without the .in suffix. The other
2413
+ 2 parameters are seldom used, consult the autoconf docs
2414
+ if needed. If AC_CONFIG_headER, AC_LINK_FILES or
2415
+ AC_CONFIG_SUBDIRS were called, the files named as their
2416
+ arguments are created too.',
2417
+ 'AC_CONFIG_headER(files','Make AC_OUTPUT create the
2418
+ headers listed in the files list (space-separated.
2419
+ Replaces DEFS in generated files with -DHAVE_CONFIG_H.
2420
+ The usual name for the header is config.h (created from
2421
+ config.h.in. The autoheader generates config.h.in files
2422
+ automatically for you (it is documented in the next sections+',
2423
+ 'AC_CONFIG_SUBDIRs(dirs','run configure scripts in the
2424
+ subdirectories listed in dirs (space-separated. This is
2425
+ meant for when you nest child packages to your program
2426
+ (like including libraries as subdirs+',
2427
+ 'AC_CHECK_FUNC(a[,b[,c]] a=function, b=action if found,
2428
+ c=action if not found',' checks if the given C def
2429
+ is available in the standard library (i.e., the libraries
2430
+ that are linked by default to any C program+',
2431
+ 'AC_CHECK_FUNCs(a[,b[,c]] a=list of functions
2432
+ (space-separated b=action if found c=action if not found',
2433
+ 'similar to AC_CHECK_FUNC, but looks for many functions at
2434
+ once, setting HAVE_def for each def found
2435
+ (in the given set+',
2436
+ 'AC_CHECK_LIB(a,b[,c[,d[,e]]] a=library name b=def name
2437
+ c=action if found d=action if not found e=see autoconf docs ','
2438
+ Checks whether a def exists in the given library (library
2439
+ names without the leading lib, e.g., for libxml, use just
2440
+ xml here',
2441
+ 'AC_headER_STDC','Checks for stdlib.h, stdarg.h, string.h
2442
+ and float.h, defines STDC_headERS on success.',
2443
+ 'AC_CHECK_headER(header[,a[,b]] a=action if found b=action if
2444
+ not found ','Checks whether a given header file exists.',
2445
+ 'AC_MSG_ERROR(message','Notifies the user an error has
2446
+ occurred and exits configure with a non-zero status. This is
2447
+ what you should do when a required library or header is
2448
+ missing. Example Code is followed in the section after this
2449
+ table.',
2450
+ 'AC_MSG_WARNING(message','Notifies the user with the given
2451
+ message. This is what you should do when an optional library
2452
+ is missing (thus the final result will be not as good as
2453
+ it could',
2454
+ 'AC_ARG_ENABLe feature,help[,a[,b]] a=action if given b=action
2455
+ if not given ',' Checks whether the user gave --enable-feature
2456
+ in the configure command-line. The help string is shown
2457
+ in configure --help'
2458
+ div {
2459
+ h2 'Example Code for AC_*'
2460
+ cmd 'AC_CHECK_FUNC(XextFindDisplay, :,'
2461
+ cmd2 ' AC_MSG_ERROR([*** libXext not found.
2462
+ Check config.log for more details.]'
2463
+ }
2464
+ }
2465
+ # ========================================================================= #
2466
+ # Makefile Options explained.
2467
+ # ========================================================================= #
2468
+ div {
2469
+ boldbr 'MakeFile Options Explained:'
2470
+ table2 'marl2em BO','','',
2471
+ 'Variable','Description',
2472
+ '$@','This will always expand to the current target.',
2473
+ '$<','Name der ersten Prerequisite. This is the
2474
+ first item listed after the colon. (binarytree.o
2475
+ in the first rule above)',
2476
+ '$?','The names of all the prerequisites that are newer than
2477
+ the target. In the above example this will evaluate to
2478
+ binarytree.o for the first rule.',
2479
+ '$^','The names of all the prerequisites, with spaces
2480
+ between them. No duplicates',
2481
+ '$+','Like $^, but with duplicates. Items are listed in
2482
+ the order they were specified in the rule.'
2483
+ }
2484
+ div('mar0px ind0') {
2485
+ h3 'Gute Links zum Kompilieren und Installieren'
2486
+ abr 'http://eli.thegreenplace.net/2011/08/25/load-time-relocation-of-shared-libraries/',
2487
+ content: 'NAME_ONLY',
2488
+ css_class: 'marl1em'
2489
+ abr :local_c,
2490
+ content: :self,
2491
+ css_class: 'marl1em'
2492
+ abr :local_kernel,
2493
+ content: :self,
2494
+ css_class: 'marl1em'
2495
+ }
2496
+ # ========================================================================= #
2497
+ # === Distcc tag
2498
+ # ========================================================================= #
2499
+ div {
2500
+ abr 'DistCC',
2501
+ content: 'DISTCC/DISTCC.cgi'
2502
+ }
2503
+ # ========================================================================= #
2504
+ # Anhang: March Type
2505
+ # ========================================================================= #
2506
+ div {
2507
+ h2 sg(:item)+'Anhang bezüglich <span class="BO ud">March Type</span> (-march=i686)','','anhang'
2508
+ table2 'marl4em','march_type','',
2509
+ '<b>-march=i386</b>','<a href="http://de.wikipedia.org/wiki/I386">Steinalter Chip</a>, war aber
2510
+ damals ein sehr grosser Erfolg',
2511
+ '<b>-march=i486</b>','Alter Code ... Intel i486 CPU. Dieser Chip hat z.Bsp kein scheduling.',
2512
+ '<b>-march=i586</b>','äquivalent zu <b>pentium</b>, also Intel Pentium CPU ohne MMX Unterstützung',
2513
+ '<b>-march=i686</b>','äquivalent zu <b>pentiumpro</b> (Intel Pentium Pro CPU)',
2514
+ '<b>-march=k6</b>','Der AMD K6 CPU Chip mit MMX instruction set support.',
2515
+ '<b>-march=k6-2, k6-3</b>','Improved versions of AMD K6 CPU with MMX and 3dNOW! instruction set support.',
2516
+ '<b>-march=athlon</b> (und athlon-tbird)','Scheint für Athlons zu gelten, also AMD Athlon CPUs mit
2517
+ MMX 3dNOW! enhanced 3dNOW! und SSE prefetch instruction support',
2518
+ '<b>-march=pentium</b>','Pentium 1 Reihe',
2519
+ '<b>-march=pentium-mmx</b> # Pentium MMX','Intel Pentium3 CPU MMX Reihe
2520
+ mit SSE und SSE2 (MMX instruction set support). Wird bei Centrino Notebooks verwendet.',
2521
+ '<b>-march=pentium2</b>','Intel Pentium 2 CPU basierend auf PentiumPro Kern mit MMX Instruction
2522
+ set support',
2523
+ '<b>-march=pentium3</b>','Intel Pentium3 CPU, basierend auf PentiumPro Core mit MMX und SSE
2524
+ instruction set',
2525
+ '<b>-march=celron</b>','Celron',
2526
+ '<b>-march=pentium-m</b>','Pentium M (zb Laptop FSC Amilo Pro V2030)',
2527
+ '<b>-march=pentium4</b>','Pentium 4 (produziert von 20.11.2000 - 08.08.2008),
2528
+ Inkludiert auch pentium4m. Hat MMX, SSE und SSE2.',
2529
+ '<b>-march=prescott</b>','Verbessserte Version von Intel Pentium4 CPU mit
2530
+ MMX SSE SSE2 und SSE3',
2531
+ '<b>-march=athlon-mp</b>','Athlon-mp, inkludiert auch AMD Sempron
2532
+ (Palomino Reihe)',
2533
+ '<b>-march=athlon-xp</b>','Athlon 64 (AMD), dies gilt für
2534
+ Improved AMD Athlon CPU mit MMX, 3dNOW!, enhanced 3dNOW! und vollem
2535
+ SSE instruction set support.',
2536
+ '<b>-march=athlon-4</b> (sowie athlon-xp, athlon-mp)','Verbesserter AMD
2537
+ Athlon CPU mit MMX 3dNOW! enhanced 3dNOW! und voller SSE Unterstützung',
2538
+ '<b>-march=k6</b>','AMD K6 Reihe. K6-1 entspricht k6, K6-2 entspricht k6-2,
2539
+ K6-3 entspricht k6-3',
2540
+ '<b>-march=k8</b> (inkludiert auch opteron, athlon64, athlon-fx)','AMD K8 core based CPUs with x86-64 instruction
2541
+ set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.)',
2542
+ '<b>-march=athlon64</b>','AMD 64? Scheint so zu sein.',
2543
+ '<b>-march=native</b>','Eine neue Variante seit GCC 4.2.0. Wird empfohlen,
2544
+ ausser man verwendet distcc.',
2545
+ '<b>-march=nocona</b>','Verbesserte Version von Intel Pentium4 CPU
2546
+ mit 64bit Erweiterung, MMX SSE SSE2 SSE3'
2547
+ br
2548
+ abr_self 'http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html'
2549
+ }
2550
+ # ========================================================================= #
2551
+ # === Nützliche Links bezüglich Installieren, Kompilieren etc
2552
+ # ========================================================================= #
2553
+ div('default') {
2554
+ h2 sg(:note,'marr8px')+
2555
+ 'Nützliche Links bezüglich Installieren, Kompilieren etc',COMPILE_HEADER2
2556
+ div('marl3em'){
2557
+ abr 'http://lug-dd.schlittermann.de/vortraege/autoconf.html',
2558
+ content: DOT106+'AutoConf Link'
2559
+ abr 'http://docs.sun.com/app/docs/doc/817-1984/6mhm7pl25?a=view',
2560
+ content: DOT106+'Glibc Audit - ein wichtiger Link'
2561
+ abr 'http://xlife.zuavra.net/columns/20020316',
2562
+ content: DOT106+'Info über C und CC'
2563
+ abr 'http://www.freehackers.org/gentoo/gccflags/flag_gcc3.html',
2564
+ content: DOT106+'GCC3 Flags'
2565
+ abr 'http://www.gentoo.org/doc/en/draft/bootstrapping-guide.xml',
2566
+ content: DOT106+'Der Bootstrapping Prozess'
2567
+ abr 'http://0install.org/index.html',
2568
+ content: DOT106+'ZeroInstall sehr interessant'
2569
+ abr 'http://www.tsfr.org/~orc/Code/configure/',
2570
+ content: DOT106+'Configure, ein Ersatz für GNU Configure'
2571
+ abr 'http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html',
2572
+ content: DOT106+'GCC Environment Variables'
2573
+ }
2574
+ }
2575
+ p('mart8px') {
2576
+ roebe_sitemap
2577
+ }
2578
+ }}