michael at chameleonoriginals.com
2020-Feb-12 01:36 UTC
[Samba] Provisioning fails - Codebase question
> On 2020-02-11 01:38, Rowland penny via samba wrote: >> On 10/02/2020 22:34, michael at chameleonoriginals.com wrote: >> I should have included this in the last response.? The ExpressoBin v7 >> has a Marvell Armada 3700LP (88F3720) dual core ARM Cortex A53 (arm64) >> CPU, 1GB RAM. >> >> Seeing that Samba 4.7.6 isn't working, I have stepped into building >> Samba from source (first attempt was 4.11.6).? After identifying quite >> a few dependencies not listed on Samba's own page identifying Ubuntu >> 18.04 dependencies, the make process seemed to go fairly well (but >> with quite a few warnings).? Note that I'm giving Samba the benefit of >> the doubt since I'm doing this on a SoC rather than a full PC or >> server. > > Which set of dependencies did you follow ? > On our wiki page: > https://wiki.samba.org/index.php/Package_Dependencies_Required_to_Build_Samba > There are two sets, an older set (that may or may not be correct) or > the ones that you should follow, these are under the heading 'Verified > Package Dependencies'I've been following the whole process outlined at https://wiki.samba.org/index.php/Build_Samba_from_Source. Of course, I've run update/upgrade. I have already downloaded and executed the bootstrap script for Ubuntu 18.04 from the page you mention. After this, ./configure starts with a large number of "NOT FOUND" warnings. I traced those items down and installed them after the bootstrap. Those unmentioned dependencies are included in the script I'm using to create and repeat the process when it fails.>> After nearly two hours of apparent success in the compile process, it >> completely blows up with a huge number of "libsamba-passdb.so: >> <different function names> has been removed - please update major >> version" > No real idea about this, perhaps missing dependencies leading to > something not being built.libsamba-passdb.so is part of the samba source downloaded for the build process. The error implies (to me) that one or more of the source files wasn't properly updated (I'd assume libsamba-passdb.so or files it depends upon) in the source package. But I acknowledge that I'm a total noob at building from source.>> I will be stepping back a few releases for the next attempt, but am >> wondering if you could point me to a "build from source for dummies" >> that doesn't fit the standard mold by speaking as if the user has done >> so for years? > > Not really, I haven't built Samba for sometime, but it was very simple, > install the correct dependencies, run (as a normal user) './configure', > followed by 'make', followed by (as root) 'make install'. This should > lead to all of Samba being installed in /usr/local/sambaEverything is run as root (the only user on a first-boot EspressoBin). This is part of a bash script-package repo I'm building on GitHub, which will allow a total Linux noob to take an EspressoBin straight out of the box and then configure it as one of multiple configurations. The main script which installs Samba asks all of the necessary questions at the very beginning of the process. It then allows the user to step away for a while (two-plus hours in the case of an AD DC, as it appears) as it installs and configures everything via silent install, altering configuration files and debconf-set-selections. The script then assigns the user-entered password for root and creates a non-root sudo user with password. A primary goal is to not have a single point of user interaction between the initial questions and the "all done" notification. One of my goals with this script is to share my love of the EspressoBin and Linux with others. I want this to allow more experienced users (like me) to take advantage of the hardware. I also want to give less-advanced users the ability to poke around with the EspressoBin and Linux without feeling hopeless seeing all of the background information that is essential for installing and configuring a system and software like this. The whole repo is built upon teaching users. The scripts include almost as much commentary as executable code, explaining what nearly every command issued is doing and why it is needed.> > If you want to build Samba packages, then perhaps Louis can help here > (when he gets time), he builds packages for the raspberrypi.I'd love to hear from Louis. I love the RasPi and currently have eight of them performing a number of roles in my home computing environment. I switched to the EspressoBin for this project since it has USB3 support, USB2 support, a SATA3 port, 3 gigabit network ports, with ethernet and USB NOT dramatically limiting each other. Drive <-> network throughput is easily 6x on the EspressoBin vs. the RasPi, while still less than $100 US including SD card. As a Samba file server, it dramatically outperforms my QNAP, which costs more than four times as much.> > Rowland
On 12/02/2020 01:36, michael at chameleonoriginals.com wrote:> > I've been following the whole process outlined at > https://wiki.samba.org/index.php/Build_Samba_from_Source.? Of course, > I've run update/upgrade.? I have already downloaded and executed the > bootstrap script for Ubuntu 18.04 from the page you mention.? After > this, ./configure starts with a large number of "NOT FOUND" warnings.? > I traced those items down and installed them after the bootstrap.? > Those unmentioned dependencies are included in the script I'm using to > create and repeat the process when it fails.Can you supply a list of the extra dependencies you installed, it is my understanding that the packages in the bootstrap scripts are all that is required to build Samba> >>> After nearly two hours of apparent success in the compile process, >>> it completely blows up with a huge number of "libsamba-passdb.so: >>> <different function names> has been removed - please update major >>> version" >> No real idea about this, perhaps missing dependencies leading to >> something not being built. > > libsamba-passdb.so is part of the samba source downloaded for the > build process.? The error implies (to me) that one or more of the > source files wasn't properly updated (I'd assume libsamba-passdb.so or > files it depends upon) in the source package.? But I acknowledge that > I'm a total noob at building from source.My understanding is that you download the Samba tarball, unpack it and cd into the directory created, then, as a normal user, run './configure', then 'make'. If everything finishes successfully, you then run 'make install' as root, and all of Samba is installed into /usr/local/samba. This all depends on the required dependencies being installed. If there is a version of Samba installed, you need to ensure that the Samba binaries etc in /usr/local/samba are used before the distro binaries by altering the environment PATH.> >>> I will be stepping back a few releases for the next attempt, but am >>> wondering if you could point me to a "build from source for dummies" >>> that doesn't fit the standard mold by speaking as if the user has >>> done so for years? >> >> Not really, I haven't built Samba for sometime, but it was very >> simple, install the correct dependencies, run (as a normal user) >> './configure', followed by 'make', followed by (as root) 'make >> install'. This should lead to all of Samba being installed in >> /usr/local/samba > > Everything is run as root (the only user on a first-boot > EspressoBin).? This is part of a bash script-package repo I'm building > on GitHub, which will allow a total Linux noob to take an EspressoBin > straight out of the box and then configure it as one of multiple > configurations.Can you provide a link to your github page ? Rowland
michael at chameleonoriginals.com
2020-Feb-13 01:02 UTC
[Samba] Provisioning fails - Codebase question
On 2020-02-12 07:48, Rowland penny via samba wrote:> On 12/02/2020 01:36, michael at chameleonoriginals.com wrote: >> >> I've been following the whole process outlined at >> https://wiki.samba.org/index.php/Build_Samba_from_Source.? Of course, >> I've run update/upgrade.? I have already downloaded and executed the >> bootstrap script for Ubuntu 18.04 from the page you mention.? After >> this, ./configure starts with a large number of "NOT FOUND" warnings.? >> I traced those items down and installed them after the bootstrap.? >> Those unmentioned dependencies are included in the script I'm using to >> create and repeat the process when it fails. > Can you supply a list of the extra dependencies you installed, it is > my understanding that the packages in the bootstrap scripts are all > that is required to build SambaI need to trace back through my notes, but think I may have misspoken per the most recent strategy. Since this is part of a much larger process, there are several stages where software is installed. Once I started using the bootstrap, I removed the "second set" of dependencies, but believe that a couple of dependencies remain in the pre-bootstrap install list. In version 40+, I admit that the script needs some TLC and reorganizing.>> >>>> After nearly two hours of apparent success in the compile process, >>>> it completely blows up with a huge number of "libsamba-passdb.so: >>>> <different function names> has been removed - please update major >>>> version" >>> No real idea about this, perhaps missing dependencies leading to >>> something not being built. >> >> libsamba-passdb.so is part of the samba source downloaded for the >> build process.? The error implies (to me) that one or more of the >> source files wasn't properly updated (I'd assume libsamba-passdb.so or >> files it depends upon) in the source package.? But I acknowledge that >> I'm a total noob at building from source. > My understanding is that you download the Samba tarball, unpack it and > cd into the directory created, then, as a normal user, run > './configure', then 'make'. If everything finishes successfully, you > then run 'make install' as root, and all of Samba is installed into > /usr/local/samba. This all depends on the required dependencies being > installed. If there is a version of Samba installed, you need to > ensure that the Samba binaries etc in /usr/local/samba are used before > the distro binaries by altering the environment PATH.My script is intended to be the first thing performed on the first boot of a newly imaged EspressoBin. I have several warnings in my repo that ANY initial configuration steps may prevent success. The kernel and OS build scripts in the repo place a single preconfiguration script in the home directory of root, which enables DHCP networking, installs wget, then downloads and executes the larger configuration script (which is still in process). Nothing but the Ubuntu baseline software is installed before running the script (so Samba definitely is not installed). The user does NOTHING before executing the preconfiguration script. You seem to have made a bit of effort to explicitly separate running ./config and make as a NORMAL user, then make install as ROOT. I know that it is a terrible practice to run everything as root, but since root is the only user on a first-boot EspressoBin and I am trying to make this process as efficient as possible, the script runs everything as root. Am I missing something esoteric, where running all as root would induce a failure other than a faux-pas? Remember, this script is meant so that absolute Linux beginners can start working with the EBin and Linux without having to stumble through lots of terminal commands. At the end of the configuration process, the script will assign root a password and add a non-root sudo user, so that the user can start following proper Linux etiquette by NOT logging in as root. "libsamba-passdb.so: symbol <one of ~50 symbols> has been removed - please update major version" is still the 2x4 to the forehead, at step 4200 of (2 hours into) the make process. Bumping down to Samba 4.11.5 gives a cleaner error output, but a failure nonetheless. Samba documentation unfortunately fits the mold of most geek documentation. As I describe it, a new user spends days researching an issue and gets the idea that he might need to use a tiger. He looks up "tiger" in the documentation and it is defined as "a large cat." He looks up "cat" and it says "see tiger." I checked the suggested reference associated with this error (https://wiki.samba.org/index.php/Waf#ABI_Checking). Nowhere in this document does it describe what an ABI is, so there is no way for me to know if I am inadvertently changing one :) I don't know what an ABI is at the moment, but as a programmer, my gut tells me that "symbol xxx has been removed - please update major version" is an alert that one or more source files in the package I downloaded is out of date. With this in mind, I fear that following the recommended step of running ./config with "--abi-check-disable" will still result in a build failure, or worse, embed a landmine in the installation...libsamba-passdb immediately stands out to me as the Samba library's password database, which is no trivial or peripheral matter.>> >>>> I will be stepping back a few releases for the next attempt, but am >>>> wondering if you could point me to a "build from source for dummies" >>>> that doesn't fit the standard mold by speaking as if the user has >>>> done so for years? >>> >>> Not really, I haven't built Samba for sometime, but it was very >>> simple, install the correct dependencies, run (as a normal user) >>> './configure', followed by 'make', followed by (as root) 'make >>> install'. This should lead to all of Samba being installed in >>> /usr/local/samba >> >> Everything is run as root (the only user on a first-boot >> EspressoBin).? This is part of a bash script-package repo I'm building >> on GitHub, which will allow a total Linux noob to take an EspressoBin >> straight out of the box and then configure it as one of multiple >> configurations. > > Can you provide a link to your github page ?https://github.com/ChameleonGeek/ebin-dc preconfig.sh can be copied and pasted into the EspressoBin terminal, or is added to root's home directory in the OS image if the user used the kernel.sh script to build the kernel and OS image. For the EspressoBin to run as a DC, the user MUST build a kernel enabling POSIX ACLs and filesystem security. kernel.sh just makes it easy for noobs. sysconfig.sh is the script which is generating my questions. The line after removing bootstrap.sh was previously used to install the dependencies, and is a merge of the list on https://wiki.samba.org/index.php/Build_Samba_from_Source#Samba_Operating_System_Requirements and the dependencies identified as missing during initial ./configure runs. Since I am actively working on this, the line number in the script (currently line 74) may change, but I'll leave it commented in the script until I get a successful build. Note that the final complete sysconfig script that installs and configures other software (not on GitHub yet) is >1K lines so far. My "ebin-kodi" repo offers the ability to configure the EBin as a Samba Fileserver and/or install other optional software. It is based on Ubuntu 16.04 and uses Ubuntu repos. The ebin-dc will replace ebin-kodi, since it will offer Ubuntu 18.04 and (hopefully) Samba fileserver or Samba AD DC.> > Rowland