Opened 6 years ago

Closed 6 years ago

#46130 closed defect (fixed)

py-wxpython-3.0 @3.0.2.0: wxPython.h is missing

Reported by: neurodroid (Christoph Schmidt-Hieber) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: mojca (Mojca Miklavec), jyrkiwahlstedt, ryandesign (Ryan Schmidt), petrrr
Port: py-wxpython-3.0

Description

Seems like wxPython.h, which is required for another port (stimfit, and probably others) doesn't get installed any longer with wxPython. Not sure when this happened, I went back to 3.0.1.1 and it was missing there as well. I think it used to get installed into ${WXINCLUDE}/wx/wxPython/wxPython.h

Change History (15)

comment:1 Changed 6 years ago by neurodroid (Christoph Schmidt-Hieber)

Digging a bit deeper, this seems related to you only shipping a subset of the wxPython source since somewhere around 3.0.1. Which is perfectly fine, but it would be great if you could add the header files under wx/wxPython/*.h to this subset. At the moment my port is broken.

comment:2 Changed 6 years ago by mojca (Mojca Miklavec)

I seem to have that file from an older installation:

> port provides /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxPython/3.0/include/wx-3.0/wx/wxPython/wxPython.h
/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxPython/3.0/include/wx-3.0/wx/wxPython/wxPython.h is provided by: wxPython-3.0
> port installed wxpython-3.0
The following ports are currently installed:
  wxPython-3.0 @3.0.1_1 (active)

The file probably got lost during upgrade to 3.0.2 as uploaded by jwa.

It seems that we should have a script to make "automatic" updates. (I created files manually.)

comment:3 Changed 6 years ago by jyrkiwahlstedt

Resolution: fixed
Status: newclosed

Mea culpa, blind to own typing, had packed only the i_files to subset, now corrected (the script also), done in r129084

comment:4 Changed 6 years ago by mojca (Mojca Miklavec)

Where is that script located?

comment:5 Changed 6 years ago by jyrkiwahlstedt

It is attached to the same ticket as the subset (#19190)

comment:6 Changed 6 years ago by mojca (Mojca Miklavec)

We should put that file under wxWidgets-3.0/files/scriptname.sh to make sure that it doesn't get lost.

I'm still wondering whether it's better to simply fetch the whole 54 MB monster or to provide that tiny 300 kB file.

In relation to the checksum mismatch: while you cannot influence the upstream developers and prevent them from doing stealth updates, it's probably wise to try to avoid making stealth updates of files like wxPython-3.0.2.0-MacPorts-subset.tar.bz2 yourself. Now if you make the change to

dist_subdir         ${distname}/${version}_2

then the whole wxWidgets will have to be downloaded again, so please try to avoid that.

I would suggest you to upload wxPython-3.0.2.0a-MacPorts-subset.tar.bz2 or something like that, with the latest contents. Then you can avoid creating a new distdir (making a new distdir would be bad).

comment:7 Changed 6 years ago by mojca (Mojca Miklavec)

Resolution: fixed
Status: closedreopened
Version: 2.3.3

I'm reopening this ticket because the build fails now (checksum mismatch).

comment:8 Changed 6 years ago by mojca (Mojca Miklavec)

Cc: ryandesign@… added

comment:9 Changed 6 years ago by mojca (Mojca Miklavec)

There's also another trick that I used in the past to avoid having to deal with wrong/old/stealth updated files:

pre-fetch {
    set file_python "${prefix}/var/macports/distfiles/wxWidgets/3.0.2/wxPython-3.0.2.0-MacPorts-subset.tar.bz2"
    if {[file exists ${file_python}]} {
        if {[sha256 file ${file_python}] != "<proper shasum>"} {
            # problematic sha256: 1844bbd83adbf10f223e47d07758ea740bc2d3c0eee26f7ee452eb67b0d52b56
            ui_warn "deleting an old '${file_python}'"
            file delete ${file_python}
        }
    }
}

comment:10 Changed 6 years ago by ryandesign (Ryan Schmidt)

Let's not do that. Let's just do it the way we've documented in PortfileRecipes#stealth-updates

comment:11 Changed 6 years ago by ryandesign (Ryan Schmidt)

Ah, I see above why we don't want to change dist_subdir. Fine, and I agree that it is preferable not to have a stealth update in the first place. In other words, make the update explicit: every time you release a different version distfile, it has a different name.

comment:12 Changed 6 years ago by petrrr

Cc: petr@… added

Cc Me!

comment:13 Changed 6 years ago by mojca (Mojca Miklavec)

Did r129094 resolve the issue? If so, can this ticket be closed?

comment:14 in reply to:  13 Changed 6 years ago by neurodroid (Christoph Schmidt-Hieber)

Replying to mojca@…:

Did r129094 resolve the issue? If so, can this ticket be closed?

I can confirm that the missing header files are now back and I can build my port. Thanks for the fast fix. I don't know whether the ensuing discussion about stealth updates has been fully resolved.

comment:15 Changed 6 years ago by mojca (Mojca Miklavec)

Resolution: fixed
Status: reopenedclosed

I'm closing the ticket assuming that r129094 fixed the problem.

I would still like to suggest to put the script inside files to make it easier to find it next time.

Note: See TracTickets for help on using tickets.