Using an older port to make another port

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Using an older port to make another port

Michael_google gmail_Gersten
How do I use an older port when making another one?

I followed the instructions for working with an older version of libarchive.
Going back to 97887a375da5d0f6abee018b145833aa02e2bda7 gave me libarchive @3.2.2_1 as a pre-built binary, no problems.

Now I'm trying to build cmake, which wants libarchive. I've got my git clone at the same (unchanged) checkout, but attempting to install it wants to rebuild libarchive.

In other words, the version of libarchive currently installed matches the version at 97887, but building cmake at 97887 ("sudo port install", from the devel/cmake directory) wants to build a fresh libarchive (apparently using the system install port tree).

How do I make this work?
And how do I then fix anything else that expects a cmake? (as it will probably try to use the system definition of cmake, which will use the system definition of libarchive, which will break).

---
Entertaining minecraft videos
http://YouTube.com/keybounce

Reply | Threaded
Open this post in threaded view
|

Re: Using an older port to make another port

Jeremy Huddleston Sequoia-2
You could just locally revert the offensive change to libarchive until your issue is addressed.

--Jeremy

> On Mar 4, 2017, at 13:18, Michael <[hidden email]> wrote:
>
> How do I use an older port when making another one?
>
> I followed the instructions for working with an older version of libarchive.
> Going back to 97887a375da5d0f6abee018b145833aa02e2bda7 gave me libarchive @3.2.2_1 as a pre-built binary, no problems.
>
> Now I'm trying to build cmake, which wants libarchive. I've got my git clone at the same (unchanged) checkout, but attempting to install it wants to rebuild libarchive.
>
> In other words, the version of libarchive currently installed matches the version at 97887, but building cmake at 97887 ("sudo port install", from the devel/cmake directory) wants to build a fresh libarchive (apparently using the system install port tree).
>
> How do I make this work?
> And how do I then fix anything else that expects a cmake? (as it will probably try to use the system definition of cmake, which will use the system definition of libarchive, which will break).
>
> ---
> Entertaining minecraft videos
> http://YouTube.com/keybounce
>


smime.p7s (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Using an older port to make another port

Michael_google gmail_Gersten

On 2017-03-04, at 4:44 PM, Jeremy Huddleston Sequoia <[hidden email]> wrote:

> You could just locally revert the offensive change to libarchive until your issue is addressed.

Ok, how?

Is it as simple as "copy these files out of the git tree into the /opt tree"? And if so, will that "clean up" automatically the next time I do a selfupdate?

Is there an environment variable I can set to say "Find the portfiles here, rather than in the default location"? My concern here is that I can easily think of cases where turning back a library requires turning back the programs that use that library.

>
> --Jeremy
>
>> On Mar 4, 2017, at 13:18, Michael <[hidden email]> wrote:
>>
>> How do I use an older port when making another one?
>>
>> I followed the instructions for working with an older version of libarchive.
>> Going back to 97887a375da5d0f6abee018b145833aa02e2bda7 gave me libarchive @3.2.2_1 as a pre-built binary, no problems.
>>
>> Now I'm trying to build cmake, which wants libarchive. I've got my git clone at the same (unchanged) checkout, but attempting to install it wants to rebuild libarchive.
>>
>> In other words, the version of libarchive currently installed matches the version at 97887, but building cmake at 97887 ("sudo port install", from the devel/cmake directory) wants to build a fresh libarchive (apparently using the system install port tree).
>>
>> How do I make this work?
>> And how do I then fix anything else that expects a cmake? (as it will probably try to use the system definition of cmake, which will use the system definition of libarchive, which will break).
>>
>> ---
>> Entertaining minecraft videos
>> http://YouTube.com/keybounce
>>
>

---
Entertaining minecraft videos
http://YouTube.com/keybounce

Reply | Threaded
Open this post in threaded view
|

Re: Using an older port to make another port

Jeremy Huddleston Sequoia-2


Sent from my iPhone...

> On Mar 4, 2017, at 16:58, Michael <[hidden email]> wrote:
>
>
>> On 2017-03-04, at 4:44 PM, Jeremy Huddleston Sequoia <[hidden email]> wrote:
>>
>> You could just locally revert the offensive change to libarchive until your issue is addressed.
>
> Ok, how?

git diff HEAD <hash you care about> path/to/port | git apply

Or similar...

> Is it as simple as "copy these files out of the git tree into the /opt tree"? And if so, will that "clean up" automatically the next time I do a selfupdate?
>
> Is there an environment variable I can set to say "Find the portfiles here, rather than in the default location"? My concern here is that I can easily think of cases where turning back a library requires turning back the programs that use that library.
>
>>
>> --Jeremy
>>
>>> On Mar 4, 2017, at 13:18, Michael <[hidden email]> wrote:
>>>
>>> How do I use an older port when making another one?
>>>
>>> I followed the instructions for working with an older version of libarchive.
>>> Going back to 97887a375da5d0f6abee018b145833aa02e2bda7 gave me libarchive @3.2.2_1 as a pre-built binary, no problems.
>>>
>>> Now I'm trying to build cmake, which wants libarchive. I've got my git clone at the same (unchanged) checkout, but attempting to install it wants to rebuild libarchive.
>>>
>>> In other words, the version of libarchive currently installed matches the version at 97887, but building cmake at 97887 ("sudo port install", from the devel/cmake directory) wants to build a fresh libarchive (apparently using the system install port tree).
>>>
>>> How do I make this work?
>>> And how do I then fix anything else that expects a cmake? (as it will probably try to use the system definition of cmake, which will use the system definition of libarchive, which will break).
>>>
>>> ---
>>> Entertaining minecraft videos
>>> http://YouTube.com/keybounce
>>>
>>
>
> ---
> Entertaining minecraft videos
> http://YouTube.com/keybounce
>
db
Reply | Threaded
Open this post in threaded view
|

Re: Using an older port to make another port

db
In reply to this post by Michael_google gmail_Gersten
On 5 Mar 2017, at 01:58, Michael <[hidden email]> wrote:
> Ok, how?
>
> Is it as simple as "copy these files out of the git tree into the /opt tree"? And if so, will that "clean up" automatically the next time I do a selfupdate?
>
> Is there an environment variable I can set to say "Find the portfiles here, rather than in the default location"? My concern here is that I can easily think of cases where turning back a library requires turning back the programs that use that library.


· installing an older version of a port in the github era -- an answer
  https://lists.macports.org/pipermail/macports-dev/2016-December/035058.html

· set port not to upgrade
  https://lists.macports.org/pipermail/macports-users/2017-February/thread.html#42751

· Local Portfile Repositories
  https://guide.macports.org/#development.local-repositories


I haven't gotten around to make it with git, nor used local libraries yet, but you could try duplicating libarchive and cmake locally and make the latter dependent on a renamed version of the former, like port:libarchive_local in its portfile. For the caveats read the threads above.