Bananymous
bef1a56007
ports: Update git 2.48.1->2.52.0
...
also remove curl link hack as updating curl port fixed the issue
2026-01-01 20:40:38 +02:00
Bananymous
bc71ff5e81
ports: Update curl 8.11.1->8.17.0
...
This fixes broken DT_NEEDED dependencies in curl!
2026-01-01 20:40:38 +02:00
Bananymous
bd50444d06
ports: Update ca-certificates 2024-07-02 -> 2025-12-02
2025-12-31 19:28:55 +02:00
Bananymous
2efd6f92b2
rm: add -f and -i options
...
rm *should* now be posix compatible
2025-12-31 19:28:55 +02:00
Bananymous
7fdfad4088
Kernel: Mount /tmp with sticky bit set
2025-12-31 19:28:55 +02:00
Bananymous
31a1968798
Kernel: Cleanup scheduling while idling
...
If there are no threads in the run queue and we are idle, attempt to
wake up threads from the sleep queue
2025-12-31 19:28:55 +02:00
Bananymous
b0bd4ad546
Kernel: Fix dup2 return value
...
We returned the wrong fd number :D
2025-12-31 19:28:55 +02:00
Bananymous
dc454b9a6a
Kernel: Fix SA_RESETHAND handling order
...
if SA_RESETHAND was set, alt stack would not get used
2025-12-31 19:28:55 +02:00
Bananymous
f06e5d33e7
Kernel: Rework socket binding to an address
...
Sockets are no longer bound to an interface, but an ipv4 address. This
allows servers at 0.0.0.0 talk to multiple different interfaces
2025-12-31 19:28:55 +02:00
Bananymous
efdbd1576f
ports/SDL2: disable static lib and enable semaphores
...
Also add libiconv as a dep so SDL_iconv_string etc works
2025-12-28 15:30:02 +02:00
Bananymous
0421fbdc25
LibC: Implement sem_getvalue
2025-12-28 15:29:37 +02:00
Bananymous
bd426199f8
Kernel: Remove unused (and broken) code from signal trampoline
2025-12-28 03:53:38 +02:00
Bananymous
8e00b3d110
ports: Add ffmpeg port
...
This allows basic video and audio playback on banan-os!
2025-12-28 00:12:03 +02:00
Bananymous
6fbf1469aa
LibC: define static_assert in assert.h
...
This is needed from C11 until C23
2025-12-28 00:12:03 +02:00
Bananymous
280d3fd919
LibC: Fix assert.h include guard
2025-12-28 00:12:03 +02:00
Bananymous
40ce95b87f
LibC: Add definition for TCP_MAXSEG
...
This is not implemented yet
2025-12-27 23:37:03 +02:00
Bananymous
e7d644b874
AudioServer: Fix rounding the number of samples when resampling
...
If client tried to play a single sample at lower frequency as the
kenrel, audio server would never play it leading to the client hanging
This makes calculations round the number of samples always up to fix
this
2025-12-18 16:05:28 +02:00
Bananymous
c64159d5c3
AudioServer: Fix resampling math
...
This caused resampled audio to freeze the whole audio system after few
minutes of playing (like doom)
2025-12-18 14:59:55 +02:00
Bananymous
e2ccc3026f
BAN: Remove unnecessary c++ header inclusion
2025-12-16 16:44:42 +02:00
Bananymous
2af6066ee3
LibC: Fix sysconf(_SC_OPEN_MAX)
2025-12-16 05:20:18 +02:00
Bananymous
fc16b5331c
LibC: Fix backtrace compilation
...
Also dump backtrace on SIGABRT
2025-12-16 05:20:00 +02:00
Bananymous
b2723a0c5f
aoc2025: Implement day12 solution
2025-12-15 19:06:17 +02:00
Bananymous
01042a24f0
aoc2025: Implement day11 solution
2025-12-15 17:57:45 +02:00
Bananymous
f9643b3881
aoc2025: Implement day10 solution
2025-12-15 14:42:03 +02:00
Bananymous
d2d18bea5d
aoc2025: Implement day9 solution
2025-12-13 03:09:15 +02:00
Bananymous
87e595b83e
aoc2025: Implement day8 solution
2025-12-12 22:37:03 +02:00
Bananymous
08031b1227
aoc2025: Implement day7 solution
2025-12-12 21:15:22 +02:00
Bananymous
9a87c1f734
aoc2025: Implement day6 solution
2025-12-12 20:17:12 +02:00
Bananymous
edeb667ead
aoc2025: Implement day5 solution
2025-12-12 06:30:03 +02:00
Bananymous
db2aa495b8
aoc2025: Implement day4 solution
2025-12-12 06:08:00 +02:00
Bananymous
ddfb591094
aoc2025: Implement day3 solution
2025-12-12 04:34:40 +02:00
Bananymous
e8f1ba3722
aoc2025: Implement day2 solution
2025-12-12 02:49:33 +02:00
Bananymous
19c4f34ccb
aoc2025: Implement day1 solution
2025-12-12 02:49:10 +02:00
Bananymous
5d9e9c021a
aoc2025: Prepare programming environment
2025-12-12 02:48:40 +02:00
Bananymous
6a924db68c
Kernel: Implement FIONREAD for tty and pty
2025-11-24 18:15:10 +02:00
Bananymous
9d0990e5e8
Kernel: Implement /proc/<n>/fd
2025-11-24 00:19:51 +02:00
Bananymous
3207f5d61f
Kernel: Fix possible page fault on file lookup
2025-11-23 19:49:07 +02:00
Bananymous
c72b351bba
LibC: Implement glob{,free}
2025-11-23 05:33:44 +02:00
Bananymous
1f9b296ae7
cp: Add -r/--recursive flag
2025-11-23 02:25:05 +02:00
Bananymous
e3e2e7b4df
userspace: Implement mv utility
2025-11-23 02:24:52 +02:00
Bananymous
4ec8f4a4bf
Kernel/LibC: Implement rename{,at}
2025-11-22 23:55:10 +02:00
Bananymous
05d59a05df
Kernel: Remove obsolete kprint
...
This hasn't been in use in 3 years :)
2025-11-22 06:21:50 +02:00
Bananymous
11ccbe6506
ports/SDL2: Add clipboard support
2025-11-22 01:24:06 +02:00
Bananymous
673711a246
ports/mesa: Require llvm
...
I dont't really even want to suppot softpipe as that is so slow
2025-11-22 00:40:14 +02:00
Bananymous
fff5139d80
Kernel: Add /proc/<n>/cwd
...
Also update /proc/<n>/* permissions to match what linux does :D
2025-11-18 05:40:36 +02:00
Bananymous
812e70c626
ports: Add zsh port
2025-11-18 05:40:36 +02:00
Bananymous
db7ffcf9d5
Kernel/Terminal: Add support for bracketed paste mode
...
This gets rid of annoying warnings when running some programs like bash
2025-11-18 05:40:36 +02:00
Bananymous
8f6cb9c057
Terminal: Add selection and clipboard support
...
text can now be copied with ctrl+shift+c and pasted with ctrl+shift+v
2025-11-18 05:40:36 +02:00
Bananymous
291f298d19
userspace: Implement LibClipboard and ClipboardServer
...
programs can now connect to the clipboard server using libclipboard and
get and set the clipboard of the current user
2025-11-18 05:40:36 +02:00
Bananymous
d60f12d3b8
Kernel: Add support for SCM_CREDENTIALS and fix recvmsg
...
recvmsg was broken when receiving into more than a single iovec
2025-11-18 05:40:36 +02:00
Bananymous
b8a2573bb4
userspace: Implement ImageViewer utility
...
This supports viewing images and doing basic zooming and panning
2025-11-17 20:58:12 +02:00
Bananymous
7ce8e610f5
stat: Fix handling of symlinks
2025-11-17 05:26:07 +02:00
Bananymous
839b9c8f07
Kernel: Check parent's sticky bit in unlink
2025-11-17 05:26:07 +02:00
Bananymous
db20801521
Shell: Add exec builtin
2025-11-17 05:26:07 +02:00
Bananymous
160a9278c9
LibC: Fix RTLD_* definitions
2025-11-17 05:26:07 +02:00
Bananymous
ee507de154
LibC: Implement posix regex
...
This is an almost complete implementation, it does not support
alternations or collating elements and it is restricted to the ASCII
character set
2025-11-17 05:26:07 +02:00
Bananymous
dc0fa49de2
ports/tuxracer: Add sound support and fix compiling
2025-11-17 05:26:07 +02:00
Bananymous
b678541427
ports: Add SDL_mixer port
2025-11-17 05:26:07 +02:00
Bananymous
6c4cd0d8cb
ports: Add libmikmod port
2025-11-17 05:26:07 +02:00
Bananymous
c096d3cd42
ports/sdl12-compat: Define that banan-os has alloca.h
2025-11-17 05:26:07 +02:00
Bananymous
dcdab4df21
ports/sdl12-compat: Remove unnecessary patch
...
This is not needed as our SDL2 library is in the expected form
2025-11-17 05:26:07 +02:00
Bananymous
9803209ba1
WindowServer: Make clients nonblock
...
Also dont allow freezed windows to "steal" focus and lock up the window
server :D
2025-11-17 05:26:07 +02:00
Bananymous
f166cb09ec
Kernel: Fail xHCI initialization if page size != 4096
...
Also zero out scratchapd buffers as the spec says
2025-11-17 05:26:07 +02:00
Bananymous
2dd8b76289
BuildSystem: Automatically delete libtool files
...
Half of the ports had a manual post_install step to delete libtool files
this is now done automatically and there is no need for it!
Libtool files have to be deleted as libtool doesn't work while
cross-compiling (at least out of the box)
2025-11-17 05:26:07 +02:00
Bananymous
2bf7c67767
LibC: Add backtrace signal handlers for SIG{FPE,ILL,BUS,SEGV}
...
This allows programs to dump better backtraces on crashes compared to
what kernel can as libc can resolve symbols and libraries' dynamic bases
2025-11-17 05:26:07 +02:00
Bananymous
dd636ffcb2
Kernel: Add support for SA_SIGINFO
2025-11-17 05:26:07 +02:00
Bananymous
a44c45ff9e
LibC: Cleanup signal.h
...
Make sa_handler and sa_sigaction be part of an union
Add definitions of SIGIO TRAP_BRKPT TRAP_TRACE
2025-11-17 05:26:07 +02:00
Bananymous
dc2a455395
Kernel: Optimize processes' memory management
...
Memory regions are now stored in a sorted array. This allows O(nlogn)
lookup for address validation instead of the old linear lookup.
Now inserting new regions is also O(nlogn) instead of the old constant
time, but lookups are **much** more frequent
2025-11-17 05:26:07 +02:00
Bananymous
c700d9f714
Kernel: Implement connect for UDP socket
2025-11-17 05:26:07 +02:00
Bananymous
59cfc339b0
Kernel: Ignore MSG_NOSIGNAL and invalid flags
2025-11-17 05:26:07 +02:00
Bananymous
e06c07ca89
ports: Update binutils 2.44->2.45
...
Now we don't have to keep patches for both versions around :D
2025-11-17 05:26:07 +02:00
Bananymous
6facd54a7e
LibC: Add ru_maxrss to struct rusage
...
This is not required by posix but some ports use it
2025-11-17 05:26:07 +02:00
Bananymous
6f8d850726
BuildSystem: Cleanup port building script
...
All dependencies are now installed only ones. If a port depends on for
examle zlib and one of its other dependencies depends on zlib, zlib will
now get installe only once.
Accept .tgz archives as the main download file
2025-11-17 05:26:07 +02:00
Bananymous
f3beee9874
Kernel: Cleanup userspace pointer validation
2025-11-17 02:33:00 +02:00
Bananymous
35e063bdaf
Kernel: Dump r8-r15 on x86_64 exceptions
2025-11-17 02:33:00 +02:00
Bananymous
09175d1799
Kernel: Fix 32 bit target
...
Rewrite some assembly and add some required casts
2025-11-17 02:33:00 +02:00
Bananymous
46f9a9053f
DynamicLoader: Use canonical path for the main executable
2025-11-13 04:20:53 +02:00
Bananymous
bb86520094
Kernel: Set message flags in UDP and TCP recvmsg
2025-11-13 04:20:53 +02:00
Bananymous
c1e2c660bf
LibC: Define caddr_t
...
This is used by some ports
2025-11-13 04:20:53 +02:00
Bananymous
89c0ff1a9d
Kernel/LibC: Replace SYS_{GET,SET}_TLS with SYS_{SET,GET}_{FS,GS}BASE
...
This allows userspace to use both registers
2025-11-13 04:20:53 +02:00
Bananymous
7a68ce7e94
DynamicLoader: Fix testing for possible base address
...
Replace MAP_FIXED with MAP_FIXED_NOREPLACE and only attempt to map
program headers with PT_LOAD
2025-11-13 04:20:53 +02:00
Bananymous
9537922acc
Kernel: Implement proper memory region splitting
...
Memory regions are now splitted when they get munmapped, mprotected, or
mmapped with MAP_FIXED. This is used by couple of ports, and without
this we were just leaking up memory or straight up crashing programs.
2025-11-13 04:20:53 +02:00
Bananymous
a39aa73e21
Kernel: Allow munmap on non-page aligned address
2025-11-12 00:06:36 +02:00
Bananymous
f1d12c330e
Kernel/LibC: Implement MMAP_FIXED_NOREPLACE
...
This is a handy thing from linux
Also fix MMAP_FIXED validation and error reporting
2025-11-12 00:06:36 +02:00
Bananymous
82c8eeb4be
ports/openssh: Update to 10.2p1 and enable fd passing
2025-11-12 00:06:36 +02:00
Bananymous
3a951f4830
LibC: Define IN_LOOPBACKNET
...
some ports expect this to exist
2025-11-12 00:06:36 +02:00
Bananymous
998ea25fb9
LibC: Add netinet/in_systm.h compatibility header
2025-11-12 00:06:36 +02:00
Bananymous
7b580b8f56
Kernel: Implement fd passing with SCM_RIGTHS
2025-11-12 00:06:36 +02:00
Bananymous
641ccfdd47
LibC: Add BSD compatibility defines S_I{READ,WRITE,EXEC}
...
These just map to S_I{R,W,X}USR respectively
2025-11-10 01:40:33 +02:00
Bananymous
4288f70d04
LibC: Make poll and epoll macros match with each other
...
This was an assertion in one of my ports and I couldn't be bothered to
write a patch for it :D
2025-11-10 01:40:33 +02:00
Bananymous
95fda5dfb7
LibC: Add definitions for IPPROTO_ICMPV6 and IP_TOS
2025-11-10 01:40:33 +02:00
Bananymous
1903c5e0c6
Kernel: Use user given address hint in mmap if possible
2025-11-10 01:40:33 +02:00
Bananymous
362501a097
LibC: Make x86_64 crt0 PIE compatible
...
Instead of pushing addresses of functions directly, use rip relative
addressing
2025-11-10 01:40:33 +02:00
Bananymous
72982e3c2b
Kernel/LibC: Take fcntl extra field as uintptr_t
...
This allows passing pointers to fcntl
2025-11-10 01:40:33 +02:00
Bananymous
04d24bce70
Kernel/LibC: Implement {recv,send}msg as syscalls
...
This also removes the now old recvfrom and sendto syscalls. These are
now implemented as wrappers around recvmsg and sendmsg.
Also replace unnecessary spinlocks from unix socket with mutexes
2025-11-10 01:40:33 +02:00
Bananymous
2f38306c6b
LibC: Implement simple posix_spawn{,p}
...
This does not support file_actions or attributes
2025-11-10 01:40:33 +02:00
Bananymous
4b36e5197d
LibC: Implement execvpe
...
This is not part of posix but it seems handy
2025-11-09 16:12:29 +02:00
Bananymous
b755cf3e42
LibC: Add sockatmark stub
2025-11-07 14:57:00 +02:00
Bananymous
3acad7c911
LibC: Add ifreq.ifr_{flags,mtu} and fix defines
...
compatibility defines for ifr_{netmask,gwaddr,hwaddr} were wrong
2025-11-07 14:55:30 +02:00
Bananymous
f3319016c4
LibC: Implement if_{,free}nameindex
2025-11-07 14:54:53 +02:00