# "File to patch:" Prompt on port installation [qt5-declarative]



## edenist (Nov 20, 2018)

Hi, I've got a bit of a sticky one I've been struggling to work out.

I was doing an update of my ports when I've come across an issue when it reaches "x11-toolkits/qt5-declarative".
When attempting to build this port [both with portmaster or make install], I am prompted with a "File to patch:" prompt.
Looking into the patch file it is applying, it is trying to find a file which simply does not exist. 

The error occurs on the following line within files/patch-git_26229cf :


```
--- src/declarative/graphicsitems/qdeclarativetextinput.cpp
+++ src/declarative/graphicsitems/qdeclarativetextinput.cpp
```

This file simply does not exist anywhere within this port on my system. In fact, the only place I can find this file on my entire system, is within some old qt4 ports. 

Is this a problem with the port itself, or has something gone crazy with my ports? I can't find anything in UPDATING, and according to freshports, this port was first removed, then recently reinstated after qt5-qml and qt5-quick were merged into it. 

Any help would be apprecated.


----------



## ShelLuser (Nov 21, 2018)

What FreeBSD version do you use?

(edit)

For the record: I cannot reproduce any issues on FreeBSD 11.2 (Release):


```
peter@zefiris:/usr/ports/x11-toolkits/qt5-declarative$ make patch
===>  License LGPL21 accepted by the user
===>   qt5-declarative-5.11.2_1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by qt5-declarative-5.11.2_1 for building
===>  Extracting for qt5-declarative-5.11.2_1
=> SHA256 Checksum OK for KDE/Qt/5.11.2/qtdeclarative-everywhere-src-5.11.2.tar.xz.
===>  Patching for qt5-declarative-5.11.2_1
===>  Applying FreeBSD patches for qt5-declarative-5.11.2_1
/usr/bin/sed -i.bak '/py_out/s#python#/usr/local/bin/python2.7#g'  /usr/ports/x11-toolkits/qt5-declarative/work/qtdeclarative-everywhere-src-5.11.2/qtdeclarative.pro
/usr/bin/sed -i.bak 's,python,/usr/local/bin/python2.7,g'  /usr/ports/x11-toolkits/qt5-declarative/work/qtdeclarative-everywhere-src-5.11.2/src/3rdparty/masm/masm.pri
```
Also interesting is that patch-git_26229cf doesn't appear to be an official patch:

```
peter@zefiris:/usr/ports/x11-toolkits/qt5-declarative$ ls files
patch-src_3rdparty_masm_assembler_ARM64Assembler.h
patch-src_3rdparty_masm_assembler_ARMAssembler.h
patch-src_3rdparty_masm_assembler_ARMv7Assembler.h
patch-src_3rdparty_masm_wtf_Platform.h
patch-tools_qmlcachegen_qmlcachegen.pro
```
I don't need to run portsnap to double check because an official patch would never try to patch something in src/<stuff> directly because the commonly used work directory for ports is always work.

Ergo: the patch would have tried to access files under work/qtdeclarative-everywhere-src-5.11.2/src.

So my guess is that you're either not using an official FreeBSD release or you're not using the official ports collection, or both I guess 

(edit2)
_OR..._ I am a little bit too hasty and overlook a possible difference in architecture. Still, that doesn't explain the (ab)use of the src/* working directory which is not a common thing for ports. If this is all official and not some FreeBSD derivative then it's likely a mistake from the official maintainer.


----------



## edenist (Nov 21, 2018)

I am running FreeBSD 11.2 Release [FreeBSD 11.2-RELEASE #5 r336466].

I have no idea how I would be running a non-official ports collection though. I simply run portsnap update the same as I have since commissioning the system.

Though looking at your files, I took at look at mine, and it is pulling down a completely different tarball. Here is what my distinfo file looks like


```
TIMESTAMP = 1474105531
SHA256 (KDE/Qt/5.5.1/qtquick1-opensource-src-5.5.1.tar.xz) = c812a7e59a8b9f0a87693181059933e15fef04bc875b6486cd653be1b9b51f2c
SIZE (KDE/Qt/5.5.1/qtquick1-opensource-src-5.5.1.tar.xz) = 16028732
```

I don't know where the problem is occurring here.


Edit: Looking at the commit history, I think your ports tree might be out of date. According to svn, qt5-declarative was re-added with the note "_(Copied from head/x11-toolkits/qt5-quick, r484139)_". I'm wondering if the port is actually broken now.


----------



## ShelLuser (Nov 21, 2018)

edenist said:


> I am running FreeBSD 11.2 Release [FreeBSD 11.2-RELEASE #5 r336466].


Release #5? That's not a part of the version, it only shows if you use uname; this tells you how many times you (re)build:

```
peter@zefiris:/home/peter $ uname -vr
11.2-RELEASE-p4 FreeBSD 11.2-RELEASE-p4 #2 r340354: Mon Nov 12 19:20:46 CET 2018     peter@zefiris.intranet.lan:/usr/obj/usr/src/sys/ZEFIRIS
peter@zefiris:/home/peter $ freebsd-version -urk
11.2-RELEASE-p4
11.2-RELEASE-p4
11.2-RELEASE-p4
```
Either way, this shouldn't make much of a difference for the ports collection, though I am wondering if you're using a release or STABLE by any chance. I assume you're using the source tree to update your system? If so what does `svn info /usr/src | grep -i url` show you?



edenist said:


> Edit: Looking at the commit history, I think your ports tree might be out of date.


How can you have a commit history if you're using portsnap? That doesn't add up. And probably also explains the differences. What does `svn info /usr/ports | grep -i url` tell you?

(edit)

Still, the official SVN repository is fully on-par with what I have, so... I don't know what you're using but it sure doesn't look official to me:

```
peter@zefiris:/home/peter/temp $ svn co https://svn.freebsd.org/ports/head/x11-toolkits/qt5-declarative ports
A    ports/files
A    ports/Makefile
A    ports/files/patch-src_3rdparty_masm_assembler_ARM64Assembler.h
A    ports/files/patch-src_3rdparty_masm_assembler_ARMAssembler.h
A    ports/files/patch-src_3rdparty_masm_assembler_ARMv7Assembler.h
A    ports/files/patch-src_3rdparty_masm_wtf_Platform.h
A    ports/files/patch-tools_qmlcachegen_qmlcachegen.pro
A    ports/pkg-plist
A    ports/pkg-descr
Checked out revision 485494.
```
So... What I'd suggest is trash your current ports tree and get a clean copy. Either through `# portsnap fetch extract` or the Subversion command I used here (though you'd need to grab head entirely).

Just be sure you're actually running FreeBSD and not some derivative, which is something I'm still somewhat suspecting.


----------



## edenist (Nov 21, 2018)

Thanks for the reply.
I am most certain I am running FreeBSD...


```
freebsd-version -kru
11.2-RELEASE
11.2-RELEASE
11.2-RELEASE
```

As for the commit history, I was basing this on the FreeBSD svn web interface, in particular https://svnweb.freebsd.org/ports/he...tive/?limit_changes=0&view=log&pathrev=484140

I think I've worked out what is going on. The problem file, patch-git_26229cf, was introduced back in rev 434380. Somehow with the removal then re-addition of the port [which was actually a merge of two other ports], the old patch file wasn't removed from my system. I removed the files folder then restored the current patches from rev 484704 [same as the Makefile], and now I can successfully build the port. 

Thanks very much for your assistance, it got me where I needed to go!


----------

