How do I maintain a patched version of a package for unprivileged installation?












1















I use some common software packages frequently enough that I found it worthwhile to modify their code a bit to work more smoothly for my peculiar needs. However, I was not able to get my changes accepted upstream.



To make things organized and transparent, I'd like to keep my changes separate from the released (upstream) version of each package. I know this is done all the time with standard packaging tools, but I need to install these on my various user accounts. Some of these accounts are on shared systems where I either don't have root access, or where I don't want to force other users to adopt my version of a piece of software. Most distro packaging tools don't support installing a package into a user's home directory - my stuff goes in ~/.local/bin for example. So I'm looking at combining something like Quilt to apply my patches, with some custom install scripts to do the upstream downloading and local installation.



All in all I think it's not too complicated, but before I start I wanted to see what others have done.



A related question, What is the recommended way to maintain local patches to debian packages? is asking about distribution-specific packages with global (privileged) installation. Also relevant, but more general, is How to manage open source project patches which can't push to upstream?.










share|improve this question

























  • There's a 101 different ways of doing this, and the best way is going to be unique to your environment. As a result, I think this is gonna be a "primarily opinion based" type question.

    – Stephen Harris
    Mar 19 at 0:51











  • @StephenHarris: I tried to restrict it a little by asking "what others have done or agreed upon", although as the two similar questions I linked were not labeled "opinion-based", I had not anticipated that my question would be closed for that reason.

    – Metamorphic
    Mar 19 at 0:55











  • I'm a bit afraid there might not be one single "accepted" way of doing that, and the ways/tools favoured might well be up to the preferences of the individuals in question.

    – ilkkachu
    2 days ago






  • 1





    I've opened a Meta question to discuss whether this is actually opinion-based. As for this question, if for example @Stephen thinks there are "101 different ways of doing this", perhaps he could link to a description of one of them. That would be a kind way of rewarding others who took time to read and write this question. Obviously, I came here after Googling unsuccessfully, and I'm hoping to get advice from experts like yourselves.

    – Metamorphic
    19 hours ago
















1















I use some common software packages frequently enough that I found it worthwhile to modify their code a bit to work more smoothly for my peculiar needs. However, I was not able to get my changes accepted upstream.



To make things organized and transparent, I'd like to keep my changes separate from the released (upstream) version of each package. I know this is done all the time with standard packaging tools, but I need to install these on my various user accounts. Some of these accounts are on shared systems where I either don't have root access, or where I don't want to force other users to adopt my version of a piece of software. Most distro packaging tools don't support installing a package into a user's home directory - my stuff goes in ~/.local/bin for example. So I'm looking at combining something like Quilt to apply my patches, with some custom install scripts to do the upstream downloading and local installation.



All in all I think it's not too complicated, but before I start I wanted to see what others have done.



A related question, What is the recommended way to maintain local patches to debian packages? is asking about distribution-specific packages with global (privileged) installation. Also relevant, but more general, is How to manage open source project patches which can't push to upstream?.










share|improve this question

























  • There's a 101 different ways of doing this, and the best way is going to be unique to your environment. As a result, I think this is gonna be a "primarily opinion based" type question.

    – Stephen Harris
    Mar 19 at 0:51











  • @StephenHarris: I tried to restrict it a little by asking "what others have done or agreed upon", although as the two similar questions I linked were not labeled "opinion-based", I had not anticipated that my question would be closed for that reason.

    – Metamorphic
    Mar 19 at 0:55











  • I'm a bit afraid there might not be one single "accepted" way of doing that, and the ways/tools favoured might well be up to the preferences of the individuals in question.

    – ilkkachu
    2 days ago






  • 1





    I've opened a Meta question to discuss whether this is actually opinion-based. As for this question, if for example @Stephen thinks there are "101 different ways of doing this", perhaps he could link to a description of one of them. That would be a kind way of rewarding others who took time to read and write this question. Obviously, I came here after Googling unsuccessfully, and I'm hoping to get advice from experts like yourselves.

    – Metamorphic
    19 hours ago














1












1








1


1






I use some common software packages frequently enough that I found it worthwhile to modify their code a bit to work more smoothly for my peculiar needs. However, I was not able to get my changes accepted upstream.



To make things organized and transparent, I'd like to keep my changes separate from the released (upstream) version of each package. I know this is done all the time with standard packaging tools, but I need to install these on my various user accounts. Some of these accounts are on shared systems where I either don't have root access, or where I don't want to force other users to adopt my version of a piece of software. Most distro packaging tools don't support installing a package into a user's home directory - my stuff goes in ~/.local/bin for example. So I'm looking at combining something like Quilt to apply my patches, with some custom install scripts to do the upstream downloading and local installation.



All in all I think it's not too complicated, but before I start I wanted to see what others have done.



A related question, What is the recommended way to maintain local patches to debian packages? is asking about distribution-specific packages with global (privileged) installation. Also relevant, but more general, is How to manage open source project patches which can't push to upstream?.










share|improve this question
















I use some common software packages frequently enough that I found it worthwhile to modify their code a bit to work more smoothly for my peculiar needs. However, I was not able to get my changes accepted upstream.



