Error File name too long Yocto Project - ubuntu-14.04

I'm working on a Yocto project,
Version : poky-jethro
I want to build a version of the distribution poky to Raspberry Pi
Build Configuration:
BB_VERSION = "1.28.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "Ubuntu-14.04"
TARGET_SYS = "arm-poky-linux-gnueabi"
MACHINE = "raspberrypi"
DISTRO = "poky"
DISTRO_VERSION = "2.0.1"
TUNE_FEATURES = "arm armv6 vfp arm1176jzfs callconvention-hard"
TARGET_FPU = "vfp"
meta
meta-yocto = "jethro:3b223f75eec1738fbc913858e8e11c8305e3edcb"
meta-oe
meta-multimedia
meta-networking
meta-python = "jethro:c305ac5d2f5285d5eec8952a4ca7f3b4f89aed96"
meta-qt5 = "jethro:9bfcf79fcd824efb9f2a9bd72ecbedfee1315c96"
meta-raspberrypi = "jethro:f2cff839f52a6e6211337fc45c7c3eabf0fac113"
meta-rpi = "jethro:3ef71867eeb3669da40019469385a437843e8245"
I succeeded in building system on another OS "Ubuntu-14.0403"
but when I tried build system on another version "Ubuntu-14.0404"
This error appears
[Errno 36] File name too long
[Errno 36] File name too long

You probably selected the option when installing Ubuntu to use encrypted home directories, which unfortunately uses a broken file system that can't handle long file names. If this is the case it's best to reinstall Ubuntu without encrypted home directories (or any other distro as they generally do disk encryption properly)

Related

Hyperledger Fabric Nix Derivation

I'm trying to build a nix derivation for the Hyperledger Fabric project.
source root is source
with import <nixpkgs> {};
stdenv.mkDerivation {
name = "hyperledger-fabric";
src = builtins.fetchGit {
url = "https://github.com/hyperledger/fabric";
rev = "d0eaa0646fc83bf17066a82f54b3c99370914a02";
};
depsBuildBuild = [curl which git];
nativeBuildInputs = [go docker];
}
when running nix-build fabric.nix I receive:
nix-build fabric.nix
these derivations will be built:
/nix/store/8z0wlnf8897ng5wkfjja66m31fafsqyp-hyperledger-fabric.drv
building '/nix/store/8z0wlnf8897ng5wkfjja66m31fafsqyp-hyperledger-fabric.drv'...
unpacking sources
unpacking source archive /nix/store/q4mq48i1f7sp7d8f3n8w6q8kp053h9ny-source
source root is source
patching sources
configuring
no configure script, doing nothing
building
build flags: SHELL=/nix/store/n9hba031gjky8hpjgx9fnlaxhidyzxbz-bash-4.4-p23/bin/bash
gotools.mk:22: *** target pattern contains no '%'. Stop.
builder for '/nix/store/8z0wlnf8897ng5wkfjja66m31fafsqyp-hyperledger-fabric.drv' failed with exit code 2
error: build of '/nix/store/8z0wlnf8897ng5wkfjja66m31fafsqyp-hyperledger-fabric.drv' failed
The error points to https://github.com/hyperledger/fabric/blob/release-1.4/gotools.mk#L22
Do I need to set environment variables or what is causing the problem ?
Solved by use of buildGoPackage, see https://github.com/NixOS/nixpkgs/pull/52551

The parameter is incorrect - Error installing.NET Framework 4.6 on Windows Server 2012

