On 29 Aug 2018, at 3:39 pm, Davide Pesavento <[email protected]> wrote: > > On Wed, Aug 29, 2018 at 6:10 AM Phil Thompson > <[email protected]> wrote: >> >> On 28 Aug 2018, at 10:12 pm, Davide Pesavento <[email protected]> wrote: >>> >>> On Tue, Aug 28, 2018 at 4:59 PM Phil Thompson >>> <[email protected]> wrote: >>>> >>>> On 28 Aug 2018, at 9:55 pm, Davide Pesavento <[email protected]> wrote: >>>>> >>>>> On Tue, Aug 28, 2018 at 4:46 PM Phil Thompson >>>>> <[email protected]> wrote: >>>>>> >>>>>> On 28 Aug 2018, at 9:21 pm, Davide Pesavento <[email protected]> wrote: >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> I'm installing QScintilla with 'make INSTALL_ROOT=/foo/bar install' >>>>>>> and the mk_distinfo.py step fails while trying to open non-existent >>>>>>> files, e.g.: >>>>>>> >>>>>>> Traceback (most recent call last): >>>>>>> File "mk_distinfo.py", line 101, in <module> >>>>>>> fn_f = open(fn, 'rb') >>>>>>> FileNotFoundError: [Errno 2] No such file or directory: >>>>>>> '/usr/lib/python3.7/site-packages/PyQt5/Qsci.so' >>>>>>> >>>>>>> (the file is actually at >>>>>>> /foo/bar/usr/lib/python3.7/site-packages/PyQt5/Qsci.so) >>>>>>> >>>>>>> I took a quick look at the build system and noticed that the file >>>>>>> paths in installed.txt are not prefixed with INSTALL_ROOT. >>>>>>> Unfortunately that file is generated at configure time, when >>>>>>> INSTALL_ROOT is not yet known, so this part of the build process may >>>>>>> require a redesign. >>>>>> >>>>>> No, it's intentional. The location is where things will eventually be >>>>>> installed. INSTALL_ROOT is used by (normally Linux) distro packagers. >>>>> >>>>> I'm aware, I'm one of those distro packagers. >>>>> >>>>> Ok so installed.txt has the correct paths: the final install location >>>>> without INSTALL_ROOT. Then it's mk_distinfo.py's responsibility to >>>>> prefix each of those paths with INSTALL_ROOT before trying to open the >>>>> file. >>>> >>>> So who removes it when the package is installed by the user? >>>> >>> >>> I'm not sure I understand the question. The package manager moves the >>> files from INSTALL_ROOT to the real root (/). INSTALL_ROOT should not >>> appear (e.g. as a string or link) in any installed file. So for >>> instance the .dist-info/RECORD file should not contain INSTALL_ROOT. >> >> I meant the value of INSTALL_ROOT. >> >> Are you saying that the distro package manager strips the value of >> INSTALL_ROOT from the RECORD file when it installs the package into it's >> final location? If that's the case (and it is true of *all* distro package >> managers) then I'm happy to change the behaviour - afaik nobody else uses >> this feature. > > No, that's not what happens. The package manager simply moves the > files but doesn't touch them.
That's what I thought. > QScintilla's build system should not > prefix the paths in RECORD with INSTALL_ROOT in the first place. It doesn't. > We > can add workarounds to the distro build scripts but I'd rather have > this properly fixed in QScintilla. > > When I said "it's mk_distinfo.py's responsibility to prefix each of > those paths with INSTALL_ROOT before trying to open the file" I meant > *temporarily* prefix them, just for the purpose of reading the file to > calculate its checksum. The prefixed paths should not be recorded > anywhere. The RECORD file is not checksummed, so why temporarily prefix the lines? >> Note that mk_distinfo.py in the current QScintilla version doesn't properly >> create relative filenames for files installed in the Python installation >> (which is most of them). However QScintilla also installs files in the Qt >> installation and these have to be referenced by absolute filenames so the >> above issue is still valid. > > So the .sip files should have an absolute path in RECORD? They don't > as far as I can see, e.g. I have lines like > ../../../../../../../../../usr/share/sip/PyQt5/Qsci/qscistyle.sip,sha256=vcDOCT7DyYUrvdUgGlkmD6ly3SMVZ5jo3ZJHzthh-bs,1909 The Python installation is defined as anything below the --prefix directory. Phil _______________________________________________ QScintilla mailing list [email protected] https://www.riverbankcomputing.com/mailman/listinfo/qscintilla
