Page MenuHomeSolus

D11420.id27593.diff
No OneTemporary

D11420.id27593.diff

Index: Makefile
===================================================================
--- /dev/null
+++ Makefile
@@ -0,0 +1 @@
+include ../Makefile.common
Index: abi_libs
===================================================================
--- /dev/null
+++ abi_libs
@@ -0,0 +1,11 @@
+libneko.so.2
+mod_neko2.ndll
+mod_tora2.ndll
+mysql.ndll
+mysql5.ndll
+regexp.ndll
+sqlite.ndll
+ssl.ndll
+std.ndll
+ui.ndll
+zlib.ndll
Index: abi_symbols
===================================================================
--- /dev/null
+++ abi_symbols
@@ -0,0 +1,695 @@
+libneko.so.2:NEKO_TYPEOF
+libneko.so.2:__kind_k_hash
+libneko.so.2:__kind_k_loader_libs
+libneko.so.2:__kind_k_old_int32
+libneko.so.2:__kind_neko_k_kind
+libneko.so.2:__kind_neko_kind_module
+libneko.so.2:_end
+libneko.so.2:_neko_failure
+libneko.so.2:callback_return
+libneko.so.2:elf_find_bytecode_section
+libneko.so.2:elf_find_embedded_bytecode
+libneko.so.2:elf_free_section_string_table
+libneko.so.2:elf_is_32
+libneko.so.2:elf_read_header
+libneko.so.2:elf_read_section
+libneko.so.2:elf_write_section
+libneko.so.2:id_add
+libneko.so.2:id_cache
+libneko.so.2:id_compare
+libneko.so.2:id_div
+libneko.so.2:id_exports
+libneko.so.2:id_get
+libneko.so.2:id_loader
+libneko.so.2:id_loader_libs
+libneko.so.2:id_mod
+libneko.so.2:id_mult
+libneko.so.2:id_path
+libneko.so.2:id_radd
+libneko.so.2:id_rdiv
+libneko.so.2:id_rmod
+libneko.so.2:id_rmult
+libneko.so.2:id_rsub
+libneko.so.2:id_set
+libneko.so.2:id_string
+libneko.so.2:id_sub
+libneko.so.2:jit_boot_seq
+libneko.so.2:jit_handle_trap
+libneko.so.2:k_loader_libs
+libneko.so.2:k_old_int32
+libneko.so.2:neko_alloc
+libneko.so.2:neko_alloc_abstract
+libneko.so.2:neko_alloc_apply
+libneko.so.2:neko_alloc_array
+libneko.so.2:neko_alloc_buffer
+libneko.so.2:neko_alloc_empty_string
+libneko.so.2:neko_alloc_field
+libneko.so.2:neko_alloc_float
+libneko.so.2:neko_alloc_function
+libneko.so.2:neko_alloc_int32
+libneko.so.2:neko_alloc_local
+libneko.so.2:neko_alloc_lock
+libneko.so.2:neko_alloc_module_function
+libneko.so.2:neko_alloc_object
+libneko.so.2:neko_alloc_private
+libneko.so.2:neko_alloc_root
+libneko.so.2:neko_alloc_string
+libneko.so.2:neko_append_int
+libneko.so.2:neko_append_strings
+libneko.so.2:neko_buffer_append
+libneko.so.2:neko_buffer_append_char
+libneko.so.2:neko_buffer_append_sub
+libneko.so.2:neko_buffer_length
+libneko.so.2:neko_buffer_to_string
+libneko.so.2:neko_builtins
+libneko.so.2:neko_call_stack
+libneko.so.2:neko_can_jit
+libneko.so.2:neko_copy_string
+libneko.so.2:neko_default_loader
+libneko.so.2:neko_exc_stack
+libneko.so.2:neko_fields
+libneko.so.2:neko_fields_lock
+libneko.so.2:neko_file_reader
+libneko.so.2:neko_free_jit
+libneko.so.2:neko_free_local
+libneko.so.2:neko_free_lock
+libneko.so.2:neko_free_root
+libneko.so.2:neko_gc_init
+libneko.so.2:neko_gc_loop
+libneko.so.2:neko_gc_major
+libneko.so.2:neko_gc_stats
+libneko.so.2:neko_get_ttable
+libneko.so.2:neko_global_free
+libneko.so.2:neko_global_init
+libneko.so.2:neko_id_module
+libneko.so.2:neko_init_builtins
+libneko.so.2:neko_init_jit
+libneko.so.2:neko_interp
+libneko.so.2:neko_interp_loop
+libneko.so.2:neko_is_big_endian
+libneko.so.2:neko_k_hash
+libneko.so.2:neko_k_kind
+libneko.so.2:neko_kind_lookup
+libneko.so.2:neko_kind_module
+libneko.so.2:neko_kind_share
+libneko.so.2:neko_local_get
+libneko.so.2:neko_local_set
+libneko.so.2:neko_lock_acquire
+libneko.so.2:neko_lock_release
+libneko.so.2:neko_lock_try
+libneko.so.2:neko_module_jit
+libneko.so.2:neko_process_trap
+libneko.so.2:neko_read_module
+libneko.so.2:neko_select_file
+libneko.so.2:neko_set_stack_base
+libneko.so.2:neko_setup_trap
+libneko.so.2:neko_stack_expand
+libneko.so.2:neko_string_reader
+libneko.so.2:neko_thread_blocking
+libneko.so.2:neko_thread_create
+libneko.so.2:neko_thread_register
+libneko.so.2:neko_val_buffer
+libneko.so.2:neko_val_call0
+libneko.so.2:neko_val_call1
+libneko.so.2:neko_val_call2
+libneko.so.2:neko_val_call3
+libneko.so.2:neko_val_callEx
+libneko.so.2:neko_val_callN
+libneko.so.2:neko_val_compare
+libneko.so.2:neko_val_field
+libneko.so.2:neko_val_field_name
+libneko.so.2:neko_val_gc
+libneko.so.2:neko_val_hash
+libneko.so.2:neko_val_id
+libneko.so.2:neko_val_iter_fields
+libneko.so.2:neko_val_ocall0
+libneko.so.2:neko_val_ocall1
+libneko.so.2:neko_val_ocall2
+libneko.so.2:neko_val_ocallN
+libneko.so.2:neko_val_print
+libneko.so.2:neko_val_rethrow
+libneko.so.2:neko_val_this
+libneko.so.2:neko_val_throw
+libneko.so.2:neko_vm_alloc
+libneko.so.2:neko_vm_context
+libneko.so.2:neko_vm_current
+libneko.so.2:neko_vm_custom
+libneko.so.2:neko_vm_dump_stack
+libneko.so.2:neko_vm_execute
+libneko.so.2:neko_vm_jit
+libneko.so.2:neko_vm_redirect
+libneko.so.2:neko_vm_select
+libneko.so.2:neko_vm_set_custom
+libneko.so.2:neko_vm_set_stats
+libneko.so.2:neko_vm_trusted
+libneko.so.2:otable_copy
+libneko.so.2:otable_iter
+libneko.so.2:otable_optimize
+libneko.so.2:otable_remove
+libneko.so.2:otable_replace
+libneko.so.2:size_Ehdr
+libneko.so.2:size_Shdr
+libneko.so.2:val_false
+libneko.so.2:val_null
+libneko.so.2:val_true
+mod_neko2.ndll:__kind_k_mod_neko
+mod_neko2.ndll:_end
+mod_neko2.ndll:cgi_command
+mod_neko2.ndll:cgi_command__1
+mod_neko2.ndll:cgi_flush__0
+mod_neko2.ndll:cgi_get_config__0
+mod_neko2.ndll:cgi_get_cwd__0
+mod_neko2.ndll:cgi_set_config__1
+mod_neko2.ndll:cgi_set_main__1
+mod_neko2.ndll:get_client_header__1
+mod_neko2.ndll:get_client_headers__0
+mod_neko2.ndll:get_client_ip__0
+mod_neko2.ndll:get_cookies__0
+mod_neko2.ndll:get_host_name__0
+mod_neko2.ndll:get_http_method__0
+mod_neko2.ndll:get_params__0
+mod_neko2.ndll:get_params_string__0
+mod_neko2.ndll:get_post_data__0
+mod_neko2.ndll:get_uri__0
+mod_neko2.ndll:k_mod_neko
+mod_neko2.ndll:log_message__1
+mod_neko2.ndll:mod_neko_get_config
+mod_neko2.ndll:mod_neko_set_config
+mod_neko2.ndll:neko_module
+mod_neko2.ndll:neko_stats_build
+mod_neko2.ndll:neko_stats_measure
+mod_neko2.ndll:parse_multipart_data__2
+mod_neko2.ndll:redirect__1
+mod_neko2.ndll:set_cookie__2
+mod_neko2.ndll:set_header__2
+mod_neko2.ndll:set_return_code__1
+mod_tora2.ndll:phost_resolve
+mod_tora2.ndll:protocol_connect
+mod_tora2.ndll:protocol_free
+mod_tora2.ndll:protocol_get_error
+mod_tora2.ndll:protocol_init
+mod_tora2.ndll:protocol_read_answer
+mod_tora2.ndll:protocol_send_header
+mod_tora2.ndll:protocol_send_param
+mod_tora2.ndll:protocol_send_raw_params
+mod_tora2.ndll:protocol_send_request
+mod_tora2.ndll:psock_close
+mod_tora2.ndll:psock_connect
+mod_tora2.ndll:psock_create
+mod_tora2.ndll:psock_init
+mod_tora2.ndll:psock_recv
+mod_tora2.ndll:psock_send
+mod_tora2.ndll:psock_set_blocking
+mod_tora2.ndll:psock_set_fastsend
+mod_tora2.ndll:psock_set_timeout
+mod_tora2.ndll:psock_wait
+mod_tora2.ndll:tora_module
+mysql.ndll:__kind_k_connection
+mysql.ndll:__kind_k_result
+mysql.ndll:_end
+mysql.ndll:close__1
+mysql.ndll:connect__1
+mysql.ndll:escape__2
+mysql.ndll:k_connection
+mysql.ndll:k_result
+mysql.ndll:request__2
+mysql.ndll:result_get__2
+mysql.ndll:result_get_fields_names__1
+mysql.ndll:result_get_float__2
+mysql.ndll:result_get_int__2
+mysql.ndll:result_get_length__1
+mysql.ndll:result_get_nfields__1
+mysql.ndll:result_next__1
+mysql.ndll:result_set_conv_date__2
+mysql.ndll:select_db__2
+mysql.ndll:set_conv_funs__4
+mysql5.ndll:__kind_k_connection
+mysql5.ndll:__kind_k_result
+mysql5.ndll:_end
+mysql5.ndll:close__1
+mysql5.ndll:connect__1
+mysql5.ndll:escape__2
+mysql5.ndll:k_connection
+mysql5.ndll:k_result
+mysql5.ndll:mp_affected_rows
+mysql5.ndll:mp_close
+mysql5.ndll:mp_error
+mysql5.ndll:mp_escape_string
+mysql5.ndll:mp_fetch_fields
+mysql5.ndll:mp_fetch_lengths
+mysql5.ndll:mp_fetch_row
+mysql5.ndll:mp_field_count
+mysql5.ndll:mp_free_result
+mysql5.ndll:mp_init
+mysql5.ndll:mp_num_fields
+mysql5.ndll:mp_num_rows
+mysql5.ndll:mp_real_connect
+mysql5.ndll:mp_real_escape_string
+mysql5.ndll:mp_real_query
+mysql5.ndll:mp_select_db
+mysql5.ndll:mp_store_result
+mysql5.ndll:myp_begin_packet
+mysql5.ndll:myp_charset_name
+mysql5.ndll:myp_crypt
+mysql5.ndll:myp_encrypt_pass_323
+mysql5.ndll:myp_encrypt_password
+mysql5.ndll:myp_escape_quotes
+mysql5.ndll:myp_escape_string
+mysql5.ndll:myp_read
+mysql5.ndll:myp_read_bin
+mysql5.ndll:myp_read_bin_str
+mysql5.ndll:myp_read_byte
+mysql5.ndll:myp_read_int
+mysql5.ndll:myp_read_packet
+mysql5.ndll:myp_read_string
+mysql5.ndll:myp_read_ui16
+mysql5.ndll:myp_recv
+mysql5.ndll:myp_send
+mysql5.ndll:myp_send_packet
+mysql5.ndll:myp_supported_charset
+mysql5.ndll:myp_write
+mysql5.ndll:myp_write_bin
+mysql5.ndll:myp_write_byte
+mysql5.ndll:myp_write_int
+mysql5.ndll:myp_write_string
+mysql5.ndll:myp_write_string_eof
+mysql5.ndll:myp_write_ui16
+mysql5.ndll:mysql_character_set_name
+mysql5.ndll:phost_resolve
+mysql5.ndll:psock_close
+mysql5.ndll:psock_connect
+mysql5.ndll:psock_create
+mysql5.ndll:psock_init
+mysql5.ndll:psock_recv
+mysql5.ndll:psock_send
+mysql5.ndll:psock_set_blocking
+mysql5.ndll:psock_set_fastsend
+mysql5.ndll:psock_set_timeout
+mysql5.ndll:psock_wait
+mysql5.ndll:request__2
+mysql5.ndll:result_get__2
+mysql5.ndll:result_get_fields_names__1
+mysql5.ndll:result_get_float__2
+mysql5.ndll:result_get_int__2
+mysql5.ndll:result_get_length__1
+mysql5.ndll:result_get_nfields__1
+mysql5.ndll:result_next__1
+mysql5.ndll:result_set_conv_date__2
+mysql5.ndll:select_db__2
+mysql5.ndll:set_conv_funs__4
+mysql5.ndll:sha1_final
+mysql5.ndll:sha1_init
+mysql5.ndll:sha1_update
+regexp.ndll:__kind_k_regexp
+regexp.ndll:__neko_entry_point
+regexp.ndll:_end
+regexp.ndll:k_regexp
+regexp.ndll:regexp_main
+regexp.ndll:regexp_match__4
+regexp.ndll:regexp_matched__2
+regexp.ndll:regexp_matched_pos__2
+regexp.ndll:regexp_new__1
+regexp.ndll:regexp_new_options__2
+regexp.ndll:regexp_replace__3
+regexp.ndll:regexp_replace_all__3
+regexp.ndll:regexp_replace_fun__3
+sqlite.ndll:__kind_k_db
+sqlite.ndll:__kind_k_result
+sqlite.ndll:_end
+sqlite.ndll:close__1
+sqlite.ndll:connect__1
+sqlite.ndll:k_db
+sqlite.ndll:k_result
+sqlite.ndll:last_insert_id__1
+sqlite.ndll:request__2
+sqlite.ndll:result_get__2
+sqlite.ndll:result_get_float__2
+sqlite.ndll:result_get_int__2
+sqlite.ndll:result_get_length__1
+sqlite.ndll:result_get_nfields__1
+sqlite.ndll:result_next__1
+ssl.ndll:__kind_k_cert
+ssl.ndll:__kind_k_pkey
+ssl.ndll:__kind_k_ssl
+ssl.ndll:__kind_k_ssl_conf
+ssl.ndll:__neko_entry_point
+ssl.ndll:_end
+ssl.ndll:cert_add_der__2
+ssl.ndll:cert_add_pem__2
+ssl.ndll:cert_get_altnames__1
+ssl.ndll:cert_get_issuer__2
+ssl.ndll:cert_get_next__1
+ssl.ndll:cert_get_notafter__1
+ssl.ndll:cert_get_notbefore__1
+ssl.ndll:cert_get_subject__2
+ssl.ndll:cert_load_defaults__0
+ssl.ndll:cert_load_file__1
+ssl.ndll:cert_load_path__1
+ssl.ndll:conf_close__1
+ssl.ndll:conf_new__1
+ssl.ndll:conf_set_ca__2
+ssl.ndll:conf_set_cert__3
+ssl.ndll:conf_set_servername_callback__2
+ssl.ndll:conf_set_verify__2
+ssl.ndll:dgst_make__2
+ssl.ndll:dgst_sign__3
+ssl.ndll:dgst_verify__4
+ssl.ndll:k_cert
+ssl.ndll:k_pkey
+ssl.ndll:k_ssl
+ssl.ndll:k_ssl_conf
+ssl.ndll:key_from_der__2
+ssl.ndll:key_from_pem__3
+ssl.ndll:net_read
+ssl.ndll:net_write
+ssl.ndll:ssl_close__1
+ssl.ndll:ssl_get_peer_certificate__1
+ssl.ndll:ssl_get_verify_result__1
+ssl.ndll:ssl_handshake__1
+ssl.ndll:ssl_main
+ssl.ndll:ssl_new__1
+ssl.ndll:ssl_read__1
+ssl.ndll:ssl_recv__4
+ssl.ndll:ssl_recv_char__1
+ssl.ndll:ssl_send__4
+ssl.ndll:ssl_send_char__2
+ssl.ndll:ssl_set_hostname__2
+ssl.ndll:ssl_set_socket__2
+ssl.ndll:ssl_write__2
+std.ndll:__kind_k_buffer
+std.ndll:__kind_k_deque
+std.ndll:__kind_k_epoll
+std.ndll:__kind_k_file
+std.ndll:__kind_k_lock
+std.ndll:__kind_k_mutex
+std.ndll:__kind_k_poll
+std.ndll:__kind_k_process
+std.ndll:__kind_k_random
+std.ndll:__kind_k_socket
+std.ndll:__kind_k_thread
+std.ndll:__kind_k_tls
+std.ndll:__kind_k_ubuf
+std.ndll:__kind_k_uni_buf
+std.ndll:__neko_entry_point
+std.ndll:_end
+std.ndll:base_decode__2
+std.ndll:base_encode__2
+std.ndll:buffer_add__2
+std.ndll:buffer_add_char__2
+std.ndll:buffer_add_sub__4
+std.ndll:buffer_get_length__1
+std.ndll:buffer_new__0
+std.ndll:buffer_reset__1
+std.ndll:buffer_string__1
+std.ndll:date_format__2
+std.ndll:date_get_day__1
+std.ndll:date_get_hour__1
+std.ndll:date_get_tz__1
+std.ndll:date_get_utc_day__1
+std.ndll:date_get_utc_hour__1
+std.ndll:date_new__1
+std.ndll:date_now__0
+std.ndll:date_set_day__4
+std.ndll:date_set_hour__4
+std.ndll:date_utc_format__2
+std.ndll:deque_add__2
+std.ndll:deque_create__0
+std.ndll:deque_pop__2
+std.ndll:deque_push__2
+std.ndll:double_bytes__2
+std.ndll:double_of_bytes__2
+std.ndll:elf_update_section_header_for_bytecode__3
+std.ndll:enable_jit__1
+std.ndll:file_close__1
+std.ndll:file_contents__1
+std.ndll:file_delete__1
+std.ndll:file_eof__1
+std.ndll:file_exists__1
+std.ndll:file_flush__1
+std.ndll:file_full_path__1
+std.ndll:file_name__1
+std.ndll:file_open__2
+std.ndll:file_read__4
+std.ndll:file_read_char__1
+std.ndll:file_seek__3
+std.ndll:file_stderr__0
+std.ndll:file_stdin__0
+std.ndll:file_stdout__0
+std.ndll:file_tell__1
+std.ndll:file_write__4
+std.ndll:file_write_char__2
+std.ndll:float_bytes__2
+std.ndll:float_of_bytes__2
+std.ndll:gc_stats__0
+std.ndll:get_cwd__0
+std.ndll:get_env__1
+std.ndll:host_local__0
+std.ndll:host_resolve__1
+std.ndll:host_reverse__1
+std.ndll:host_to_string__1
+std.ndll:id_cdata
+std.ndll:id_comment
+std.ndll:id_d
+std.ndll:id_doctype
+std.ndll:id_done
+std.ndll:id_h
+std.ndll:id_loadmodule
+std.ndll:id_loadprim
+std.ndll:id_m
+std.ndll:id_module
+std.ndll:id_pcdata
+std.ndll:id_s
+std.ndll:id_serialize
+std.ndll:id_unserialize
+std.ndll:id_xml
+std.ndll:id_y
+std.ndll:int32_add__2
+std.ndll:int32_address__1
+std.ndll:int32_and__2
+std.ndll:int32_compare__2
+std.ndll:int32_complement__1
+std.ndll:int32_div__2
+std.ndll:int32_mod__2
+std.ndll:int32_mul__2
+std.ndll:int32_neg__1
+std.ndll:int32_new__1
+std.ndll:int32_or__2
+std.ndll:int32_shl__2
+std.ndll:int32_shr__2
+std.ndll:int32_sub__2
+std.ndll:int32_to_float__1
+std.ndll:int32_to_int__1
+std.ndll:int32_ushr__2
+std.ndll:int32_xor__2
+std.ndll:k_buffer
+std.ndll:k_deque
+std.ndll:k_epoll
+std.ndll:k_file
+std.ndll:k_lock
+std.ndll:k_mutex
+std.ndll:k_poll
+std.ndll:k_process
+std.ndll:k_random
+std.ndll:k_socket
+std.ndll:k_thread
+std.ndll:k_tls
+std.ndll:k_ubuf
+std.ndll:k_uni_buf
+std.ndll:lock_create__0
+std.ndll:lock_release__1
+std.ndll:lock_wait__2
+std.ndll:make_md5__1
+std.ndll:make_sha1__3
+std.ndll:math_abs__1
+std.ndll:math_acos
+std.ndll:math_acos__1
+std.ndll:math_asin
+std.ndll:math_asin__1
+std.ndll:math_atan
+std.ndll:math_atan2__2
+std.ndll:math_atan__1
+std.ndll:math_ceil__1
+std.ndll:math_cos
+std.ndll:math_cos__1
+std.ndll:math_exp
+std.ndll:math_exp__1
+std.ndll:math_fceil__1
+std.ndll:math_ffloor__1
+std.ndll:math_floor__1
+std.ndll:math_fround__1
+std.ndll:math_int__1
+std.ndll:math_log
+std.ndll:math_log__1
+std.ndll:math_pi__0
+std.ndll:math_pow__2
+std.ndll:math_round__1
+std.ndll:math_sin
+std.ndll:math_sin__1
+std.ndll:math_sqrt
+std.ndll:math_sqrt__1
+std.ndll:math_tan
+std.ndll:math_tan__1
+std.ndll:mem_local_size__2
+std.ndll:mem_size__1
+std.ndll:merge_sort__3
+std.ndll:module_code_size__1
+std.ndll:module_exec__1
+std.ndll:module_exports__1
+std.ndll:module_global_get__2
+std.ndll:module_global_set__3
+std.ndll:module_loader__1
+std.ndll:module_name__1
+std.ndll:module_nglobals__1
+std.ndll:module_read__2
+std.ndll:module_read_path__3
+std.ndll:module_read_string__2
+std.ndll:module_set_name__2
+std.ndll:mutex_acquire__1
+std.ndll:mutex_create__0
+std.ndll:mutex_release__1
+std.ndll:mutex_try__1
+std.ndll:parse_xml__2
+std.ndll:print_redirect__1
+std.ndll:process_close__1
+std.ndll:process_exit__1
+std.ndll:process_kill__1
+std.ndll:process_pid__1
+std.ndll:process_run__2
+std.ndll:process_stderr_read__4
+std.ndll:process_stdin_close__1
+std.ndll:process_stdin_write__4
+std.ndll:process_stdout_read__4
+std.ndll:put_env__2
+std.ndll:random_float__1
+std.ndll:random_int__2
+std.ndll:random_new__0
+std.ndll:random_set_seed__2
+std.ndll:run_gc__1
+std.ndll:same_closure__2
+std.ndll:serialize__1
+std.ndll:serialize_rec
+std.ndll:set_cwd__1
+std.ndll:set_time_locale__1
+std.ndll:set_trusted__1
+std.ndll:sha1_final
+std.ndll:sha1_init
+std.ndll:sha1_update
+std.ndll:socket_accept__1
+std.ndll:socket_bind__3
+std.ndll:socket_close__1
+std.ndll:socket_connect__3
+std.ndll:socket_epoll_alloc__1
+std.ndll:socket_epoll_register__3
+std.ndll:socket_epoll_unregister__2
+std.ndll:socket_epoll_wait__2
+std.ndll:socket_host__1
+std.ndll:socket_init__0
+std.ndll:socket_listen__2
+std.ndll:socket_new__1
+std.ndll:socket_peer__1
+std.ndll:socket_poll__3
+std.ndll:socket_poll_alloc__1
+std.ndll:socket_poll_events__2
+std.ndll:socket_poll_prepare__3
+std.ndll:socket_read__1
+std.ndll:socket_recv__4
+std.ndll:socket_recv_char__1
+std.ndll:socket_recv_from__5
+std.ndll:socket_select__4
+std.ndll:socket_send__4
+std.ndll:socket_send_char__2
+std.ndll:socket_send_to__5
+std.ndll:socket_set_blocking__2
+std.ndll:socket_set_broadcast__2
+std.ndll:socket_set_fast_send__2
+std.ndll:socket_set_keepalive__4
+std.ndll:socket_set_timeout__2
+std.ndll:socket_shutdown__3
+std.ndll:socket_write__2
+std.ndll:sprintf__2
+std.ndll:std_main
+std.ndll:string_split__2
+std.ndll:sys_command__1
+std.ndll:sys_cpu_time__0
+std.ndll:sys_create_dir__2
+std.ndll:sys_env__0
+std.ndll:sys_exe_path__0
+std.ndll:sys_exists__1
+std.ndll:sys_exit__1
+std.ndll:sys_file_type__1
+std.ndll:sys_get_pid__0
+std.ndll:sys_getch__1
+std.ndll:sys_is64__0
+std.ndll:sys_read_dir__1
+std.ndll:sys_remove_dir__1
+std.ndll:sys_rename__2
+std.ndll:sys_sleep__1
+std.ndll:sys_stat__1
+std.ndll:sys_string__0
+std.ndll:sys_thread_cpu_time__0
+std.ndll:sys_time__0
+std.ndll:test__0
+std.ndll:thread_create__2
+std.ndll:thread_current__0
+std.ndll:thread_read_message__1
+std.ndll:thread_send__2
+std.ndll:thread_stack__1
+std.ndll:tls_create__0
+std.ndll:tls_get__1
+std.ndll:tls_set__2
+std.ndll:unicode_buf_add__2
+std.ndll:unicode_buf_alloc__2
+std.ndll:unicode_buf_content__1
+std.ndll:unicode_buf_length__1
+std.ndll:unicode_buf_size__1
+std.ndll:unicode_compare__3
+std.ndll:unicode_convert__3
+std.ndll:unicode_get__3
+std.ndll:unicode_iter__3
+std.ndll:unicode_length__2
+std.ndll:unicode_lower__2
+std.ndll:unicode_sub__4
+std.ndll:unicode_upper__2
+std.ndll:unicode_validate__2
+std.ndll:unserialize__2
+std.ndll:url_decode__1
+std.ndll:url_encode__1
+std.ndll:utf8_buf_add__2
+std.ndll:utf8_buf_alloc__1
+std.ndll:utf8_buf_content__1
+std.ndll:utf8_buf_length__1
+std.ndll:utf8_buf_size__1
+std.ndll:utf8_compare__2
+std.ndll:utf8_get__2
+std.ndll:utf8_iter__2
+std.ndll:utf8_length__1
+std.ndll:utf8_sub__3
+std.ndll:utf8_validate__1
+std.ndll:win_env_changed__0
+ui.ndll:__bss_start
+ui.ndll:__neko_entry_point
+ui.ndll:_edata
+ui.ndll:_end
+ui.ndll:ui_is_main__0
+ui.ndll:ui_loop__0
+ui.ndll:ui_main
+ui.ndll:ui_stop_loop__0
+ui.ndll:ui_sync__1
+zlib.ndll:__kind_k_stream_def
+zlib.ndll:__kind_k_stream_inf
+zlib.ndll:__neko_entry_point
+zlib.ndll:_end
+zlib.ndll:deflate_bound__2
+zlib.ndll:deflate_buffer__5
+zlib.ndll:deflate_end__1
+zlib.ndll:deflate_init__1
+zlib.ndll:get_adler32__1
+zlib.ndll:inflate_buffer__5
+zlib.ndll:inflate_end__1
+zlib.ndll:inflate_init__1
+zlib.ndll:k_stream_def
+zlib.ndll:k_stream_inf
+zlib.ndll:set_flush_mode__2
+zlib.ndll:update_adler32__4
+zlib.ndll:update_crc32__4
+zlib.ndll:zlib_main
Index: abi_used_libs
===================================================================
--- /dev/null
+++ abi_used_libs
@@ -0,0 +1,16 @@
+UNKNOWN
+libapr-1.so.0
+libc.so.6
+libdl.so.2
+libgc.so.1
+libgdk-3.so.0
+libgtk-3.so.0
+libm.so.6
+libmariadb.so.3
+libmbedcrypto.so.5
+libmbedtls.so.13
+libmbedx509.so.1
+libpcre.so.1
+libpthread.so.0
+libsqlite3.so.0
+libz.so.1
Index: abi_used_symbols
===================================================================
--- /dev/null
+++ abi_used_symbols
@@ -0,0 +1,285 @@
+UNKNOWN:ap_get_client_block
+UNKNOWN:ap_hook_handler
+UNKNOWN:ap_hook_post_config
+UNKNOWN:ap_log_error_
+UNKNOWN:ap_log_rerror_
+UNKNOWN:ap_rflush
+UNKNOWN:ap_rprintf
+UNKNOWN:ap_rwrite
+UNKNOWN:ap_setup_client_block
+UNKNOWN:ap_should_client_block
+libapr-1.so.0:apr_palloc
+libapr-1.so.0:apr_table_add
+libapr-1.so.0:apr_table_do
+libapr-1.so.0:apr_table_get
+libapr-1.so.0:apr_table_set
+libc.so.6:__environ
+libc.so.6:__errno_location
+libc.so.6:__fdelt_chk
+libc.so.6:__fprintf_chk
+libc.so.6:__isoc99_sscanf
+libc.so.6:__libc_start_main
+libc.so.6:__longjmp_chk
+libc.so.6:__printf_chk
+libc.so.6:__sprintf_chk
+libc.so.6:__stack_chk_fail
+libc.so.6:_setjmp
+libc.so.6:bind
+libc.so.6:calloc
+libc.so.6:cfmakeraw
+libc.so.6:chdir
+libc.so.6:clock_gettime
+libc.so.6:close
+libc.so.6:closedir
+libc.so.6:connect
+libc.so.6:dup2
+libc.so.6:environ
+libc.so.6:epoll_create1
+libc.so.6:epoll_ctl
+libc.so.6:epoll_wait
+libc.so.6:execvp
+libc.so.6:exit
+libc.so.6:fclose
+libc.so.6:fcntl
+libc.so.6:feof
+libc.so.6:ferror
+libc.so.6:fflush
+libc.so.6:fileno
+libc.so.6:fopen
+libc.so.6:fork
+libc.so.6:fputc
+libc.so.6:fread
+libc.so.6:free
+libc.so.6:freelocale
+libc.so.6:fseek
+libc.so.6:ftell
+libc.so.6:fwrite
+libc.so.6:getc
+libc.so.6:getcwd
+libc.so.6:getenv
+libc.so.6:gethostbyaddr_r
+libc.so.6:gethostbyname_r
+libc.so.6:gethostname
+libc.so.6:getpeername
+libc.so.6:getpid
+libc.so.6:getrlimit
+libc.so.6:getsockname
+libc.so.6:gettimeofday
+libc.so.6:gmtime_r
+libc.so.6:inet_addr
+libc.so.6:inet_ntoa
+libc.so.6:kill
+libc.so.6:listen
+libc.so.6:localtime_r
+libc.so.6:malloc
+libc.so.6:memchr
+libc.so.6:memcmp
+libc.so.6:memcpy
+libc.so.6:memmove
+libc.so.6:memset
+libc.so.6:mkdir
+libc.so.6:mktime
+libc.so.6:nanosleep
+libc.so.6:newlocale
+libc.so.6:opendir
+libc.so.6:pipe
+libc.so.6:poll
+libc.so.6:pthread_attr_destroy
+libc.so.6:pthread_attr_init
+libc.so.6:pthread_attr_setdetachstate
+libc.so.6:pthread_cond_destroy
+libc.so.6:pthread_cond_init
+libc.so.6:pthread_self
+libc.so.6:putchar
+libc.so.6:putenv
+libc.so.6:readdir
+libc.so.6:readlink
+libc.so.6:realpath
+libc.so.6:recv
+libc.so.6:rename
+libc.so.6:rmdir
+libc.so.6:select
+libc.so.6:send
+libc.so.6:setenv
+libc.so.6:setlocale
+libc.so.6:setsockopt
+libc.so.6:shutdown
+libc.so.6:sigemptyset
+libc.so.6:socket
+libc.so.6:sprintf
+libc.so.6:stat
+libc.so.6:stderr
+libc.so.6:stdin
+libc.so.6:stdout
+libc.so.6:strcasecmp
+libc.so.6:strchr
+libc.so.6:strcmp
+libc.so.6:strdup
+libc.so.6:strftime
+libc.so.6:strlen
+libc.so.6:strrchr
+libc.so.6:strstr
+libc.so.6:strtod
+libc.so.6:strtol
+libc.so.6:system
+libc.so.6:tcgetattr
+libc.so.6:tcsetattr
+libc.so.6:time
+libc.so.6:times
+libc.so.6:unlink
+libc.so.6:uselocale
+libc.so.6:waitpid
+libdl.so.2:dlerror
+libdl.so.2:dlopen
+libdl.so.2:dlsym
+libgc.so.1:GC_all_interior_pointers
+libgc.so.1:GC_clear_roots
+libgc.so.1:GC_collect_a_little
+libgc.so.1:GC_dlopen
+libgc.so.1:GC_free
+libgc.so.1:GC_gcollect
+libgc.so.1:GC_get_free_bytes
+libgc.so.1:GC_get_heap_size
+libgc.so.1:GC_init
+libgc.so.1:GC_java_finalization
+libgc.so.1:GC_malloc
+libgc.so.1:GC_malloc_atomic
+libgc.so.1:GC_malloc_atomic_ignore_off_page
+libgc.so.1:GC_malloc_ignore_off_page
+libgc.so.1:GC_malloc_uncollectable
+libgc.so.1:GC_no_dls
+libgc.so.1:GC_pthread_create
+libgc.so.1:GC_register_finalizer_no_order
+libgc.so.1:GC_set_warn_proc
+libgdk-3.so.0:gdk_threads_add_timeout
+libgdk-3.so.0:gdk_threads_init
+libgtk-3.so.0:gtk_init
+libgtk-3.so.0:gtk_main
+libgtk-3.so.0:gtk_main_quit
+libm.so.6:acos
+libm.so.6:asin
+libm.so.6:atan
+libm.so.6:atan2
+libm.so.6:cos
+libm.so.6:exp
+libm.so.6:fmod
+libm.so.6:log
+libm.so.6:pow
+libm.so.6:sin
+libm.so.6:sqrt
+libm.so.6:tan
+libmariadb.so.3:mysql_affected_rows
+libmariadb.so.3:mysql_character_set_name
+libmariadb.so.3:mysql_close
+libmariadb.so.3:mysql_error
+libmariadb.so.3:mysql_fetch_fields
+libmariadb.so.3:mysql_fetch_lengths
+libmariadb.so.3:mysql_fetch_row
+libmariadb.so.3:mysql_field_count
+libmariadb.so.3:mysql_free_result
+libmariadb.so.3:mysql_init
+libmariadb.so.3:mysql_num_fields
+libmariadb.so.3:mysql_num_rows
+libmariadb.so.3:mysql_real_connect
+libmariadb.so.3:mysql_real_escape_string
+libmariadb.so.3:mysql_real_query
+libmariadb.so.3:mysql_select_db
+libmariadb.so.3:mysql_store_result
+libmbedcrypto.so.5:mbedtls_ctr_drbg_init
+libmbedcrypto.so.5:mbedtls_ctr_drbg_random
+libmbedcrypto.so.5:mbedtls_ctr_drbg_seed
+libmbedcrypto.so.5:mbedtls_entropy_func
+libmbedcrypto.so.5:mbedtls_entropy_init
+libmbedcrypto.so.5:mbedtls_md
+libmbedcrypto.so.5:mbedtls_md_get_size
+libmbedcrypto.so.5:mbedtls_md_get_type
+libmbedcrypto.so.5:mbedtls_md_info_from_string
+libmbedcrypto.so.5:mbedtls_oid_get_attr_short_name
+libmbedcrypto.so.5:mbedtls_pk_free
+libmbedcrypto.so.5:mbedtls_pk_init
+libmbedcrypto.so.5:mbedtls_pk_parse_key
+libmbedcrypto.so.5:mbedtls_pk_parse_public_key
+libmbedcrypto.so.5:mbedtls_pk_sign
+libmbedcrypto.so.5:mbedtls_pk_verify
+libmbedcrypto.so.5:mbedtls_strerror
+libmbedtls.so.13:mbedtls_ssl_conf_authmode
+libmbedtls.so.13:mbedtls_ssl_conf_ca_chain
+libmbedtls.so.13:mbedtls_ssl_conf_own_cert
+libmbedtls.so.13:mbedtls_ssl_conf_rng
+libmbedtls.so.13:mbedtls_ssl_conf_sni
+libmbedtls.so.13:mbedtls_ssl_config_defaults
+libmbedtls.so.13:mbedtls_ssl_config_free
+libmbedtls.so.13:mbedtls_ssl_config_init
+libmbedtls.so.13:mbedtls_ssl_free
+libmbedtls.so.13:mbedtls_ssl_get_peer_cert
+libmbedtls.so.13:mbedtls_ssl_get_verify_result
+libmbedtls.so.13:mbedtls_ssl_handshake
+libmbedtls.so.13:mbedtls_ssl_init
+libmbedtls.so.13:mbedtls_ssl_read
+libmbedtls.so.13:mbedtls_ssl_set_bio
+libmbedtls.so.13:mbedtls_ssl_set_hostname
+libmbedtls.so.13:mbedtls_ssl_set_hs_own_cert
+libmbedtls.so.13:mbedtls_ssl_setup
+libmbedtls.so.13:mbedtls_ssl_write
+libmbedx509.so.1:mbedtls_x509_crt_free
+libmbedx509.so.1:mbedtls_x509_crt_init
+libmbedx509.so.1:mbedtls_x509_crt_parse
+libmbedx509.so.1:mbedtls_x509_crt_parse_der
+libmbedx509.so.1:mbedtls_x509_crt_parse_file
+libmbedx509.so.1:mbedtls_x509_crt_parse_path
+libpcre.so.1:pcre_compile
+libpcre.so.1:pcre_exec
+libpcre.so.1:pcre_free
+libpcre.so.1:pcre_fullinfo
+libpthread.so.0:__errno_location
+libpthread.so.0:accept
+libpthread.so.0:close
+libpthread.so.0:connect
+libpthread.so.0:pthread_cond_signal
+libpthread.so.0:pthread_cond_timedwait
+libpthread.so.0:pthread_cond_wait
+libpthread.so.0:pthread_getspecific
+libpthread.so.0:pthread_key_create
+libpthread.so.0:pthread_key_delete
+libpthread.so.0:pthread_mutex_destroy
+libpthread.so.0:pthread_mutex_init
+libpthread.so.0:pthread_mutex_lock
+libpthread.so.0:pthread_mutex_trylock
+libpthread.so.0:pthread_mutex_unlock
+libpthread.so.0:pthread_mutexattr_destroy
+libpthread.so.0:pthread_mutexattr_init
+libpthread.so.0:pthread_mutexattr_settype
+libpthread.so.0:pthread_setspecific
+libpthread.so.0:read
+libpthread.so.0:recv
+libpthread.so.0:recvfrom
+libpthread.so.0:send
+libpthread.so.0:sendto
+libpthread.so.0:sigaction
+libpthread.so.0:write
+libsqlite3.so.0:sqlite3_changes
+libsqlite3.so.0:sqlite3_close
+libsqlite3.so.0:sqlite3_column_blob
+libsqlite3.so.0:sqlite3_column_bytes
+libsqlite3.so.0:sqlite3_column_count
+libsqlite3.so.0:sqlite3_column_decltype
+libsqlite3.so.0:sqlite3_column_double
+libsqlite3.so.0:sqlite3_column_int
+libsqlite3.so.0:sqlite3_column_name
+libsqlite3.so.0:sqlite3_column_text
+libsqlite3.so.0:sqlite3_column_type
+libsqlite3.so.0:sqlite3_errmsg
+libsqlite3.so.0:sqlite3_finalize
+libsqlite3.so.0:sqlite3_last_insert_rowid
+libsqlite3.so.0:sqlite3_open
+libsqlite3.so.0:sqlite3_prepare
+libsqlite3.so.0:sqlite3_step
+libz.so.1:adler32
+libz.so.1:crc32
+libz.so.1:deflate
+libz.so.1:deflateBound
+libz.so.1:deflateEnd
+libz.so.1:deflateInit_
+libz.so.1:inflate
+libz.so.1:inflateEnd
+libz.so.1:inflateInit2_
Index: files/neko-discard-xlocale.patch
===================================================================
--- /dev/null
+++ files/neko-discard-xlocale.patch
@@ -0,0 +1,14 @@
+--- a/libs/std/sys.c
++++ b/libs/std/sys.c
+@@ -41,11 +41,6 @@
+ # include <sys/time.h>
+ # include <sys/times.h>
+ # include <sys/wait.h>
+-#ifdef NEKO_XLOCALE_H
+-# include <xlocale.h>
+-#else
+-# include <locale.h>
+-#endif
+ #endif
+
+ #ifdef NEKO_MAC
Index: files/neko-gtk3.patch
===================================================================
--- /dev/null
+++ files/neko-gtk3.patch
@@ -0,0 +1,235 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 930c1ab..0e150cb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -44,7 +44,7 @@ set(NEKO_VERSION ${NEKO_VERSION_MAJOR}.${NEKO_VERSION_MINOR}.${NEKO_VERSION_PATC
+ TEST_BIG_ENDIAN(NEKO_BIG_ENDIAN)
+
+ option(WITH_REGEXP "Build Perl-compatible regex support." ON)
+-option(WITH_UI "Build GTK-2 UI support." ON)
++option(WITH_UI "Build GTK-3 UI support." ON)
+ option(WITH_SSL "Build SSL support." ON)
+ option(WITH_MYSQL "Build MySQL support." ON)
+ option(WITH_SQLITE "Build Sqlite support." ON)
+diff --git a/README.md b/README.md
+index 70c16b3..3965608 100644
+--- a/README.md
++++ b/README.md
+@@ -25,7 +25,7 @@ Users of other Linux/FreeBSD distributions should build Neko from source. See be
+
+ Neko can be built using CMake (version 3.x is recommended) and one of the C compilers listed as follows:
+
+- * Windows: Visual Studio 2010 / 2013 / 2015 / 2017
++ * Windows: Visual Studio 2010 / 2013 / 2015 / 2017
+ * Mac: XCode (with its "Command line tools")
+ * Linux: gcc (can be obtained by installing the "build-essential" Debian/Ubuntu package)
+
+@@ -41,7 +41,7 @@ Neko needs to link with various third-party libraries, which are summarized as f
+ | MariaDB / MySQL (Connector/C) | all | libmariadb-client-lgpl-dev-compat (or libmysqlclient-dev) |
+ | SQLite | all | libsqlite3-dev |
+ | mbed TLS | all | libmbedtls-dev |
+-| GTK+2 | Linux | libgtk2.0-dev |
++| GTK+3 | Linux | libgtk-3-dev |
+
+ On Windows, CMake will automatically download and build the libraries in the build folder during the build process. However, you need to install [Perl](http://www.activestate.com/activeperl) manually because OpenSSL needs it for configuration. On Mac/Linux, you should install the libraries manually to your system before building Neko, or use the `STATIC_DEPS` CMake option, which will be explained in [CMake options](#cmake-options).
+
+@@ -73,7 +73,7 @@ You may use the CMake GUI and Visual Studio to build it instead.
+ mkdir build
+ cd build
+
+-# run cmake specifying the visual studio version you need
++# run cmake specifying the visual studio version you need
+ # Visual Studio 12 2013, Visual Studio 14 2015, Visual Studio 15 2017
+ # you can additionally specify platform via -A switch (x86, x64)
+ cmake -G "Visual Studio 12 2013" ..
+@@ -99,7 +99,7 @@ cmake "-Doption=value" ..
+ Settings that allow to exclude libraries and their dependencies from the build; available on all platforms. By default all are `ON`:
+
+ - `WITH_REGEXP` - Build Perl-compatible regex support
+-- `WITH_UI` - Build GTK-2 UI support
++- `WITH_UI` - Build GTK-3 UI support
+ - `WITH_SSL` - Build SSL support
+ - `WITH_MYSQL` - Build MySQL support
+ - `WITH_SQLITE` - Build Sqlite support
+@@ -113,7 +113,7 @@ It defines the dependencies that should be linked statically. Can be `all`, `non
+
+ CMake will automatically download and build the specified dependencies into the build folder. If a library is not present in this list, it should be installed manually, and it will be linked dynamically.
+
+-All third-party libraries, except GTK+2 (Linux), can be linked statically. We do not support statically linking GTK+2 due to the difficulty of building it and its own dependencies.
++All third-party libraries, except GTK+3 (Linux), can be linked statically. We do not support statically linking GTK+3 due to the difficulty of building it and its own dependencies.
+
+ #### `RELOCATABLE`
+
+diff --git a/azure-pipelines.yml b/azure-pipelines.yml
+index 1a66a87..1c0bdcb 100644
+--- a/azure-pipelines.yml
++++ b/azure-pipelines.yml
+@@ -190,7 +190,7 @@ stages:
+ - script: |
+ set -ex
+ sudo apt-get update -qqy
+- sudo apt-get install -qqy ninja-build pkg-config libgtk2.0-dev devscripts git-buildpackage ubuntu-dev-tools dh-make dh-apache2
++ sudo apt-get install -qqy ninja-build pkg-config libgtk-3-dev devscripts git-buildpackage ubuntu-dev-tools dh-make dh-apache2
+ displayName: Install devscripts
+ - script: cmake . -DSTATIC_DEPS=all
+ displayName: CMake
+diff --git a/cmake/FindGTK2.cmake b/cmake/FindGTK3.cmake
+similarity index 56%
+rename from cmake/FindGTK2.cmake
+rename to cmake/FindGTK3.cmake
+index e784692..714f66a 100644
+--- a/cmake/FindGTK2.cmake
++++ b/cmake/FindGTK3.cmake
+@@ -1,64 +1,64 @@
+-FILE(TO_CMAKE_PATH "$ENV{GTK2_DIR}" TRY1_DIR)
+-FILE(TO_CMAKE_PATH "${GTK2_DIR}" TRY2_DIR)
++FILE(TO_CMAKE_PATH "$ENV{GTK3_DIR}" TRY1_DIR)
++FILE(TO_CMAKE_PATH "${GTK3_DIR}" TRY2_DIR)
+ FILE(GLOB GTK_DIR ${TRY1_DIR} ${TRY2_DIR})
+
+-FIND_PATH(GTK_gtk_2_INCLUDE_DIR gtk/gtk.h
++FIND_PATH(GTK_gtk_3_INCLUDE_DIR gtk/gtk.h
+ ENV INCLUDE DOC "Directory containing gtk/gtk.h include file")
+
+-FIND_PATH(GTK_gdk_2_INCLUDE_DIR gdk/gdk.h
++FIND_PATH(GTK_gdk_3_INCLUDE_DIR gdk/gdk.h
+ ENV INCLUDE DOC "Directory containing gdk/gdk.h include file")
+
+-FIND_PATH(GTK_gdkconfig_2_INCLUDE_DIR gdkconfig.h
++FIND_PATH(GTK_gdkconfig_3_INCLUDE_DIR gdkconfig.h
+ ENV INCLUDE DOC "Directory containing gdkconfig.h include file")
+
+-FIND_LIBRARY(GTK_gdk_pixbuf_2_LIBRARY NAMES gdk_pixbuf-2.0
++FIND_LIBRARY(GTK_gdk_pixbuf_3_LIBRARY NAMES gdk_pixbuf-3.0
+ PATHS ${GTK_DIR}/lib ${GTK_DIR}/bin ${GTK_DIR}/win32/bin ${GTK_DIR}/lib ${GTK_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gdk_pixbuf library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+-FIND_LIBRARY(GTK_gdk_2_LIBRARY NAMES gdk-win32-2.0 gdk-x11-2.0
++FIND_LIBRARY(GTK_gdk_3_LIBRARY NAMES gdk-win32-3.0 gdk-x11-3.0
+ PATHS ${GTK_DIR}/lib ${GTK_DIR}/bin ${GTK_DIR}/win32/bin ${GTK_DIR}/lib ${GTK_DIR}/win32/lib /usr/lib /usr/local/lib
+ ENV LIB
+- DOC "gdk2 library to link with"
++ DOC "gdk3 library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+-FIND_LIBRARY(GTK_gtk_2_LIBRARY NAMES gtk-win32-2.0 gtk-x11-2.0
++FIND_LIBRARY(GTK_gtk_3_LIBRARY NAMES gtk-win32-3.0 gtk-x11-3.0
+ PATHS ${GTK_DIR}/lib ${GTK_DIR}/bin ${GTK_DIR}/win32/bin ${GTK_DIR}/lib ${GTK_DIR}/win32/lib /usr/lib /usr/local/lib
+ ENV LIB
+- DOC "gtk2 library to link with"
++ DOC "gtk3 library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+-FIND_LIBRARY(GTK_gdk_pixbuf_2_STATIC_LIBRARY NAMES libgdk_pixbuf-2.0.a
++FIND_LIBRARY(GTK_gdk_pixbuf_3_STATIC_LIBRARY NAMES libgdk_pixbuf-3.0.a
+ PATHS ${GTK_DIR}/lib ${GTK_DIR}/bin ${GTK_DIR}/win32/bin ${GTK_DIR}/lib ${GTK_DIR}/win32/lib /usr/local/lib /usr/lib
+ ENV LIB
+ DOC "gdk_pixbuf library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+-FIND_LIBRARY(GTK_gdk_2_STATIC_LIBRARY NAMES libgdk-x11-2.0.a
++FIND_LIBRARY(GTK_gdk_3_STATIC_LIBRARY NAMES libgdk-x11-3.0.a
+ PATHS ${GTK_DIR}/lib ${GTK_DIR}/bin ${GTK_DIR}/win32/bin ${GTK_DIR}/lib ${GTK_DIR}/win32/lib /usr/lib /usr/local/lib
+ ENV LIB
+- DOC "gdk2 library to link with"
++ DOC "gdk3 library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+-FIND_LIBRARY(GTK_gtk_2_STATIC_LIBRARY NAMES libgtk-x11-2.0.a
++FIND_LIBRARY(GTK_gtk_3_STATIC_LIBRARY NAMES libgtk-x11-3.0.a
+ PATHS ${GTK_DIR}/lib ${GTK_DIR}/bin ${GTK_DIR}/win32/bin ${GTK_DIR}/lib ${GTK_DIR}/win32/lib /usr/lib /usr/local/lib
+ ENV LIB
+- DOC "gtk2 library to link with"
++ DOC "gtk3 library to link with"
+ NO_SYSTEM_ENVIRONMENT_PATH)
+
+
+-IF (GTK_gtk_2_INCLUDE_DIR AND GTK_gdk_2_INCLUDE_DIR AND GTK_gdkconfig_2_INCLUDE_DIR)
+- SET(GTK2_INCLUDE_DIR ${GTK_gtk_2_INCLUDE_DIR} ${GTK_gdk_2_INCLUDE_DIR} ${GTK_gdkconfig_2_INCLUDE_DIR})
+- list(REMOVE_DUPLICATES GTK2_INCLUDE_DIR)
+- SET(GTK2_LIBRARIES ${GTK_gdk_pixbuf_2_LIBRARY} ${GTK_gdk_2_LIBRARY} ${GTK_gtk_2_LIBRARY})
+- list(REMOVE_DUPLICATES GTK2_LIBRARIES)
+- SET(GTK2_STATIC_LIBRARIES ${GTK_gdk_pixbuf_2_STATIC_LIBRARY} ${GTK_gdk_2_STATIC_LIBRARY} ${GTK_gtk_2_STATIC_LIBRARY})
+- list(REMOVE_DUPLICATES GTK2_STATIC_LIBRARIES)
+- SET(GTK2_FOUND TRUE)
++IF (GTK_gtk_3_INCLUDE_DIR AND GTK_gdk_3_INCLUDE_DIR AND GTK_gdkconfig_3_INCLUDE_DIR)
++ SET(GTK3_INCLUDE_DIR ${GTK_gtk_3_INCLUDE_DIR} ${GTK_gdk_3_INCLUDE_DIR} ${GTK_gdkconfig_3_INCLUDE_DIR})
++ list(REMOVE_DUPLICATES GTK3_INCLUDE_DIR)
++ SET(GTK3_LIBRARIES ${GTK_gdk_pixbuf_3_LIBRARY} ${GTK_gdk_3_LIBRARY} ${GTK_gtk_3_LIBRARY})
++ list(REMOVE_DUPLICATES GTK3_LIBRARIES)
++ SET(GTK3_STATIC_LIBRARIES ${GTK_gdk_pixbuf_3_STATIC_LIBRARY} ${GTK_gdk_3_STATIC_LIBRARY} ${GTK_gtk_3_STATIC_LIBRARY})
++ list(REMOVE_DUPLICATES GTK3_STATIC_LIBRARIES)
++ SET(GTK3_FOUND TRUE)
+
+
+- message(STATUS "GTK2_INCLUDE_DIR: ${GTK2_INCLUDE_DIR}")
+- message(STATUS "GTK2_LIBRARIES: ${GTK2_LIBRARIES}")
+- message(STATUS "GTK2_STATIC_LIBRARIES: ${GTK2_STATIC_LIBRARIES}")
+-ENDIF ()
+\ No newline at end of file
++ message(STATUS "GTK3_INCLUDE_DIR: ${GTK3_INCLUDE_DIR}")
++ message(STATUS "GTK3_LIBRARIES: ${GTK3_LIBRARIES}")
++ message(STATUS "GTK3_STATIC_LIBRARIES: ${GTK3_STATIC_LIBRARIES}")
++ENDIF ()
+diff --git a/extra/azure-pipelines/build-linux.yml b/extra/azure-pipelines/build-linux.yml
+index 2978719..87cbdb3 100644
+--- a/extra/azure-pipelines/build-linux.yml
++++ b/extra/azure-pipelines/build-linux.yml
+@@ -10,10 +10,10 @@ jobs:
+ vmImage: ${{ parameters.vmImage }}
+ variables:
+ ${{ if eq(parameters.staticDeps, 'true') }}:
+- APT_PACKAGES: cmake ninja-build pkg-config libgtk2.0-dev
++ APT_PACKAGES: cmake ninja-build pkg-config libgtk-3-dev
+ STATIC_DEPS: all
+ ${{ if eq(parameters.staticDeps, 'false') }}:
+- APT_PACKAGES: cmake ninja-build pkg-config libgtk2.0-dev libgc-dev libpcre3-dev zlib1g-dev apache2-dev libmysqlclient-dev libsqlite3-dev
++ APT_PACKAGES: cmake ninja-build pkg-config libgtk-3-dev libgc-dev libpcre3-dev zlib1g-dev apache2-dev libmysqlclient-dev libsqlite3-dev
+ STATIC_DEPS: none
+ steps:
+ - script: |
+diff --git a/libs/ui/CMakeLists.txt b/libs/ui/CMakeLists.txt
+index 72b37ba..e53b77c 100644
+--- a/libs/ui/CMakeLists.txt
++++ b/libs/ui/CMakeLists.txt
+@@ -11,12 +11,12 @@ if(APPLE)
+ find_library(CARBON_LIBRARY Carbon REQUIRED)
+ target_link_libraries(ui.ndll ${CARBON_LIBRARY})
+ elseif(UNIX)
+- pkg_check_modules(GTK2 REQUIRED gtk+-2.0)
++ pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
+ target_include_directories(ui.ndll PRIVATE
+- ${GTK2_INCLUDEDIR}
+- ${GTK2_INCLUDE_DIRS}
++ ${GTK3_INCLUDEDIR}
++ ${GTK3_INCLUDE_DIRS}
+ )
+- target_link_libraries(ui.ndll ${GTK2_LIBRARIES})
++ target_link_libraries(ui.ndll ${GTK3_LIBRARIES})
+ endif()
+
+ set_target_properties(ui.ndll
+diff --git a/libs/ui/ui.c b/libs/ui/ui.c
+index 334567e..3d8c298 100644
+--- a/libs/ui/ui.c
++++ b/libs/ui/ui.c
+@@ -48,7 +48,7 @@ enum { pFunc = 'func' };
+ <h1>UI</h1>
+ <p>
+ Core native User Interface support. This API uses native WIN32 API on Windows,
+- Carbon API on OSX, and GTK2 on Linux.
++ Carbon API on OSX, and GTK3 on Linux.
+ </p>
+ </doc>
+ **/
+@@ -248,7 +248,7 @@ static value ui_sync( value f ) {
+ // however the GTK lock mechanism is a LOT slower than
+ // using a pthread_mutex
+ pthread_mutex_lock(&data.lock);
+- gtk_timeout_add( 0, onSyncCall, (gpointer)r );
++ gdk_threads_add_timeout( 0, onSyncCall, (gpointer)r );
+ pthread_mutex_unlock(&data.lock);
+ # endif
+ return val_null;
Index: package.yml
===================================================================
--- /dev/null
+++ package.yml
@@ -0,0 +1,36 @@
+name : neko
+version : 2.3.0
+release : 1
+source :
+ - https://github.com/HaxeFoundation/neko/archive/refs/tags/v2-3-0.tar.gz : 850e7e317bdaf24ed652efeff89c1cb21380ca19f20e68a296c84f6bad4ee995
+homepage : https://nekovm.org/
+license : MIT
+component :
+ - programming
+ - apache : programming
+summary :
+ - The Neko Virtual Machine
+ - apache : Neko module for Apache
+description: |
+ Neko is a high-level dynamically typed programming language. It can be used as an embedded scripting language. It has been designed to provide a common runtime for several different languages.
+builddeps :
+ - pkgconfig(apr-util-1)
+ - pkgconfig(bdw-gc)
+ - pkgconfig(gtk+-3.0)
+ - pkgconfig(mariadb)
+ - pkgconfig(sqlite3)
+ - git
+ - httpd-devel
+ - mbedtls-devel
+setup : |
+ %patch -p1 < $pkgfiles/neko-discard-xlocale.patch
+ %patch -p1 < $pkgfiles/neko-gtk3.patch
+ %cmake_ninja -DRUN_LDCONFIG=OFF
+build : |
+ %ninja_build
+install : |
+ %ninja_install
+patterns :
+ - apache :
+ - /usr/lib/neko/mod_neko*.ndll
+ - /usr/lib/neko/mod_tora*.ndll
Index: pspec_x86_64.xml
===================================================================
--- /dev/null
+++ pspec_x86_64.xml
@@ -0,0 +1,84 @@
+<PISI>
+ <Source>
+ <Name>neko</Name>
+ <Homepage>https://nekovm.org/</Homepage>
+ <Packager>
+ <Name>Martin Reboredo</Name>
+ <Email>yakoyoku@gmail.com</Email>
+ </Packager>
+ <License>MIT</License>
+ <PartOf>programming</PartOf>
+ <Summary xml:lang="en">The Neko Virtual Machine</Summary>
+ <Description xml:lang="en">Neko is a high-level dynamically typed programming language. It can be used as an embedded scripting language. It has been designed to provide a common runtime for several different languages.
+</Description>
+ <Archive type="binary" sha1sum="79eb0752a961b8e0d15c77d298c97498fbc89c5a">https://getsol.us/sources/README.Solus</Archive>
+ </Source>
+ <Package>
+ <Name>neko</Name>
+ <Summary xml:lang="en">The Neko Virtual Machine</Summary>
+ <Description xml:lang="en">Neko is a high-level dynamically typed programming language. It can be used as an embedded scripting language. It has been designed to provide a common runtime for several different languages.
+</Description>
+ <PartOf>programming</PartOf>
+ <Files>
+ <Path fileType="executable">/usr/bin/neko</Path>
+ <Path fileType="executable">/usr/bin/nekoc</Path>
+ <Path fileType="executable">/usr/bin/nekoml</Path>
+ <Path fileType="executable">/usr/bin/nekotools</Path>
+ <Path fileType="library">/usr/lib/libneko.so.2</Path>
+ <Path fileType="library">/usr/lib/libneko.so.2.3.0</Path>
+ <Path fileType="library">/usr/lib/neko/mysql.ndll</Path>
+ <Path fileType="library">/usr/lib/neko/mysql5.ndll</Path>
+ <Path fileType="library">/usr/lib/neko/nekoml.std</Path>
+ <Path fileType="library">/usr/lib/neko/regexp.ndll</Path>
+ <Path fileType="library">/usr/lib/neko/sqlite.ndll</Path>
+ <Path fileType="library">/usr/lib/neko/ssl.ndll</Path>
+ <Path fileType="library">/usr/lib/neko/std.ndll</Path>
+ <Path fileType="library">/usr/lib/neko/ui.ndll</Path>
+ <Path fileType="library">/usr/lib/neko/zlib.ndll</Path>
+ </Files>
+ </Package>
+ <Package>
+ <Name>neko-apache</Name>
+ <Summary xml:lang="en">Neko module for Apache</Summary>
+ <Description xml:lang="en">Neko is a high-level dynamically typed programming language. It can be used as an embedded scripting language. It has been designed to provide a common runtime for several different languages.
+</Description>
+ <PartOf>programming</PartOf>
+ <RuntimeDependencies>
+ <Dependency release="1">neko</Dependency>
+ </RuntimeDependencies>
+ <Files>
+ <Path fileType="library">/usr/lib/neko/mod_neko2.ndll</Path>
+ <Path fileType="library">/usr/lib/neko/mod_tora2.ndll</Path>
+ </Files>
+ </Package>
+ <Package>
+ <Name>neko-devel</Name>
+ <Summary xml:lang="en">Development files for neko</Summary>
+ <Description xml:lang="en">Neko is a high-level dynamically typed programming language. It can be used as an embedded scripting language. It has been designed to provide a common runtime for several different languages.
+</Description>
+ <PartOf>programming.devel</PartOf>
+ <RuntimeDependencies>
+ <Dependency release="1">neko</Dependency>
+ </RuntimeDependencies>
+ <Files>
+ <Path fileType="header">/usr/include/neko.h</Path>
+ <Path fileType="header">/usr/include/neko_elf.h</Path>
+ <Path fileType="header">/usr/include/neko_mod.h</Path>
+ <Path fileType="header">/usr/include/neko_vm.h</Path>
+ <Path fileType="library">/usr/lib/cmake/Neko/NekoConfig.cmake</Path>
+ <Path fileType="library">/usr/lib/cmake/Neko/NekoConfigVersion.cmake</Path>
+ <Path fileType="library">/usr/lib/cmake/Neko/NekoTargets-relwithdebinfo.cmake</Path>
+ <Path fileType="library">/usr/lib/cmake/Neko/NekoTargets.cmake</Path>
+ <Path fileType="library">/usr/lib/libneko.so</Path>
+ </Files>
+ </Package>
+ <History>
+ <Update release="1">
+ <Date>2021-07-05</Date>
+ <Version>2.3.0</Version>
+ <Comment>Packaging update</Comment>
+ <Name>Martin Reboredo</Name>
+ <Email>yakoyoku@gmail.com</Email>
+ </Update>
+ </History>
+</PISI>
\ No newline at end of file

File Metadata

Mime Type
text/plain
Expires
Jun 15 2023, 8:46 PM (8 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5815787
Default Alt Text
D11420.id27593.diff (45 KB)

Event Timeline