X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :reply-to:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=ZSz4r6rxmwg9q0TEBGYP6YmRmsp92 by7IDHCa0nnyWU=; b=ijZt1oyF6nhJ0K9dwlFEkOO7tr5SFlG7sM3E55fINlR7x 3wnPlgBO8MQnVHc2grl7eBDW/E2857yAe3Of+HuH31U0f7k0NsT1st9pawemHS/H N3eQWDYWeagWdIs3AVG08dPpjaJrFctucUC7DB+p1V9atgwTAqzzRoCYFAntCiHc yx+VfD412/JWIwwtSF8ETCAZ3EDQUYC07LSP/kUyDhEiH0N6P8lBt8a5BDVPKOit WEjbETyHfJjKzD6DYI4gfDuvabPmYzi0uNckUufb/eNOOyvDU2k8MqY/vIT+EFEw pIV4KVccchtegZYZZ1Wi38H6U6GSMftmdy5g73EdA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrudelkedguddvvdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurheprhfuvfhfhffkffgfgggjtgfgse htjeertddtfeejnecuhfhrohhmpefiihhrvhhinhcujfgvrhhruceoghhhvghrrhhlsehf rghsthhmrghilhdrtghomheqnecuggftrfgrthhtvghrnhepvdduleffgfduudeiveevle eikeevteeigffhhedvhfejvdffjeeiieelffejhfdvnecukfhppedutdekrddvudehrddu leehrddvtdehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepghhhvghrrhhlsehfrghsthhmrghilhdrtghomh X-ME-Proxy: Subject: Re: [geda-user] Problem with Guile 2.2.4 dependency for gEDA 1.10.1. To: geda-user AT delorie DOT com References: <83d2a9f4-89a5-cf7b-4c94-738e14327057 AT fastmail DOT com> <20201219061954 DOT 15874 DOT qmail AT stuge DOT se> From: "Girvin Herr (gherrl AT fastmail DOT com) [via geda-user AT delorie DOT com]" Message-ID: Date: Sat, 19 Dec 2020 10:54:47 -0800 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 In-Reply-To: <20201219061954.15874.qmail@stuge.se> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On 12/18/20 10:19 PM, Peter Stuge (peter AT stuge DOT se) [via geda-user AT delorie DOT com] wrote: > Girvin Herr (gherrl AT fastmail DOT com) [via geda-user AT delorie DOT com] wrote: >> That is what I was afraid of. I have installed "current" Slack packages >> in the past with the latest released version with mixed results. It >> looks like gEDA is frozen for me at 1.10.0 until the "current" Slack is >> released. > You don't have to settle for that; it's perfectly possible to install > different versions of most packages (in particular all relevant for 1.10.1) > to a new directory, where they do not interact with distribution packages. > > Only a few distributions offer tooling to automate (some of) the process > and Slackware is not one of them, so it takes some work, but if you have > the time and are curious I highly recommend giving it a go! > > The alternative to revert that one commit is fewer steps, but may need/yield > more development skill. Installing other packages is more work, but > needs/yields more system integration/administration skill. > > So this is my general recipe for installing packages like that. > > I'd recommend creating a new user when doing this exercise the first time. > Everything is done as that user. Nothing needs to be run as root or with sudo, > yet the finished result will still be runnable by your existing user. > > Let's say the user is called builder. Create and log in as the user. > > The packages will be installed into the directory inst/ under the > home directory of the builder user. > > In order for the build process for later packages to find "earlier" > dependencies run this on every login: (automate by adding it e.g. to .profile) > > export PKG_CONFIG_PATH="${HOME}/inst/lib/pkgconfig" > export PATH="${PATH}:${HOME}/inst/bin" > > Then download source tarballs and unpack in the home dir as needed. > Why not start with guile-2.2.4.tar.gz. Unpack it, then run: > > cd guile-2.2.4 > ./configure --prefix=$HOME/inst > > # so then configure probably complains about some missing dependency. Download > # that tarball and unpack in the home directory, cd in, then run the same above > # configure command, and then: > > make install # note! do not use sudo and do not run as root! > > This installs into the inst/ subdirectory of the builder home dir. > > Iterate until all dependencies are installed. I guess it'll be some 10 > packages, so you'll get good practice. gEDA can also be built this way. > > As long as packages use pkg-config to find their dependencies (I think > all the relevant ones do) and your PKG_CONFIG_PATH environment variable > is set correctly this will work very well. > > Once you're done, back as your normal user, run this: > > export PATH="/home/builder/inst/bin:${PATH}" > > ..and then you'll be able to run whatever was built and installed into > that inst/ directory as the builder user but from your ordinary user. > > Since the exercise is completely contained in the new user's home directory > (because nothing ever runs using sudo nor as root) you can start over at any > time by deleting and re-creating the user or just the home dir. > > > It is not insignificant effort, but it's completely doable and especially > if you want to get something done and not stay blocked by someone else, > who may have limited time to work on the distribution you use, this is > a useful method. > > It does get annoying as the dependency tree grows however, and at > that point it may be worth considering to just consume a more up-to-date > distribution and/or its tooling within a chroot - a very different approach > to the above. > > If anyone wants more documentation about what this actually does I > think the Linux From Scratch documentation is the best I can suggest. > > > Kind regards > > //Peter Peter, Wow! That is a good tutorial. Thanks. I will try it if the patch Roland "published" will not work for some reason. I already have a bare-bones "tester" user I can use for this. Also, since guile 2.0 is located in the standard Slack /usr location, /usr/local is virtually empty, so it should be a good candidate location for the guile 2.2.x package so it doesn't interfere with the 2.0.11 package. I have a lot of experience building dependencies and I can check where the files in the package will be going, so clobbering should not happen unless it does something nasty at runtime. Also, I use my own Slackware BuildScripts, which allow building as user, not as root, in order to verify the package is not doing something ill-behaved. I always build in user mode first and if that passes, then I build and install the package as root. I have been bitten before by ill-behaved packages and since I started building in user mode first, I have not had to rebuild my system because the package reset the mode of everything in /usr to 400. That was fun! As I told Roland, I must admit I have not tried to build 1.10.1 on my system. I should have tried that first, before assuming it would not build due to the dependency mis-match. I will try to get that done today. Thanks Again. Girvin