Now that Google Summer of Code 2017 has officially begun, I am not sure what to do.
Well, I had a lot of plans for this period in my proposal but they just seem trivial as well as confusing now, reading code and all that stuff. So most of the community seem to pass by and I lost hope. Who can even dare to go through a minimum of three to four files having more than 5000 lines of code?
Finally, a video on Introduction to MacPorts Base recorded by Clemens last MacPorts meeting came to rescue which gave the overview anyone needs to find and fix things in base. Basically, the video is a tour through MacPorts base hopping between port client, macports1.0, Tcl slave interpreters and C code for database access and to deal with system settings like proxy.
My notes (in raw form) while watching the video:
Well, I had a lot of plans for this period in my proposal but they just seem trivial as well as confusing now, reading code and all that stuff. So most of the community seem to pass by and I lost hope. Who can even dare to go through a minimum of three to four files having more than 5000 lines of code?
Finally, a video on Introduction to MacPorts Base recorded by Clemens last MacPorts meeting came to rescue which gave the overview anyone needs to find and fix things in base. Basically, the video is a tour through MacPorts base hopping between port client, macports1.0, Tcl slave interpreters and C code for database access and to deal with system settings like proxy.
My notes (in raw form) while watching the video:
- port.tcl - port commands and corresponding procedures.
- macports.tcl -
- mportinit -
- mportlookup - sources (default, ... ), PortIndex
- mportopen - run the PortFile, does some caching as well, also, work done in a slave interpreter ($workername), aliases of macports APIs for use by portfiles
- mportexec - takes mport returned by mportopen, gets the slave interpreter instance from mport
- Example - portfetch, elevateToRoot and dropPrivileges, curl as a Tcl extension
- functionality for command line users to keep it simple and easy to write port clients vs. complicating it for UI
- port1.0 - *portfile context*, eval_target, target_run
- package1.0 - downloading pre-compiled packages, verifying and extracting files
- darwintracelib1.0 - implementation of the trace mode, loaded into processes while they build
- machista1.0 - mach-O parser used by ref upgrade, SWIG
- programs - daemondo for launchd scripts
- CFLib1.0 - core foundation, bridge between Tcl and others, cocoa APIs, getting proxy settings (redundant)
- tclobjc1.0 - bridge between Tcl and Objective C (redundant)
- tests
- registry2.0, cregistry (C API for the registry database), port activate and deactivate, multiple versions and revisions of ports
There's no point in expanding the above into paragraphs. They are more like keywords. To the left of hyphen are the modules present in macports-base src directory. I know this isn't any interaction with the community but helps me at least know what to ask. Also, by now, I have got commit access to MacPorts's Git repository and a MacPorts @macports.org handle :D!
I'll be talking about my project in the next post, soon.