[SOLVED] makepkg leaves empty source dir

Hello, I made this package https://aur.archlinux.org/packages/i8kutils-bzr/
Works as expected, the only problem is that after running makepkg (with or without the --clean flag) there is always an empty "i8kutils-bzr" directory in the package root.
The culprit PKGBUILD line seems to be the following. The empty dir name changes along with $pkgname.
source=("$pkgname"::'bzr+https://launchpad.net/i8kutils/trunk'
I can't find how to stop makepkg from creating that empty dir.
The sources are inside the 'src' directory, that dir may be used for cloning? But why does makepkg keep it?
Last edited by adirat (2014-07-15 15:41:38)

I can see the sources only in pkg-root/src/$pkgname, the pkg-root/$pkgname is always empty. It is created when bzr pulls the sources, though
if I change the source line to the following, makepkg has the same behavior only the empty dir name is "trunk".
So you have an empty pkg-root/trunk and source present in pkg-root/src/trunk
source=('bzr+https://launchpad.net/i8kutils/trunk'
Edit: And on every build, bzr re-downloads all the sources
Later edit:
core/pacman 4.1.2-6 (base base-devel) [installed]
Last edited by adirat (2014-07-15 15:21:47)

Similar Messages

  • [SOLVED] makepkg error: Why is it looking for '.part' files?

    I've been seeing the following problem with every package I try to build with makepkg.  The download works, but then makepkg complains that it can't find the source file:
    ==> Making package: android-sdk r20-2 (Fri Jun 29 11:01:35 CDT 2012)
    ==> Checking runtime dependencies...
    ==> Checking buildtime dependencies...
    ==> Retrieving Sources...
    -> Downloading android-sdk_r20-linux.tgz...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 78.7M 100 78.7M 0 0 1640k 0 0:00:49 0:00:49 --:--:-- 2166k
    mv: cannot stat ‘/usr/local/src/android-sdk_r20-linux.tgz.part’: No such file or directory
    ==> ERROR: Failure while downloading android-sdk_r20-linux.tgz
    Aborting...
    Why is it looking for the .part file, instead of the .tgz file?  When I run makepkg again, without doing anything in between, it finds the .tgz file and goes on its merry way.
    I'm using curl, and I haven't tried wget.  Judging by my unscientific sample of forum posts it looks like wget is the de facto standard, so this may not be on anyone else's radar.
    Here's my makepkg.conf:
    # /etc/makepkg.conf
    # SOURCE ACQUISITION
    #-- The download utilities that makepkg should use to acquire sources
    # Format: 'protocol::agent'
    DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
    'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
    'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
    'rsync::/usr/bin/rsync -z %u %o'
    'scp::/usr/bin/scp -C %u %o')
    # Other common tools:
    # /usr/bin/snarf
    # /usr/bin/lftpget -c
    # /usr/bin/wget
    # ARCHITECTURE, COMPILE FLAGS
    CARCH="x86_64"
    CHOST="x86_64-unknown-linux-gnu"
    #-- Compiler and Linker Flags
    # -march (or -mcpu) builds exclusively for an architecture
    # -mtune optimizes for an architecture, but builds for whole processor family
    CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
    CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
    LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro"
    #-- Make Flags: change this for DistCC/SMP systems
    MAKEFLAGS="-j4"
    # BUILD ENVIRONMENT
    # Defaults: BUILDENV=(fakeroot !distcc color !ccache check !sign)
    # A negated environment option will do the opposite of the comments below.
    #-- fakeroot: Allow building packages as a non-root user
    #-- distcc: Use the Distributed C/C++/ObjC compiler
    #-- color: Colorize output messages
    #-- ccache: Use ccache to cache compilation
    #-- check: Run the check() function if present in the PKGBUILD
    #-- sign: Generate PGP signature file
    BUILDENV=(fakeroot !distcc color !ccache check !sign)
    #-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
    #-- specify a space-delimited list of hosts running in the DistCC cluster.
    #DISTCC_HOSTS=""
    #-- Specify a directory for package building.
    #BUILDDIR=/tmp/makepkg
    # GLOBAL PACKAGE OPTIONS
    # These are default values for the options=() settings
    # Default: OPTIONS=(strip docs libtool emptydirs zipman purge !upx)
    # A negated option will do the opposite of the comments below.
    #-- strip: Strip symbols from binaries/libraries
    #-- docs: Save doc directories specified by DOC_DIRS
    #-- libtool: Leave libtool (.la) files in packages
    #-- emptydirs: Leave empty directories in packages
    #-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
    #-- purge: Remove files specified by PURGE_TARGETS
    #-- upx: Compress binary executable files using UPX
    OPTIONS=(strip docs !libtool emptydirs zipman purge !upx)
    #-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
    INTEGRITY_CHECK=(md5)
    #-- Options to be used when stripping binaries. See `man strip' for details.
    STRIP_BINARIES="--strip-all"
    #-- Options to be used when stripping shared libraries. See `man strip' for details.
    STRIP_SHARED="--strip-unneeded"
    #-- Options to be used when stripping static libraries. See `man strip' for details.
    STRIP_STATIC="--strip-debug"
    #-- Manual (man and info) directories to compress (if zipman is specified)
    MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
    #-- Doc directories to remove (if !docs is specified)
    DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
    #-- Files to be removed from all packages (if purge is specified)
    PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
    # PACKAGE OUTPUT
    # Default: put built package and cached source in build directory
    #-- Destination: specify a fixed directory where all packages will be placed
    PKGDEST=/usr/local/pkgs
    #-- Source cache: specify a fixed directory where source files will be cached
    SRCDEST=/usr/local/src
    #-- Source packages: specify a fixed directory where all src packages will be placed
    #SRCPKGDEST=/home/srcpackages
    #-- Packager: name/email of the person or organization building packages
    PACKAGER="Whitney Marshall <[email protected]>"
    #-- Specify a key to use for package signing
    GPGKEY="E4FB694E"
    # EXTENSION DEFAULTS
    # WARNING: Do NOT modify these variables unless you know what you are
    # doing.
    PKGEXT='.pkg.tar.xz'
    SRCEXT='.src.tar.gz'
    # vim: set ft=sh ts=2 sw=2 et:
    Last edited by wmarshall (2012-07-02 15:39:16)

    It looks like this code is the culprit.  I don't have time to dig into it right now, but presumably this works with wget.  I would have thought any cmdline downloader would manage renaming the .part file itself...?
    makepkg, lines 395-417 (pacman 4.0.3-2):
    395 # replace %o by the temporary dlfile if it exists
    396 if [[ $dlcmd = *%o* ]]; then
    397 dlcmd=${dlcmd//\%o/\"$file.part\"}
    398 dlfile="$file.part"
    399 fi
    414 # rename the temporary download file to the final destination
    415 if [[ $dlfile != "$file" ]]; then
    416 mv -f "$SRCDEST/$dlfile" "$SRCDEST/$file"
    417 fi

  • [Solved] Makepkg aborting after last pacman update

    Hi all,
    firing makepkg yields:
    $ makepkg
    ==> ERROR: An unknown error has occurred. Exiting...
    And therefore this happens also when I try building packages of the AUR with yaourt.
    The problem showed up with last pacman update.
    What I am I doing wrong?
    Thanks for you patience,
    Davide
    Last edited by flakedave (2010-06-23 22:46:39)

    Yeah, version and help are fine.
    $ cat /etc/makepkg.conf
    # /etc/makepkg.conf
    # SOURCE ACQUISITION
    #-- The download utilities that makepkg should use to acquire sources
    # Format: 'protocol::agent'
    DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
    'http::/usr/bin/wget -c -t 3 --waitretry=3 -O %o %u'
    'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u'
    'rsync::/usr/bin/rsync -z %u %o'
    'scp::/usr/bin/scp -C %u %o')
    # Other common tools:
    # /usr/bin/snarf
    # /usr/bin/lftpget -c
    # /usr/bin/curl
    # ARCHITECTURE, COMPILE FLAGS
    CARCH="x86_64"
    CHOST="x86_64-unknown-linux-gnu"
    #-- Exclusive: will only run on x86_64
    # -march (or -mcpu) builds exclusively for an architecture
    # -mtune optimizes for an architecture, but builds for whole processor family
    CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
    CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
    LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed"
    #-- Make Flags: change this for DistCC/SMP systems
    #MAKEFLAGS="-j2"
    # BUILD ENVIRONMENT
    # Defaults: BUILDENV=(fakeroot !distcc color !ccache)
    # A negated environment option will do the opposite of the comments below.
    #-- fakeroot: Allow building packages as a non-root user
    #-- distcc: Use the Distributed C/C++/ObjC compiler
    #-- color: Colorize output messages
    #-- ccache: Use ccache to cache compilation
    BUILDENV=(fakeroot !distcc color !ccache)
    #-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
    #-- specify a space-delimited list of hosts running in the DistCC cluster.
    #DISTCC_HOSTS=""
    # GLOBAL PACKAGE OPTIONS
    # These are default values for the options=() settings
    # Default: OPTIONS=(strip docs libtool emptydirs zipman purge)
    # A negated option will do the opposite of the comments below.
    #-- strip: Strip symbols from binaries/libraries in STRIP_DIRS
    #-- docs: Save doc directories specified by DOC_DIRS
    #-- libtool: Leave libtool (.la) files in packages
    #-- emptydirs: Leave empty directories in packages
    #-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
    #-- purge: Remove files specified by PURGE_TARGETS
    OPTIONS=(strip docs libtool emptydirs zipman purge)
    #-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
    INTEGRITY_CHECK=(md5)
    #-- Options to be used when stripping binaries. See `man strip' for details.
    STRIP_BINARIES="--strip-all"
    #-- Options to be used when stripping shared libraries. See `man strip' for details.
    STRIP_SHARED="--strip-unneeded"
    #-- Options to be used when stripping static libraries. See `man strip' for details.
    STRIP_STATIC="--strip-debug"
    #-- Manual (man and info) directories to compress (if zipman is specified)
    MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
    #-- Doc directories to remove (if !docs is specified)
    DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
    #-- Directories to be searched for the strip option (if strip is specified)
    STRIP_DIRS=(bin lib sbin usr/{bin,lib,sbin,local/{bin,lib,sbin}} opt/*/{bin,lib,sbin})
    #-- Files to be removed from all packages (if purge is specified)
    PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
    # PACKAGE OUTPUT
    # Default: put built package and cached source in build directory
    #-- Destination: specify a fixed directory where all packages will be placed
    #PKGDEST=/home/packages
    #-- Source cache: specify a fixed directory where source files will be cached
    #SRCDEST=/home/sources
    #-- Source packages: specify a fixed directory where all src packages will be placed
    #SRCPKGDEST=/home/srcpackages
    #-- Packager: name/email of the person or organization building packages
    #PACKAGER="John Doe <[email protected]>"
    # EXTENSION DEFAULTS
    # WARNING: Do NOT modify these variables unless you know what you are
    # doing.
    PKGEXT='.pkg.tar.xz'
    SRCEXT='.src.tar.gz'
    # vim: set ft=sh ts=2 sw=2 et:

  • [Solved] makepkg warning about unknown key

    Hello,
    when compiling cower 7-1 a strange warning was given by makepkg.
    ==> Verifying source file signatures with gpg...
    cower-7.tar.gz ... FAILED (unknown public key 1EB2638FF56C0C53)
    ==> WARNING: Warnings have occurred while verifying the signatures.
    Please make sure you really trust them.
    EDIT: The warning is shown due to signature files attached to the package. It can be solved for packages made by archlinux devs:
    - run as user
    "# gpg --list-keys"
      in order to create a gpg database for your current user, if it is not present already.
    - add
    "keyring /etc/pacman.d/gnupg/pubring.gpg"
      to the end of
    ~/.gnupg/gpg.conf.
    WorMzy wrote:Alternatively, run makepkg with --skippgpcheck to stop makepkg trying to validate the file with it's .sig file.
    Last edited by teateawhy (2012-11-06 16:22:30)

    teateawhy wrote:The error will occur only for aur Packagebuilds created by arch linux developers, because of present keys.
    Mmm, not quite. You'll have the same problem with any PKGBUILD that has an unknown signature, not just AUR packages by the Arch devs.
    The warning (it's not really an error) is coming up because the source tarball's signature is included in the source array:
    source=("https://github.com/downloads/falconindy/$pkgname/$pkgname-$pkgver.tar.gz"{,.sig})
    That's a lazyman's way of writing:
    source=("https://github.com/downloads/falconindy/$pkgname/$pkgname-$pkgver.tar.gz"
    "https://github.com/downloads/falconindy/$pkgname/$pkgname-$pkgver.tar.gz.sig")
    makepkg is smart enough to know that .sig files are used to check the authenticy and integrity of it's namesake file, and so automagically runs a gpg check for you. At this point, since you're running makepkg as yourself, gpg is run as you, and uses your ~/.gnupg/pubring.gpg, which I assume doesn't have Dave's key in it. ('gpg --list-keys' would no doubt confirm that).
    A quick fix for Arch dev packages would be to add "keyring /etc/pacman.d/gnupg/pubring.gpg" to the end of ~/.gnupg/gpg.conf.
    Alternatively, run makepkg with --skippgpcheck to stop makepkg trying to validate the file with it's .sig file.

  • [SOLVED] `makepkg` doesn't merge fetched git changes

    Hey there,
    I'm using this PKGBUILD:
    # Maintainer: Dmitry Korzhevin <dkorzhevin AT gmail DOT com>
    # Contributor: Mark Foxwell <[email protected]>
    # Contributor: Licia Todd <tigrmesh at aol dot com>
    # Contributor: Tim Zebulla <amon at faumrahrer dot de>
    # Contributor: Richard Schwab <mail NOSPAM w.tf-w.tf>
    pkgname=weechat-git
    pkgver=0.4.1.rc2.9.gb045a35
    pkgrel=1
    epoch=1
    pkgdesc="Fast, light & extensible IRC client (curses UI)"
    arch=('i686' 'x86_64')
    url="http://www.weechat.org/"
    license=('GPL3')
    depends=('curl' 'gnutls' 'ncurses')
    makedepends=('git' 'aspell' 'cmake' 'lua' 'perl' 'python2' 'ruby' 'tcl')
    optdepends=('aspell' 'lua' 'perl' 'python2' 'ruby' 'tcl')
    provides=('weechat')
    conflicts=('weechat')
    options=(!libtool !strip debug)
    source=(git://git.sv.gnu.org/weechat.git)
    md5sums=(SKIP)
    pkgver() {
    cd weechat
    git describe | sed "s/^v//; s/-/./g"
    build() {
    cd weechat
    mkdir build
    cd build
    cmake .. -DPREFIX=/usr \
    -DPYTHON_EXECUTABLE=/usr/bin/python2 \
    -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so
    package() {
    cd weechat/build
    make DESTDIR="$pkgdir/" install
    When I run `makepkg` and there are updates it fetches the updates, then tells me I'd already have the newest version.
    When I manually check out ~/build/weechat-git-custom/weechat (this is the git repo), then I see that the master branch doesn't have anything new since I cloned it.
    When I `git checkout origin/master` I can see all the changes with `git log` because they were fetched.
    Manually doing `git pull` in the repo merges the updates, then I can just do `makepkg` in the package dir and it builds it correctly.
    TL;DR: `makepkg` fetches git updates but it doesn't merge them.
    Last edited by Nothing4You (2013-05-22 00:04:48)

    Nothing4You wrote:If by renaming you mean using weechat-git-custom as dir it's because it's not the weechat-git package from AUR and I usually keep the original AUR PKGBUILDs there, and I will most likely switch to the AUR package again when there were some changes done to that PKGBUILD.
    No, that isn't what I meant. Your source array is declared as "weechat::git://git.sv.gnu.org/weechat.git". This doesn't do anything because the repo will already be called 'weechat' in your SRCDEST.

  • Getting Error in java mapping: Parsing empty source. Root element expected!

    Hi Experts,
       I am using java mapping for schema validation of input message. I have followed all the standard procedures and implemented the java class in the interface mapping.
    My interface mapping is like this:
    OrderData --->Java Class ---SchemaValidate
                         Mesg Map ---OrderData_to_BAP --->BAPI Msg
    So first I want to validate the schema of the input message. If the input message is invalid then XI should throw an exception. Then I use the actual message mapping to map the input order data to the BAPI input parameters.
    In the java code I am using xerces parser.
    The java code works fine when I run it as a standalone application.
    The interface mapping also works fine if I don't include the java mapping. Ofcourse schema validation does not happen.
    But when I test the interface mapping by including the java mapping then I am getting the error:
    Call method execute of the application Java mapping SchemaValidate
    Java mapping SchemaValidate completed. (execute() of SchemaValidate
    com.sap.aii.utilxi.misc.api.BaseRuntimeException: Parsing an empty source. Root element expected!
    What am I doing wrong? Why it is not getting the root element?
    My Java code is as follows:
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.StreamTransformationException;
    import java.io.*;
    import java.util.Map;
    import javax.xml.parsers.*;
    import org.xml.sax.helpers.*;
    import org.xml.sax.*;
    import org.apache.xerces.jaxp.*;
    Sample mapper for SAP-XI
    @author Gopal
    public class SchemaValidate implements StreamTransformation {
        //Constants when using XML Schema for SAX parsing.
         static final String JAXP_SCHEMA_LANGUAGE =
         "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
         static final String W3C_XML_SCHEMA =
         "http://www.w3.org/2001/XMLSchema";
         static final String JAXP_SCHEMA_SOURCE =
         "http://java.sun.com/xml/jaxp/properties/schemaSource";
    Injection of mapping parameters
    from integration engine
    @param map Map with configuration data
        public void setParameter(Map map) {
    Mapping implementation
    @param inputStream Input data from integration engine
    @param outputStream Output data to integration engine
        public void execute(InputStream inputStream,
                            OutputStream outputStream)
          throws StreamTransformationException {
            try {
                  // obtain an object of class javax.xml.parsers.SAXParser,
                  SAXParserFactory spf = SAXParserFactoryImpl.newInstance();
                  spf.setNamespaceAware(true);
                  spf.setValidating(true);
                  SAXParser sp = spf.newSAXParser();
                  // setup the schema file
                  sp.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
                  sp.setProperty(JAXP_SCHEMA_SOURCE, new File("IOReqMsgSchema.xsd"));
                  //parse the input xml using the given schema
                  sp.parse(inputStream, new ParseErrorHandler());
            catch(SAXException se) {
              se.printStackTrace();
            catch ( Exception e ) {
              throw new StreamTransformationException( e.getMessage() );
    My input message is :
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:OrderCreate_request xmlns:ns0="mynamespace">
       <ORDER>HTEST1234567</ORDER>
       <ORDER_TYPE>z001</ORDER_TYPE>
       <ORDER_NAME>Test Order</ORDER_NAME>
       <CO_AREA>INTC</CO_AREA>
       <CCTR_POSTED>1234567890888888888</CCTR_POSTED>
       <CURRENCY>USD</CURRENCY>
       <PERSON_RESP>12345679</PERSON_RESP>
    </ns0:OrderCreate_request>
    Kindly help! please this is urgent!!!!!!
    Thanks
    Gopal
    Edited by: gopalkrishna baliga on Feb 28, 2008 9:34 AM

    Hi Stefan,
       I did the code changes to return output stream and the java code works perfectly in standalone mode in my PC.
       But when I use the same in the Java mapping with XI then It throws an error "Getting Error in java mapping: Parsing empty source. Root element expected!".
    My XI J2EE server has JDK1.4.3.11.
    Is there any limitation of using SAX parser in XI? If Yes, then which parser should be used for schema validation in XI?
    I have included the XSD file for schema validation along with class files in the .jar file. This jar file is then imported in XI repository. Is the XI engine not able to read the XSD file?
    Do I have to handle reading XSD file differently? Any suggession how?
    Is this parser error due to some security access?
    Kindly help me! I have been struggling with this problem since 2 weeks. I will be greatfull to you if you can help me.
    Thanks
    Gopal

  • Parsing an empty source. Root element expected! error in fcc using MTB

    Hi experts,
    While converting a flat file to xml using MTB , i'm facing this error in mapping.
    " com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping  .....
    Parsing an empty source. Root element expected!   "
    Whereas the audit log in file channel - Communication channel monitoring shows that , the payload transformed but i'm unable to view the source message.
    Please let me know the resolution if anyone has faced the same issue..
    thanks,
    younus

    hi,
    you want to convert yor receivee structure or sender??
    see these links about FCC to see how they do it.
    File Receiver with Content Conversion
    /people/arpit.seth/blog/2005/06/02/file-receiver-with-content-conversion
    /people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
    /people/jeyakumar.muthu2/blog/2005/11/29/file-content-conversion-for-unequal-number-of-columns
    Type of separatos
    http://help.sap.com/saphelp_nw04/helpdata/en/05/7fdf3d0eb8af5ee10000000a114084/frameset.htm
    Troubleshooting the File Adapter
    /people/shabarish.vijayakumar/blog/2007/07/26/troubleshooting-the-file-adapter-last-updated-on-02-july10
    Converting File Content in a Sender Adapter
    http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/frameset.htm
    /people/michal.krawczyk2/blog/2004/12/15/how-to-send-a-flat-file-with-fixed-lengths-to-xi-30-using-a-central-file-adapter
    Converting File Content in the Receiver Adapter
    http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/frameset.htm
    Thanks
    Rodrigo
    PD: Reward points if useful
    Edited by: Rodrigo Pertierra on May 14, 2008 12:11 PM

  • B1if Error: Parsing an empty source. Root element expected!

    Dear experts,
    i have created a scenario from SAP PI to SAP B1if.
    Under On package i have created multiple scenarios and all were working succesfully.
    But i added another scenario now and tested its giving the below error.
    infact now , when i am testing the scenarios (which were working succesfully before), all of them are giving the same error as below:
    SAP B1iP detected an error:
    Emitted HTTP-Code
    500 - Internal Server Error
    Internal Reason
    Parsing an empty source. Root element expected!
    Full Internal Error Message
    com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: com.sap.b1i.bizprocessor.BizProcException: BPE001 Nested exception: com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: com.sap.b1i.bizprocessor.BizProcException: BPE001 Nested exception: com.sap.b1i.utilities.UtilException: UTE001 Nested exception: javax.xml.transform.TransformerConfigurationException: Could not load stylesheet. java.io.IOException: Parsing an empty source. Root element expected!
    i am givng the correct input message with root nodes etc but still i am getting the error.
    Please help!!
    Thanks.

    hi,
    you want to convert yor receivee structure or sender??
    see these links about FCC to see how they do it.
    File Receiver with Content Conversion
    /people/arpit.seth/blog/2005/06/02/file-receiver-with-content-conversion
    /people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
    /people/jeyakumar.muthu2/blog/2005/11/29/file-content-conversion-for-unequal-number-of-columns
    Type of separatos
    http://help.sap.com/saphelp_nw04/helpdata/en/05/7fdf3d0eb8af5ee10000000a114084/frameset.htm
    Troubleshooting the File Adapter
    /people/shabarish.vijayakumar/blog/2007/07/26/troubleshooting-the-file-adapter-last-updated-on-02-july10
    Converting File Content in a Sender Adapter
    http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/frameset.htm
    /people/michal.krawczyk2/blog/2004/12/15/how-to-send-a-flat-file-with-fixed-lengths-to-xi-30-using-a-central-file-adapter
    Converting File Content in the Receiver Adapter
    http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/frameset.htm
    Thanks
    Rodrigo
    PD: Reward points if useful
    Edited by: Rodrigo Pertierra on May 14, 2008 12:11 PM

  • Working alternating with iPhoto and FCE tgrying to import pictures from iPhoto into FCE suddenly all my 22300 pictures disappeared leaving empty frames. Does somebody know where the pictures could have gone and how can I get them back into iPhoto? Lothar

    Working alternating with iPhoto and FCE tgrying to import pictures from iPhoto into FCE suddenly all my 22300 pictures disappeared leaving empty frames. Does somebody know where the pictures could have gone and how can I get them back into iPhoto? Lothar

    The ! turns up when iPhoto loses the connection between the thumbnail in the iPhoto Window and the file it represents.
    Option 1
    Back Up and try rebuild the library: hold down the command and option (or alt) keys while launching iPhoto. Use the resulting dialogue to rebuild. Choose to Rebuild iPhoto Library Database from automatic backup.
    If that fails:
    Option 2
    Download iPhoto Library Manager and use its rebuild function. This will create a new library based on data in the albumdata.xml file. Not everything will be brought over - no slideshows, books or calendars, for instance - but it should get all your albums and keywords back.
    Because this process creates an entirely new library and leaves your old one untouched, it is non-destructive, and if you're not happy with the results you can simply return to your old one. .
    Regards
    TD

  • Reg "Parsing an empty source. Root element expected!"

    Hi techies,
    This is in regard of error generated while testing my configuration in configuration window.
    Till yesterday the senario is working for JDBC to JDBC.
    It is giving this error.
    "Root Cause: com.sap.aii.utilxi.misc.api.BaseRuntimeException: Parsing an empty source. Root element expected! at com.sap.aii.mappingtool.tf3.rt.xparser.MTSaxHandler.run(MTSaxHandler.java:157) at com.sap.aii.mappingtool.tf3.rt.xparser.XParser.run(XParser.java:73) at java.lang.Thread.run(Thread.java:534) Root Cause: java.io.IOException: Parsing an empty source. Root element expected!"
    My mapping and interface mapping is working fine when I tested them in Design window.
    Please suggest me how to go.
    Thanks In advance.
    Regards,
    Kiran

    Hi Hareen,
    Thanks for your reply.
    While Testing the scenario both at message mapping and interface mapping tests are working fine.
    even XML conversion is also fine at design end.
    only while testing in config window it is giving the error.
    Sender Interface mapping Test
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:mt_sender xmlns:ns0="http://jdbc_2_jdbc">
       <row>
          <NAME>Kiran</NAME>
          <ID>123456</ID>
          <ADDRESS>address</ADDRESS>
          <FLAG/>
       </row>
    </ns0:mt_sender>
    Reciver Interface mapping after test
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:mt_receiver xmlns:ns0="http://jdbc_2_jdbc"><Statement><dbTableName action="INSERT"><table>LIBRARY</table><access><LIBID>123456</LIBID><LIBNAME>Kiran</LIBNAME><LIBADDRESS>address</LIBADDRESS></access></dbTableName></Statement></ns0:mt_receiver>
    Upto this level it is working fine. Is there anything I have to refresh to carry out my editing to configuration window.
    Thanks in advance.
    Regards,
    Kiran

  • How to create empty text file on target system for empty source text file

    Hi All,
    I have an issue in handling empty file in the Text (FCC) to Text (FCC) file scenario. Interface picks text file and delivers on target system as text file. I have used FCC in both sender and receiver CCs.
    Interface is working fine if the source file is not empty. If the source text file is empty (zero Bytes), interface has to delivery an empty text file on target system.  I have setup empty file handling options correctly on both CCs.
    But when I tried with an empty file I am getting the error message 'Parsing an empty source. Root element expected!'.
    Could you please suggest me what I need to do to create an empty text file on target system from empty source text file?
    Thanks in Advance....
    Regards
    Sreeni

    >
    Sreenivasulu Reddy jonnavarapu wrote:
    > Hi All,
    >
    > I have an issue in handling empty file in the Text (FCC) to Text (FCC) file scenario. Interface picks text file and delivers on target system as text file. I have used FCC in both sender and receiver CCs.
    > Interface is working fine if the source file is not empty. If the source text file is empty (zero Bytes), interface has to delivery an empty text file on target system.  I have setup empty file handling options correctly on both CCs.
    >
    > But when I tried with an empty file I am getting the error message 'Parsing an empty source. Root element expected!'.
    >
    > Could you please suggest me what I need to do to create an empty text file on target system from empty source text file?
    >
    > Thanks in Advance....
    >
    > Regards
    > Sreeni
    the problem is that when there is an empty file there is no XML for parsing available. Hence in case you are using a mapping it will fail.
    What ideally you should do is to have a module that will check if the file is empty and if so write out an XML as you want with no values in the content/fields.
    Or the next choice would be to have a java mapping to handle this requirement. I guess that on an empty file the java mapping will go to an exception which you can handle to write out your logic/processing

  • Reg RFC to JDBC "Parsing an empty source. Root element expected!"

    Hi techies,
    This in regard of RFC to JDBC.
    in integration test iam getting the error.
    "com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_mm_mapping_: Parsing an empty source. Root element expected!"
    My Mapping and interface mapping tests are working fine, while testing the configuration Iam getting this error.
    My interface Mapping test result is as mentioned below
    Sender Interface (RFC Sender)
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:ZTEST_PI_ZHRT002 xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
       <ZHRT002>
          <item>
             <MANDT/>
             <PERNR>1234</PERNR>
             <PERID>kiran</PERID>
             <SHOPN>test</SHOPN>
          </item>
       </ZHRT002>
    </ns0:ZTEST_PI_ZHRT002>
    Reciver Interface after test
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:mt_receiver xmlns:ns1="urn:sap-com:RFC2JDBC"><Statement><dbTableName action="INSERT"><table>ZHRT002</table><access><PERNR>1234</PERNR><PERID>kiran</PERID><SHOPN>test</SHOPN><access></dbTableName></Statement></ns1:mt_receiver>
    My message Mapping is as mentioned below
    ZTEST_PI_ZHRT002 is my BAPI which is mapped to mt_receiver.
    ZHRT002 it my table which is mapped to Statement of reciver
    item of sender is floating ( not mapped to any reciver node)
    subsequently feilds are mapped.
    Reciver action is atribute (required) calling INSERT
    table is "ZHRT002" (constant) (1...1)
    This is my scenario.
    Thanks in advance,
    Regards,
    Kiran

    This is RFC to JDBC. Is it Synchronous or Asynchronous?
    Some tips:
    Create JDBC target data structure something similar to this
    <StatementName>
    <dbTableName action=u201DINSERTu201D>
    <table>realDbTableName</table>
    <access>
    <col1>val1</col1>
    <col2>val2</col2>
    </access>
    </dbTableName> 
      </StatementName>
    Map  Table name and action using Constant.
    >>item of sender is floating ( not mapped to any reciver node)
    What is that? you have to map source item node fields to target access fields.
    Please go through the below sap link . This might be very helpful.
    http://help.sap.com/saphelp_nw70/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm

  • [SOLVED] [makepkg] attempts to process source files multiple times

    OK, so I decided I was going to update the PKGBUILD for linux-lts-tresor to the new format with separate sources for different architectures and PGP keys, having successfully done it for the nvidia packages I maintain and I get the following issue when I run mkaurball on the linux-lts-tresor PKGBUILD:
    claire ~/Builds/linux-lts-tresor % mkaurball
    ==> Making package: linux-lts-tresor 3.14.28-1 (Fri 9 Jan 10:51:06 GMT 2015)
    ==> Retrieving sources...
    -> Found linux-3.14.tar.xz
    -> Found linux-3.14.tar.sign
    -> Found patch-3.14.28.xz
    -> Found patch-3.14.28.sign
    -> Found config
    -> Found config.x86_64
    -> Found linux-lts-tresor.preset
    -> Found linux-lts-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Found 0001-Bluetooth-allocate-static-minor-for-vhci.patch
    -> Found 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch
    -> Found 0003-module-remove-MODULE_GENERIC_TABLE.patch
    -> Found 0006-genksyms-fix-typeof-handling.patch
    -> Found tresor_sysfs.c
    -> Found tresor-patch-3.6.2_i686
    -> Found tresor-patch-3.6.2_i686.patch
    -> Found tresor-patch-3.6.2_i686.patch.sig
    -> Found patch-3.14.28.sign
    -> Found config
    -> Found config.x86_64
    -> Found linux-lts-tresor.preset
    -> Found linux-lts-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Found 0001-Bluetooth-allocate-static-minor-for-vhci.patch
    -> Found 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch
    -> Found 0003-module-remove-MODULE_GENERIC_TABLE.patch
    -> Found 0006-genksyms-fix-typeof-handling.patch
    -> Found tresor_sysfs.c
    -> Found tresor-patch-3.8.2_aesni
    -> Found tresor-patch-3.8.2_aesni.patch
    -> Found tresor-patch-3.8.2_aesni.patch.sig
    -> Found patch-3.14.28.sign
    -> Found config
    -> Found config.x86_64
    -> Found linux-lts-tresor.preset
    -> Found linux-lts-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Found 0001-Bluetooth-allocate-static-minor-for-vhci.patch
    -> Found 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch
    -> Found 0003-module-remove-MODULE_GENERIC_TABLE.patch
    -> Found 0006-genksyms-fix-typeof-handling.patch
    -> Found tresor_sysfs.c
    ==> Validating source files with sha256sums...
    linux-3.14.tar.xz ... Passed
    linux-3.14.tar.sign ... Skipped
    patch-3.14.28.xz ... Passed
    patch-3.14.28.sign ... Skipped
    config ... Passed
    config.x86_64 ... Passed
    linux-lts-tresor.preset ... Passed
    linux-lts-tresor.install ... Passed
    change-default-console-loglevel.patch ... Passed
    0001-Bluetooth-allocate-static-minor-for-vhci.patch ... Passed
    0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch ... Passed
    0003-module-remove-MODULE_GENERIC_TABLE.patch ... Passed
    0006-genksyms-fix-typeof-handling.patch ... Passed
    tresor_sysfs.c ... Passed
    ==> Validating source files with sha256sums...
    tresor-patch-3.6.2_i686 ... Passed
    tresor-patch-3.6.2_i686.patch ... Passed
    tresor-patch-3.6.2_i686.patch.sig ... Skipped
    ==> Validating source files with sha256sums...
    tresor-patch-3.8.2_aesni ... Passed
    tresor-patch-3.8.2_aesni.patch ... Passed
    tresor-patch-3.8.2_aesni.patch.sig ... Skipped
    ==> Verifying source file signatures with gpg...
    linux-3.14.tar ... Passed
    patch-3.14.28 ... Passed
    tresor-patch-3.6.2_i686.patch ... Passed
    patch-3.14.28 ... Passed
    tresor-patch-3.8.2_aesni.patch ... Passed
    patch-3.14.28 ... Passed
    ==> Entering fakeroot environment...
    ==> Creating source package...
    -> Adding PKGBUILD...
    -> Generating .SRCINFO file...
    -> Adding config...
    -> Adding config.x86_64...
    -> Adding linux-lts-tresor.preset...
    -> Adding linux-lts-tresor.install...
    -> Adding change-default-console-loglevel.patch...
    -> Adding 0001-Bluetooth-allocate-static-minor-for-vhci.patch...
    -> Adding 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch...
    -> Adding 0003-module-remove-MODULE_GENERIC_TABLE.patch...
    -> Adding 0006-genksyms-fix-typeof-handling.patch...
    -> Adding tresor-patch-3.6.2_i686.patch...
    -> Adding tresor-patch-3.6.2_i686.patch.sig...
    -> Adding config...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/config’: File exists
    -> Adding config.x86_64...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/config.x86_64’: File exists
    -> Adding linux-lts-tresor.preset...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/linux-lts-tresor.preset’: File exists
    -> Adding linux-lts-tresor.install...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/linux-lts-tresor.install’: File exists
    -> Adding change-default-console-loglevel.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/change-default-console-loglevel.patch’: File exists
    -> Adding 0001-Bluetooth-allocate-static-minor-for-vhci.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0001-Bluetooth-allocate-static-minor-for-vhci.patch’: File exists
    -> Adding 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch’: File exists
    -> Adding 0003-module-remove-MODULE_GENERIC_TABLE.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0003-module-remove-MODULE_GENERIC_TABLE.patch’: File exists
    -> Adding 0006-genksyms-fix-typeof-handling.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0006-genksyms-fix-typeof-handling.patch’: File exists
    -> Adding tresor-patch-3.8.2_aesni.patch...
    -> Adding tresor-patch-3.8.2_aesni.patch.sig...
    -> Adding config...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/config’: File exists
    -> Adding config.x86_64...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/config.x86_64’: File exists
    -> Adding linux-lts-tresor.preset...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/linux-lts-tresor.preset’: File exists
    -> Adding linux-lts-tresor.install...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/linux-lts-tresor.install’: File exists
    -> Adding change-default-console-loglevel.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/change-default-console-loglevel.patch’: File exists
    -> Adding 0001-Bluetooth-allocate-static-minor-for-vhci.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0001-Bluetooth-allocate-static-minor-for-vhci.patch’: File exists
    -> Adding 0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch’: File exists
    -> Adding 0003-module-remove-MODULE_GENERIC_TABLE.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0003-module-remove-MODULE_GENERIC_TABLE.patch’: File exists
    -> Adding 0006-genksyms-fix-typeof-handling.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-lts-tresor/srclinks.Qb2SC9gzL/linux-lts-tresor/0006-genksyms-fix-typeof-handling.patch’: File exists
    -> Compressing source package...
    ==> Leaving fakeroot environment.
    ==> Source package created: linux-lts-tresor (Fri 9 Jan 10:51:25 GMT 2015)
    Here is the PKGBUILD:
    # Maintainers:
    # Claire Farron <[email protected]>
    # Andes Ho <[email protected]> (Secondary Package Tester)
    # Former Maintainer(s)
    # Ido Rosen <[email protected]>
    # xerc <aur[at]xerc.de>
    # Contributor: tresor-patch-3.6.2_i686.patch and consolidation of patches
    # Seth Dickson <[email protected]>
    # Contributor(s) of the linux PKGBUILD
    # Tobias Powalowski <[email protected]>
    # Thomas Baechler <[email protected]>
    ### Do not edit below this line unless you know what you're doing
    pkgbase=linux-lts-tresor # Build stock -lts kernel with TRESOR patches
    #pkgbase=linux-custom # Build kernel with a different name
    _srcname=linux-3.14
    pkgname=linux-lts-tresor # placeholder
    pkgdesc="Linux longterm stable kernel and modules with integrated TRESOR"
    pkgver=3.14.28
    pkgrel=1
    arch=('i686' 'x86_64')
    url="http://www1.informatik.uni-erlangen.de/tresor"
    license=('GPL2')
    makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
    options=('!strip')
    source=("https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
    "https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.sign"
    "https://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz"
    "https://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.sign"
    # the main kernel config files
    'config' 'config.x86_64'
    # standard config files for mkinitcpio ramdisk
    "${pkgbase}.preset"
    "${pkgbase}.install"
    'change-default-console-loglevel.patch'
    '0001-Bluetooth-allocate-static-minor-for-vhci.patch'
    '0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch'
    '0003-module-remove-MODULE_GENERIC_TABLE.patch'
    '0006-genksyms-fix-typeof-handling.patch'
    'http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor_sysfs.c')
    source_i686+=("http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor-patch-3.6.2_i686"
    'tresor-patch-3.6.2_i686.patch'
    'tresor-patch-3.6.2_i686.patch.sig')
    source_x86_64+=("http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor-patch-3.8.2_aesni"
    'tresor-patch-3.8.2_aesni.patch'
    'tresor-patch-3.8.2_aesni.patch.sig')
    sha256sums=('61558aa490855f42b6340d1a1596be47454909629327c49a5e4e10268065dffa'
    'SKIP'
    'e3c79a30ac959c84c329be5461da88a5c79c6463da30d376c27bb103aee79b51'
    'SKIP'
    '6291d78969d8db94525d9614fa15c6a5db97b070af50d84f68d32ecd5f40fd69'
    '145a66ef4f702ed516a57d846dd00b5acac7b5cc1eff86d1e7ee6bd5a66040b2'
    '003b45593f1b5cdb81ea2da6ab67deef04402eb15aae231921ff55f65948fbdd'
    'edb6d4ed9ca2af1ffc15ddbf195152c219e77bd12da3ea176c5c24afc0a779d4'
    'faced4eb4c47c4eb1a9ee8a5bf8a7c4b49d6b4d78efbe426e410730e6267d182'
    '6d72e14552df59e6310f16c176806c408355951724cd5b48a47bf01591b8be02'
    '52dec83a8805a8642d74d764494acda863e0aa23e3d249e80d4b457e20a3fd29'
    '65d58f63215ee3c5f9c4fc6bce36fc5311a6c7dbdbe1ad29de40647b47ff9c0d'
    'cf2e7a2d00787f754028e7459688c2755a406e632ce48b60952fa4ff7ed6f4b7'
    'd6fcbd0ea7a5a4c42d326286b60bbd5b1d476b8a6752046fa28133e05351c1fe')
    sha256sums_i686=('9a286a85c16ca5b6a02419af1aedbfe6e8b89bcabdcb32670ead3f26c09eadfd'
    '2fb8c26e237883f39de57a264873b21bcdfc5b6b0c1e7c60cec8d141e5db33ba'
    'SKIP')
    sha256sums_x86_64=('54009b369b95a77ab13f6dd7cdbe22b0785b6314cae3a6c39190b48f4c4b12ce'
    '6d0580f05db9cf47dd097326c2f3c0e493854493544d32692ab63290e12fc3e1'
    'SKIP')
    validpgpkeys=(
    'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linux Torvalds
    '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
    '5F885602C7FD0951F565E27949F67298E6366A92' # Claire Farron
    [[ "$CARCH" = "i686" ]] && _tresorpatch="tresor-patch-3.6.2_i686"
    [[ "$CARCH" = "x86_64" ]] && _tresorpatch="tresor-patch-3.8.2_aesni"
    _kernelname=${pkgbase#linux}
    prepare() {
    cd "${srcdir}/${_srcname}"
    # add upstream patch
    patch -p1 -i "${srcdir}/patch-${pkgver}"
    # add latest fixes from stable queue, if needed
    # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
    # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
    # remove this when a Kconfig knob is made available by upstream
    # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
    patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
    # Fix vhci warning in kmod (to restore every kernel maintainer's sanity)
    msg "Patching source to fix vhci warning in kmod"
    patch -p1 -i "${srcdir}/0001-Bluetooth-allocate-static-minor-for-vhci.patch"
    # Fix atkbd aliases
    msg "Patching source to fix atkbd aliases"
    patch -p1 -i "${srcdir}/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch"
    patch -p1 -i "${srcdir}/0003-module-remove-MODULE_GENERIC_TABLE.patch"
    # Fix generation of symbol CRCs
    # http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dc53324060f324e8af6867f57bf4891c13c6ef18
    msg "Patching source to fix generation of symbol CRCs"
    patch -p1 -i "${srcdir}/0006-genksyms-fix-typeof-handling.patch"
    # TRESOR Runs Encryption Securely Outside RAM
    # i.e. the purpose of this package :-)
    msg "Patching TRESOR for linux"
    # Initialized the patched TRESOR file with the upstream patch.
    cp "${srcdir}/${_tresorpatch}" "${_tresorpatch}.patched"
    patch --follow-symlinks "${_tresorpatch}.patched" "${srcdir}/${_tresorpatch}.patch"
    msg "Patching source with TRESOR"
    patch -p1 -i "${_tresorpatch}.patched"
    if [ "${CARCH}" = "x86_64" ]; then
    cat "${srcdir}/config.x86_64" > ./.config
    else
    cat "${srcdir}/config" > ./.config
    fi
    if [ "${_kernelname}" != "" ]; then
    sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
    sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config
    fi
    # set extraversion to pkgrel
    sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
    # don't run depmod on 'make install'. We'll do this ourselves in packaging
    sed -i '2iexit 0' scripts/depmod.sh
    cd "${srcdir}"
    cc tresor_sysfs.c -o tresor_sysfs
    cd "${srcdir}/${_srcname}"
    # get kernel version
    make prepare
    # load configuration
    # Configure the kernel. Replace the line below with one of your choice.
    #make menuconfig # CLI menu for configuration
    #make nconfig # new CLI menu for configuration
    #make xconfig # X-based configuration
    #make oldconfig # using old config from previous kernel version
    # ... or manually edit .config
    # rewrite configuration
    #yes "" | make config >/dev/null
    make oldconfig
    # save configuration for later reuse
    # if [ "${CARCH}" = "x86_64" ]; then
    # cat .config > "${startdir}/config.x86_64.last"
    # else
    # cat .config > "${startdir}/config.last"
    # fi
    build() {
    cd "${srcdir}/${_srcname}"
    make ${MAKEFLAGS} LOCALVERSION= bzImage modules
    _package() {
    true && pkgdesc="The ${pkgbase/linux/Linux} kernel and modules - stable longtime supported with integrated TRESOR"
    depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
    optdepends=('crda: to set the correct wireless channels of your country')
    provides=("kernel26${_kernelname}=${pkgver}")
    conflicts=("kernel26${_kernelname}")
    replaces=("kernel26${_kernelname}")
    backup=("etc/mkinitcpio.d/${pkgbase}.preset")
    install=${pkgbase}.install
    # TRESOR sysfs utility - not necessary but nice to have, in case someone
    # enables CONFIG_TRESOR_SYSFS in a fork of this PKGBUILD...
    cd "${srcdir}"
    install -D -m755 tresor_sysfs "${pkgdir}/usr/bin/tresor_sysfs"
    cd "${srcdir}/${_srcname}"
    KARCH=x86
    # get kernel version
    _kernver="$(make LOCALVERSION= kernelrelease)"
    _basekernel=${_kernver%%-*}
    _basekernel=${_basekernel%.*}
    mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
    make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
    cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
    # set correct depmod command for install
    cp -f "${startdir}/${install}" "${startdir}/${install}.pkg"
    true && install=${install}.pkg
    sed \
    -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/" \
    -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \
    -i "${startdir}/${install}"
    # install mkinitcpio preset file for kernel
    install -D -m644 "${srcdir}/${pkgbase}.preset" \
    "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
    sed \
    -e "1s|'linux.*'|'${pkgbase}'|" \
    -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgbase}\"|" \
    -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgbase}.img\"|" \
    -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \
    -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
    # remove build and source links
    rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
    # remove the firmware
    rm -rf "${pkgdir}/lib/firmware"
    # gzip -9 all modules to save 100MB of space
    find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
    # make room for external modules
    ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" \
    "${pkgdir}/lib/modules/${_kernver}/extramodules"
    # add real version for building modules and running depmod from post_install/upgrade
    mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
    echo "${_kernver}" > \
    "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
    # Now we call depmod...
    depmod -b "${pkgdir}" -F System.map "${_kernver}"
    # move module tree /lib -> /usr/lib
    mkdir -p "${pkgdir}/usr"
    mv "${pkgdir}/lib" "${pkgdir}/usr/"
    # add vmlinux
    install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
    _package-headers() {
    true && pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
    provides=("kernel26${_kernelname}-headers=${pkgver}")
    conflicts=("kernel26${_kernelname}-headers")
    replaces=("kernel26${_kernelname}-headers")
    install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
    cd "${srcdir}/${_srcname}"
    install -D -m644 Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile"
    install -D -m644 kernel/Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile"
    install -D -m644 .config \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/.config"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
    for i in acpi asm-generic config crypto drm generated keys linux math-emu \
    media net pcmcia scsi sound trace uapi video xen; do
    cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
    done
    # copy arch includes for external modules
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86"
    cp -a arch/x86/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/"
    # copy files necessary for later builds, like nvidia and vmware
    cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
    cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"
    # fix permissions on scripts dir
    chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"
    cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
    if [ "${CARCH}" = "i686" ]; then
    cp arch/${KARCH}/Makefile_32.cpu \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
    fi
    cp arch/${KARCH}/kernel/asm-offsets.s \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
    # add docbook makefile
    install -D -m644 Documentation/DocBook/Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
    # add dm headers
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
    cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
    # add inotify.h
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux"
    cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/"
    # add wireless headers
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
    cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
    # add dvb headers for external modules
    # in reference to:
    # http://bugs.archlinux.org/task/9912
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core"
    cp drivers/media/dvb-core/*.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/"
    # and...
    # http://bugs.archlinux.org/task/11194
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
    cp include/config/dvb/*.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
    # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
    # in reference to:
    # http://bugs.archlinux.org/task/13146
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    cp drivers/media/dvb-frontends/lgdt330x.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
    cp drivers/media/i2c/msp3400-driver.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
    # add dvb headers
    # in reference to:
    # http://bugs.archlinux.org/task/20402
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
    cp drivers/media/usb/dvb-usb/*.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
    cp drivers/media/dvb-frontends/*.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
    cp drivers/media/tuners/*.h \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"
    # add xfs and shmem for aufs building
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
    cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"
    # copy in Kconfig files
    for i in $(find . -name "Kconfig*"); do
    mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
    cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
    done
    chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
    find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
    # strip scripts directory
    find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
    case "$(file -bi "${binary}")" in
    *application/x-sharedlib*) # Libraries (.so)
    /usr/bin/strip ${STRIP_SHARED} "${binary}";;
    *application/x-archive*) # Libraries (.a)
    /usr/bin/strip ${STRIP_STATIC} "${binary}";;
    *application/x-executable*) # Binaries
    /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
    esac
    done
    # remove unneeded architectures
    rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
    _package-docs() {
    true && pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"
    provides=("kernel26${_kernelname}-docs=${pkgver}")
    conflicts=("kernel26${_kernelname}-docs")
    replaces=("kernel26${_kernelname}-docs")
    cd "${srcdir}/${_srcname}"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build"
    cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build"
    find "${pkgdir}" -type f -exec chmod 444 {} \;
    find "${pkgdir}" -type d -exec chmod 755 {} \;
    # remove a file already in linux package
    rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
    # true && is a workaround for AUR problem with split packages:
    true && pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
    for _p in ${pkgname[@]}; do
    eval "package_${_p}() {
    _package${_p#${pkgbase}}
    done
    EDIT: Here is the resulting source tarball for mkaurball.
    Last edited by clfarron4 (2015-01-12 09:37:11)

    OK, so either I'm committing a huge stupid with both TRESOR packages or there is actually a problem with makepkg. I've done similar changes with the linux-tresor PKGBUILD and it's doing the same thing.
    PKGBUILD:
    # Maintainers:
    # Claire Farron <[email protected]>
    # Andes Ho <[email protected]> (Secondary Package Tester)
    # Former Maintainer(s)
    # Ido Rosen <[email protected]>
    # xerc <aur[at]xerc.de>
    # Contributor(s) of tresor-patch-3.6.2_i686.patch and consolidation of patches
    # Seth Dickson <[email protected]>
    # Contributor(s) of the linux PKGBUILD
    # Tobias Powalowski <[email protected]>
    # Thomas Baechler <[email protected]>
    ### Do not edit below this line unless you know what you're doing
    pkgbase=linux-tresor # Build stock kernel with TRESOR patches
    #pkgbase=linux-custom # Build kernel with a different name
    _srcname=linux-3.18
    pkgver=3.18.2
    pkgrel=1
    arch=('i686' 'x86_64')
    url="http://www1.informatik.uni-erlangen.de/tresor"
    license=('GPL2')
    makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
    options=('!strip')
    source=("https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
    "https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.sign"
    "https://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz"
    "https://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.sign"
    # the main kernel config files
    'config' 'config.x86_64'
    # standard config files for mkinitcpio ramdisk
    "${pkgbase}.preset"
    "${pkgbase}.install"
    'change-default-console-loglevel.patch'
    'http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor_sysfs.c')
    source_i686+=("http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor-patch-3.6.2_i686"
    'tresor-patch-3.6.2_i686.patch'
    'tresor-patch-3.6.2_i686.patch.sig')
    source_x86_64+=("http://www1.informatik.uni-erlangen.de/filepool/projects/tresor/tresor-patch-3.8.2_aesni"
    'tresor-patch-3.8.2_aesni.patch'
    'tresor-patch-3.8.2_aesni.patch.sig')
    sha256sums=('becc413cc9e6d7f5cc52a3ce66d65c3725bc1d1cc1001f4ce6c32b69eb188cbd'
    'SKIP'
    '927a30c152a193d22242de21b99c9765fb0086b0aa3fabd31938ffc6e1b3f37c'
    'SKIP'
    'b0f867da9c07d778014c52afe2df59b86122b0d4de2ea8003303855a0750e90d'
    'b76fa6691c4ab19d11e346112e8c021c88578950ed19468f115905e74cb0495e'
    'e17c0209dcb887173adbb4cc69fe0799b01ed9b9b7c487d1d023daa99ee073e1'
    '390c0b348c0f42ba760587e9df3098c62a3b6bd5d522eefb51c7a18f29069751'
    '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
    'd6fcbd0ea7a5a4c42d326286b60bbd5b1d476b8a6752046fa28133e05351c1fe')
    sha256sums_i686=('9a286a85c16ca5b6a02419af1aedbfe6e8b89bcabdcb32670ead3f26c09eadfd'
    '800f592847d2a20679630491b8f657cb912abc65f9f2daecf804b6dc2f3b9352'
    'SKIP')
    sha256sums_x86_64=('54009b369b95a77ab13f6dd7cdbe22b0785b6314cae3a6c39190b48f4c4b12ce'
    '9415840fe80f4e2f2b44c0762d8c650e5119fadc3cb494c4812406f6627f26c3'
    'SKIP')
    validpgpkeys=(
    'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linux Torvalds
    '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
    '5F885602C7FD0951F565E27949F67298E6366A92' # Claire Farron
    [[ "$CARCH" = "i686" ]] && _tresorpatch="tresor-patch-3.6.2_i686"
    [[ "$CARCH" = "x86_64" ]] && _tresorpatch="tresor-patch-3.8.2_aesni"
    _kernelname=${pkgbase#linux}
    prepare() {
    cd "${srcdir}/${_srcname}"
    # add upstream patch
    patch -p1 -i "${srcdir}/patch-${pkgver}"
    # add latest fixes from stable queue, if needed
    # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
    # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
    # remove this when a Kconfig knob is made available by upstream
    # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
    patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
    # TRESOR Runs Encryption Securely Outside RAM
    # i.e. the purpose of this package :-)
    msg "Patching TRESOR for linux"
    # Initialized the patched TRESOR file with the upstream patch.
    cp "${srcdir}/${_tresorpatch}" "${_tresorpatch}.patched"
    patch --follow-symlinks "${_tresorpatch}.patched" "${srcdir}/${_tresorpatch}.patch"
    msg "Patching source with TRESOR"
    patch -p1 -i "${_tresorpatch}.patched"
    if [ "${CARCH}" = "x86_64" ]; then
    cat "${srcdir}/config.x86_64" > ./.config
    else
    cat "${srcdir}/config" > ./.config
    fi
    if [ "${_kernelname}" != "" ]; then
    sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
    sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config
    fi
    # set extraversion to pkgrel
    sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
    # don't run depmod on 'make install'. We'll do this ourselves in packaging
    sed -i '2iexit 0' scripts/depmod.sh
    cd "${srcdir}"
    cc tresor_sysfs.c -o tresor_sysfs
    cd "${srcdir}/${_srcname}"
    # get kernel version
    make prepare
    # load configuration
    # Configure the kernel. Replace the line below with one of your choice.
    #make menuconfig # CLI menu for configuration
    #make nconfig # new CLI menu for configuration
    #make xconfig # X-based configuration
    #make oldconfig # using old config from previous kernel version
    # ... or manually edit .config
    # rewrite configuration
    #yes "" | make config >/dev/null
    make oldconfig
    # save configuration for later reuse
    # if [ "${CARCH}" = "x86_64" ]; then
    # cat .config > "${startdir}/config.x86_64.last"
    # else
    # cat .config > "${startdir}/config.last"
    # fi
    build() {
    cd "${srcdir}/${_srcname}"
    make ${MAKEFLAGS} LOCALVERSION= bzImage modules
    _package() {
    pkgdesc="The ${pkgbase/linux/Linux} kernel and modules with integrated TRESOR"
    [ "${pkgbase}" = "linux" ] && groups=('base')
    depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
    optdepends=('crda: to set the correct wireless channels of your country')
    provides=("kernel26${_kernelname}=${pkgver}")
    conflicts=("kernel26${_kernelname}")
    replaces=("kernel26${_kernelname}")
    backup=("etc/mkinitcpio.d/${pkgbase}.preset")
    install=${pkgbase}.install
    # TRESOR sysfs utility - not necessary but nice to have, in case someone
    # enables CONFIG_TRESOR_SYSFS in a fork of this PKGBUILD...
    cd "${srcdir}"
    install -D -m755 tresor_sysfs "${pkgdir}/usr/bin/tresor_sysfs"
    cd "${srcdir}/${_srcname}"
    KARCH=x86
    # get kernel version
    _kernver="$(make LOCALVERSION= kernelrelease)"
    _basekernel=${_kernver%%-*}
    _basekernel=${_basekernel%.*}
    mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
    make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
    cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
    # set correct depmod command for install
    cp -f "${startdir}/${install}" "${startdir}/${install}.pkg"
    true && install=${install}.pkg
    sed \
    -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/" \
    -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \
    -i "${startdir}/${install}"
    # install mkinitcpio preset file for kernel
    install -D -m644 "${srcdir}/${pkgbase}.preset" \
    "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
    sed \
    -e "1s|'linux.*'|'${pkgbase}'|" \
    -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgbase}\"|" \
    -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgbase}.img\"|" \
    -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \
    -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
    # remove build and source links
    rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
    # remove the firmware
    rm -rf "${pkgdir}/lib/firmware"
    # gzip -9 all modules to save 100MB of space
    find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
    # make room for external modules
    ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
    # add real version for building modules and running depmod from post_install/upgrade
    mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
    echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
    # Now we call depmod...
    depmod -b "${pkgdir}" -F System.map "${_kernver}"
    # move module tree /lib -> /usr/lib
    mkdir -p "${pkgdir}/usr"
    mv "${pkgdir}/lib" "${pkgdir}/usr/"
    # add vmlinux
    install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
    _package-headers() {
    pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
    provides=("kernel26${_kernelname}-headers=${pkgver}")
    conflicts=("kernel26${_kernelname}-headers")
    replaces=("kernel26${_kernelname}-headers")
    install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
    cd "${srcdir}/${_srcname}"
    install -D -m644 Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile"
    install -D -m644 kernel/Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile"
    install -D -m644 .config \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/.config"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
    for i in acpi asm-generic config crypto drm generated keys linux math-emu \
    media net pcmcia scsi sound trace uapi video xen; do
    cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
    done
    # copy arch includes for external modules
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86"
    cp -a arch/x86/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/"
    # copy files necessary for later builds, like nvidia and vmware
    cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
    cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"
    # fix permissions on scripts dir
    chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"
    cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
    if [ "${CARCH}" = "i686" ]; then
    cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
    fi
    cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
    # add docbook makefile
    install -D -m644 Documentation/DocBook/Makefile \
    "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
    # add dm headers
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
    cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
    # add inotify.h
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux"
    cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/"
    # add wireless headers
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
    cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
    # add dvb headers for external modules
    # in reference to:
    # http://bugs.archlinux.org/task/9912
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core"
    cp drivers/media/dvb-core/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/"
    # and...
    # http://bugs.archlinux.org/task/11194
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
    cp include/config/dvb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
    # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
    # in reference to:
    # http://bugs.archlinux.org/task/13146
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
    cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
    # add dvb headers
    # in reference to:
    # http://bugs.archlinux.org/task/20402
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
    cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
    cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
    cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"
    # add xfs and shmem for aufs building
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
    # removed in 3.17 series
    # cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"
    # copy in Kconfig files
    for i in $(find . -name "Kconfig*"); do
    mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
    cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
    done
    chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
    find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
    # strip scripts directory
    find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
    case "$(file -bi "${binary}")" in
    *application/x-sharedlib*) # Libraries (.so)
    /usr/bin/strip ${STRIP_SHARED} "${binary}";;
    *application/x-archive*) # Libraries (.a)
    /usr/bin/strip ${STRIP_STATIC} "${binary}";;
    *application/x-executable*) # Binaries
    /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
    esac
    done
    # remove unneeded architectures
    rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
    _package-docs() {
    pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"
    provides=("kernel26${_kernelname}-docs=${pkgver}")
    conflicts=("kernel26${_kernelname}-docs")
    replaces=("kernel26${_kernelname}-docs")
    cd "${srcdir}/${_srcname}"
    mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build"
    cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build"
    find "${pkgdir}" -type f -exec chmod 444 {} \;
    find "${pkgdir}" -type d -exec chmod 755 {} \;
    # remove a file already in linux package
    rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
    pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
    for _p in ${pkgname[@]}; do
    eval "package_${_p}() {
    $(declare -f "_package${_p#${pkgbase}}")
    _package${_p#${pkgbase}}
    done
    Running makepkg -S to build the source tarball:
    claire ~/Builds/linux-tresor % makepkg -S
    ==> Making package: linux-tresor 3.18.2-1 (Fri 9 Jan 17:24:58 GMT 2015)
    ==> Retrieving sources...
    -> Downloading linux-3.18.tar.xz...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 77.1M 100 77.1M 0 0 2852k 0 0:00:27 0:00:27 --:--:-- 5975k
    -> Downloading linux-3.18.tar.sign...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 473 100 473 0 0 1079 0 --:--:-- --:--:-- --:--:-- 1082
    -> Downloading patch-3.18.2.xz...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 40932 100 40932 0 0 48079 0 --:--:-- --:--:-- --:--:-- 48042
    -> Downloading patch-3.18.2.sign...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 819 100 819 0 0 1207 0 --:--:-- --:--:-- --:--:-- 1207
    -> Found config
    -> Found config.x86_64
    -> Found linux-tresor.preset
    -> Found linux-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Downloading tresor_sysfs.c...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 2299 100 2299 0 0 28726 0 --:--:-- --:--:-- --:--:-- 29101
    -> Downloading tresor-patch-3.6.2_i686...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 47050 100 47050 0 0 344k 0 --:--:-- --:--:-- --:--:-- 345k
    -> Found tresor-patch-3.6.2_i686.patch
    -> Found tresor-patch-3.6.2_i686.patch.sig
    -> Found patch-3.18.2.sign
    -> Found config
    -> Found config.x86_64
    -> Found linux-tresor.preset
    -> Found linux-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Found tresor_sysfs.c
    -> Downloading tresor-patch-3.8.2_aesni...
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 47192 100 47192 0 0 350k 0 --:--:-- --:--:-- --:--:-- 351k
    -> Found tresor-patch-3.8.2_aesni.patch
    -> Found tresor-patch-3.8.2_aesni.patch.sig
    -> Found patch-3.18.2.sign
    -> Found config
    -> Found config.x86_64
    -> Found linux-tresor.preset
    -> Found linux-tresor.install
    -> Found change-default-console-loglevel.patch
    -> Found tresor_sysfs.c
    ==> Validating source files with sha256sums...
    linux-3.18.tar.xz ... Passed
    linux-3.18.tar.sign ... Skipped
    patch-3.18.2.xz ... Passed
    patch-3.18.2.sign ... Skipped
    config ... Passed
    config.x86_64 ... Passed
    linux-tresor.preset ... Passed
    linux-tresor.install ... Passed
    change-default-console-loglevel.patch ... Passed
    tresor_sysfs.c ... Passed
    ==> Validating source files with sha256sums...
    tresor-patch-3.6.2_i686 ... Passed
    tresor-patch-3.6.2_i686.patch ... Passed
    tresor-patch-3.6.2_i686.patch.sig ... Skipped
    ==> Validating source files with sha256sums...
    tresor-patch-3.8.2_aesni ... Passed
    tresor-patch-3.8.2_aesni.patch ... Passed
    tresor-patch-3.8.2_aesni.patch.sig ... Skipped
    ==> Verifying source file signatures with gpg...
    linux-3.18.tar ... Passed
    patch-3.18.2 ... Passed
    tresor-patch-3.6.2_i686.patch ... Passed
    patch-3.18.2 ... Passed
    tresor-patch-3.8.2_aesni.patch ... Passed
    patch-3.18.2 ... Passed
    ==> Entering fakeroot environment...
    ==> Creating source package...
    -> Adding PKGBUILD...
    -> Generating .SRCINFO file...
    -> Adding config...
    -> Adding config.x86_64...
    -> Adding linux-tresor.preset...
    -> Adding linux-tresor.install...
    -> Adding change-default-console-loglevel.patch...
    -> Adding tresor-patch-3.6.2_i686.patch...
    -> Adding tresor-patch-3.6.2_i686.patch.sig...
    -> Adding config...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/config’: File exists
    -> Adding config.x86_64...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/config.x86_64’: File exists
    -> Adding linux-tresor.preset...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/linux-tresor.preset’: File exists
    -> Adding linux-tresor.install...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/linux-tresor.install’: File exists
    -> Adding change-default-console-loglevel.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/change-default-console-loglevel.patch’: File exists
    -> Adding tresor-patch-3.8.2_aesni.patch...
    -> Adding tresor-patch-3.8.2_aesni.patch.sig...
    -> Adding config...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/config’: File exists
    -> Adding config.x86_64...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/config.x86_64’: File exists
    -> Adding linux-tresor.preset...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/linux-tresor.preset’: File exists
    -> Adding linux-tresor.install...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/linux-tresor.install’: File exists
    -> Adding change-default-console-loglevel.patch...
    ln: failed to create symbolic link ‘/home/claire/Builds/linux-tresor/srclinks.W5jPjydXO/linux-tresor/change-default-console-loglevel.patch’: File exists
    -> Compressing source package...
    ==> Leaving fakeroot environment.
    ==> Source package created: linux-tresor (Fri 9 Jan 17:25:50 GMT 2015)
    makepkg -S 24.38s user 1.40s system 48% cpu 53.129 total
    Here is the resulting source tarball.
    As far as I can see, they should be working PKGBUILDs too which meet the standards.
    EDIT: Here's the bug report
    Last edited by clfarron4 (2015-01-09 17:42:34)

  • [SOLVED]makepkg modifies binary - different size in source tar/package

    I'm using the following extremely straightforward PKGBUILD to try and package livestreamer-twitch-gui:
    # Maintainer: Ben Fox-Moore <[email protected]>
    pkgname=livestreamer-twitch-gui
    pkgver=v0.7.1
    pkgrel=1
    pkgdesc="A multi platform Twitch.tv browser for Livestreamer"
    arch=('x86_64')
    url="https://github.com/bastimeyer/livestreamer-twitch-gui"
    license=('MIT')
    depends=("livestreamer")
    provides=('livestreamer-twitch-gui')
    source_x86_64=("https://github.com/bastimeyer/livestreamer-twitch-gui/releases/download/$pkgver/livestreamer-twitch-gui-$pkgver-linux64.tar.gz")
    sha256sums_x86_64=('b9350224f04c0028f87bd852f7f0aca2017000a07ec95fbbacbf49fe2b564ca7')
    package() {
    cd "$srcdir/$pkgname"
    install -d "$pkgdir/usr/share/$pkgname"
    cp -R * "$pkgdir/usr/share/$pkgname"
    however when I compare the size of files in the source tar livestreamer-twitch-gui-v0.7.1-linux64.tar.gz:
    $ tar -ztvf livestreamer-twitch-gui-v0.7.1-linux64.tar.gz
    drwxr-xr-x 0/0 0 2015-02-10 19:00 livestreamer-twitch-gui/
    -rwxr-xr-x 0/0 979 2015-02-10 18:59 livestreamer-twitch-gui/add-menuitem.sh
    -rw-r--r-- 0/0 10485568 2015-02-10 18:59 livestreamer-twitch-gui/icudtl.dat
    -rwxr-xr-x 0/0 4678264 2015-02-10 18:59 livestreamer-twitch-gui/libffmpegsumo.so
    -rwxr-xr-x 0/0 73325950 2015-02-10 18:59 livestreamer-twitch-gui/livestreamer-twitch-gui
    -rw-r--r-- 0/0 5770140 2015-02-10 18:59 livestreamer-twitch-gui/nw.pak
    -rwxr-xr-x 0/0 450 2015-02-10 18:59 livestreamer-twitch-gui/remove-menuitem.sh
    -rwxr-xr-x 0/0 1258 2015-02-10 18:59 livestreamer-twitch-gui/start.sh
    with those in the generated package tar livestreamer-twitch-gui-v0.7.1-1-x86_64.pkg.tar.xz
    $ tar -Jtvf livestreamer-twitch-gui-v0.7.1-1-x86_64.pkg.tar.xz
    -rw-r--r-- root/root 624 2015-03-08 00:34 .PKGINFO
    -rw-r--r-- root/root 1286 2015-03-08 00:34 .MTREE
    drwxr-xr-x root/root 0 2015-03-08 00:34 usr/
    drwxr-xr-x root/root 0 2015-03-08 00:34 usr/share/
    drwxr-xr-x root/root 0 2015-03-08 00:34 usr/share/livestreamer-twitch-gui/
    -rw-r--r-- root/root 5770140 2015-03-08 00:34 usr/share/livestreamer-twitch-gui/nw.pak
    -rwxr-xr-x root/root 450 2015-03-08 00:34 usr/share/livestreamer-twitch-gui/remove-menuitem.sh
    -rwxr-xr-x root/root 1264280 2015-03-08 00:34 usr/share/livestreamer-twitch-gui/libffmpegsumo.so
    -rwxr-xr-x root/root 1258 2015-03-08 00:34 usr/share/livestreamer-twitch-gui/start.sh
    -rwxr-xr-x root/root 72547728 2015-03-08 00:34 usr/share/livestreamer-twitch-gui/livestreamer-twitch-gui
    -rwxr-xr-x root/root 979 2015-03-08 00:34 usr/share/livestreamer-twitch-gui/add-menuitem.sh
    -rw-r--r-- root/root 10485568 2015-03-08 00:34 usr/share/livestreamer-twitch-gui/icudtl.dat
    you can see that both livestreamer-twitch-gui and libffmpegsumo.so have different sizes in the generated package from the source tar. Everything else stays the same. Obviously this causes issues when trying to install and run the package. Any ideas what might be causing this problem? Thanks!
    Last edited by InfernoZeus (2015-03-08 00:46:00)

    Thanks for the super prompt reply! Adding the no strip option solved my problem perfectly
    I did look at trying to split up the binaries/libraries/etc. but that's complicated by the libudev.so.0 issue. The source tar includes a script to solve the issue, but it expects the real binary to be in the same folder. There's also a couple of scripts and additional files that are looked for right next to the binary. I think for now I'll just move it all to /opt/$pkgname.
    Thanks again.
    Last edited by InfernoZeus (2015-03-08 00:45:36)

  • [SOLVED] How to makepkg from local source

    Hello!
    I have downloaded a tarball from the Aur and when using "makepkg -si" it downloads and compiles the source from Github just fine.
    I want to do some changes on the source but I don't know how to get makepkg to use the edited files instead of getting the fresh source from Github. The only solution I have come up with is to fork on Github and change url in PKGBUILD, it works fine but it's a real hassle.
    Any help is appreciated.
    Last edited by Lime (2015-05-21 18:45:20)

    jasonwryan wrote:man makepkg | less -p extract
    I thought I had looked everywhere and I completely forgot about that, thanks!
    Solution for anyone else wanting to do this, use -e/--noextract flag.

Maybe you are looking for