I'm trying to install the .NET 4.6 Framework on a Windows Server 2012 (not R2) VM, but I keep getting the error message "The parameter is incorrect" and a link to the log file. Here is the contents of my log file:
OS Version = 6.2.9200, SP = 0.0, Platform 2
OS Description = Win2k12 - x64 Standard Edition
MSI = 5.0.9200.17150
Windows servicing = 6.2.9200.17280
CommandLine = C:\adcbf6016d97e2b6de93ab6a2cf0\\Setup.exe /x86 /x64 /redist
TimeZone = Pacific Daylight Time
Initial LCID = 1033
Using Simultaneous Download and Install mechanism
Operation: Installing
Package Name = Microsoft .NET Framework 4.6 Setup
Package Version = 4.6.00081
User Experience Data Collection Policy: Disabled
Number of applicable items: 6
Exe (C:\adcbf6016d97e2b6de93ab6a2cf0\SetupUtility.exe) succeeded.
Exe (C:\adcbf6016d97e2b6de93ab6a2cf0\SetupUtility.exe) succeeded.
Exe (C:\adcbf6016d97e2b6de93ab6a2cf0\x64-Windows8-RT-KB3045562-x64.cab) failed with 0x57 - The parameter is incorrect. .
Final Result: Installation failed with error code: (0x00000057), "The parameter is incorrect. " (Elapsed time: 0 00:00:22).
The issue seems to be associated with KB3045562, but no other details are given. Does anyone have an idea of what is wrong and how it can be fixed?

How to list the packages installed in a target rootfs built using oe-core?

For documentary purpose,
I am looking for efficient ways to list the packages installed in a target rootfs built using oe-core.
The list of packages installed in your image is stored in the manifest file (besides of build history which is already mentioned).
Content of the manifest file looks like:
alsa-conf cortexa7hf-neon-vfpv4 1.1.2-r0.1
alsa-conf-base cortexa7hf-neon-vfpv4 1.1.2-r0.1
alsa-lib cortexa7hf-neon-vfpv4 1.1.2-r0.1
alsa-states cortexa7hf-neon-vfpv4 0.2.0-r5.1
alsa-utils-alsactl cortexa7hf-neon-vfpv4 1.1.2-r0.5
alsa-utils-alsamixer cortexa7hf-neon-vfpv4 1.1.2-r0.5
...
The list consists of the package name, architecture and a version.
That manifest is located in the deploy directory (i.e. deploy/images/${MACHINE}/). Here as an example of the directory listing (there are target images and the manifest file)
example-image-genericx86.ext3
example-image-genericx86.manifest
example-image-genericx86.tar.bz2
USER_CLASSES ?= "buildname image-mklibs image-prelink buildhistory"
ERROR: Error executing a python function in /opt/apps_proc/oe-core/meta/recipes-core/eglibc/eglibc_2.17.bb:
The stack trace of python calls that resulted in this exception/failure was:
File: 'buildhistory_emit_pkghistory', lineno: 216, function:
0212:
0213: write_pkghistory(pkginfo, d)
0214:
0215:
***0216:buildhistory_emit_pkghistory(d)
0217:
File: 'buildhistory_emit_pkghistory', lineno: 207, function: buildhistory_emit_pkghistory
0203: filelist = []
0204: pkginfo.size = 0
0205: for f in pkgfiles[pkg]:
0206: relpth = os.path.relpath(f, pkgdestpkg)
***0207: fstat = os.lstat(f)
0208: pkginfo.size += fstat.st_size
0209: filelist.append(os.sep + relpth)
0210: filelist.sort()
0211: pkginfo.filelist = " ".join(filelist)
Exception: OSError: [Errno 2] No such file or directory: '/opt/apps_proc/oe-core/build/tmp-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/eglibc/2.17-r3/packages-split/eglibc-thread-db/lib/libthread_db-1.0.so'
ERROR: Function failed: buildhistory_emit_pkghistory
Add build history to your USER_CLASSES variable in local.conf
USER_CLASSES ?= "buildhistory"
After you rerun the build look in build/buildhistory for more info.
You may need to force rebuilds to properly populate the directory.

Publish Debian package to Artifactory using sbt

