PKGBUILD - PixelLight

I was interested in trying out the PixelLight 3D engine, but found that it was not available in the repos or AUR, so I decided to try and create a PKGBUILD for it. As this is my first PKGBUILD, It's not exactly ready for prime time. There are issues I'm still working on figuring out, primarily how PixelLight, by default, sticks things in places that aren't where you would generally look for them. The libraries and binaries are in /usr/share, for example. Because the PixelLight libraries are in /usr/share, the binaries can't find them and crash if you try to run them. I haven't even attempted using the libraries yet.
Pretty much, it could use a looking at. Some suggestions would be nice.
If anyone wants to look at the resulting package from a x64 system, here's what the PKGBUILD produced: http://em.dlmarriott.net/pixellight-1.0 … pkg.tar.xz
And the PKGBUILD
pkgname=pixellight
pkgver=1.0.0_R1
pkgrel=1
pkgdesc="A hardware accelerated 3D engine."
arch=('i686' 'x86_64')
url="http://www.pixellight.org/"
license=('LGPL3')
depends=('qt' 'openal' 'libvorbis' 'glu' 'gcc-libs-multilib' 'libxcursor')
makedepends=('cmake')
source=('http://downloads.sourceforge.net/project/pixellight/PixelLight%20v1.0/1.0.0-R1/PixelLight-1.0.0-R1-SourceCodes.tar.gz')
md5sums=('cfc975034a31c9a3cca5bbf28efc876a')
build() {
cd "$srcdir/PixelLight-1.0.0-R1-SourceCodes"
cmake -DCMAKE_INSTALL_PREFIX=/usr .
make
package() {
cd "$srcdir/PixelLight-1.0.0-R1-SourceCodes"
make DESTDIR="$pkgdir/" install

Hi.
I noticed a couple of things in your PKGBUILD:
- The README should go into /usr/share/doc/$pkgname instead of /usr/share/docs/$pkgname.
- The URL should point to the project website instead of this thread.
Otherwise it seems OK.

Similar Messages

  • Unable to create user in PKGBUILD / fakeroot

    tl;tr Package creation witk makepkg crashes if a certain user does not exist
    I'm maintaining package Icinga [1] and I've had three comments about the way the pakage wants to install. Following the install from the official documentation [2] a user needs to be created. This will be the main user for the build process. Is built with [3]:
    --with-icinga-user=${_icinga_user} \
    --with-icinga-group=${_icinga_user} \
    thus owning the main files to that user. This is a preferred e.g. suPhp [4][5] method where exposed (web/server) files are not owned by root or http but by a limited user. Apart from my ideas of a safe environment I want to be able to package an application the way it's intended by the creators.
    I've investigated an researched a decent amount. I found [6] discussing the possibility of creating a user. One of the examples [7] tries to create a temporary user inside the fakeroot environment of build() and poackage():
    if [ -z $(getent passwd $_amandauser) ] ; then
    msg "Adding user/group (temporarily)"
    groupadd -g $_amandagid $_amandagroup
    useradd -u $_amandauid -g $_amandagroup -G storage,disk -m -d /var/amanda -s /bin/bash -c "Amanda Backup Daemon" $_amandauser
    _cleanup=1
    else
    _cleanup=0
    fi
    but that fails as this snippet shows
    $ faketroot
    # groupadd -g 667 icinga
    # groupadd: PAM: Authenticatie service kan geen authenticatie informatie ophalen
    Interestingly emerge (Gentoo) has a function to add a user in pkg_setup() [8]
    enewgroup icinga
    enewuser icinga -1 -1 /var/spool/icinga icinga -c "icinga alert"
    The only reference to such idea in the Arch world is a keyword in PKGBUILD [9] like
    require_user('user1' 'user2')
    require_group('group1')
    What I did manage is removing all chown's from PKGBUILD, create a user in post_install() and chown several files to that user [10]. I would regard that a highly unsafe operation. Can anyone think of a better solution to be able to build() and later.package() an application when it's uncertain if a user exists? It might be helpful to exit makepkg in an early stage with a clear message (instructions to create the user) if that user doesn't exist.
    [1] https://aur.archlinux.org/packages/icinga/
    [2] http://docs.icinga.org/latest/en/quicks … ateaccount
    [3] https://aur.archlinux.org/packages/ic/icinga/PKGBUILD
    [4] http://www.suphp.org/Home.html
    [5] https://wiki.archlinux.org/index.php/Suphp
    [6] https://bbs.archlinux.org/viewtopic.php?id=105894
    [7] https://aur.archlinux.org/packages/am/amanda/PKGBUILD
    [8] https://271339.bugs.gentoo.org/attachment.cgi?id=287405
    [9] https://wiki.archlinux.org/index.php/De … D_Database
    [10] http://sprunge.us/XMgi?sh
    Last edited by foppe (2013-04-03 13:56:41)

    progandy wrote:I wanted to know whether my thoughts were realistic first
    https://github.com/progandy/fakeuser
    tl;tr Works like a charm
    git clone git://github.com/progandy/fakeuser.git
    cd fakeuser
    make
    # Folder fakeuser contains libfakeuser.so and fakeadd
    # Folder fakeuser/example-makepkg contains fakepkg
    wget https://aur.archlinux.org/packages/ic/icinga/icinga.tar.gz
    tar -zxf ./icinga.tar.gz
    cd icinga
    # Prepare MAKEPKG see [1]
    # Mostly:
    ## fakeadd -G -n $_icinga_group -g 667
    ## fakeadd -U -n $_icinga_user -u 667 -g 667
    # Prepare icinga.install see [2] - created group/user icinga:icinga in pre_install()
    # Make sure the user icinga:icinga doesn't exist
    sudo userdel icinga
    sudo groupdel icinga
    # copy fakepkg
    cp ../example-makepkg/fakepkg .
    # run fakepkg instead of makepkg
    ./fakepkg
    # Works like a charm
    # installing package
    sudo pacman -U icinga-1.8.4-2-x86_64.pkg.tar.xz
    # test
    ls -al /usr/share/webapps/icinga
    # drwxrwxr-x 10 icinga icinga 4096 5 apr 12:37 .
    # drwxr-xr-x 3 root root 4096 5 apr 12:37 ..
    # drwxr-xr-x 2 icinga icinga 4096 5 apr 12:37 cgi-bin
    # <snip>
    # drwxrwxr-x 2 icinga icinga 4096 5 apr 12:37 ssi
    # drwxrwxr-x 2 icinga icinga 4096 5 apr 12:37 stylesheets
    ls -al /var/spool/icinga
    # drwxr-xr-x 4 icinga icinga 4096 5 apr 12:37 .
    # drwxr-xr-x 10 root root 4096 5 apr 12:54 ..
    # drwxrwxr-x 2 icinga icinga 4096 5 apr 12:37 checkresults
    # drwxr-xr-x 2 icinga icinga 4096 5 apr 12:37 rw
    # [1] http://sprunge.us/ISjA?sh
    # [2] http://sprunge.us/PUPI?sh
    I used a modified PKGBUILD [1] plus a modified icinga.install [2]. The PKGBUILD adds the fakeuser
    package() {
    fakeadd -G -n $_icinga_group -g 667
    fakeadd -U -n $_icinga_user -u 667 -g 667
    cd "$srcdir/$pkgname-$pkgver"
    The icinga.install file adds the read user in pre_install()
    pre_install() {
    _icinga_user="icinga"
    _icinga_group="icinga"
    _icinga_gid=667
    _icinga_uid=667
    getent group icinga > /dev/null || groupadd -g $_icinga_gid $_icinga_group > /dev/null
    getent passwd icinga > /dev/null || useradd -u $_icinga_uid -g $_icinga_group -G http \
    -d /dev/null -s /bin/false $_icinga_user > /dev/null
    and this is exacly what I think is the very best solution to solve this issue. It's completely safe because all tricky file manipulation is done in a fakeroot environment and it's completely hassle free for the end-user.
    Heads up. Let's try get this idea upstream
    [1] http://sprunge.us/ISjA?sh
    [2] http://sprunge.us/PUPI?sh
    Last edited by foppe (2013-04-05 11:17:33)

  • [SOLVED] EurKEY PKGBUILD request for comments

    Hi, I just finished a PKGBUILD for EurKEY "European Keyboard Layout". It installs and removes fine on my system, and I took care to respect the packaging standards, but before submitting it to AUR I would like to get any comments/suggestions.
    PKGBUILD
    # Maintainer: Christoph Roeper <cr (at) roeper (dot) biz>
    pkgname=eurkey
    pkgver=1.1
    pkgrel=1
    pkgdesc="The European Keyboard Layout"
    arch=('any')
    url="http://eurkey.steffen.bruentjen.eu/"
    license=('GPL3')
    depends=('xkeyboard-config' 'sed' 'gawk')
    install="$pkgname.install"
    source=(http://eurkey.steffen.bruentjen.eu/download/debian/binary/eurkey.deb)
    md5sums=('8da8472f8f8d30baaa6a50145264024b')
    package() {
    cd "$srcdir"
    ar x $pkgname.deb
    tar xzf data.tar.gz -C "$pkgdir/"
    cd "${pkgdir}"
    # euro on '5', swap with pound
    awk='\
    BEGIN { fix = 0 } \
    if ( $2 == "<AE04>" ) { $7="sterling,"; fix = 1 } \
    else if ( $2 == "<AE05>" ) { $7="EuroSign,"; fix = 1 } \
    if ( fix == 1 ) { printf "%11s %s %s %s%16s%19s%22s%21s %s %s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9,$10; fix = 0 } \
    else { print } \
    file="usr/share/X11/xkb/symbols/eurkey"
    tmpfile="$file".`date +%FT%T`.temp
    awk -- "$awk" $file > $tmpfile
    cat $tmpfile > $file
    rm $tmpfile
    pkgname.install
    post_install() {
    # Installs the EurKEY layout.
    if test "$EUID" = 0; then SUDO=; else SUDO=sudo; fi
    exec $SUDO bash /dev/stdin "$@" <<'ENDSUDO'
    set -e
    str=" <layout>\n\
    <configItem>\n\
    <name>eurkey</name>\n\
    <shortDescription>EUR</shortDescription>\n\
    <description>EurKEY</description>\n\
    <languageList>\n\
    <iso639Id>cat</iso639Id>\n\
    <iso639Id>dan</iso639Id>\n\
    <iso639Id>eng</iso639Id>\n\
    <iso639Id>est</iso639Id>\n\
    <iso639Id>fao</iso639Id>\n\
    <iso639Id>fin</iso639Id>\n\
    <iso639Id>ger</iso639Id>\n\
    <iso639Id>gre</iso639Id>\n\
    <iso639Id>gsw</iso639Id>\n\
    <iso639Id>ita</iso639Id>\n\
    <iso639Id>lav</iso639Id>\n\
    <iso639Id>lit</iso639Id>\n\
    <iso639Id>nld</iso639Id>\n\
    <iso639Id>nor</iso639Id>\n\
    <iso639Id>por</iso639Id>\n\
    <iso639Id>spa</iso639Id>\n\
    <iso639Id>swe</iso639Id>\n\
    </languageList>\n\
    </configItem>\n\
    </layout>\n\
    </layoutList>"
    for file in /usr/share/X11/xkb/rules/{base,evdev}.xml; do
    if [ ! -f "$file" ]; then
    echo "File $file is not a regular file (skipped)"
    elif [ $(grep -ci eurkey "$file") -ne 0 ]; then
    echo "File $file already constains eurkey (skipped)"
    else
    echo "processing $file"
    sed -i "s~</layoutList>~$str~" "$file"
    fi
    done
    ENDSUDO
    pre_remove() {
    # Removes the EurKEY layout.
    if test "$EUID" = 0; then SUDO=; else SUDO=sudo; fi
    exec $SUDO bash /dev/stdin "$@" <<'ENDSUDO'
    set -e
    for file in {/etc/vconsole.conf,/etc/X11/xorg.conf.d/*keyboard*}; do
    if [ -f $file ]; then
    [ `grep -ci '^\s*[^#].*eurkey' $file` -ne 0 ] && echo -e "Cannot completely remove EurKEY since it's still configured in $file.\nPlease remove it manually or use the settings manager." && exit 1
    fi
    done
    exit 0
    ENDSUDO
    post_remove() {
    # Removes the EurKEY layout.
    if test "$EUID" = 0; then SUDO=; else SUDO=sudo; fi
    exec $SUDO bash /dev/stdin "$@" <<'ENDSUDO'
    set -e
    awk='
    BEGIN { output = 1 ; buffer = "" }
    $0~/<layout>/ { output = 0 ; deleteSection = 0 }
    output == 1 { print $0 }
    $0~/<\/layout>/ { output = 1 ; buffer = buffer $0 ; if (deleteSection == 0) print buffer ; buffer = "" }
    $0~/<name>eurkey<\/name>/ { deleteSection = 1 }
    output == 0 { buffer = buffer $0 "\n" }
    for file in /usr/share/X11/xkb/rules/{base,evdev}.xml; do
    if test -f "$file"; then
    tmpfile="$file".`date +%FT%T`.temp
    echo "processing $file"
    awk -- "$awk" $file > $tmpfile
    cat $tmpfile > $file
    rm $tmpfile
    fi
    done
    ENDSUDO
    'sed' and 'awk' are neither build nor run-time dependencies, both are install dependencies, but I did not find a proper option for that.
    The (un-)install-scripts are taken from the Debian source, however with deb-packages it is obviously possible to abort  pre/post_remove on failure (here used if the keyboard layout is still in use => no uninstall). I did not find a proper way to accomplish this with PKGBUILD install scripts.
    Both scripts a rather long, but in other review requests forum veterans preferred to have scripts posted here instead of a link to AUR or pastebin. If it's nevertheless wrong I will relocate the scripts.
    Thanks in advance.
    Last edited by roepi (2014-03-17 17:42:44)

    If you still want to modify the XML, I would use xmlstarlet instead of awk/sed. I haven't tested the following scripts so they will probably need some debugging but they should give you a general idea of what I would do.
    The post remove script would be reduced to:
    set -e
    # xpath selector to select layouts that are named eurkey
    xpath='/xkbConfigRegistry/layoutList/layout/configItem/name[text()="eurkey"]/../..'
    for file in /usr/share/X11/xkb/rules/{base,evdev}.xml; do
    [[ -f "$file" ]] && xml ed --inplace -d "$xpath" "$file"
    done
    And the post install script would become:
    set -e
    xpath='/xkbConfigRegistry/layoutList/layout/configItem/name[text()="eurkey"]'
    for file in /usr/share/X11/xkb/rules/{base,evdev}.xml; do
    if [[ ! -f "$file" ]]; then
    echo "File $file is not a regular file (skipped)"
    elif xml sel -t -c "$xpath" $file >/dev/null; then
    echo "File $file already constains eurkey (skipped)"
    else
    echo "processing $file"
    xml ed -P -L \
    -s /xkbConfigRegistry/layoutList -t elem -n layoutTMP -v '' \
    -s //layoutTMP -t elem -n configItem -v '' \
    -s //layoutTMP/configItem -t elem -n name -v 'eurkey' \
    -s //layoutTMP/configItem -t elem -n shortDescription -v 'EUR' \
    -s //layoutTMP/configItem -t elem -n description -v 'EurKEY' \
    -s //layoutTMP/configItem -t elem -n languageList -v '' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'cat' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'dan' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'eng' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'est' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'fao' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'fin' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'ger' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'gre' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'gsw' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'ita' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'lav' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'lit' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'nld' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'nor' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'por' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'spa' \
    -s //layoutTMP/configItem/languageList -t elem -n iso639Id -v 'swe' \
    -r //layoutTMP -v layout \
    "$file"
    fi
    done

  • Anyone use funambol? Want to write a PKGBUILD for it

    Hi all,
    Anyone here uses funambol? Its open-source but distributed in binary. I was thinking it'd be good to have an Arch (AUR) package for it. Of course, having the PKGBUILD simply unpack the binary distribution isn't optimal, was thinking of an /etc/rc.d script + /usr/bin links at least, as well as a 'fix' for the 32-bit included JVM issue.
    Anyway, I just found this software yesterday, and don't even have it working (as in syncing properly) yet. Would someone who uses it respond here, so I know what would be needed to make a good package for this?

    bharani wrote:
    ngoonee wrote:
    I've got a basic funambol setup working (syncing contacts, calendar, and todo between my palm and Evolution).
    The PKGBUILD basically dumps stuff in /opt/Funambol currently. Next is to write up the /etc/rc.d/funambol (shouldn't be too hard) and figure out what sort of .desktop files are needed (probably just the admin utility).
    Does anyone know if funambol has support for multiple calendars per user? Or do I have to create a new user for each calendar (and sync separately...)?
    Its great that you have it working. i gave up after reading the manual. I think there is a need to change a configuration file for java home in arch 64 bit (the binary file is being bundled with 32 bit jre).
    Not a change in configuration file, just rm the folder and ln -s your current java there.
    Here's an initial PKGBUILD. No makedepends that I'm aware of (its just cp, rm, ln, chmod). This gives you a working funambol, configuring and stuff is up to the user.
    The todo list from the previous post is still undone though .
    # Maintainer: Ng Oon-Ee < n g o o n e e AT g m a i l . c o m >
    pkgname=funambol
    pkgver=8.0.2
    pkgrel=1
    arch=(i686 x86_64)
    url="http://www.funambol.com"
    license=('AGPL3')
    #makedepends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' 'libcap>=2.16' 'heimdal>=1.3.1' 'pam' 'fam' 'gnutls>=2.4.1')
    #options=(!makeflags)
    depends=('java-runtime' 'python')
    source=(http://download.forge.objectweb.org/sync4j/${pkgname}-${pkgver}.tgz)
    md5sums=('54a5f1e50dd51b4282046f824b986a72')
    build() {
    cd ${srcdir}/Funambol/
    install -dv -m755 ${pkgdir}/opt/
    # Copy Funambol files to /opt/Funambol
    cp -a ${srcdir}/Funambol/ ${pkgdir}/opt/
    # Removing built-in JRE, use system JRE
    rm -Rf ${pkgdir}/opt/Funambol/tools/jre-1.5.0/
    # Use system java libs
    ln -s /usr/lib/jvm/* ${pkgdir}/opt/Funambol/tools/jre-1.5.0
    # hack to prevent a whole lot of prompts for removing write-protected file
    chmod -R 644 ${srcdir}/Funambol/tools/jre-1.5.0/jre/

  • Gcc not working with compiled glibc from PKGBUILD

    hello folks, please excuse my english
    i like to compile certain parts of my system, between them are the kernel, glibc , zsh, etc.
    i had noticed that using a compiled version of glibc from abs results in gcc not working at all ( C compiler cannot create executables logs says). this is weird especially because i hadn't had problems before, i have looked for the error mesagges on Google and a lot of people has had this problem but  nobody has a "generic" solution for this
    this is the config.log file from one failed compile of mpg123
    This file contains any messages produced by compilers while
    running configure, to aid debugging if configure makes a mistake.
    It was created by mpg123 configure 1.12.3, which was
    generated by GNU Autoconf 2.65. Invocation command line was
    $ ./configure --prefix=/usr --with-audio=alsa esd sdl
    ## Platform. ##
    hostname = Soul
    uname -m = x86_64
    uname -r = 2.6.34.1
    uname -s = Linux
    uname -v = #1 SMP PREEMPT Tue Jul 6 23:23:17 CLT 2010
    /usr/bin/uname -p = unknown
    /bin/uname -X = unknown
    /bin/arch = x86_64
    /usr/bin/arch -k = unknown
    /usr/convex/getsysinfo = unknown
    /usr/bin/hostinfo = unknown
    /bin/machine = unknown
    /usr/bin/oslevel = unknown
    /bin/universe = unknown
    PATH: /bin
    PATH: /usr/bin
    PATH: /usr/local/bin
    PATH: /sbin
    PATH: /usr/sbin
    PATH: /usr/local/sbin
    PATH: /usr/share/java/apache-ant/bin
    PATH: /usr/lib/perl5/core_perl/bin
    ## Core tests. ##
    configure:2849: checking build system type
    configure:2863: result: x86_64-unknown-linux-gnu
    configure:2883: checking host system type
    configure:2896: result: x86_64-unknown-linux-gnu
    configure:2933: checking for a BSD-compatible install
    configure:3001: result: /bin/install -c
    configure:3012: checking whether build environment is sane
    configure:3062: result: yes
    configure:3203: checking for a thread-safe mkdir -p
    configure:3242: result: /bin/mkdir -p
    configure:3255: checking for gawk
    configure:3271: found /bin/gawk
    configure:3282: result: gawk
    configure:3293: checking whether make sets $(MAKE)
    configure:3315: result: yes
    configure:3402: checking for -Werror in CFLAGS (It breaks tests)
    configure:3412: result: no
    configure:3423: checking if you are up to something totally static with LDFLAGS/CFLAGS
    configure:3443: result: no
    configure:3463: checking for style of include used by make
    configure:3491: result: GNU
    configure:3561: checking for gcc
    configure:3577: found /usr/bin/gcc
    configure:3588: result: gcc
    configure:3817: checking for C compiler version
    configure:3826: gcc --version >&5
    gcc (GCC) 4.5.1
    Copyright (C) 2010 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    configure:3837: $? = 0
    configure:3826: gcc -v >&5
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.1/lto-wrapper
    Target: x86_64-unknown-linux-gnu
    Configured with: ../configure --prefix=/usr --enable-languages=c,c++,fortran,objc,obj-c++,ada --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-gnu-unique-object --enable-lto --enable-plugin --disable-multilib --disable-libstdcxx-pch --with-system-zlib --with-ppl --with-cloog --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info
    Thread model: posix
    gcc version 4.5.1 (GCC)
    configure:3837: $? = 0
    configure:3826: gcc -V >&5
    gcc: '-V' option must have argument
    configure:3837: $? = 1
    configure:3826: gcc -qversion >&5
    gcc: unrecognized option '-qversion'
    gcc: no input files
    configure:3837: $? = 1
    configure:3857: checking whether the C compiler works
    configure:3879: gcc -march=amdfam10 -O2 -pipe -Wl,--hash-style=gnu -Wl,--as-needed conftest.c >&5
    /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.1/../../../../lib/crt1.o: In function `_start':
    (.text+0x12): undefined reference to `__libc_csu_fini'
    /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.1/../../../../lib/crt1.o: In function `_start':
    (.text+0x19): undefined reference to `__libc_csu_init'
    collect2: ld returned 1 exit status
    configure:3883: $? = 1
    configure:3921: result: no
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "mpg123"
    | #define PACKAGE_TARNAME "mpg123"
    | #define PACKAGE_VERSION "1.12.3"
    | #define PACKAGE_STRING "mpg123 1.12.3"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "mpg123"
    | #define VERSION "1.12.3"
    | /* end confdefs.h. */
    |
    | int
    | main ()
    | {
    |
    | ;
    | return 0;
    | }
    configure:3926: error: in `/var/abs/local/mpg123/src/mpg123-1.12.3':
    configure:3930: error: C compiler cannot create executables
    See `config.log' for more details.
    ## Cache variables. ##
    ac_cv_build=x86_64-unknown-linux-gnu
    ac_cv_env_CCASFLAGS_set=
    ac_cv_env_CCASFLAGS_value=
    ac_cv_env_CCAS_set=
    ac_cv_env_CCAS_value=
    ac_cv_env_CC_set=
    ac_cv_env_CC_value=
    ac_cv_env_CFLAGS_set=set
    ac_cv_env_CFLAGS_value='-march=amdfam10 -O2 -pipe'
    ac_cv_env_CPPFLAGS_set=
    ac_cv_env_CPPFLAGS_value=
    ac_cv_env_CPP_set=
    ac_cv_env_CPP_value=
    ac_cv_env_ESD_CFLAGS_set=
    ac_cv_env_ESD_CFLAGS_value=
    ac_cv_env_ESD_LIBS_set=
    ac_cv_env_ESD_LIBS_value=
    ac_cv_env_JACK_CFLAGS_set=
    ac_cv_env_JACK_CFLAGS_value=
    ac_cv_env_JACK_LIBS_set=
    ac_cv_env_JACK_LIBS_value=
    ac_cv_env_LDFLAGS_set=set
    ac_cv_env_LDFLAGS_value='-Wl,--hash-style=gnu -Wl,--as-needed'
    ac_cv_env_LIBS_set=
    ac_cv_env_LIBS_value=
    ac_cv_env_PKG_CONFIG_set=
    ac_cv_env_PKG_CONFIG_value=
    ac_cv_env_PULSE_CFLAGS_set=
    ac_cv_env_PULSE_CFLAGS_value=
    ac_cv_env_PULSE_LIBS_set=
    ac_cv_env_PULSE_LIBS_value=
    ac_cv_env_SDL_CFLAGS_set=
    ac_cv_env_SDL_CFLAGS_value=
    ac_cv_env_SDL_LIBS_set=
    ac_cv_env_SDL_LIBS_value=
    ac_cv_env_build_alias_set=
    ac_cv_env_build_alias_value=
    ac_cv_env_host_alias_set=
    ac_cv_env_host_alias_value=
    ac_cv_env_target_alias_set=
    ac_cv_env_target_alias_value=
    ac_cv_host=x86_64-unknown-linux-gnu
    ac_cv_path_install='/bin/install -c'
    ac_cv_path_mkdir=/bin/mkdir
    ac_cv_prog_AWK=gawk
    ac_cv_prog_ac_ct_CC=gcc
    ac_cv_prog_make_make_set=yes
    ## Output variables. ##
    ACLOCAL='${SHELL} /var/abs/local/mpg123/src/mpg123-1.12.3/build/missing --run aclocal-1.11'
    AIX_CFLAGS=''
    AIX_LDFLAGS=''
    AIX_LIBS=''
    ALIB_CFLAGS=''
    ALIB_LDFLAGS=''
    ALIB_LIBS=''
    ALSA_CFLAGS=''
    ALSA_LDFLAGS=''
    ALSA_LIBS=''
    AMDEPBACKSLASH='\'
    AMDEP_FALSE='#'
    AMDEP_TRUE=''
    AMTAR='${SHELL} /var/abs/local/mpg123/src/mpg123-1.12.3/build/missing --run tar'
    API_VERSION='25'
    AR=''
    ARTS_CFLAGS=''
    ARTS_LDFLAGS=''
    ARTS_LIBS=''
    AS=''
    AUTOCONF='${SHELL} /var/abs/local/mpg123/src/mpg123-1.12.3/build/missing --run autoconf'
    AUTOHEADER='${SHELL} /var/abs/local/mpg123/src/mpg123-1.12.3/build/missing --run autoheader'
    AUTOMAKE='${SHELL} /var/abs/local/mpg123/src/mpg123-1.12.3/build/missing --run automake-1.11'
    AWK='gawk'
    CC='gcc'
    CCAS=''
    CCASDEPMODE=''
    CCASFLAGS=''
    CCDEPMODE=''
    CFLAGS='-march=amdfam10 -O2 -pipe'
    COREAUDIO_CFLAGS=''
    COREAUDIO_LDFLAGS=''
    COREAUDIO_LIBS=''
    CPP=''
    CPPFLAGS=''
    CYGPATH_W='echo'
    DECODER_LOBJ=''
    DECODER_OBJ=''
    DEFS=''
    DEPDIR='.deps'
    DLLTOOL=''
    DSYMUTIL=''
    DUMMY_CFLAGS=''
    DUMMY_LDFLAGS=''
    DUMMY_LIBS=''
    DUMPBIN=''
    ECHO_C=''
    ECHO_N='-n'
    ECHO_T=''
    EGREP=''
    ESD_CFLAGS=''
    ESD_LDFLAGS=''
    ESD_LIBS=''
    EXEC_LT_LDFLAGS=''
    EXEEXT=''
    FGREP=''
    GREP=''
    HAVE_AIX_FALSE=''
    HAVE_AIX_TRUE=''
    HAVE_ALIB_FALSE=''
    HAVE_ALIB_TRUE=''
    HAVE_ALSA_FALSE=''
    HAVE_ALSA_TRUE=''
    HAVE_ARTS_FALSE=''
    HAVE_ARTS_TRUE=''
    HAVE_COREAUDIO_FALSE=''
    HAVE_COREAUDIO_TRUE=''
    HAVE_DUMMY_FALSE=''
    HAVE_DUMMY_TRUE=''
    HAVE_ESD_FALSE=''
    HAVE_ESD_TRUE=''
    HAVE_HP_FALSE=''
    HAVE_HP_TRUE=''
    HAVE_JACK_FALSE=''
    HAVE_JACK_TRUE=''
    HAVE_MINT_FALSE=''
    HAVE_MINT_TRUE=''
    HAVE_MODULES_FALSE=''
    HAVE_MODULES_TRUE=''
    HAVE_NAS_FALSE=''
    HAVE_NAS_TRUE=''
    HAVE_OPENAL_FALSE=''
    HAVE_OPENAL_TRUE=''
    HAVE_OS2_FALSE=''
    HAVE_OS2_TRUE=''
    HAVE_OSS_FALSE=''
    HAVE_OSS_TRUE=''
    HAVE_PORTAUDIO_FALSE=''
    HAVE_PORTAUDIO_TRUE=''
    HAVE_PULSE_FALSE=''
    HAVE_PULSE_TRUE=''
    HAVE_SDL_FALSE=''
    HAVE_SDL_TRUE=''
    HAVE_SGI_FALSE=''
    HAVE_SGI_TRUE=''
    HAVE_SNDIO_FALSE=''
    HAVE_SNDIO_TRUE=''
    HAVE_SUN_FALSE=''
    HAVE_SUN_TRUE=''
    HAVE_WIN32_FALSE=''
    HAVE_WIN32_TRUE=''
    HP_CFLAGS=''
    HP_LDFLAGS=''
    HP_LIBS=''
    INCLUDE_STDIO_H=''
    INCLUDE_STDLIB_H=''
    INCLUDE_SYS_TYPE_H=''
    INSTALL_DATA='${INSTALL} -m 644'
    INSTALL_PROGRAM='${INSTALL}'
    INSTALL_SCRIPT='${INSTALL}'
    INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
    JACK_CFLAGS=''
    JACK_LDFLAGS=''
    JACK_LIBS=''
    LD=''
    LDFLAGS='-Wl,--hash-style=gnu -Wl,--as-needed'
    LFS_LOBJ=''
    LIBMPG123_VERSION='25:5:25'
    LIBOBJS=''
    LIBS=''
    LIBTOOL=''
    LIPO=''
    LN_S=''
    LTLIBOBJS=''
    LT_LDFLAGS='-export-dynamic'
    MAKEINFO='${SHELL} /var/abs/local/mpg123/src/mpg123-1.12.3/build/missing --run makeinfo'
    MINT_CFLAGS=''
    MINT_LDFLAGS=''
    MINT_LIBS=''
    MKDIR_P='/bin/mkdir -p'
    MODULE_OBJ=''
    NAS_CFLAGS=''
    NAS_LDFLAGS=''
    NAS_LIBS=''
    NM=''
    NMEDIT=''
    OBJDUMP=''
    OBJEXT=''
    OPENAL_CFLAGS=''
    OPENAL_LDFLAGS=''
    OPENAL_LIBS=''
    OS2_CFLAGS=''
    OS2_LDFLAGS=''
    OS2_LIBS=''
    OSS_CFLAGS=''
    OSS_LDFLAGS=''
    OSS_LIBS=''
    OTOOL64=''
    OTOOL=''
    OUTPUT_CFLAGS=''
    OUTPUT_LDFLAGS=''
    OUTPUT_LIBS=''
    OUTPUT_MOD=''
    OUTPUT_OBJ=''
    PACKAGE='mpg123'
    PACKAGE_BUGREPORT='[email protected]'
    PACKAGE_NAME='mpg123'
    PACKAGE_STRING='mpg123 1.12.3'
    PACKAGE_TARNAME='mpg123'
    PACKAGE_URL=''
    PACKAGE_VERSION='1.12.3'
    PATH_SEPARATOR=':'
    PKG_CONFIG=''
    PORTAUDIO_CFLAGS=''
    PORTAUDIO_LDFLAGS=''
    PORTAUDIO_LIBS=''
    PULSE_CFLAGS=''
    PULSE_LDFLAGS=''
    PULSE_LIBS=''
    RANLIB=''
    SDL_CFLAGS=''
    SDL_LDFLAGS=''
    SDL_LIBS=''
    SED=''
    SET_MAKE=''
    SGI_CFLAGS=''
    SGI_LDFLAGS=''
    SGI_LIBS=''
    SHELL='/bin/sh'
    SNDIO_CFLAGS=''
    SNDIO_LDFLAGS=''
    SNDIO_LIBS=''
    STRIP=''
    SUN_CFLAGS=''
    SUN_LDFLAGS=''
    SUN_LIBS=''
    VERSION='1.12.3'
    WIN32_CFLAGS=''
    WIN32_CODES_FALSE=''
    WIN32_CODES_TRUE=''
    WIN32_LDFLAGS=''
    WIN32_LIBS=''
    ac_ct_CC='gcc'
    ac_ct_DUMPBIN=''
    am__EXEEXT_FALSE=''
    am__EXEEXT_TRUE=''
    am__fastdepCCAS_FALSE=''
    am__fastdepCCAS_TRUE=''
    am__fastdepCC_FALSE=''
    am__fastdepCC_TRUE=''
    am__include='include'
    am__isrc=''
    am__leading_dot='.'
    am__quote=''
    am__tar='${AMTAR} chof - "$$tardir"'
    am__untar='${AMTAR} xf -'
    bindir='${exec_prefix}/bin'
    build='x86_64-unknown-linux-gnu'
    build_alias=''
    build_cpu='x86_64'
    build_os='linux-gnu'
    build_vendor='unknown'
    datadir='${datarootdir}'
    datarootdir='${prefix}/share'
    docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
    dvidir='${docdir}'
    exec_prefix='NONE'
    host='x86_64-unknown-linux-gnu'
    host_alias=''
    host_cpu='x86_64'
    host_os='linux-gnu'
    host_vendor='unknown'
    htmldir='${docdir}'
    includedir='${prefix}/include'
    infodir='${datarootdir}/info'
    install_sh='${SHELL} /var/abs/local/mpg123/src/mpg123-1.12.3/build/install-sh'
    libdir='${exec_prefix}/lib'
    libexecdir='${exec_prefix}/libexec'
    localedir='${datarootdir}/locale'
    localstatedir='${prefix}/var'
    lt_ECHO='echo'
    mandir='${datarootdir}/man'
    mkdir_p='/bin/mkdir -p'
    oldincludedir='/usr/include'
    pdfdir='${docdir}'
    prefix='/usr'
    program_transform_name='s,x,x,'
    psdir='${docdir}'
    sbindir='${exec_prefix}/sbin'
    sharedstatedir='${prefix}/com'
    sysconfdir='${prefix}/etc'
    target_alias=''
    ## confdefs.h. ##
    /* confdefs.h */
    #define PACKAGE_NAME "mpg123"
    #define PACKAGE_TARNAME "mpg123"
    #define PACKAGE_VERSION "1.12.3"
    #define PACKAGE_STRING "mpg123 1.12.3"
    #define PACKAGE_BUGREPORT "[email protected]"
    #define PACKAGE_URL ""
    #define PACKAGE "mpg123"
    #define VERSION "1.12.3"
    configure: exit 77
    the parts i had searched on google are specificaly the
    "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.1/../../../../lib/crt1.o: In function `_start':
    (.text+0x12): undefined reference to `__libc_csu_fini'
    /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.1/../../../../lib/crt1.o: In function `_start':
    (.text+0x19): undefined reference to `__libc_csu_init'"
    does anyone have an idea of what could it be?
    notice that this doesn't bother me because if i use the glibc from the repositories everything works fine, this is just for curiosity of why it doesn't work
    thanks in advance

    slacknatcher wrote:
    the parts i had searched on google are specificaly the
    "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.1/../../../../lib/crt1.o: In function `_start':
    (.text+0x12): undefined reference to `__libc_csu_fini'
    /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.1/../../../../lib/crt1.o: In function `_start':
    (.text+0x19): undefined reference to `__libc_csu_init'"
    does anyone have an idea of what could it be?
    notice that this doesn't bother me because if i use the glibc from the repositories everything works fine, this is just for curiosity of why it doesn't work
    thanks in advance
    You have stripped glibc too much.  See the Arch PKGBUILD and make sure your makepkg.conf has STRIP_BINARY etc defined.

  • [SOLVED] Asking for help and reviews for a PKGBUILD (cnijfilter-mp250)

    Hi everyone,
    I recently changed the desktop pc used by my parents, and I installed Arch on it (the previous desktop was running Debian). I know that I need to install a driver to get the printer working (a Canon MP 250 Series), because I did it before with Debian.
    The driver is in the AUR:
    https://aur.archlinux.org/packages/cnijfilter-mp250/
    A user in the comment (Huulivoide) suggested that the PKGBUILD was old, but the current mantainer didn't respond, so I decided to try to update the PKGBUILD myself as a learning opportunity and as a way to give something back to the community. This is the first PKGBUILD that I modify; while I've used Arch for quite some time, I'm still a noob in many respects.
    I tried to apply all the suggestions, and I did some other things (like quoting variables) that I often see in PKGBUILDs. This is the PKGBUILD:
    # Maintainer: Alireza Savand <[email protected]>
    # Special thanks to: olive, mirrr, GUiHKX, alessiofachechi, jeremy33,
    # jstitch, plv
    pkgname=cnijfilter-mp250
    pkgver=3.40.1
    pkgrel=5.1
    _pkgrealver=3.40
    _pkgrealrel=1
    pkgdesc="Canon IJ Printer Driver (MP250 series)"
    url="http://support-au.canon.com.au/contents/AU/EN/0100302002.html"
    arch=('i686' 'x86_64')
    license=('custom')
    depends=(
    'libcups'
    'cups'
    'popt'
    'ghostscript'
    'gsfonts'
    'atk>=1.9.0'
    'gtk2>=2.8.0'
    'pango>=1.12.3'
    'libpng>=1.2.8'
    'libtiff'
    'cairo>=1.0.2'
    'libxml2>=2.6.24'
    'fontconfig>=2.3.0'
    'libxinerama'
    makedepends=(
    'autoconf>=2.13'
    'automake>=1.6'
    'tar'
    'make'
    'gcc'
    conflicts=('cnijfilter-common')
    install=cnijfilter-mp250.install
    source=(
    'http://gdlp01.c-wss.com/gds/0/0100003020/01/cnijfilter-source-3.40-1.tar.gz'
    'fix.patch'
    'libpng.patch'
    'automake_fix.patch'
    md5sums=(
    '609975a05d6050fcca88f312d3f35c6a'
    'ba9c7ec49e76bf74cc50702e362aba7b'
    '15e417cd427a920c83e4f28e225e428e'
    '07f698d8987632d9bb427d3f4a42a29a'
    prepare() {
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/"
    #patch -p0 < "${srcdir}/fix.patch"
    #patch -p0 < "${srcdir}/libpng.patch"
    #patch -p0 < "${srcdir}/automake_fix.patch"
    build() {
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/libs"
    ./autogen.sh --prefix=/usr --program-suffix=mp250
    make
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/cngpij"
    ./autogen.sh --prefix=/usr --program-suffix=mp250 --enable-progpath=/usr/bin
    make
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/cnijfilter"
    ./autogen.sh --prefix=/usr --program-suffix=mp250 --enable-progpath=/usr/bin
    make
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/pstocanonij"
    ./autogen.sh --prefix=/usr --program-suffix=mp250 --enable-progpath=/usr/bin
    make
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/lgmon"
    ./autogen.sh --prefix=/usr --program-suffix=mp250 --enable-progpath=/usr/bin
    make
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/ppd"
    ./autogen.sh --prefix=/usr --program-suffix=mp250
    make
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/cngpijmon/cnijnpr"
    ./autogen.sh --prefix=/usr --program-suffix=mp250 --enable-progpath=/usr/bin LIBS="-ldl"
    make
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/backend"
    ./autogen.sh --prefix=/usr --program-suffix=mp250 --enable-progpath=/usr/bin
    make
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/backendnet"
    ./autogen.sh --prefix=/usr --program-suffix=mp250 --enable-progpath=/usr/bin
    make
    package() {
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/libs"
    make DESTDIR="${pkgdir}" install
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/cngpij"
    make DESTDIR="${pkgdir}" install
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/cnijfilter"
    make DESTDIR="${pkgdir}" install
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/pstocanonij"
    make DESTDIR="${pkgdir}" install
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/lgmon"
    make DESTDIR="${pkgdir}" install
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/ppd"
    make DESTDIR="${pkgdir}" install
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/cngpijmon/cnijnpr"
    make DESTDIR="${pkgdir}" install
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/backend"
    make DESTDIR="${pkgdir}" install
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/backendnet"
    make DESTDIR="${pkgdir}" install
    cp "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}"/cnijfilter/src/config* \
    "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}"/lgmon/src/
    cp "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}"/cnijfilter/src/config* \
    "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}"/cngpijmon/cnijnpr/cnijnpr/
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}"
    install -d "${pkgdir}/usr/lib/bjlib"
    install -m 755 356/database/* "${pkgdir}/usr/lib/bjlib"
    if [ "$CARCH" == "x86_64" ]; then
    libdir=libs_bin64
    else
    libdir=libs_bin32
    fi
    install -m 755 "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/356/${libdir}/libcnbpcmcm356.so.8.0.1" \
    "${pkgdir}/usr/lib/"
    install -m 755 "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/356/${libdir}/libcnbpcnclapi356.so.3.5.0" \
    "${pkgdir}/usr/lib/"
    install -m 755 "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/356/${libdir}/libcnbpcnclbjcmd356.so.3.3.0" \
    "${pkgdir}/usr/lib/"
    install -m 755 "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/356/${libdir}/libcnbpcnclui356.so.3.6.0" \
    "${pkgdir}/usr/lib/"
    install -m 755 "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/356/${libdir}/libcnbpess356.so.3.3.3" \
    "${pkgdir}/usr/lib/"
    install -m 755 "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/356/${libdir}/libcnbpess356.so.3.3.3" \
    "${pkgdir}/usr/lib/"
    install -m 755 "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/356/${libdir}/libcnbpo356.so.1.0.2" \
    "${pkgdir}/usr/lib/"
    install -m 755 "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/com/${libdir}/libcnnet.so.1.2.0" \
    "${pkgdir}/usr/lib/"
    cd "${pkgdir}/usr/lib/"
    ln -s libcnbpcmcm356.so.8.0.1 libcnbpcmcm356.so
    ln -s libcnbpcnclapi356.so.3.5.0 libcnbpcnclapi356.so
    ln -s libcnbpcnclbjcmd356.so.3.3.0 libcnbpcnclbjcmd356.so
    ln -s libcnbpcnclui356.so.3.6.0 libcnbpcnclui356.so
    ln -s libcnbpess356.so.3.3.3 libcnbpess356.so
    ln -s libcnbpo356.so.1.0.2 libcnbpo356.so
    ln -s libcnnet.so.1.2.0 libcnnet.so
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}"
    install -D "LICENSE-cnijfilter-${_pkgrealver}EN.txt" \
    "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-cnijfilter-${_pkgrealver}EN.txt"
    Questions:
    * Is the PKGBUILD all right?
    * The PKGBUILD apparently needs some patches. Unfortunately I don't code so I don't understand what their effect is. As far as I can tell, automake_fix.patch isn't needed anymore: I actually had to remove it to make the package build. Can someone confirm that it is safe to remove automake_fix.patch? What about the other patches? The package seems to build fine without libpng.patch and fix.patch, but since I don't know what they do I cannot really evaluate the impact of removing them.
    * namcap outputs some warnings about missing libraries. I'm not sure how to proceed here. Here is the output:
    cnijfilter-mp250 W: Referenced library 'libcnbpess356.so' is an uninstalled dependency
    cnijfilter-mp250 W: Referenced library 'libcnnet.so' is an uninstalled dependency
    cnijfilter-mp250 W: Referenced library 'libcnbpcmcm356.so' is an uninstalled dependency
    cnijfilter-mp250 W: Referenced library 'libcnbpcnclbjcmd356.so' is an uninstalled dependency
    cnijfilter-mp250 W: Referenced library 'libcnbpcnclapi356.so' is an uninstalled dependency
    cnijfilter-mp250 W: Referenced library 'libcnbpcnclui356.so' is an uninstalled dependency
    On the other hand, if I try to search (with find) for the name of the library in the package, I can see them:
    ./src/cnijfilter-source-3.40-1/356/libs_bin32/libcnbpess356.so
    ./src/cnijfilter-source-3.40-1/356/libs_bin64/libcnbpess356.so
    ./pkg/cnijfilter-mp250/usr/lib/libcnbpess356.so
    ./src/cnijfilter-source-3.40-1/com/libs_bin32/libcnnet.so
    ./src/cnijfilter-source-3.40-1/com/libs_bin64/libcnnet.so
    ./pkg/cnijfilter-mp250/usr/lib/libcnnet.so
    ./src/cnijfilter-source-3.40-1/356/libs_bin32/libcnbpcmcm356.so
    ./src/cnijfilter-source-3.40-1/356/libs_bin64/libcnbpcmcm356.so
    ./pkg/cnijfilter-mp250/usr/lib/libcnbpcmcm356.so
    ./src/cnijfilter-source-3.40-1/356/libs_bin32/libcnbpcnclbjcmd356.so
    ./src/cnijfilter-source-3.40-1/356/libs_bin64/libcnbpcnclbjcmd356.so
    ./pkg/cnijfilter-mp250/usr/lib/libcnbpcnclbjcmd356.so
    ./src/cnijfilter-source-3.40-1/356/libs_bin32/libcnbpcnclapi356.so
    ./src/cnijfilter-source-3.40-1/356/libs_bin64/libcnbpcnclapi356.so
    ./pkg/cnijfilter-mp250/usr/lib/libcnbpcnclapi356.so
    ./src/cnijfilter-source-3.40-1/356/libs_bin32/libcnbpcnclui356.so
    ./src/cnijfilter-source-3.40-1/356/libs_bin64/libcnbpcnclui356.so
    ./pkg/cnijfilter-mp250/usr/lib/libcnbpcnclui356.so
    So, all I can guess is that they're not in the correct place... Some of these "missing" libraries are moved around in the pkgbuild. Maybe I should move them in another dir...?
    There are other warnings in namcap; I'm inclined to ignore these:
    cnijfilter-mp250 W: Dependency libcups included but already satisfied
    cnijfilter-mp250 W: Dependency included and not needed ('cups')
    cnijfilter-mp250 W: Dependency included and not needed ('ghostscript')
    cnijfilter-mp250 W: Dependency included and not needed ('gsfonts')
    cnijfilter-mp250 W: Dependency included and not needed ('atk')
    cnijfilter-mp250 W: Dependency included and not needed ('gtk2')
    cnijfilter-mp250 W: Dependency included and not needed ('pango')
    cnijfilter-mp250 W: Dependency libpng included but already satisfied
    cnijfilter-mp250 W: Dependency libtiff included but already satisfied
    cnijfilter-mp250 W: Dependency included and not needed ('cairo')
    cnijfilter-mp250 W: Dependency included and not needed ('libxml2')
    cnijfilter-mp250 W: Dependency included and not needed ('fontconfig')
    cnijfilter-mp250 W: Dependency included and not needed ('libxinerama')
    * now the *really* noob question... My understanding is that the PKGBUILD contains instructions to produce a binary from source. What it's still mysterious to me is how to write these instruction *in practice*. E.g. in this PKGBUILD I see a lot of things copied/installed around, but how the user that originally wrote the PKGBUILD came to determine what to move and where, is beyond me. If I were to write a PKGBUILD from scratch now, how should I know that I need to  e.g.
    cp "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}"/cnijfilter/src/config* \
    "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}"/cngpijmon/cnijnpr/cnijnpr/
    Thanks to those who will find the time/patience to respond, and sorry for the long post.
    Last edited by greymatter (2014-04-06 13:06:27)

    Wow, so much could be simplified with a few cd's and a few for loops.
    Yes, it's OK. Not great, but OK.
    The patches, build fails here without fix.patch and libpng.patch. Make sure to delete your src dir before rebuilding, you probably still have the patches applied from a previous run. It works for now without the automake patch, but it may be needed again in the future. It would be much better done with sed than a patch, though.
    Edit: first attempt at a major cleanup
    # Maintainer: Alireza Savand <[email protected]>
    # Special thanks to: olive, mirrr, GUiHKX, alessiofachechi, jeremy33,
    # jstitch, plv
    pkgname=cnijfilter-mp250
    pkgver=3.40.1
    pkgrel=5.1
    _pkgrealver=3.40
    _pkgrealrel=1
    pkgdesc="Canon IJ Printer Driver (MP250 series)"
    url="http://support-au.canon.com.au/contents/AU/EN/0100302002.html"
    arch=('i686' 'x86_64')
    license=('custom')
    depends=(
    'libcups'
    'cups'
    'popt'
    'ghostscript'
    'gsfonts'
    'atk'
    'gtk2'
    'pango'
    'libpng'
    'libtiff'
    'cairo'
    'libxml2'
    'fontconfig'
    'libxinerama'
    conflicts=('cnijfilter-common')
    install=cnijfilter-mp250.install
    source=(
    'http://gdlp01.c-wss.com/gds/0/0100003020/01/cnijfilter-source-3.40-1.tar.gz'
    'fix.patch'
    'libpng.patch'
    'automake_fix.patch'
    md5sums=(
    '609975a05d6050fcca88f312d3f35c6a'
    'ba9c7ec49e76bf74cc50702e362aba7b'
    '15e417cd427a920c83e4f28e225e428e'
    '07f698d8987632d9bb427d3f4a42a29a'
    prepare() {
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/"
    patch -p0 < "${srcdir}/fix.patch"
    patch -p0 < "${srcdir}/libpng.patch"
    #patch -p0 < "${srcdir}/automake_fix.patch"
    build() {
    for i in libs cngpij cnijfilter pstocanonij lgmon ppd backend backendnet; do
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/${i}"
    ./autogen.sh --prefix=/usr --program-suffix=mp250 --enable-progpath=/usr/bin
    make
    done
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/cngpijmon/cnijnpr"
    ./autogen.sh --prefix=/usr --program-suffix=mp250 --enable-progpath=/usr/bin LIBS="-ldl"
    make
    package() {
    for i in libs cngpij cnijfilter pstocanonij lgmon ppd backend backendnet cngpijmon/cnijnpr; do
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/${i}"
    make DESTDIR="${pkgdir}" install
    done
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}"
    install -d "${pkgdir}/usr/lib/bjlib"
    install -m 755 356/database/* "${pkgdir}/usr/lib/bjlib"
    install -D "LICENSE-cnijfilter-${_pkgrealver}EN.txt" \
    "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-cnijfilter-${_pkgrealver}EN.txt"
    if [ "$CARCH" == "x86_64" ]; then
    local _libdir=libs_bin64
    else
    local _libdir=libs_bin32
    fi
    cd "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/356/${_libdir}/"
    install -m 755 -t "${pkgdir}/usr/lib/" \
    libcnbpcmcm356.so* \
    libcnbpcnclapi356.so* \
    libcnbpcnclbjcmd356.so* \
    libcnbpcnclui356.so* \
    libcnbpess356.so* \
    libcnbpo356.so* \
    "${srcdir}/cnijfilter-source-${_pkgrealver}-${_pkgrealrel}/com/${_libdir}/"libcnnet.so*
    Things to note:
    1. Versions are not needed on the deps unless it needs something different than what is in the main repos
    2. Anything included in base-devel should not be in the makedeps.
    3. The libdir variable was changed to _libdir and declared local. Need to avoid conflicting with other potential variables from the environment.
    Last edited by Scimmia (2014-04-05 18:04:26)

  • A PKGBUILD that allows multiple installed kernels

    Hi All,
    I've had so many people help me with so many things here at Arch, hopefully this will be useful to someone.
    What is it:
    I've got a kernel PKGBUILD file that allows me to build and install as many different kernels as desired, as long as each one has a unique $pkgver-$pkgrel setting.
    /var/abs/local/kernel-custom1/PKGBUILD:
    # $Id: PKGBUILD,v 1.17 2004/05/11 23:25:20 judd Exp $
    # Maintainer: judd <[email protected]>
    # 2004/06/30: Modified to support multiple loaded kernels -jea
    # Any kernel with a unique $pkgver-$pkgrel will not conflict with others.
    pkgver=2.6.6
    pkgrel=custom1
    # name mangling is necessary so pacman will load multiple packages
    pkgname=kernel$pkgver$pkgrel
    pkgdesc="Linux Kernel ver: $pkgver, build: $pkgrel"
    url="http://www.kernel.org"
    depends=('module-init-tools')
    # Is this file were patches to grub/menu.lst should occur? -jea
    install=kernel26.install
    source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$pkgver.tar.bz2
    config)
    # patch makepkg to use as many sums as listed, in order? -jea
    md5sums=('5218790bc3db41e77a7422969639a9ad' 'fd32e9f43e9b6060e01f71d666372518')
    build() {
    cd $startdir/src/linux-$pkgver
    # get rid of the 'i' in i686
    carch=`echo $CARCH | sed 's|i||'`
    cat ../config | sed "s|#CARCH#|$carch|g" >./.config
    yes "" | make config
    # set EXTRAVERSION to create unique /lib/modules/ subdirectories
    cat Makefile | sed "s|EXTRAVERSION =|EXTRAVERSION = -$pkgrel|" > tmpMake
    mv tmpMake Makefile
    make clean bzImage modules || return 1
    mkdir -p $startdir/pkg/{lib/modules,boot}
    make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1
    # create unique names in /boot/
    cp System.map $startdir/pkg/boot/System.map-$pkgver-$pkgrel
    cp arch/i386/boot/bzImage $startdir/pkg/boot/vmlinuz-$pkgver-$pkgrel
    install -D -m644 Makefile $startdir/pkg/usr/src/linux-$pkgver/Makefile
    install -D -m644 .config $startdir/pkg/usr/src/linux-$pkgver/.config
    install -D -m644 .config $startdir/pkg/boot/kconfig-$pkgver-$pkgrel
    mkdir -p $startdir/pkg/usr/src/linux-$pkgver/include
    mkdir -p $startdir/pkg/usr/src/linux-$pkgver/arch/i386/kernel
    for i in acpi asm-generic asm-i386 config linux math-emu net pcmcia scsi video; do
    cp -a include/$i $startdir/pkg/usr/src/linux-$pkgver/include/
    done
    # copy files necessary for later builds, like nvidia and vmware
    # does this "$pkgver-$pkgrel" multi-kernel strategy screw these up? -jea
    cp -a scripts $startdir/pkg/usr/src/linux-$pkgver/
    cp arch/i386/Makefile $startdir/pkg/usr/src/linux-$pkgver/arch/i386/
    cp arch/i386/kernel/asm-offsets.s $startdir/pkg/usr/src/linux-$pkgver/arch/i386/kernel/
    # copy in Kconfig files
    for i in `find . -name "Kconfig*"`; do
    mkdir -p $startdir/pkg/usr/src/linux-$pkgver/`echo $i | sed 's|/Kconfig.*||'`
    cp $i $startdir/pkg/usr/src/linux-$pkgver/$i
    done
    cd $startdir/pkg/usr/src/linux-$pkgver/include && ln -s asm-i386 asm
    cd $startdir/pkg/usr/src
    # create a unique subdirectory under /usr/src/
    mv linux-$pkgver linux-$pkgver-$pkgrel
    chown -R root.root $startdir/pkg/usr/src/linux-$pkgver-$pkgrel
    cd $startdir/pkg/lib/modules/$pkgver-$pkgrel &&
    (rm -f build; ln -sf /usr/src/linux-$pkgver-$pkgrel build)
    How it works:
    The primary thing I've usually done is wipe out my custom kernel by inadvertantly overwriting the loadable modules in the /lib/modules/$pkgver directory with a pacman -Su.
    The reason for this is that the current arch kernel build does not set the EXTRAVERSION variable in the kernel top level makefile. Therefore all kernels of the same $pkgver use the same /lib/modules/$pkgver/ subdirectory.
    The above PKGBUILD sets EXTRAVERSION to the $pkgrel variable.
    This causes the loadable module tree to be in a /lib/modules/$pkgver-$pkgrel/ directory.
    There are two other places where kernels experience file conflicts:
    /boot/
    /usr/src/
    The /boot/ files: vmlinuz, System.map and kconfig are given unique names by appending the $pkgver-$pkgrel string.
    The /usr/src/linux-$pkgver/ directory is moved to /usr/src/linux-$pkgver-$pkgrel/.
    This allows the loadable kernel, the loadable modules and the stripped source headers to be in a unique place for each different kernel. Therefore multiple kernels can be loaded concurrently and the desired one may be chosen at boot time by grub.
    The only thing a little weird about this, is the $pkgname variable. pacman will only load one version of each $pkgname, so for multiple kernels to be loaded, they each have to have a unique $pkgname. This is accomplished by appending the $pkgver and $pkgrel to the $pkgname. This is fine, except it gives a slightly weird name for the resulting kernel package file. It has the format:
    kernel$pkgver$pkgrel-$pkgver-$pkgrel.pkg.tar.gz
    That is, the $pkgver and $pkgrel appear in the package file name twice. This also shows if one issues:
    pacman -Q | grep kernel -
    Which yields for me:
    kernel2.6.6custom1 2.6.6-custom1
    kernel2.6.61 2.6.6-1
    kernel26 2.6.7-1
    This command could only have shown one package before, now it shows that I currently have installed: a custom 2.6.6 kernel, the stock arch 2.6.6 kernel built with the above PKGBUILD and the current arch kernel26 package.
    I may choose between any of these at boot time with grub. And as an added bonus, the next time I pacman -Su I won't wipe out my custom /lib/modules subdirectory 8-)
    All of this assumes the supply of your own custom config file as in the arch wiki Building the Kernel in ABS instructions.
    Idle thoughts:
    It would sure be nice if something like this could be adopted for the stock arch kernels. Unlike most other packages it is often desirable to have multiple versions of the kernel package installed at once.
    I wonder if it is practical for pacman to allow multiple versions of the same $pkgname to be installed concurrently if the $pkgname-$pkgver-$pkgrel string is unique and the different versions do not have file conflicts?
    The other major package I could see this being applied to is gcc. It would be really cool to load different cross and other configurations of gcc concurently.
    I find one of the most diifficult things needed to get a workstation running is getting all of the correct kernel modules built in. It seems that most PCs today have all the major features built in to the motherboard chipset: graphics controller, sound, usb, ethernet, etc. If it was possible to build a database of custom kernels, one for each major chipset, then one could be chosen by hardware detection at install time. This would provide the benefits of a custom kernel in an autoload fashion.
    Just dreaming...
    Conclusion:
    I'm not sure how this strategy fits in with the bigger pictiure of running pkg repositories, building dependent packages, who knows what else.
    The thing I hope to add next is automatically adding and removing entries into: /boot/grub/menu.lst when the kernel package is installed and removed. The $pkgdesc string is perfect for serving as the title line.
    Hopefully this can be useful to others, it has helped me clean up my multi-kernel mess here.
    Thanks Again for such an awesome distro...
    John E. A.
    p.s Arch Rulz!

    Thank you, I tried to set something up like this in the wiki, but never tested it and it didn't work for some users. You've tested it well?
    If so, you can copy it over to the wiki (edit or overwrite the Kernel compile with ABS wiki entry), or I can.
    Thanks again, its much appreciated.
    Dusty

  • Can't update haskell-http by editing the PKGBUILD in the abs

    So I dont see how to update the haskell-http package.
    I have adjusted the versions of the depending pkg's, but it doesn't help.
    (moved from Thread p1486676 because partly solved the overall sysUpgrade issue)
    termnml wrote:
    Okay. So as packages got updated:
    haskell-network -> 2.6.0.2-1
    haskell-parsec -> 3.1.7-1
    I edited the PKGBUILD in the abs and changed the depending versions to the proper ones.
    Build the package
    temporary removed haskell-http with pacman
    Performed the SysUpgrade with pacman which now ran smooth
    Tried to install the modified pkg -> haskell-http
    Still gives me the errors about the deps
    $: pacman -U haskell-http-4000.2.12-3-x86_64.pkg.tar.xz
    loading packages...
    resolving dependencies...
    warning: cannot resolve "haskell-network=2.5.0.0-2", a dependency of "haskell-http"
    warning: cannot resolve "haskell-parsec=3.1.5-3", a dependency of "haskell-http"
    :: The following package cannot be upgraded due to unresolvable dependencies:
    haskell-http
    Could it be that there are dep-defs in the src itself?
    I'm a little confused.
    But thank for your great help guys and the insane fast replys.
    Edited: Some lang improvement.
    Last edited by termnml (2014-12-23 03:20:55)

    Post the edited PKGBUILD.

  • [SOLVED] ocrfeeder-git PKGBUILD doesn't work

    https://aur.archlinux.org/packages/ocrfeeder-git/
    [pippo@linux ocrfeeder-git]$ makepkg -s
    ==> Creazione del pacchetto: ocrfeeder-git 0.7.11.20.g22218bc-1 (mar 18 nov 2014, 14.32.01, CET)
    ==> Controllo delle dipendenze durante l'avvio in corso...
    ==> Controllo delle dipendenze durante la compilazione in corso...
    ==> Download dei sorgenti in corso...
    -> Clonazione del repository ocrfeeder git in corso...
    Clone nel repository spoglio '/home/pippo/TEMP/ocrfeeder-git/ocrfeeder'...
    remote: Counting objects: 3584, done.
    remote: Compressing objects: 100% (2578/2578), done.
    remote: Total 3584 (delta 2415), reused 1346 (delta 936)
    Ricezione degli oggetti: 100% (3584/3584), 1.71 MiB | 510.00 KiB/s, done.
    Risoluzione dei delta: 100% (2415/2415), done.
    Checking connectivity... fatto.
    ==> Validazione dei sorgenti con sha512sums in corso...
    ocrfeeder ... Ignorato
    ==> Estrazione dei sorgenti in corso...
    -> Creazione di una copia di lavoro del repository ocrfeeder git in corso...
    Cloning into 'ocrfeeder'...
    fatto.
    ==> Avvio di pkgver() in corso...
    ==> Versione aggiornata: ocrfeeder-git 0.8-1
    ==> Avvio di build() in corso...
    /usr/bin/gnome-autogen.sh
    checking for automake >= 1.11.2...
    testing automake... found 1.14.1
    checking for autoreconf >= 2.53...
    testing autoreconf... found 2.69
    checking for glib-gettext >= 2.2.0...
    testing glib-gettextize... found 2.42.0
    checking for intltool >= 0.25...
    testing intltoolize... found 0.50.2
    checking for gnome-doc-utils >= 0.4.2...
    testing gnome-doc-prepare... found 0.20.10
    Checking for required M4 macros...
    Processing ./configure.ac
    Running glib-gettextize... Ignore non-fatal messages.
    Copying file po/Makefile.in.in
    Please add the files
    codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4
    progtest.m4
    from the /usr/share/aclocal directory to your autoconf macro directory
    or directly to your aclocal.m4 file.
    You will also need config.guess and config.sub, which you can get from
    ftp://ftp.gnu.org/pub/gnu/config/.
    Running gnome-doc-prepare...
    You should add the contents of '/usr/share/aclocal/gnome-doc-utils.m4' to 'aclocal.m4'.
    Putting files in AC_CONFIG_MACRO_DIR, 'm4'.
    Running intltoolize...
    Running autoreconf...
    autoreconf: Entering directory `.'
    autoreconf: configure.ac: not using Gettext
    autoreconf: running: aclocal --force --warnings=no-portability -I m4 ${ACLOCAL_FLAGS}
    autoreconf: configure.ac: tracing
    autoreconf: configure.ac: not using Libtool
    autoreconf: running: /usr/bin/autoconf --force --warnings=no-portability
    autoreconf: configure.ac: not using Autoheader
    autoreconf: running: automake --add-missing --copy --force-missing --warnings=no-portability
    configure.ac:48: installing './compile'
    configure.ac:9: installing './install-sh'
    configure.ac:9: installing './missing'
    Makefile.am: installing './INSTALL'
    src/ocrfeeder/Makefile.am:3: installing './py-compile'
    autoreconf: Leaving directory `.'
    Running ./configure --enable-maintainer-mode PYTHON=python2 ...
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking whether to enable maintainer-specific portions of Makefiles... yes
    checking whether make supports nested variables... (cached) yes
    checking whether python2 version is >= 2.5... yes
    checking for python2 version... 2.7
    checking for python2 platform... linux2
    checking for python2 script directory... ${prefix}/lib/python2.7/site-packages
    checking for python2 extension module directory... ${exec_prefix}/lib/python2.7/site-packages
    checking python2 module: enchant... yes
    checking python2 module: sane... yes
    checking python2 module: PIL... yes
    checking python2 module: reportlab... yes
    checking python2 module: gobject... yes
    checking gobject introspection module Gtk... yes
    checking gobject introspection module GooCanvas... no
    configure: error: failed to find required GObject Introspection module GooCanvas
    ==> ERRORE: Si è verificato un errore in build().
    L'operazione sta per essere interrotta...
    with yaourt:
    ocrfeeder-git 0.7.11.20.g22218bc-1 (gio 19 set 2013, 16.13.18, CEST)
    ( Pacchetto non supportato: Potenzialmente pericoloso! )
    ==> Modificare PKGBUILD [S/n] ("A" per annullare)
    ==> ----------------------------------------------
    ==> n
    ==> Dipendenze di ocrfeeder-git
    - python2-pyenchant (già installato)
    - pygoocanvas (già installato)
    - python2-gtkspell (già installato)
    - python2-imaging (già installato)
    - python2-lxml (già installato)
    - python2-reportlab (già installato)
    - ghostscript (già installato)
    - unpaper (già installato)
    - sane (già installato)
    - desktop-file-utils (già installato)
    - intltool (già installato)
    - gnome-doc-utils (già installato)
    - gnome-common (già installato)
    ==> Modificare ocrfeeder.install [S/n] ("A" per annullare)
    ==> -------------------------------------------------------
    ==> n
    ==> Continuare la compilazione di ocrfeeder-git [S/n]
    ==> -------------------------------------------------
    ==>
    ==> Compilazione e installazione del pacchetto
    ==> Creazione del pacchetto: ocrfeeder-git 0.7.11.20.g22218bc-1 (mar 18 nov 2014, 18.53.10, CET)
    ==> Controllo delle dipendenze durante l'avvio in corso...
    ==> Controllo delle dipendenze durante la compilazione in corso...
    ==> Download dei sorgenti in corso...
    -> Clonazione del repository ocrfeeder git in corso...
    Clone nel repository spoglio '/tmp/yaourt-tmp-pippo/aur-ocrfeeder-git/ocrfeeder'...
    remote: Counting objects: 3584, done.
    remote: Compressing objects: 100% (2578/2578), done.
    remote: Total 3584 (delta 2414), reused 1346 (delta 936)
    Ricezione degli oggetti: 100% (3584/3584), 1.71 MiB | 556.00 KiB/s, done.
    Risoluzione dei delta: 100% (2414/2414), done.
    Checking connectivity... fatto.
    ==> Validazione dei sorgenti con sha512sums in corso...
    ocrfeeder ... Ignorato
    ==> Estrazione dei sorgenti in corso...
    -> Creazione di una copia di lavoro del repository ocrfeeder git in corso...
    Cloning into 'ocrfeeder'...
    fatto.
    ==> Avvio di pkgver() in corso...
    ==> Versione aggiornata: ocrfeeder-git 0.8-1
    ==> Avvio di build() in corso...
    /usr/bin/gnome-autogen.sh
    checking for automake >= 1.11.2...
    testing automake... found 1.14.1
    checking for autoreconf >= 2.53...
    testing autoreconf... found 2.69
    checking for glib-gettext >= 2.2.0...
    testing glib-gettextize... found 2.42.0
    checking for intltool >= 0.25...
    testing intltoolize... found 0.50.2
    checking for gnome-doc-utils >= 0.4.2...
    testing gnome-doc-prepare... found 0.20.10
    Checking for required M4 macros...
    Processing ./configure.ac
    Running glib-gettextize... Ignore non-fatal messages.
    Copying file po/Makefile.in.in
    Please add the files
    codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4
    progtest.m4
    from the /usr/share/aclocal directory to your autoconf macro directory
    or directly to your aclocal.m4 file.
    You will also need config.guess and config.sub, which you can get from
    ftp://ftp.gnu.org/pub/gnu/config/.
    Running gnome-doc-prepare...
    You should add the contents of '/usr/share/aclocal/gnome-doc-utils.m4' to 'aclocal.m4'.
    Putting files in AC_CONFIG_MACRO_DIR, 'm4'.
    Running intltoolize...
    Running autoreconf...
    autoreconf: Entering directory `.'
    autoreconf: configure.ac: not using Gettext
    autoreconf: running: aclocal --force --warnings=no-portability -I m4 ${ACLOCAL_FLAGS}
    autoreconf: configure.ac: tracing
    autoreconf: configure.ac: not using Libtool
    autoreconf: running: /usr/bin/autoconf --force --warnings=no-portability
    autoreconf: configure.ac: not using Autoheader
    autoreconf: running: automake --add-missing --copy --force-missing --warnings=no-portability
    configure.ac:48: installing './compile'
    configure.ac:9: installing './install-sh'
    configure.ac:9: installing './missing'
    Makefile.am: installing './INSTALL'
    src/ocrfeeder/Makefile.am:3: installing './py-compile'
    autoreconf: Leaving directory `.'
    Running ./configure --enable-maintainer-mode PYTHON=python2 ...
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking whether to enable maintainer-specific portions of Makefiles... yes
    checking whether make supports nested variables... (cached) yes
    checking whether python2 version is >= 2.5... yes
    checking for python2 version... 2.7
    checking for python2 platform... linux2
    checking for python2 script directory... ${prefix}/lib/python2.7/site-packages
    checking for python2 extension module directory... ${exec_prefix}/lib/python2.7/site-packages
    checking python2 module: enchant... yes
    checking python2 module: sane... yes
    checking python2 module: PIL... yes
    checking python2 module: reportlab... yes
    checking python2 module: gobject... yes
    checking gobject introspection module Gtk... yes
    checking gobject introspection module GooCanvas... no
    configure: error: failed to find required GObject Introspection module GooCanvas
    ==> ERRORE: Si è verificato un errore in build().
    L'operazione sta per essere interrotta...
    ==> ERRORE: Makepkg non è riuscito a compilare ocrfeeder-git.
    ==> Riavviare la compilazione di ocrfeeder-git [s/N]
    ==> ------------------------------------------------
    ==>
    $ pacman -Q|grep canvas
    goocanvas1 1.0.0-3
    pygoocanvas 0.14.1-6
    EDIT:
    SOLVED:
    # pacman -S goocanvas
    Last edited by quellen (2014-11-18 18:02:18)

    VCS PKGBUILDs need to include the VCS type at the end of the pkgname. In this case your package should be named "wifiz-git".
    Here's an updated version of your PKGBUILD:
    # Maintainer: Cody Dostal <[email protected]>
    pkgname=wifiz-git
    _gitname=WiFiz
    pkgver=0.9.2.2.r1.g8147a9f
    pkgrel=1
    pkgdesc="NetCTL GUI Frontend, written in wxPython. Stable Version."
    arch=('any')
    url="https://github.com/codywd/$_gitname"
    license=('MIT')
    depends=('python2' 'wxpython' 'wireless_tools' 'netctl' 'wpa_supplicant')
    makedepends=('git')
    optdepends=('gedit: manually edit profiles')
    conflicts=('wifiz' 'wifiz-nightly')
    provides=('wifiz')
    source=("git://github.com/codywd/$_gitname.git")
    sha256sums=('SKIP')
    pkgver() {
    cd "$srcdir/$_gitname"
    git describe --always --long | sed -E 's/([^-]*-g)/r\1/;s/-/./g'
    package() {
    cd "$srcdir/$_gitname"
    python2 setup.py install --root="$pkgdir/" --optimize=1
    Note the following changes:
    pkgname
    conflicts with "wifiz" (all VCS packages should provide and conflict with their non-VCS equivalents)
    removed redundant echo and shell invocation from pkgver function
    "$srcdir/$_gitname" instead of "$_gitname" in pkgver function: the git repo will not be in the same directory if the user sets SRCDIR in makepkg.conf

  • [SOLVED] Trouble Building Xorg-Server 1.6.1-1 (Modified PKGBUILD)

    ever since the release of xorg-server 1.5.3, i've been using a modified
    PKGBUILD to build xorg-server sans hal and dbus.  (not gonna try
    justifying it again; that'd just lead to yet another flame war.)
    i've never had a problem until the 1.6.1-1 PKGBUILD, which adds the lines:
    libtoolize --force || return 1
    aclocal || return 1
    autoconf || return 1
    automake --add-missing || return 1
    after applying patches and before running the configure.  these added lines produce:
    libtoolize: putting auxiliary files in `.'.
    libtoolize: linking file `./ltmain.sh'
    libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
    libtoolize: rerunning libtoolize, to keep the correct libtool macros
    in-tree.
    libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
    hw/dmx/doc/Makefile.am:24: BUILD_LINUXDOC does not appear in AM_CONDITIONAL
    hw/dmx/doc/Makefile.am:27: BUILD_PDFDOC does not appear in AM_CONDITIONAL
    hw/xfree86/doc/sgml/Makefile.am:24: BUILD_LINUXDOC does not appear in
    AM_CONDITIONAL
    hw/xfree86/doc/sgml/Makefile.am:27: BUILD_PDFDOC does not appear in
    AM_CONDITIONAL
    ==> ERROR: Build Failed.
    Aborting...
    my modified PKGBUILD is build.  please note that i *have* tried
    reverting my changes (the commented patches), to no avail.
    as i'm pretty clueless vis-a-vis makefiles and the autoconf system,
    could somehow point me in the direction of a fix?
    many thanks,
    kludge
    # $Id: PKGBUILD 21903 2008-12-17 20:32:54Z jgc $
    # Maintainer: Alexander Baldeck <[email protected]>
    # Contributor: Jan de Groot <[email protected]>
    pkgname=xorg-server
    pkgver=1.6.1
    pkgrel=1
    pkgdesc="X.Org X servers"
    arch=('i686' 'x86_64')
    license=('custom')
    url="http://xorg.freedesktop.org"
    depends=('libgl' 'libxfont>=1.4.0' 'openssl>=0.9.8j' 'libpciaccess>=0.10.5' 'libxv>=1.0.4' 'pixman>=0.14.0' 'xcursor-themes' 'xkeyboard-config>=1.5' 'xorg-server-utils' 'xorg-fonts-misc' 'xbitmaps' 'diffutils')
    makedepends=('libx11>=1.2' 'mesa>=7.4' 'xf86driproto>=2.0.4' 'xtrans>=1.2.3' 'libxkbfile>=1.0.5' 'randrproto>=1.3.0' 'renderproto>=0.9.3' 'xcmiscproto>=1.1.2' 'bigreqsproto>=1.0.2' 'resourceproto>=1.0.2' 'videoproto>=2.2.2' 'compositeproto>=0.4' 'scrnsaverproto>=1.1.0' 'libxinerama>=1.0.3' 'xf86dgaproto>=2.0.3' 'recordproto>=1.13.2' 'libgl>=7.4' 'glproto>=1.4.9')
    #optdepends=( 'xf86-input-evdev: to provide input device hotplugging'
    # 'hal>=0.5.11: to provide input devices for hotplugging' )
    options=('!libtool')
    provides=('x-server' ) # 'xorg-server')
    conflicts=('catalyst-utils<=9.2')
    groups=('xorg')
    install=xorg-server.install
    source=(${url}/releases/individual/xserver/${pkgname}-${pkgver}.tar.bz2
    xorg-redhat-die-ugly-pattern-die-die-die.patch
    hal-wait.patch)
    md5sums=('ed0878bf32a24d4948c3b8a122a39eff'
    '1a336eb22e27cbf443ec5a2ecddfa93c'
    'f16d2caef84e1a9c4075b6c5e145512d')
    build() {
    cd "${srcdir}/${pkgname}-${pkgver}"
    # Get rid of the ugly pattern
    patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch" || return 1
    # Fix dbus config path - removed b/c no dbus config'd
    # sed -i -e 's/\$(sysconfdir)/\/etc/' config/Makefile.* || return 1
    # Revert waiting for hal, assume hal won't show up when initial connect fails
    # commented out b/c no hal config'd
    # patch -R -Np1 -i "${srcdir}/hal-wait.patch" || return 1
    libtoolize --force || return 1
    aclocal || return 1
    autoconf || return 1
    automake --add-missing || return 1
    # --enable-config-{dbus,hal} switched to --disable
    # to disable hotplugging and dependencies
    ./configure --prefix=/usr \
    --enable-ipv6 \
    --enable-dri \
    --disable-dmx \
    --enable-xvfb \
    --enable-xnest \
    --enable-composite \
    --enable-xcsecurity \
    --enable-xorg \
    --enable-xephyr \
    --enable-glx-tls \
    --enable-kdrive \
    --enable-install-setuid \
    --disable-config-hal \
    --disable-config-dbus \
    --enable-record \
    --disable-xfbdev \
    --disable-xfake \
    --disable-xsdl \
    --disable-static \
    --sysconfdir=/etc/X11 \
    --localstatedir=/var \
    --with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/100dpi:unscaled,/usr/share/fonts/75dpi:unscaled,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \
    --with-xkb-path=/usr/share/X11/xkb \
    --with-xkb-output=/var/lib/xkb \
    --with-dri-driver-path=/usr/lib/xorg/modules/dri || return 1
    make || return 1
    make DESTDIR="${pkgdir}" install || return 1
    rm -rf "${pkgdir}/var/log" || return 1
    install -m755 -d "${pkgdir}/etc/X11" || return 1
    install -m755 -d "${pkgdir}/var/lib/xkb" || return 1
    # Needed for non-mesa drivers, libgl will restore it
    mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \
    "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg" || return 1
    install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
    install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
    Last edited by kludge (2009-05-01 17:25:39)

    Not any help to your error but have you tried the one in aur with disabled dbus and hal?
    I've been using it for a week or so with no problems and it built fine.
    http://aur.archlinux.org/packages.php?ID=23750

  • Pkgman - a bash script for local package and PKGBUILD management

    hi all,
    here is a script which manages a local repository and lets you edit
    PKGBUILDs and other related files, automatically generates checksums,
    build packages, add them to your local repo and so on.
    it also has AUR support for submitting tarballs, leaving comments, etc.
    get it from here:
    http://sourceforge.net/projects/pkgman/
    and AUR package:
    http://aur.archlinux.org/packages.php?ID=17100
    you need abs, curl and pacman and optionally namcap and desktop-file-utils.
    RTFM online:
    http://sourceforge.net/apps/mediawiki/p … n_man_page
    first of all copy the pkgman.conf and AUR.conf files from /usr/share/pkgman to ~/.config/pkgman/  or ${XDG_CONFIG_HOME}/pkgman - if ${XDG_CONFIG_HOME} is set,
    edit these two files and then run
    pkgman --runmefirst
    pkgman doesn´t install anything. if you want it just builds the package and moves it to your local repository. install it then with pacman.
    it also has no dependency handling. there are many other tools which provide this.
    the main intention was to keep track of package versions, different PKGBUILD versions and own AUR submitted tarballs; also to keep a clean local repository and clean build directories.
    pkgman is stable now. i´m using it for months without any issues.
    however, if there are problems or feedback please post them here.
    vlad
    changelog:
    version 2.4:
           *pkgman now respects the PKGDEST and SRCDEST variables from makepkg.conf. (though it still moves the src.tar.gz and .pkg.tar.gz to package backup directory).
    version 2.5:
           *pkgman uses PKGDEST if SRCDEST not set in makepkg.conf.
    version 2.6 -> r26:
           *changed version system: version 2.6 is now r26!
           *minor changes: > pkgman uses now the $SHELL variable.
                                    > new and more comprehensible manpage description (thanks to bender02)
    version r27:
           *changed SRCDEST since it's only a cache dir. all files (pkg.tar.gz and src.tar.gz) go to PKGDEST.
    version r28:
           *added new variable ShellCommand to pkgman.conf. Default is $SHELL.
           *One might use an external application (like screen or xterm) to switch to build directory and edit files simultaneously.
    version r30:
           *minor changes. nothing crucial
    r32: *OverwriteExistingPackage isn't used anymore. one can delete it from ~/.config/pkgman/pkgman.conf.
           *minor changes
    version r33:
           *"-l|--list" also shows installed package version and available ABS/AUR PKGBUILD version for given package.
           *"-a|--abs" can now also be used with other options (like "-e")
    r39: * when backing up src.tarballs it asks whether to backup the source file or not
           * more detailed "--list" option - also shows if package is installed or not and available ABS/AUR version
           * added prompt to clean up directory after makepkg
           * when checking pkg.tar.gz also possibility to check for conflicts with files of already installed packages
           * use $PAGER instead of less
           * --help directly shows the manpage
           * --shorthelp shows a brief usage overview
           * added a custom prompt, but only when using bash (is somehow experimental - works fine here for me)
           * minor internal changes
           * pkgman also reads ~/.aurvote file for getting aur name and password. if one already uses aurvote then there is no need for the
             ~/.config/pkgman/AUR.conf file.
    r40: * new manual page & rewrite of usage function
           * both option "--flush" and "--flushall" were omitted in favor of the more versatile "--cleanup" option
           * pkgman <packagename> checks now if <packagename> is owned by user
           * backup option after each editing
           * added license
           * minor internal changes
    r41: * just small bug fixes, nothing crucial.
    r42: * more bugs fixed.
    r45: * new options added:
              >   --listversions: list local and available versions of installed packages from LocalPackages directory
              >  --getownpackages: synchronize local own packages with AUR
           * added new variable in pkgman.conf:
              > ListOutputInPager: output of, for example, "--list" or "--own" is piped into $PAGER
           * added a new optional dependency "desktop-file-utils" for validating desktop entry files
           * also supports now auto-generation of sha sums not only md5
           * internal fixes due to AUR interface changes:
              > use of json interface
              > correct parsing of package category
           * added 2 proto files (located under /usr/share/pacman):
              >  proto.desktop: a template for *.desktop files
              > PKGBUILD-lib32.proto: a template for lib32 packages for x86_64
           * some code changes and fixes
    r46: * added new option to pkgman.conf (AutoGenerateSums).
             > if AutoGenerateSums=no then pkgman asks whether to generate checksums or not.
             > if set to yes it behaves like in former versions.
    r52: * "--getownpackages" with more than 100 packages works again
           * added new option "--cachecopy":
              For each package in CacheCopyList (new variable in pkgman.conf) get existing package from pacman's cache directory - if
              CopyPkgFromCache (new variable in pkgman.conf) is set to yes - and/or create a source tarball of PKGBUILD and related files from ABS -
              if CopySrcFromABS (new variable in pkgman.conf) is set to yes - and copy them to package backup directory.
           * added new variables to pkgman.conf:
               > "CacheCopyList=file" - batch backup file, one package per line - default location is "$HOME/.config/pkgman/package.list".
               > "CopySrcFromABS=[yes|no]"
               > "CopyPkgFromCache=[yes|no]"
           * some bugfixes
           * docs completed
           * CacheCopyList should look like
    package1
    package2
    #this is a comment
    ! this too
    package3
    !package4
    r54: * renamed "--listversions" option to "--diffversions". makes more sense!
              from the man page:
                  pkgman --diffversions
                  Show differing ABS/AUR versions of installed packages from LocalPackages.
    r55: * minor changes.
    r57: * testing release
           * added a new option "--rollback":
               "pkgman <packagename> --rollback" - checks  http://arm.kh.nu for available package versions,
                                                          lets you choose one, fetches the package and
                                                          moves it to the <packagename> backup directory (if "--repoadd" is used).
    r59: * stable release
           * new option "--rollback" (see r57):
                   it checks http://arm.kh.nu (Arch Rollback Machine) for available package versions,
                   downloads chosen file and moves it to local repository (if "-r|--repoadd"  is used).
            * posting files/comments/etc to AUR should work now again.
    r65: *stable release
           * new option "-M,--meta" to create metapackages and add them and their dependencies to local repository.
              it searches for deps inside the backup directories, pacman's cache and if the packages are not available, it tries to fetch the missing
              dependencies from the Arch Rollback Machine site (http://arm.kh.nu).
    r66: * minor fixes
    r68: * some bugfixes
           * "--repoadd" and "--Reporemove" now accurately removes old packages from LocalRepository
    r69: * small bugfixes when listing packages with similar names
           * curl retries now 5 times if connection is not established
    r75: * "--cachecopy" does not try to dl sourcefiles when backing up ABS PKGBUILDs
           * some work on package splitting
           * further internal changes
    r76: * minor mistakes with "ln" purged
    r79: * mostly small changes
           * "--cleanup" now also removes uninstalled packages from LocalRepository
    r81 & r80: * added AUR v1.6.0 support (use more json)
                    * small ARM changes ("--rollback")
    r85:
          * pkgman supports pkg.tar.xz packages
          * some code rewrite, bugs purged (hopefully)
    r113:
          * pkgman now supports building split packages through makepkg.
             If you already use pkgman you need to rerun "pkgman --runmefirst" after updating.
          * new  "-t,--template" option ("pkgman <packagename> --template <alt. packagename> [--pkgbuildversion <version>] [options]").
             Useful to create a new PKGBUILD and use an existing one as a template.
          * new option: "--conf /path/to/alternate/conf/file" - Specify another configuration file.
          * pkgman now uses ${XDG_CONFIG_HOME}/pkgman or $HOME/.config/pkgman - if first not set - as the default location for its conf files.
    r116:
          * check inet conection when submitting src tarballs to AUR
          * some bugs
          * updated manpage on sf
    For further details please read the manual page.
    Last edited by DonVla (2010-04-28 11:56:59)

    I'm having some troubles with it (perhaps missing dependencies, and forgotten hardcoded dirs?):
    jan@aconcagua 8:20PM ~ % pkgman --runmefirst
    /usr/bin/pkgman: line 77: /home/jan/apps/skripte/archscripts/pkgman/share/pkgman/color.bash: No such file or directory
    /usr/bin/pkgman: line 1293: initcolor: command not found
    /usr/bin/pkgman: line 312: highlight: command not found
    /usr/bin/pkgman: line 312: error: command not found
    /usr/bin/pkgman: line 313: highlight: command not found
    /usr/bin/pkgman: line 313: error: command not found
    /usr/bin/pkgman: line 314: highlight: command not found
    /usr/bin/pkgman: line 314: error: command not found
    /usr/bin/pkgman: line 315: highlight: command not found
    /usr/bin/pkgman: line 315: error: command not found
    /usr/bin/pkgman: line 317: error: command not found
    /usr/bin/pkgman: line 318: error: command not found
    /usr/bin/pkgman: line 321: highlight: command not found
    /usr/bin/pkgman: line 321: msg: command not found
    /usr/bin/pkgman: line 329: list: command not found
    /usr/bin/pkgman: line 332: list: command not found
    /usr/bin/pkgman: line 332: list: command not found
    touch: cannot touch `/bin/.pkgman.registered': Permission denied
    /usr/bin/pkgman: line 332: list: command not found
    /usr/bin/pkgman: line 332: list: command not found
    /usr/bin/pkgman: line 332: list: command not found
    /usr/bin/pkgman: line 332: list: command not found
    /usr/bin/pkgman: line 332: list: command not found
    /usr/bin/pkgman: line 337: msg: command not found
    curl: option --output: requires parameter
    curl: try 'curl --help' or 'curl --manual' for more information
    ^C/usr/bin/pkgman: line 209: cleanoutput: command not found
    /usr/bin/pkgman: line 209: cleanoutput: command not found
    (I terminated with ctrl-c).
    EDIT: errors resolved by correcting the path $HOME/apps/skripte/archscripts/pkgman/share/pkgman to /usr/share/pkgman in the pkgman itself.
    Last edited by bender02 (2008-05-23 01:28:58)

  • [solved]make error when using svn in PKGBUILD

    Hi, all
    I want to install the development package of R software using PKGBUILD. My PKGBUILD file is like this:
    pkgname=r
    _svnmod=r
    pkgver=0.0.0
    pkgrel=1
    pkgdesc="R is a language and environment for statistical computing and graphics"
    arch=('i686' 'x86_64')
    license=('GPL')
    url=('http://www.r-project.org/')
    depends=('blas' 'lapack' 'bzip2' 'libpng' 'libjpeg' 'libtiff'
    'ncurses' 'pcre' 'readline' 'zlib' 'perl' 'gcc-libs'
    'tk' 'libxt' 'libxmu' 'pango')
    #makedepends=('subversion' 'openjdk6' 'gcc-fortran')
    makedepends=('subversion' 'jre7-openjdk')
    options=('!makeflags')
    conflicts=('r')
    provides=('r')
    source=('r::svn+https://svn.r-project.org/R/trunk/')
    md5sums=('SKIP')
    pkgver() {
    cd "$SRCDEST/$_svnmod"
    svnversion
    build() {
    cd "$srcdir/$_svnmod"
    ./configure --prefix=/usr \
    --libdir=/usr/lib \
    --datarootdir=/usr/share \
    rsharedir=/usr/share/R/ \
    rincludedir=/usr/include/R/ \
    rdocdir=/usr/share/R/docs/ \
    --enable-memory-profiling \
    --with-readline \
    --with-x \
    --with-system-zlib \
    --with-system-bzlib \
    --with-system-pcre \
    --enable-R-shlib \
    --with-lapack \
    --with-blas \
    --without-recommended-packages \
    F77=gfortran \
    LIBnn=lib
    make
    package() {
    cd "$srcdir/$_svnmod"
    make -j1 DESTDIR=${pkgdir} install
    # Fixup R wrapper scripts.
    sed -i "s|${pkgdir} ||" ${pkgdir}/usr/bin/R
    rm ${pkgdir}/usr/lib/R/bin/R
    cd ${pkgdir}/usr/lib/R/bin
    ln -s ../../../bin/R
    But i encounter a make error like this:
    ERROR: not an svn checkout
    make: *** [svnonly] ERROR 1
    Did anyone give me some advices? Thanks a lot!
    PS. I was noticed that in wiki page "VCS PKGBUILD Guidelines", "The copy in $srcdir is made using svn export which does not create working copies. Any svn related command has to be used in the local repo in $SRCDEST." So when I change the cd line in build() and package() function into
    cd "$SRCDEST/$_svnmod"
    the error message vanished. But the local repo are changed when configure and make the project.
    Last edited by januslian (2013-05-06 08:50:09)

    Scimmia wrote:This will be fixed in pacman 4.1.1. For now, just copy the ".svn" dir yourself. cp -r "$SRCDEST/$_svnmod/.svn" "$srcdir/$_svnmod"
    Great, it works. Thanks.

  • Path in pkgbuild

    How to add patch in pkgbuild? Maybe thisquestion already was, but i didnt find.

    take a look at packages in in your ABS directory there are plenty examples of how patches are applied.

  • First PKGBUILD: 'cannot stat' error for source file

    I'm attempting my first PKGBUILD and I've run into some trouble.
    PKGBUILD:
    # Maintainer: Simon Wydooghe <hyperbaton at gmail dot com>
    pkgname=vpcs
    pkgver=0.21a
    pkgrel=1
    pkgdesc="Simulates up to 9 computers for ping/traceroute purposes."
    arch=('i686' 'x86_64')
    url="http://vpcs.sourceforge.net/"
    license=('GPL')
    makedepends=('p7zip')
    source=('${pkgname}_${pkgver}.7z::http://downloads.sourceforge.net/project/${pkgname}/binary/${pkgver}/${pkgname}_${pkgver}.7z')
    noextract=('${pkgname}_${pkgver}.7z')
    md5sums=('dac71bdf9d04a3b7e69fe25b15f1ee5c')
    package() {
    local vpcsdir="opt/vpcs"
    local binary="vpcs32"
    cd "${srcdir}"
    mv ${pkgname}_${pkgver}.7z.part ${pkgname}_${pkgver}.7z
    7z e -o"${pkgname}-${pkgver}" "${pkgname}_${pkgver}.7z"
    cd "${pkgname}-{$pkgver}"
    mv startup.vpc readme.txt ${pkgdir}/${vpcsdir}
    if [ $CARCH = "x86_64" ]; then
    binary="vpcs64"
    fi
    mv ${binary} ${pkgdir}/${vpcsdir}/vpcs
    chmod +x ${pkgdir}/${vpcsdir}/vpcs
    Error when running makepkg:
    [hb@hb-desktop vpcs]$ makepkg
    ==> Making package: vpcs 0.21a-1 (Mon Apr 4 15:48:07 CEST 2011)
    ==> Checking runtime dependencies...
    ==> Checking buildtime dependencies...
    ==> Retrieving Sources...
    -> Downloading ${pkgname}_${pkgver}.7z...
    --2011-04-04 15:48:07-- http://downloads.sourceforge.net/project/vpcs/binary/0.21a/vpcs_0.21a.7z
    Resolving downloads.sourceforge.net... 216.34.181.59
    Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected.
    HTTP request sent, awaiting response... 302 Found
    Location: http://switch.dl.sourceforge.net/project/vpcs/binary/0.21a/vpcs_0.21a.7z [following]
    --2011-04-04 15:48:07-- http://switch.dl.sourceforge.net/project/vpcs/binary/0.21a/vpcs_0.21a.7z
    Resolving switch.dl.sourceforge.net... 130.59.138.21, 2001:620:0:1b::21
    Connecting to switch.dl.sourceforge.net|130.59.138.21|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1168714 (1.1M) [application/x-7z-compressed]
    Saving to: “vpcs_0.21a.7z.part”
    100%[======================================================================================================================================>] 1,168,714 1.10M/s in 1.0s
    2011-04-04 15:48:08 (1.10 MB/s) - “vpcs_0.21a.7z.part” saved [1168714/1168714]
    mv: cannot stat `/home/hb/abs/vpcs/${pkgname}_${pkgver}.7z.part': No such file or directory
    ==> ERROR: Failure while downloading ${pkgname}_${pkgver}.7z
    Aborting...
    So it seems that '.part' is being added to the source filename when being downloaded by makepkg. I added '${pkgname}_${pkgver}.7z::' in front of the source url to rename the file (I believe that's correct, no?).
    This is the PKGBUILD directory after running makepkg:
    [hb@hb-desktop vpcs]$ ls -l
    total 1152
    -rw-r--r-- 1 hb hb 884 Apr 4 15:47 PKGBUILD
    drwxr-xr-x 2 hb hb 4096 Apr 4 16:01 src
    -rw-r--r-- 1 hb hb 1168714 Mar 8 04:18 vpcs_0.21a.7z.part
    I can stat the file in question:
    [hb@hb-desktop vpcs]$ stat vpcs_0.21a.7z.part
    File: `vpcs_0.21a.7z.part'
    Size: 1168714 Blocks: 2288 IO Block: 4096 regular file
    Device: 805h/2053d Inode: 1046825 Links: 1
    Access: (0644/-rw-r--r--) Uid: ( 1000/ hb) Gid: ( 1000/ hb)
    Access: 2011-04-04 16:01:22.000000000 +0200
    Modify: 2011-03-08 04:18:48.000000000 +0100
    Change: 2011-04-04 16:01:22.477037824 +0200
    Birth: -
    So can someone tell me which moronic error I've made this time? :-)

    Excellent, thanks, that did the trick!
    While I've opened this topic anyway, I have another question. The application in question uses a configuration file which it only looks for in the directory the executable resides in (unless a specific command line argument is given). For this reason, it seems most logical to place the application under /opt. But /opt is not in $PATH by default. What is the best way to add the directory /opt/vpcs to $PATH but to also remove it from $PATH when the application is removed?
    Last edited by HyperBaton (2011-04-04 14:33:45)

  • "exists in filesystem" issue while making PKGBUILD for a python module

    This is the package. http://packages.python.org/vcs/usage/vc … n-commands
    Its already not in the AUR, so I decided of making the PKGBUILD http://sprunge.us/XVTA
    Now, when I try to install it, I get this error
    shadyabhi@archlinux /tmp $ sudo pacman -U python2-vcs-0.2.0-1-x86_64.pkg.tar.xz
    Password:
    resolving dependencies...
    looking for inter-conflicts...
    Targets (1): python2-vcs-0.2.0-1 [0.11 MB]
    Total Download Size: 0.00 MB
    Total Installed Size: 1.27 MB
    Proceed with installation? [Y/n]
    (1/1) checking package integrity [################################################################] 100%
    (1/1) checking for file conflicts [################################################################] 100%
    error: failed to commit transaction (conflicting files)
    python2-vcs: /usr/lib/python2.7/site-packages/tests/__init__.py exists in filesystem
    python2-vcs: /usr/lib/python2.7/site-packages/tests/__init__.pyc exists in filesystem
    python2-vcs: /usr/lib/python2.7/site-packages/tests/__init__.pyo exists in filesystem
    shadyabhi@archlinux /tmp $
    Also, these files are owned by:
    shadyabhi@archlinux ~ $ pacman -Qo /usr/lib/python2.7/site-packages/tests/__init__.py
    /usr/lib/python2.7/site-packages/tests/__init__.py is owned by python-paste-deploy 1.3.4-1
    shadyabhi@archlinux ~ $
    So, what should be done?

    Added a note to the python packaging guidelines about not putting a directory named "tests" directly in "site-packages". Hope it helps avoiding this issue in the future.
    https://wiki.archlinux.org/index.php/Py … Guidelines

Maybe you are looking for

  • Two  different ways of closing Input/Ouput streams

    OK, the Sun tutorial on Exceptions [http://java.sun.com/docs/books/tutorial/essential/exceptions/putItTogether.html] shows an example where a PrintWriter is closed within a finally block. Now, the tutorial on bute streams [http://java.sun.com/docs/bo

  • A Problem when calling a new WDA Application

    Hi, i am opening a new wda application with link in a html page using that code; in a html; <a href = "http://domain/sap/bc/webdynpro/sap/zhr_105_user_pass_control" />  Link </a> in "zhr_105_user_pass_control" wda application; METHOD onactioncall .  

  • Requirements for Cloud Server that can be access through RDC/RDP.....

    Dear Friends, There is a requirements to have some software(Accounting software) need to be access by 3-4 people simultaneously on the same system. For this i decided to have one cloud server and through Remote Desktop Connection they can access the

  • 3rd Party email gateway

    Does anyone know of any 3rd party email gateway that can connect GroupWise to Exchange?

  • Service Short Text is not copied creating Req w.r.t Contract

    Hi, When I try to create a req service item with reference to a contract, short text (TXZ01) is not copied from contract to req. The field is open for input and I have to input manually, or I'll get error ME083. Is here a way to copy short text from