To make things organized and transparent, I'd like to keep my changes separate from the released (upstream) version of each package. I know this is done all the time with standard packaging tools, but I need to install these on my various user accounts. Some of these accounts are on shared systems where I either don't have root access, or where I don't want to force other users to adopt my version of a piece of software. Most distro packaging tools don't support installing a package into a user's home directory - my stuff goes in ~/.local/bin for example. So I'm looking at combining something like Quilt to apply my patches, with some custom install scripts to do the upstream downloading and local installation.



All in all I think it's not too complicated, but before I start I wanted to see what others have done.



A related question, What is the recommended way to maintain local patches to debian packages? is asking about distribution-specific packages with global (privileged) installation. Also relevant, but more general, is How to manage open source project patches which can't push to upstream?.







package-management git version-control quilt






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 13 hours ago







Metamorphic

















asked Mar 19 at 0:09









MetamorphicMetamorphic

371112




371112













  • There's a 101 different ways of doing this, and the best way is going to be unique to your environment. As a result, I think this is gonna be a "primarily opinion based" type question.

    – Stephen Harris
    Mar 19 at 0:51











  • @StephenHarris: I tried to restrict it a little by asking "what others have done or agreed upon", although as the two similar questions I linked were not labeled "opinion-based", I had not anticipated that my question would be closed for that reason.

    – Metamorphic
    Mar 19 at 0:55











  • I'm a bit afraid there might not be one single "accepted" way of doing that, and the ways/tools favoured might well be up to the preferences of the individuals in question.

    – ilkkachu
    2 days ago






  • 1





    I've opened a Meta question to discuss whether this is actually opinion-based. As for this question, if for example @Stephen thinks there are "101 different ways of doing this", perhaps he could link to a description of one of them. That would be a kind way of rewarding others who took time to read and write this question. Obviously, I came here after Googling unsuccessfully, and I'm hoping to get advice from experts like yourselves.

    – Metamorphic
    19 hours ago



















  • There's a 101 different ways of doing this, and the best way is going to be unique to your environment. As a result, I think this is gonna be a "primarily opinion based" type question.

    – Stephen Harris
    Mar 19 at 0:51











  • @StephenHarris: I tried to restrict it a little by asking "what others have done or agreed upon", although as the two similar questions I linked were not labeled "opinion-based", I had not anticipated that my question would be closed for that reason.

    – Metamorphic
    Mar 19 at 0:55











  • I'm a bit afraid there might not be one single "accepted" way of doing that, and the ways/tools favoured might well be up to the preferences of the individuals in question.

    – ilkkachu
    2 days ago






  • 1





    I've opened a Meta question to discuss whether this is actually opinion-based. As for this question, if for example @Stephen thinks there are "101 different ways of doing this", perhaps he could link to a description of one of them. That would be a kind way of rewarding others who took time to read and write this question. Obviously, I came here after Googling unsuccessfully, and I'm hoping to get advice from experts like yourselves.

    – Metamorphic
    19 hours ago

















There's a 101 different ways of doing this, and the best way is going to be unique to your environment. As a result, I think this is gonna be a "primarily opinion based" type question.

– Stephen Harris
Mar 19 at 0:51





There's a 101 different ways of doing this, and the best way is going to be unique to your environment. As a result, I think this is gonna be a "primarily opinion based" type question.

– Stephen Harris
Mar 19 at 0:51













@StephenHarris: I tried to restrict it a little by asking "what others have done or agreed upon", although as the two similar questions I linked were not labeled "opinion-based", I had not anticipated that my question would be closed for that reason.

– Metamorphic
Mar 19 at 0:55





@StephenHarris: I tried to restrict it a little by asking "what others have done or agreed upon", although as the two similar questions I linked were not labeled "opinion-based", I had not anticipated that my question would be closed for that reason.

– Metamorphic
Mar 19 at 0:55













I'm a bit afraid there might not be one single "accepted" way of doing that, and the ways/tools favoured might well be up to the preferences of the individuals in question.

– ilkkachu
2 days ago





I'm a bit afraid there might not be one single "accepted" way of doing that, and the ways/tools favoured might well be up to the preferences of the individuals in question.

– ilkkachu
2 days ago




1




1





I've opened a Meta question to discuss whether this is actually opinion-based. As for this question, if for example @Stephen thinks there are "101 different ways of doing this", perhaps he could link to a description of one of them. That would be a kind way of rewarding others who took time to read and write this question. Obviously, I came here after Googling unsuccessfully, and I'm hoping to get advice from experts like yourselves.

– Metamorphic
19 hours ago





I've opened a Meta question to discuss whether this is actually opinion-based. As for this question, if for example @Stephen thinks there are "101 different ways of doing this", perhaps he could link to a description of one of them. That would be a kind way of rewarding others who took time to read and write this question. Obviously, I came here after Googling unsuccessfully, and I'm hoping to get advice from experts like yourselves.

– Metamorphic
19 hours ago










0






active

oldest

votes











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f507078%2fhow-do-i-maintain-a-patched-version-of-a-package-for-unprivileged-installation%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f507078%2fhow-do-i-maintain-a-patched-version-of-a-package-for-unprivileged-installation%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

サソリ

広島県道265号伴広島線

Setup Asymptote in Texstudio