Plans for Midnight Commander development
Hi there, It seems that I'm the only member of the current team left who still wants to go on with the project, so here is my current plan. * Ilia's private post on a Russian blog site stating that Andrew decided to resign as a maintainer caused a lot of drama, but in reality, not much has actually changed since the last half a year; the situation that has been slowly deteriorating for quite awhile. * Midnight Commander is not going away; even if commits completely cease, I'm still up to maintaining the website and all thirds-party services, as we've been doing for the last 5-6 years for as long as I can; if this changes, a proper public announcement will be made as early as possible. * I want to make a new 4.8.15 release in the coming months (actually, as soon as possible) from what has accumulated in the current master. It's stupid to let it rot, and besides, I can check that all the knowledge required to make a release is documented, and someone other than Slava can do it as well. * I want to use the release announcement to call for volunteers to join the team as maintainers to contribute to bug triaging and code review. Hopefully, this helps attract the attention of distro maintainers / packagers and downstream users that do not follow the mailing lists. * After 4.8.15 release, I want to go through the current tickets and try to commit as much of trivial and/or uncontroversial patches as possible; this might form the basis for a new 4.8.16 release. * I'll be giving FTBFS bugs and fixes a priority, so as to at least keep mc build-able with current kernels, libraries and compilers. * Regarding mc^2 fork, I would like to review the code and get it merged. After that, we can make a major 5.0.0 release, which may take some time to stabilize. I would need help with code review to make this happen in finite time though. * I'm doing important and long overdue firmware / os maintenance on the builders right now, which will allow them to function for quite some time. After that, I want to migrate to Travis and integrate it with Github as a priority. * Similarly, I want to service the Trac server; I hope that I can find out what's the problem with ticket posting delays. * Whomever wants to help, or to join the team as a new maintainer, please familiarize yourself with current state of the art by exploring the repository and documentation on wiki. The least hand-holding you require, the more convincing you look. * You can pick tickets that need a review, rebase the patches, do a proper review, and after you've done quite some of them, I'll be happy to commit it for you. After demonstrating sanity and perseverance for some time, we can talk about the commit bit. I think these requirements are reasonable, and not much different from any other project. * If you want to invest a large amount of work into something to prove yourself, but are unsure about it, ask on the list. If you want to tell me (or anyone) what and how we should do, but aren't ready to invest large amounts of work yourself, then please don't. * Regarding the infrastructure the development process that we have set up and followed while still being active: nothing is set in stone. I'd like to believe that I'm not crazy and can be convinced by reasonable arguments. However, keep in mind that the best way to convince me is to actually do the work, e.g. if someone has been triaging Trac for some time, and can explain why it's been painful, and how a proper migration to service X that he is ready to prepare will solve all the problems and make him über productive, I'm likely to fall for this argument. In the same vein, I'm unlikely to fall for the argument that all hipsters are on Github, so if we ditch Trac immediately and move to Github issues, then suddenly there will appear a bunch of dedicated maintainers out of nowhere and start reviewing patches like crazy. * On the subject of arguments: replying to emails, while actually _thinking_ of what you are writing takes a huge amount of time. I have very little time. This email took me more than an hour to write. Think of how these three facts interact. * Regarding time, I can consistently make about 1 hour per week, up to 5 hours in bursts, but that's quite a bit of stress. I'll see whether I can figure something out, but in any case expect delays in communication. I will try to answer as much other emails that need to be answered from the recent threads, but I have now about 2 hours left. I hope that these points cover the most important issues though. -- Sincerely yours, Yury V. Zaytsev ___ mc-devel mailing list https://mail.gnome.org/mailman/listinfo/mc-devel
Re: mc is over!?
On Sat, 2015-05-30 at 14:33 -0500, Steve Rainwater wrote: Is the list of active developers on the above site up to date or is that the list old developers who announced they were leaving? It's up to date, and includes those, who were still active lately, but announced that they would like to transfer the maintainership to the new team, plus me. -- Sincerely yours, Yury V. Zaytsev ___ mc-devel mailing list https://mail.gnome.org/mailman/listinfo/mc-devel
mc-4.8.14 hangs on select for 10 seconds at startup
I'm working over a Mandriva 2011 distro to get it working just the way I like it. It came with mc-4.7.53, and it works. I decided to compile 4.8.14 on the PC, pretty standard stuff: GNU Midnight Commander 4.8.14 Built with GLib 2.16.6 Using the S-Lang library with terminfo database With builtin Editor With subshell support as default With support for background operations With mouse support on xterm With internationalization support With multiple codepages support Virtual File Systems: cpiofs, tarfs, sfs, extfs, ftpfs, fish Data types: char: 8; int: 32; long: 32; void *: 32; size_t: 32; off_t: 64; On startup it hangs for 10 seconds, apparently on a select() call. I've edited this strace dump for brevity: [code] ... 04:20:19 open(/dev/ptmx, O_RDWR) = 6 04:20:19 statfs(/dev/pts, {f_type=DEVPTS_SUPER_MAGIC, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0 04:20:19 ioctl(6, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 04:20:19 ioctl(6, TIOCGPTN, [3])= 0 04:20:19 stat64(/dev/pts/3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0 04:20:19 getuid32() = 501 04:20:19 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 7 04:20:19 connect(7, {sa_family=AF_FILE, path=/var/run/nscd/socket}, 110) = -1 ENOENT (No such file or directory) 04:20:19 close(7) = 0 04:20:19 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 7 04:20:19 connect(7, {sa_family=AF_FILE, path=/var/run/nscd/socket}, 110) = -1 ENOENT (No such file or directory) 04:20:19 close(7) = 0 04:20:19 open(/etc/group, O_RDONLY|O_CLOEXEC) = 7 04:20:19 fstat64(7, {st_mode=S_IFREG|0644, st_size=669, ...}) = 0 04:20:19 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7189000 04:20:19 read(7, root:x:0:\nbin:x:1:\ndaemon:x:2:\ns..., 4096) = 669 04:20:19 close(7) = 0 04:20:19 munmap(0xb7189000, 4096) = 0 04:20:19 ioctl(6, TIOCSPTLCK, [0]) = 0 04:20:19 ioctl(6, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 04:20:19 ioctl(6, TIOCGPTN, [3])= 0 04:20:19 stat64(/dev/pts/3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0 04:20:19 open(/dev/pts/3, O_RDWR|O_LARGEFILE) = 7 04:20:19 fcntl64(7, F_SETFD, FD_CLOEXEC) = 0 04:20:19 pipe([8, 9]) = 0 04:20:19 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb74f7728) = 12097 04:20:19 write(6, PROMPT_COMMAND=${PROMPT_COMMAND..., 75) = 75 04:20:19 rt_sigaction(SIGINT, {0x8096d10, [], 0}, NULL, 8) = 0 04:20:19 select(9, [6 8], NULL, NULL, {10, 0}) = 1 (in [6], left {9, 998268}) 04:20:19 read(6, PROMPT_COMMAND=${PROMPT_COMMAND..., 128) = 76 04:20:19 select(9, [6 8], NULL, NULL, {9, 998268}) = 1 (in [6], left {9, 971360}) 04:20:19 read(6, [miven@cobra ~]$ PROMPT_COMMAND..., 128) = 55 04:20:19 select(9, [6 8], NULL, NULL, {9, 971360}) = 1 (in [6], left {9, 971353}) 04:20:19 read(6, MPT_, 128) = 4 04:20:19 select(9, [6 8], NULL, NULL, {9, 971353}) = 1 (in [6], left {9, 971347}) 04:20:19 read(6, COM, 128)= 3 04:20:19 select(9, [6 8], NULL, NULL, {9, 971347}) = 1 (in [6], left {9, 971341}) 04:20:19 read(6, MAN, 128)= 3 04:20:19 select(9, [6 8], NULL, NULL, {9, 971341}) = 1 (in [6], left {9, 971335}) 04:20:19 read(6, D;, 128) = 2 04:20:19 select(9, [6 8], NULL, NULL, {9, 971335}) = 1 (in [6], left {9, 971329}) 04:20:19 read(6, }', 128)= 3 04:20:19 select(9, [6 8], NULL, NULL, {9, 971329}) = 1 (in [6], left {9, 971323}) 04:20:19 read(6, pw, 128) = 2 04:20:19 select(9, [6 8], NULL, NULL, {9, 971323}) = 1 (in [6], left {9, 971317}) 04:20:19 read(6, d, 128)= 3 04:20:19 select(9, [6 8], NULL, NULL, {9, 971317}) = 1 (in [6], left {9, 971311}) 04:20:19 read(6, 9;, 128) = 2 04:20:19 select(9, [6 8], NULL, NULL, {9, 971311}) = 1 (in [6], left {9, 971305}) 04:20:19 read(6, kil, 128)= 3 04:20:19 select(9, [6 8], NULL, NULL, {9, 971305}) = 1 (in [6], left {9, 971299}) 04:20:19 read(6, l , 128) = 2 04:20:19 select(9, [6 8], NULL, NULL, {9, 971299}) = 1 (in [6], left {9, 971293}) 04:20:19 read(6, -S, 128) = 2 04:20:19 select(9, [6 8], NULL, NULL, {9, 971293}) = 1 (in [6], left {9, 971287}) 04:20:19 read(6, TO, 128) = 2 04:20:19 select(9, [6 8], NULL, NULL, {9, 971287}) = 1 (in [6], left {9, 971281}) 04:20:19 read(6, P , 128) = 2 04:20:19 select(9, [6 8], NULL, NULL, {9, 971281}) = 1 (in [6], left {9, 971275}) 04:20:19 read(6, $$, 128) = 2 04:20:19 select(9, [6 8], NULL, NULL, {9, 971275}) = 1