GSoC 2019 [Phase out dependency on Xcode]

Satryaji Aulia satraul at gmail.com
Mon Apr 1 19:29:26 UTC 2019


Hi again Mojca and Marcus.

> On 1 Apr 2019, at 17.15, Mojca Miklavec <mojca at macports.org> wrote:
> 
> I'm not in position to answer this, but you may check some discussion
> on this mailing list (from March / GSOC) regarding trace mode, in case
> it's relevant or provides you some more insight.

I have read more about trace mode and updated my proporal, including an analysis of porttrace.tcl 
and what could be done to modify it. I think the detection feature could be done over the course 
of summer, including implementing the `port bump` action + continually making Port updates. 
Feedback regarding the proposal/technical explanations would be greatly appreciated.

At first, I was under the impression that Xcode command line tools was a subset of Xcode.app. 
Apparently not, as both have different sets of compilers. Do you think it is realistic if we just just
implemented the "use_xcode" flag and made the command line tools mandatory?

Added the fact that MacPorts support for systems fully without Xcode seems to be a far goal.

>> I notice how useful a "port bump" command would be if it existed.
> 
> Yes, it would be.

I've started my implementation, under macports-base/src/port1.0/portbump.tcl.

The wiki and the 1-hour tutorial by cal has been a tremendous help in understanding macports-base.

My current implementation is a "bump" stage which requires the "main" and "fetch" stages to be
sucessfully run first. portbump.tcl largely reuses code from portchecksums.tcl.

After updating the version of an outdated Portfile, I already have it running like:
$ sudo /opt/macports-test/bin/port bump
--->  Fetching distfiles for bibledit
--->  Bumping checksums for bibledit
We will bump these:
Old md5     : e509449e52142757c2c75af124847941
New md5     : c06483349e496501248f5a4dc9193184
Old rmd160  : 02e628f018d075cc72ff5c2bf8fb0989e2dc63cc
New rmd160  : f4c103e24b313744633a20e55365fdd126ac980d

I need help in issuing an interactive prompt using `macports::ui_options(questions_yesno)` [1]. 
I don't understand how to make `if {[info exists macports::ui_options(questions_yesno)]}` default 
to true.

Besides that, any feedback about my implementation would be appreciated. I currently use Tcl’s
reinplace method to update the Portfile [2].

>> I will work on this feature right now. Hopefully I can make a functioning tool by the end of the week. I will add the extended implementation to my proposal.
> 
> Please also read the discussion (and code etc.) on this mailing list
> related to "upt" as that's quite a bit related (not the same though).

Will do.

> For most of the software we just ship one single version, the latest
> one. Of course there are exceptions, usually in cases when:
> - sufficient backward incompatibility is of concern (ruby on rails is
> an excellent example; not that we have any support worth mentioning
> for that one)
> - dependent software is not yet compatible with the latest version
> - the latest version doesn't work on older systems (and we care enough
> to support the old systems)

I see. Then the php5 and ruby problems I encountered fall into the exception then, right? It seems
that these types of cases are not urgent, so I've discarded the sub-project idea of updating
retired ruby/php5 ports. Also added the fact that there's already a proposal for that problem area.

Thank you.

[1] https://github.com/satraul/macports-base/commit/d5e652c0de77e30afa64b6a064ebfcf373f04c5f
[2] https://github.com/satraul/macports-base/commit/0e9c64a1de42e2f23da9eefa6dbb28b88e90a98f


More information about the macports-dev mailing list