[Toybox] [PATCH] Another Android roadmap update.
Rob Landley
rob at landley.net
Sat Sep 12 10:25:50 PDT 2015
On 09/12/2015 10:09 AM, enh wrote:
> One of the great things about git is that it's really cheap to just
> clone another copy. Or stash, do something else and "stash pop". Or use
> multiple branches.
Under ~/toybox I currently have toy2, toy3, toy4, toy5, toybox,
toybox.old, git2, and clean directories. Plus 25 "patch" files in the
toy2 directory (my current working directory), and git diff --name-only
| wc says 29 files.
Then in the toybox directory I have 19 text files with names like
"cp.txt" and "psnotes.txt", but one of them is todo.txt (attached,
2.3k). And then in the directory above that, I have a bunch more files
like 9p.txt and uclinux.txt and one of those is todo.txt (much smaller,
290 bytes). Then in my home directory I have a third todo.txt (attched,
14k) along with files like todo.today and today.txt and so on which are
of course not current.
That's ignoring the 8 desktops each with a half-dozen windows with
dozens of tabs where the fact a tab has a file open or the result of a
test displayed lets me know what I left off in the middle of, and the
browser tabs open to github or some standards document, or the email
message windows with half-composed replies or emails marked as unread
indicating go back and look at that again...
> Of course, it's definitely possible to end up with a lot of different
> clones lying around, but at least it makes it hard to accidentally check
> in part of an unfinished change when doing something else. (And for a
> small project like toybox you really can afford to throw a clone away
> after using it once.)
It's a symptom. The causal problem is I get interrupted halfway through
stuff and things accumulate rather than completing because I'm
swap-thrashing. The fix is to sit down and spend hours at a time closing
tabs.
$DAYJOB has gotten exciting (plane to tokyo in 3 hours). Toybox has
gotten exciting. Aboriginal needs an overhaul to do musl properly which
means it needs the main textcase (Linux From Scratch) redone from 6.8 to
current and it's 2 or 3 kernel versions behind (The mips guys took the
bug report upstream and it looks like they fixed it in 4.2, and I fixed
the sparc breakage by noticing -3 mode was always enabled and fixing
that but what was breaking was uClibc is sanity checking the pipe -3
arguments in the syscall and is the problem uClibc or is the problem how
I'm using pipe, meanwhile x86_64 distcc is still broken even with mips
and digging into the code is a convoluted mess and I don't have time to
write a distcc replacement of my own right now...) I have a pile of
kernel todo items but haven't had time. Poking at llvm (let alone qcc)
is on a back burner but might become relevant for $DAYJOB and thus jump
the queue...
> But I've found that one tree for my work and one tree for applying and
> testing contributions works well and isn't confusing. And I get easily
> confused ☺
I get easily confused too. I've lost dozens of half-finished large
changes in the past year alone just because my tree got so messy I
started a new one, and by the time I went back to look at the old tree
it was too stale to bother porting from and I just started over. (I'm
pretty sure I still have that half-done dd rewrite somewhere, for
example, but who cares at this point?)
Working on it... :)
Rob
-------------- next part --------------
Low hanging fruit and/or high demand:
ioctl.c
newfs_msdos/mkfs.vfat
ping.c
lsof.c
Cleanup soon:
route.c
bzcat.c
tar.c
nbd-client.c
ls.c --preserve
blkid.c: implement -U and -L via /proc/partitions
telnet/netcat
- xconnect, socket() bind() connect()
fix strcasestr() problem
readfile should just take filename, readfileat() can take existin buffer.
halt/poweroff (in reboot) don't build standalone due to help text.
And gratuitous main() wrappers elsewhere...
scripts/single.sh enables SMACK or BLAH_SMACK which is wrong.
hexedit: undo buffer
Why no -Z in mkdir --help when enabled?
cp --preserve=context,links,xattr,mode,ownership,timestamps,all
-p = mode,ownership,timestamps
vertical line stack display infrastructure w/scrolling
key reader returns list of known keys with #defines
- how do I input utf8 and what does that look like?
redo hexedit to use genericized
implement more, command line history, midnight commander?
- scrollable file list, expand/shrink, total size+files each one
Callback to draw a single line, with/without "highlight" indicator.
- fontmetrics mbrlen(), mbrtowc(), wcwidth(), strwidth()
- trim output to edge of screen (wrap or not-wrap), and
write bottom-right character as necessary.
- place cursor within data? If cursor off right edge, wrap/scroll.
On last line, drawing char in bottom right corner:
echo -e '\033[25;79HX\033[25;79H\033[1@\033[0;0H'
draw full screen
line up
line down
scroll screen up (shift up or up at edge)
scroll screen down (shift down or down at edge)
page up, page down
home, end
jump to line
callback for this line, with/without "highlight" indicator.
cursor up/down within (vi) vs just scroll stack (more)
- and then there's command line editing behavior, stay in place but move
up when length of "line" expands!
cursor left/right handled locally
pgup/pgdn/home/end
shift-left? control-left?
screen height: small as possible for command history? Scrolls in place.
qemu-system-xtensa
git internals: http://lccojapan2015.sched.org/event/ebb3f293915804382ff319e329f98409
vi accept input from pipe then read from /dev/tty for filename "-"
swapon -d (/etc/fstab -o discard)
scripts/config2help.c add @CFGSYM@ lines
cp --preserve=xattr,context --no-preserve --sparse
time -v (page faults)
-------------- next part --------------
modify build to keep old .config and diff with new .config to get changed
symbol list, sort -u it, find *.c lib/*.c toys/*/*.c with _SYM|_SYM|...
and force rebuild of those.
Figure out why -Z isn't showing up in mkdir help.
Add git extensions to patch.c: http://git-scm.com/docs/git-diff
-------------- next part --------------
[BLOG] why I blog http://lists.landley.net/pipermail/toybox-landley.net/2015-September/004425.html September 5
Design issues:
comma_bits(): how to automate comma flag generation? [BLOG]
lib/getmountlist.c ps.c
comma_scan() not grabbing last entry (hyejin kim cp.c bug report)
uclinux-dist triage to update roadmap
enh pending roadmap update?
hyejin kim last bit of falsepositive review? Did not understand...
Fix dirtree for infinite recursion depth. Design notes:
http://lists.landley.net/pipermail/toybox-landley.net/2015-August/004391.html
if filehandle > getrlimit(RLIMIT_NOFILE)/2 do cd .. and compare stat behavior
EXCEPT for symlinks traversed as directories, must cache ->parent for that.
need to cache rlimit to avoid syscalls
update www/code.html
sed + support
vmlinux build devtmpfs_mount needs to work
- 4.2 kernel patch: ~/temp2 ~/sei/linux-4.2 ~/sei/linux-3.19-sei.patch
~/sei/busybox.txt
check oneit -3 on sparc (libc/sysdeps/linux/sparc/pipe.S sanity check? BLOG)
did I get df -H done?
sh2eb toolchain calls ld.real with no prefix when -melf?
promote mdev already
Container stuff (nspawn, see ~/cut.txt)
cleanup lsof
LSB 5.0 came out, ~/toybox/toy2/lsb50.txt [BLOG sep 3, AlliedEnvy on freenode]
scripts/single.sh install makes cp instead?
promote gunzip (disentangle from compression side)
email:
Going through 8/17/2015 3:50 enh "Another Android roadmap update"
8/19/2015 Isaac Dunham init SIGTERM
8/17/2015 enh fix uptime.c
7/17/2015 Sameer Pradhan cp - typo
7/16/2015 enh Squinting at LSM support in cp
7/14/2015 Isaac Dunham Working on a [currently lame] downloader
7/14/2015 Sameer Pradhan Refactoring/cleanup of route.c and netstat.c
7/13/2015 Yeongdeok Suh names_to_pid() of killall checks only first argument
5/20/2015 David Halls armv6l
toybox:
vi ~/cleanup/notes.txt
Spreadsheet of false positives
~/toybox/toy2/falsepositive.xlsx
soc_top
cd ~/sei/soctop/soc_top/out
vi merges.txt
vi ~/toybox/toy2/todo.txt
vi ~/sei/todo.txt
vi ~/sei/notes.txt
vi ~/devtree.txt
~/toybox/toy2/*.patch (nbdfork.patch?)
hexedit.c: factor out draw_tail()
blah.patch: mdev change. Isaac? (August 1...)
PING COMMAND!!!
git diff www/roadmap.html
- finish uclinux analysis
du -h
blah3.patch
toys/example/test_human_readable.c
lib/lib.c human_readable()
uptime
cd ~/toybox/pending/core/toolbox; ./a.out && uptime
vi core/toolbox/uptime2.c
vi toys/other/uptime.c
toys/lsb/gunzip.c bitbuf_get()
main.c main()
lib/xwrap.c xpopen_both();
toys/posix/cpio.c x8u()
lib/net.c xconnect()
toys/other/netcat.c line 107 xsocket() call
- git diff that
toys/pending/tftp.c tftp_main()
www/history.html
blkid /dev/sda5
- select by label or UUID, output only that?
grep -r 'ai_family.*=' toys/*/*.c
./telnet 127.0.0.1 37
vi tftp.txt
./busybox --help tftp
./busybox --help tftpd
vi /usr/include/*/bits/socket.h line 58
grep 'connect(' lib/*.c toys/*/*.c
man lsof
vi lsof.txt
vi ~/toybox/pending/core/toolbox/lsof.c
toys/posix/grep.c add -ABC
toys/*/ps.c
toys/*/top.c
cat /proc/1/stat
toys/*/cp.c line 350
cd ~/toybox/toy2/idunham
git log
reset && grep '^[a-z].*(' toys/*/*.c | grep -v ':static' | grep -v _main | grep -v '/pending/'
- nonstatic function check
linux:
git show 69349c2dc01c (config_enable)
git show 96c586555 (loop autodestruct)
grep rootflag init/do_mounts.c
arch/sh/include/uapi/asm/cpu-features.h processor flags
git show 46490b572544 (broke mips)
git show 620b1550345 (didn't fix mips)
arch/mips/kernel/elf.c arch_check_elf()
CONFIG_MIPS_O32_FP64_SUPPORT
aboriginal:
vi ~/talks/shrink/coldfire
cd ~/nommu (emails!)
compare sh4 with sources/targets/sh4
sparc broke
toybox git e6abb61e057
./root-filesystem.sh sparc && ./system-image.sh sparc && more/run-emulator-from-build.sh sparc
vi ~/sei/rich/fdpic_elf_loader.diff
android:
cd ~/android
sudo debootstrap sid sid ftp://ftp.debian.org/debian/
Toybox
Build nommu
Fix fork, forkpty
- detect musl fork() broken
- implement vfork() reentry
Fix single builds
shell situation
Aboriginal
Toolchain
sh2eb
sh2eb-elf
binflt
segment sharing
musl fdpic
fork detection (SYS_FORK, __NR_fork)
segment sharing
Nommu userspace
finish ash->hush conversion
- well it builds, but it's crap.
bash doesn't build nommu!
- neither does pdksh
Cut a release with 4.0, 4.1
Switch to musl
upgrade LFS control image version
6.8 won't build with musl due to specific (really stupid) package #ifdefs
targets
sh2eb
coldfire
h8300
alpha
s390
m68k
j2 kernel
Device tree rewrite
sdcard driver rewrite using DMA
SMP support
- without MMU.
- NUMA using bitlink?
Break up to resubmit
Reproduce 0pf
Board build and run
For numato board, red board:
Order hardware
- avnet s6 microboard: http://em.avnet.com/s6microboard
- very small/portable, usb powered, ethernet. Bad: no sdcard
- numato mimas v2: http://numato.com/mimas-v2-spartan-6-fpga-development-board-with-ddr-sdram.html
- builtin sdcard, vga, audio. USB powered.
- serial's a bit funky
- cheapest lx9 we've found so far.
build bitstream
install bitstream
build kernel
install kernel
boot and run with console
bitstream build
Download binary
Download git repo
- WE STILL DO NOT HAVE A GIT REPO FOR SOC_TOP!
Document xilinx install
List alternatives to xilinx install
Post on nommu.org/j2
ELF toolchain
userspace build
aboriginal cpio image
kernel build
toolchain
initramfs
source
config
VHDL programming
base VHDL tutorial (where?)
- the grey code thing is too big to be a hello world example.
- tutorial on numato website is verilog, not vhdl
Adapting 0pf build system to a board
Numoto, "downloads" tab, User Constraints File:
http://numato.com/downloads/dl/file/id/115/product/95/user_constraints_file.ucf
0pf code walkthrough
- what would h8300 take?
- does dsp share code with main build? Why it isn't just a new spreadsheet.
websites
services
httpd
mailing list
wiki
git repo
release binaries
release announcements (lwn.net?)
lastgplv2 web
- binutils
- gcc
- shiz sent me gentoo patch links?
- bsd
- gdb
- Alternative to samba
- rise and fall of copyleft
- mp3, outline
- The point is there are valid objections to GPLv3.
- Apple removing GPL code
- Android no GPL in userspace policy
nommu.org
- coldfire
- build aboriginal coldfire image
- requires nommu target working
- run under QEMU
- h8300
gdb emulator?
0pf web content
- nommu.org/j2 ? I can't post to 0pf site...
buildroot nommu support
toybox for buildroot
j2 board support
coldfire qemu board support
openembedded nommu support
toybox
j2
coldfire
Talks
shrinking c code tutorial
turtles at plumber's
- and toybox talk
- and BOF/tutorial?
turtles at texas linuxfest
- tutorial?
turtles at ELC europe
- tutorial?
Wale's infrastructure
get the vpn working on mac
wiki
Get our guys contributing to open stuff
individual introductions on 0pf at nommu.org
dogfood open repo
development discussion on open list
Update blog
---------------
Does the gas weak symbol issue:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66609
affect binutils 2.17, and if so what's the fix?
Jun 15, 2015:
#finish ash->hush conversion in aboriginal
document m68k build (in email to Waldemar Brodkorb)
update aboriginal to linux-4.0, run test builds
#Resubmit 0BSD to SPDX through proper channels.
Rich Felker got his board, talked with him a bit on irc
toybox backlog
vi ~/richbastards.txt
toybox.mk for buildroot
~/today.txt
~/linux/linux$ grep -r elf_fdpic_arch_lay_out_mm .
sed captures from build (test each one)
~/aboriginal/s390$ wget http://ftp.nl.debian.org/debian/dists/stable/main/installer-s390/current/images/generic/initrd.debian
$ qemu-system-s390x -kernel kernel.debian -nographic -m 2048 -initrd initrd.debian -append "rdinit=/bin/ash console=/dev/ttyS0"
~/busybox/busybox$ grep -r IPPROTO_ICMP .
~/toybox/toybox/*.patch
toybox/axTLS/crypto/bigint.c
man dosfsck
qemu/block/vvfat.c
examine toybox/serviceman
toybox/pending/deflate/zip30/deflate.c
ssh -X 192.168.1.6 -X thunderbird
~/email/newmail/thunderbird$ rsync --delete -avHzPe "ssh" 192.168.1.6:.thunderbird/. . --bwlimit=150
$ find . -name "*.h" | xargs grep ELF_FDPIC_CORE_EFLAGS
./arch/frv/include/asm/elf.h:#define ELF_FDPIC_CORE_EFLAGS EF_FRV_FDPIC
./arch/c6x/include/asm/elf.h:#define ELF_FDPIC_CORE_EFLAGS 0
./arch/blackfin/include/asm/elf.h:#define ELF_FDPIC_CORE_EFLAGS EF_BFIN_FDPIC
./arch/sh/include/asm/elf.h:#define ELF_FDPIC_CORE_EFLAGS EF_SH_FDPIC
^C
landley at driftwood:~/linux/linux$ vi arch/sh/include/asm/elf.h
m68k fork
- squish kernel config
- qemu command line
aboriginal
- x86-64 merge TLS changes
- sh2 binflt merge
- requires full cross-compiler to get host libraries
- coldfire
toybox
- merge bionic build probe
- finish FLAG_ macro redo
QEMU sh2 support ala jeff's email
finish/commit/test toybox sed.
finish/commit/test toybox ping.
poke posix guys, cpio format:
kernel.org/doc/Documentation/early-userspace/buffer-format.txt
toybox: chroot hard (new namespace, pivot_root with "/" as old,
cd filehandle, umount -l ".", cd filehandle)
aboriginal cpio test:
> Now, as far as files to look at...
> We want a list of files with names that are 1, 2, 3, and no bytes longer
> than n*4 bytes to check padding; at least one unopenable device, socket,
> symlink, or directory; and ideally, a selection of file sizes.
> Without root access, /dev/console counts as unopenable.
wiki.musl-libc.org
- update current events
- linky
- ftp://ftp.barfooze.de/pub/sabotage
- http://distfiles.gentoo.org/experimental/amd64/
toybox 0.4.8 release:
- cleanup.html
- uudecode.txt
- grep.c (writeup: grep.txt)
- vmstat.c (writeup: ~/vmstat.txt)
- man 3 clock_gettime
- cpio -d (mkdir -p -> lib)
- copy.patch
- reply to:
- felix janda 12/02 "Factor out dhcpd's and syslogind's main loops"
- ibid.ag 12/04/2013 message about "archivers".
toybox after 0.4.8:
man fstrim
rsync.samba.org/tech_report/node3.html
- toybox/rsync, rsync.txt
dalias' libgcc --disable-shared glitch, try the swap he complained about?
- musl mailing list
LFS 7.4
aboriginal:
new kernel
new toybox
record-commands.sh breakout
Explain: Why tarballs+patches instead of extracted source in repository?
GPL writeup ~/gpl
Aboriginal LICENSE change
- documentation.html
Dig up dvpnd
dhcp packets must be between 300 (rfc 1542) and 576 (busybox bug 1849) bytes
test case: mount -a -t tmpfs -oremount,size=128M
kernel doc
random.txt http://lkml.indiana.edu/hypermail/linux/kernel/1309.1/04103.html
On the need to edit kernel oops messages in commit logs:
http://lkml.indiana.edu/hypermail/linux/kernel/1309.3/04165.html
lxc:
thread on making interfaces go away when container exits:
http://sourceforge.net/mailarchive/forum.php?thread_name=0A2009F9DE7D46469F263CB6367EA135A444F701%40dnbf-ex1.AD.DDB.DE&forum_name=lxc-users
toybox lsof
toybox:
scripts/make.sh
sed -n -e 's/.* \(USE_.*\)([^)]*)$/\1/;h;t keep;b next;:keep;g;s/^/#undef /p;g;s/.*/#define &(...) __VA_ARGS__/p;d' -e ':next;s/.* \(CFG_.*\) 0$/\1/;h;t keep2;d;:keep2;g;s/^/#undef /p;g;s/.*/#define & 1/p' generated/config.h
linux: git log --follow crypto/sha256_generic.c
Ping linaro guy (~/notes.txt)
kup: gpg/landley/welcome.readme
9p:
~/toybox/9p.txt
~/toybox/9p
~/diod/diod
podiatry/video/screencast.sh
toybox: lsusb-names.patch
services.c
debootstrap debuild
echo dpkg --add-architecture musl-linux-amd64
sudo aptitude install devscripts debootstrap
~/aboriginal/debuclibc
inittmpfs
linux/rootmpfs2.patch
IS_ENABLED()
Robin Holt <holt at sgi.com>
Daniel Walker <dwalker at fifo99.com>
aboriginal/ab-3.11
Test current qemu on all targets.
qcc: chop out daniel's contributions.
links.txt
gpl.txt
mount:
read Documentation/filesystems/sharedsubtree.txt
Gurang Shastri's mount:
http://lists.landley.net/pipermail/toybox-landley.net/2012-October/000677.html
Notes about mount: vfs flags
http://lists.landley.net/pipermail/toybox-landley.net/2012-August/000628.html
ls -l /dev doesn't show major:minor
Old busybox FAQ -> toybox FAQ
- newfaq.html
SPARC softmmu : build LFS
~qemu/qemu-m68k
~/toybox/prasanna/control-images-patchset$
aboriginal/lfs/lfs-packages-7.3.tar
control-images: new dropbear, zlib
rebuild static-tools
update downloadable control-images
pending:
showkey
sha3, sha256
build/host/busybox: what's left
login: calls vhangup()
kexec: man kexec_load
scripts/findglobals.sh
nbd-server
toybox/toybox/git.txt: git mirroring
run the test suite, fix stuff
www/talks/proto-transcript.txt
Yann Morin 3/13 "resetting my crosstool bearings"
# email lwn.net about toybox talk going up.
What is the license on aboriginal? (And root-filesystem code?)
merge ccwrap into toybox
Add 9p (diod/virtfs) server to toybox
top should do iotop
figure out hibernate tool
bc
scale = 0
define function()
auto x,y;
while (blah) { }
x = a % b ^ c * d + e - f / g
for (a; b; c) { }
if (a >= b) { }
if (a < b) { }
print "string", val, "str"
obase = int
triage klibc 1/23 blog entry for roadmap
apply for CELF travel
toybox
--help (toybox --help command; toybox command --help)
fix head/tail: -3 -1
arp
http://mywiki.wooledge.org/BashFAQ/031
http://codemonkey.org.uk/2013/01/03/linked-list-debugging-2
starchlinux.org
aboriginal linux website redo
- Ab Origine - from the beginning
- The simplest Linux system capable of rebuilding itself from source code.
- Build cross compiler, construct target system, boot it under qemu.
- build control image
Kernel failing to boot when compressed with bzip2 - Thomas Capricelli
Pull microemacs
Submit perl removal patches
virtfs talk
CELF tickets
- sash en.wikipedia.org/wiki/Stand-alone_shell
github.com/pikhq/bootstrap-linux
sta.li/masterplan
9p.cat-v.org
quotes.cat-v.org/programming
harful.cat-v.org/software
suckless.org/project_ideas
mipsel native compiler: === Linker verson 0 is to old for
setup git server
LFS 7.2 (clean-control-images)
#balsa email
collate todo.today
bisect docs
phone:
dead trigger
inotia4
ninjump
toybox:
# sub/losetup
triage new toolbox
initramfs ls -l "exe: No such file or directory"
some sort of build marker? hg identify -n hg diff
triage busybox-1.2.2
- files I touched
- files I created
- files last touched by me
oldlicense.txt
md5sum rfc1321.txt
cp
mount (questions.txt)
collate toybox2, toybox.bak
aboriginal:
update about.html
Ab Origine - from the beginning
wrapdir pointing to nothing
busybox vs toybox
musl
# Achille Fouilleul - fdlength bug
#push sh4 change to qemu
#patch 2.7 breaks aboriginal
More information about the Toybox
mailing list