I am using sbt-native-packager to create and publish Debian packages for my Scala Play 2 project to an Artifactory repository.
So far, I am able to generate the .deb package, but I fail to get it published to the artifactory URL. The only artifact that gets published is a debian .changes file, but not the actual .deb file.
I recently upgraded to Play 2.3.2 which uses sbt 0.13.5 and sbt-native-packager 0.7.4. This might be related, as publishing of a .deb file to the artifactory did used to work with sbt-native-packager 0.7.1.
I have tried hard to understand the problem and did figure out that with the latest version I had to add debianChangelog in Debian := Some(file("src/debian/changelog")) to my .sbt file, but I am stuck now.
My problem is simply that no .deb file is published when I do debian:publish. Only the .changes file gets published:
[info] published atk to http:...:8081/artifactory/atk-snapshots/atk/atk/1.0-SNAPSHOT/atk-1.0-SNAPSHOT.changes
Does someone know what I should do, to fix my publishing problem?
I've the following setup as imports and versions in the project's .sbt file:
import com.typesafe.sbt.SbtNativePackager._
import com.typesafe.sbt.SbtNativePackager.NativePackagerKeys._
import com.typesafe.sbt.packager.archetypes.ServerLoader.SystemV
import NativePackagerKeys._
name := """atk"""
scalacOptions += "-target:jvm-1.7"
javacOptions ++= Seq("-source", "1.7", "-target", "1.7")
version := "1.1-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.1"
And for the packaging part:
// Packaging info
debianChangelog in Debian := Some(file("src/debian/changelog"))
serverLoading in Debian := SystemV
packageDescription in Debian := "Parlis Elvis Adapter"
packageSummary in Debian := "Parlis Elvis Adapter"
maintainer in Debian := "Daan Hoogenboezem"
daemonUser in Linux := "ape"
daemonGroup in Linux := "ape"
sourceDirectory in Debian <<= (sourceDirectory) apply (_ / "debian")
mappings in Universal <+= (packageBin in Compile, sourceDirectory ) map { (_, src) =>
// we are using the reference.conf as default application.conf
// the user can override settings here
val conf = src / "linux" / "atk" / "startup.conf"
conf -> "etc/atk/startup.conf"
}
linuxPackageMappings in Debian <+= (name in Universal, sourceDirectory in Debian) map { (name, dir) =>
(packageMapping(
(dir / "etc/changelog") -> "/usr/share/doc/atk/changelog.gz"
) withUser "root" withGroup "root" withPerms "0644" gzipped) asDocs()
}
defaultLinuxLogsLocation in Linux := "/var/log/atk"
deploymentSettings
// Publishing
publishTo := {
val artifactory = "http://...:8081/artifactory/"
if (version.value.trim.endsWith("SNAPSHOT"))
Some("snapshots" at artifactory + "atk-snapshots")
else
Some("releases" at artifactory + "atk-releases")
}
publish in Debian <<= (publish in Debian).triggeredBy(publish in Compile)
A colleague of mine showed me the fix, which is documented here: http://www.scala-sbt.org/sbt-native-packager/DetailedTopics/deployment.html?highlight=publish
In short, the following statement needs to be added to the build.sbt:
makeDeploymentSettings(Debian, packageBin in Debian, "deb")

Difference between Windows XP and Win 7 in DLL loading with manifest file

I am using a .Net 4 component that creates an Activation Context (via interop) using a .manifest file in a sub-directory.
AppDir
- App.exe (.Net 4)
- App.dll (.Net 4)
---- SubDir
-------- lib.dll (Native x86)
------- lib.manifest
activationContext = new NativeMethods.ACTCTX();
activationContext.cbSize = Marshal.SizeOf(typeof(NativeMethods.ACTCTX));
activationContext.lpSource = this.ManifestFileName;
activationContext.dwFlags = 4;
activationContext.lpAssemblyDirectory = new System.IO.FileInfo(this.ManifestFileName).Directory.FullName;
contextHandle = NativeMethods.CreateActCtx(ref activationContext);
int winError = Marshal.GetLastWin32Error();
Current directory = AppDir
Manifest path = .\SubDir\lib.manifest
In Win 7 SubDir/lib.dll is loaded and executes fine.
In Win XP manifest file is loaded fine but system then tries to load AppDir/lib.dll, not AppDir/SubDir/lib.dll
I've verified this via ProcMon.
If I copy everything from SubDir into AppDir and point to AppDir/lib.manifest, it works fine in XP i.e. current directory.
What do I need to do to make XP load lib.dll in SubDir?

Resources