Bluecurve for Arch

Hey i was just looking at this screen shot http://gaim.sourceforge.net/images/scre … ysiwyg.png
and it looks to me like the normal bluecurve theme from redhat, or so ive been told, my question is how can i get this theme for my arch system, i did not see it int he repo nor have i been able to find and .tar.gz files of it ont he internet? anyhelp would be greatful, thanx!

madhattr wrote:Im a newbie?? i dont understand what any of that packagebuild stuff means, i dont see any links to a package for it? whats this all suposed to mean?
creating a pkg - the easy/fast way:
- create a directory
- create a text-file called 'PKGBUILD' in this dir
- fill this empty file with the stuff you found in the forum
with "the stuff", i mean this:
pkgname=redhat-artwork
pkgver=0.96
pkgrel=1
- open a terminal/shell/console and cd  to/the/dir/
- run makepkg
- this will create the pkg in this dir
- to install it, use pacman -U theNewFile-someversion.pkg.tar.gz
have fun

Similar Messages

  • System encryption using LUKS and GPG encrypted keys for arch linux

    Update: As of 2012-03-28, arch changed from gnupg 1.4 to 2.x which uses pinentry for the password dialog. The "etwo" hook described here doesn't work with gnupg 2. Either use the openssl hook below or use a statically compiled version of gnupg 1.4.
    Update: As of 2012-12-19, the mkinitcpio is not called during boot, unless the "install" file for the hook contains "add_runscript". This resulted in an unbootable system for me. Also, the method name was changed from install () to build ().
    Update: 2013-01-13: Updated the hook files using the corrections by Deth.
    Note: This guide is a bit dated now, in particular the arch installation might be different now. But essentially, the approach stays the same. Please also take a look at the posts further down, specifically the alternative hooks that use openssl.
    I always wanted to set up a fully encrypted arch linux server that uses gpg encrypted keyfiles on an external usb stick and luks for root filesystem encryption. I already did it once in gentoo using this guide. For arch, I had to play alot with initcpio hooks and after one day of experimentation, I finally got it working. I wrote a little guide for myself which I'm going to share here for anyone that might be interested. There might be better or easier ways, like I said this is just how I did it. I hope it might help someone else. Constructive feedback is always welcome
    Intro
    Using arch linux mkinitcpio's encrypt hook, one can easily use encrypted root partitions with LUKS. It's also possible to use key files stored on an external drive, like an usb stick. However, if someone steals your usb stick, he can just copy the key and potentially access the system. I wanted to have a little extra security by additionally encrypting the key file with gpg using a symmetric cipher and a passphrase.
    Since the encrypt hook doesn't support this scenario, I created a modifed hook called “etwo” (silly name I know, it was the first thing that came to my mind). It will simply look if the key file has the extension .gpg and, if yes, use gpg to decrypt it, then pipe the result into cryptsetup.
    Conventions
    In this short guide, I use the following disk/partition names:
    /dev/sda: is the hard disk that will contain an encrypted swap (/dev/sda1), /var (/dev/sda2) and root (/dev/sda3) partition.
    /dev/sdb is the usb stick that will contain the gpg encrypted luks keys, the kernel and grub. It will have one partition /dev/sdb1 formatted with ext2.
    /dev/mapper/root, /dev/mapper/swap and /dev/mapper/var will be the encrypted devices.
    Credits
    Thanks to the authors of SECURITY_System_Encryption_DM-Crypt_with_LUKS (gentoo wiki), System Encryption with LUKS (arch wiki), mkinitcpio (arch wiki) and Early Userspace in Arch Linux (/dev/brain0 blog)!
    Guide
    1. Boot the arch live cd
    I had to use a newer testing version, because the 2010.05 cd came with a broken gpg. You can download one here: http://releng.archlinux.org/isos/. I chose the “core“ version. Go ahead and boot the live cd, but don't start the setup yet.
    2. Set keymap
    Use km to set your keymap. This is important for non-qwerty keyboards to avoid suprises with passphrases...
    3. Wipe your discs
    ATTENTION: this will DELETE everything on /dev/sda and /dev/sdb forever! Do not blame me for any lost data!
    Before encrypting the hard disc, it has to be completely wiped and overwritten with random data. I used shred for this. Others use badblocks or dd with /dev/urandom. Either way, this will take a long time, depending on the size of your disc. I also wiped my usb stick just to be sure.
    shred -v /dev/sda
    shred -v /dev/sdb
    4. Partitioning
    Fire up fdisk and create the following partitions:
    /dev/sda1, type linux swap.
    /dev/sda2: type linux
    /dev/sda3: type linux
    /dev/sdb1, type linux
    Of course you can choose a different layout, this is just how I did it. Keep in mind that only the root filesystem will be decrypted by the initcpio. The rest will be decypted during normal init boot using /etc/crypttab, the keys being somewhere on the root filesystem.
    5. Format  and mount the usb stick
    Create an ext2 filesystem on /dev/sdb1:
    mkfs.ext2 /dev/sdb1
    mkdir /root/usb
    mount /dev/sdb1 /root/usb
    cd /root/usb # this will be our working directory for now.
    Do not mount anything to /mnt, because the arch installer will use that directory later to mount the encrypted root filesystem.
    6. Configure the network (if not already done automatically)
    ifconfig eth0 192.168.0.2 netmask 255.255.255.0
    route add default gw 192.168.0.1
    echo "nameserver 192.168.0.1" >> /etc/resolv.conf
    (this is just an example, your mileage may vary)
    7. Install gnupg
    pacman -Sy
    pacman -S gnupg
    Verify that gnupg works by launching gpg.
    8. Create the keys
    Just to be sure, make sure swap is off:
    cat /proc/swaps
    should return no entries.
    Create gpg encrypted keys (remember, we're still in our working dir /root/usb):
    dd if=/dev/urandom bs=512 count=4 | gpg -v --cipher-algo aes256 --digest-algo sha512 -c -a > root.gpg
    dd if=/dev/urandom bs=512 count=4 | gpg -v --cipher-algo aes256 --digest-algo sha512 -c -a > var.gpg
    Choose a strong password!!
    Don't do this in two steps, e.g don't do dd to a file and then gpg on that file. The key should never be stored in plain text on an unencrypted device, except if that device is wiped on system restart (ramfs)!
    Note that the default cipher for gpg is cast5, I just chose to use a different one.
    9. Create the encrypted devices with cryptsetup
    Create encrypted swap:
    cryptsetup -c aes-cbc-essiv:sha256 -s 256 -h whirlpool -d /dev/urandom create swap /dev/sda1
    You should see /dev/mapper/swap now. Don't format nor turn it on for now. This will be done by the arch installer.
    Important: From the Cryptsetup 1.1.2 Release notes:
    Cryptsetup can accept passphrase on stdin (standard input). Handling of new line (\n) character is defined by input specification:
        if keyfile is specified as "-" (using --key-file=- or by positional argument in luksFormat and luksAddKey, like cat file | cryptsetup --key-file=- <action> ), input is processed
          as normal binary file and no new line is interpreted.
        if there is no key file specification (with default input from stdin pipe like echo passphrase | cryptsetup <action> ) input is processed as input from terminal, reading will
          stop after new line is detected.
    If I understand this correctly, since the randomly generated key can contain a newline early on, piping the key into cryptsetup without specifying --key-file=- could result in a big part of the key to be ignored by cryptsetup. Example: if the random key was "foo\nandsomemorebaratheendofthekey", piping it directly into cryptsetup without --key-file=- would result in cryptsetup using only "foo" as key which would have big security implications. We should therefor ALWAYS pipe the key into cryptsetup using --key-file=- which ignores newlines.
    gpg -q -d root.gpg 2>/dev/null | cryptsetup -v -–key-file=- -c aes-cbc-essiv:sha256 -s 256 -h whirlpool luksFormat /dev/sda3
    gpg -q -d var.gpg 2>/dev/null | cryptsetup -v –-key-file=- -c aes-cbc-essiv:sha256 -s 256 -h whirlpool -v luksFormat /dev/sda2
    Check for any errors.
    10. Open the luks devices
    gpg -d root.gpg 2>/dev/null | cryptsetup -v –-key-file=- luksOpen /dev/sda3 root
    gpg -d var.gpg 2>/dev/null | cryptsetup -v –-key-file=- luksOpen /dev/sda2 var
    If you see /dev/mapper/root and /dev/mapper/var now, everything is ok.
    11. Start the installer /arch/setup
    Follow steps 1 to 3.
    At step 4 (Prepare hard drive(s), select “3 – Manually Configure block devices, filesystems and mountpoints. Choose /dev/sdb1 (the usb stick) as /boot, /dev/mapper/swap for swap, /dev/mapper/root for / and /dev/mapper/var for /var.
    Format all drives (choose “yes” when asked “do you want to have this filesystem (re)created”) EXCEPT for /dev/sdb1, choose “no”. Choose the correct filesystem for /dev/sdb1, ext2 in my case. Use swap for /dev/mapper/swap. For the rest, I chose ext4.
    Select DONE to start formatting.
    At step 5 (Select packages), select grub as boot loader. Select the base group. Add mkinitcpio.
    Start step 6 (Install packages).
    Go to step 7 (Configure System).
    By sure to set the correct KEYMAP, LOCALE and TIMEZONE in /etc/rc.conf.
    Edit /etc/fstab:
    /dev/mapper/root / ext4 defaults 0 1
    /dev/mapper/swap swap swap defaults 0 0
    /dev/mapper/var /var ext4 defaults 0 1
    # /dev/sdb1 /boot ext2 defaults 0 1
    Configure the rest normally. When you're done, setup will launch mkinitcpio. We'll manually launch this again later.
    Go to step 8 (install boot loader).
    Be sure to change the kernel line in menu.lst:
    kernel /vmlinuz26 root=/dev/mapper/root cryptdevice=/dev/sda3:root cryptkey=/dev/sdb1:ext2:/root.gpg
    Don't forget the :root suffix in cryptdevice!
    Also, my root line was set to (hd1,0). Had to change that to
    root (hd0,0)
    Install grub to /dev/sdb (the usb stick).
    Now, we can exit the installer.
    12. Install mkinitcpio with the etwo hook.
    Create /mnt/lib/initcpio/hooks/etwo:
    #!/usr/bin/ash
    run_hook() {
    /sbin/modprobe -a -q dm-crypt >/dev/null 2>&1
    if [ -e "/sys/class/misc/device-mapper" ]; then
    if [ ! -e "/dev/mapper/control" ]; then
    /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
    fi
    [ "${quiet}" = "y" ] && CSQUIET=">/dev/null"
    # Get keyfile if specified
    ckeyfile="/crypto_keyfile"
    usegpg="n"
    if [ "x${cryptkey}" != "x" ]; then
    ckdev="$(echo "${cryptkey}" | cut -d: -f1)"
    ckarg1="$(echo "${cryptkey}" | cut -d: -f2)"
    ckarg2="$(echo "${cryptkey}" | cut -d: -f3)"
    if poll_device "${ckdev}" ${rootdelay}; then
    case ${ckarg1} in
    *[!0-9]*)
    # Use a file on the device
    # ckarg1 is not numeric: ckarg1=filesystem, ckarg2=path
    if [ "${ckarg2#*.}" = "gpg" ]; then
    ckeyfile="${ckeyfile}.gpg"
    usegpg="y"
    fi
    mkdir /ckey
    mount -r -t ${ckarg1} ${ckdev} /ckey
    dd if=/ckey/${ckarg2} of=${ckeyfile} >/dev/null 2>&1
    umount /ckey
    # Read raw data from the block device
    # ckarg1 is numeric: ckarg1=offset, ckarg2=length
    dd if=${ckdev} of=${ckeyfile} bs=1 skip=${ckarg1} count=${ckarg2} >/dev/null 2>&1
    esac
    fi
    [ ! -f ${ckeyfile} ] && echo "Keyfile could not be opened. Reverting to passphrase."
    fi
    if [ -n "${cryptdevice}" ]; then
    DEPRECATED_CRYPT=0
    cryptdev="$(echo "${cryptdevice}" | cut -d: -f1)"
    cryptname="$(echo "${cryptdevice}" | cut -d: -f2)"
    else
    DEPRECATED_CRYPT=1
    cryptdev="${root}"
    cryptname="root"
    fi
    warn_deprecated() {
    echo "The syntax 'root=${root}' where '${root}' is an encrypted volume is deprecated"
    echo "Use 'cryptdevice=${root}:root root=/dev/mapper/root' instead."
    if poll_device "${cryptdev}" ${rootdelay}; then
    if /sbin/cryptsetup isLuks ${cryptdev} >/dev/null 2>&1; then
    [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
    dopassphrase=1
    # If keyfile exists, try to use that
    if [ -f ${ckeyfile} ]; then
    if [ "${usegpg}" = "y" ]; then
    # gpg tty fixup
    if [ -e /dev/tty ]; then mv /dev/tty /dev/tty.backup; fi
    cp -a /dev/console /dev/tty
    while [ ! -e /dev/mapper/${cryptname} ];
    do
    sleep 2
    /usr/bin/gpg -d "${ckeyfile}" 2>/dev/null | cryptsetup --key-file=- luksOpen ${cryptdev} ${cryptname} ${CSQUIET}
    dopassphrase=0
    done
    rm /dev/tty
    if [ -e /dev/tty.backup ]; then mv /dev/tty.backup /dev/tty; fi
    else
    if eval /sbin/cryptsetup --key-file ${ckeyfile} luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; then
    dopassphrase=0
    else
    echo "Invalid keyfile. Reverting to passphrase."
    fi
    fi
    fi
    # Ask for a passphrase
    if [ ${dopassphrase} -gt 0 ]; then
    echo ""
    echo "A password is required to access the ${cryptname} volume:"
    #loop until we get a real password
    while ! eval /sbin/cryptsetup luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; do
    sleep 2;
    done
    fi
    if [ -e "/dev/mapper/${cryptname}" ]; then
    if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
    export root="/dev/mapper/root"
    fi
    else
    err "Password succeeded, but ${cryptname} creation failed, aborting..."
    exit 1
    fi
    elif [ -n "${crypto}" ]; then
    [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
    msg "Non-LUKS encrypted device found..."
    if [ $# -ne 5 ]; then
    err "Verify parameter format: crypto=hash:cipher:keysize:offset:skip"
    err "Non-LUKS decryption not attempted..."
    return 1
    fi
    exe="/sbin/cryptsetup create ${cryptname} ${cryptdev}"
    tmp=$(echo "${crypto}" | cut -d: -f1)
    [ -n "${tmp}" ] && exe="${exe} --hash \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f2)
    [ -n "${tmp}" ] && exe="${exe} --cipher \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f3)
    [ -n "${tmp}" ] && exe="${exe} --key-size \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f4)
    [ -n "${tmp}" ] && exe="${exe} --offset \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f5)
    [ -n "${tmp}" ] && exe="${exe} --skip \"${tmp}\""
    if [ -f ${ckeyfile} ]; then
    exe="${exe} --key-file ${ckeyfile}"
    else
    exe="${exe} --verify-passphrase"
    echo ""
    echo "A password is required to access the ${cryptname} volume:"
    fi
    eval "${exe} ${CSQUIET}"
    if [ $? -ne 0 ]; then
    err "Non-LUKS device decryption failed. verify format: "
    err " crypto=hash:cipher:keysize:offset:skip"
    exit 1
    fi
    if [ -e "/dev/mapper/${cryptname}" ]; then
    if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
    export root="/dev/mapper/root"
    fi
    else
    err "Password succeeded, but ${cryptname} creation failed, aborting..."
    exit 1
    fi
    else
    err "Failed to open encryption mapping: The device ${cryptdev} is not a LUKS volume and the crypto= paramater was not specified."
    fi
    fi
    rm -f ${ckeyfile}
    fi
    Create /mnt/lib/initcpio/install/etwo:
    #!/bin/bash
    build() {
    local mod
    add_module dm-crypt
    if [[ $CRYPTO_MODULES ]]; then
    for mod in $CRYPTO_MODULES; do
    add_module "$mod"
    done
    else
    add_all_modules '/crypto/'
    fi
    add_dir "/dev/mapper"
    add_binary "cryptsetup"
    add_binary "dmsetup"
    add_binary "/usr/bin/gpg"
    add_file "/usr/lib/udev/rules.d/10-dm.rules"
    add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
    add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
    add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules"
    add_runscript
    help ()
    cat<<HELPEOF
    This hook allows for an encrypted root device with support for gpg encrypted key files.
    To use gpg, the key file must have the extension .gpg and you have to install gpg and add /usr/bin/gpg
    to your BINARIES var in /etc/mkinitcpio.conf.
    HELPEOF
    Edit /mnt/etc/mkinitcpio.conf (only relevant sections displayed):
    MODULES=”ext2 ext4” # not sure if this is really nessecary.
    BINARIES=”/usr/bin/gpg” # this could probably be done in install/etwo...
    HOOKS=”base udev usbinput keymap autodetect pata scsi sata usb etwo filesystems” # (usbinput is only needed if you have an usb keyboard)
    Copy the initcpio stuff over to the live cd:
    cp /mnt/lib/initcpio/hooks/etwo /lib/initcpio/hooks/
    cp /mnt/lib/initcpio/install/etwo /lib/initcpio/install/
    cp /mnt/etc/mkinitcpio.conf /etc/
    Verify your LOCALE, KEYMAP and TIMEZONE in /etc/rc.conf!
    Now reinstall the initcpio:
    mkinitcpio -g /mnt/boot/kernel26.img
    Make sure there were no errors and that all hooks were included.
    13. Decrypt the "var" key to the encrypted root
    mkdir /mnt/keys
    chmod 500 /mnt/keys
    gpg –output /mnt/keys/var -d /mnt/boot/var.gpg
    chmod 400 /mnt/keys/var
    14. Setup crypttab
    Edit /mnt/etc/crypttab:
    swap /dev/sda1 SWAP -c aes-cbc-essiv:sha256 -s 256 -h whirlpool
    var /dev/sda2 /keys/var
    15. Reboot
    We're done, you may reboot. Make sure you select the usb stick as the boot device in your bios and hope for the best. . If it didn't work, play with grub's settings or boot from the live cd, mount your encrypted devices and check all settings. You might also have less trouble by using uuid's instead of device names.  I chose device names to keep things as simple as possible, even though it's not the optimal way to do it.
    Make backups of your data and your usb stick and do not forget your password(s)! Or you can say goodbye to your data forever...
    Last edited by fabriceb (2013-01-15 22:36:23)

    I'm trying to run my install script that is based on https://bbs.archlinux.org/viewtopic.php?id=129885
    Decrypting the gpg key after grub works, but then "Devce root already exists." appears every second.
    any idea ?
    #!/bin/bash
    # This script is designed to be run in conjunction with a UEFI boot using Archboot intall media.
    # prereqs:
    # EFI "BIOS" set to boot *only* from EFI
    # successful EFI boot of Archboot USB
    # mount /dev/sdb1 /src
    set -o nounset
    #set -o errexit
    # Host specific configuration
    # this whole script needs to be customized, particularly disk partitions
    # and configuration, but this section contains global variables that
    # are used during the system configuration phase for convenience
    HOSTNAME=daniel
    USERNAME=user
    # Globals
    # We don't need to set these here but they are used repeatedly throughout
    # so it makes sense to reuse them and allow an easy, one-time change if we
    # need to alter values such as the install target mount point.
    INSTALL_TARGET="/install"
    HR="--------------------------------------------------------------------------------"
    PACMAN="pacman --noconfirm --config /tmp/pacman.conf"
    TARGET_PACMAN="pacman --noconfirm --config /tmp/pacman.conf -r ${INSTALL_TARGET}"
    CHROOT_PACMAN="pacman --noconfirm --cachedir /var/cache/pacman/pkg --config /tmp/pacman.conf -r ${INSTALL_TARGET}"
    FILE_URL="file:///packages/core-$(uname -m)/pkg"
    FTP_URL='ftp://mirrors.kernel.org/archlinux/$repo/os/$arch'
    HTTP_URL='http://mirrors.kernel.org/archlinux/$repo/os/$arch'
    # Functions
    # I've avoided using functions in this script as they aren't required and
    # I think it's more of a learning tool if you see the step-by-step
    # procedures even with minor duplciations along the way, but I feel that
    # these functions clarify the particular steps of setting values in config
    # files.
    SetValue () {
    # EXAMPLE: SetValue VARIABLENAME '\"Quoted Value\"' /file/path
    VALUENAME="$1" NEWVALUE="$2" FILEPATH="$3"
    sed -i "s+^#\?\(${VALUENAME}\)=.*$+\1=${NEWVALUE}+" "${FILEPATH}"
    CommentOutValue () {
    VALUENAME="$1" FILEPATH="$2"
    sed -i "s/^\(${VALUENAME}.*\)$/#\1/" "${FILEPATH}"
    UncommentValue () {
    VALUENAME="$1" FILEPATH="$2"
    sed -i "s/^#\(${VALUENAME}.*\)$/\1/" "${FILEPATH}"
    # Initialize
    # Warn the user about impending doom, set up the network on eth0, mount
    # the squashfs images (Archboot does this normally, we're just filling in
    # the gaps resulting from the fact that we're doing a simple scripted
    # install). We also create a temporary pacman.conf that looks for packages
    # locally first before sourcing them from the network. It would be better
    # to do either *all* local or *all* network but we can't for two reasons.
    # 1. The Archboot installation image might have an out of date kernel
    # (currently the case) which results in problems when chrooting
    # into the install mount point to modprobe efivars. So we use the
    # package snapshot on the Archboot media to ensure our kernel is
    # the same as the one we booted with.
    # 2. Ideally we'd source all local then, but some critical items,
    # notably grub2-efi variants, aren't yet on the Archboot media.
    # Warn
    timer=9
    echo -e "\n\nMAC WARNING: This script is not designed for APPLE MAC installs and will potentially misconfigure boot to your existing OS X installation. STOP NOW IF YOU ARE ON A MAC.\n\n"
    echo -n "GENERAL WARNING: This procedure will completely format /dev/sda. Please cancel with ctrl-c to cancel within $timer seconds..."
    while [[ $timer -gt 0 ]]
    do
    sleep 1
    let timer-=1
    echo -en "$timer seconds..."
    done
    echo "STARTING"
    # Get Network
    echo -n "Waiting for network address.."
    #dhclient eth0
    dhcpcd -p eth0
    echo -n "Network address acquired."
    # Mount packages squashfs images
    umount "/packages/core-$(uname -m)"
    umount "/packages/core-any"
    rm -rf "/packages/core-$(uname -m)"
    rm -rf "/packages/core-any"
    mkdir -p "/packages/core-$(uname -m)"
    mkdir -p "/packages/core-any"
    modprobe -q loop
    modprobe -q squashfs
    mount -o ro,loop -t squashfs "/src/packages/archboot_packages_$(uname -m).squashfs" "/packages/core-$(uname -m)"
    mount -o ro,loop -t squashfs "/src/packages/archboot_packages_any.squashfs" "/packages/core-any"
    # Create temporary pacman.conf file
    cat << PACMANEOF > /tmp/pacman.conf
    [options]
    Architecture = auto
    CacheDir = ${INSTALL_TARGET}/var/cache/pacman/pkg
    CacheDir = /packages/core-$(uname -m)/pkg
    CacheDir = /packages/core-any/pkg
    [core]
    Server = ${FILE_URL}
    Server = ${FTP_URL}
    Server = ${HTTP_URL}
    [extra]
    Server = ${FILE_URL}
    Server = ${FTP_URL}
    Server = ${HTTP_URL}
    #Uncomment to enable pacman -Sy yaourt
    [archlinuxfr]
    Server = http://repo.archlinux.fr/\$arch
    PACMANEOF
    # Prepare pacman
    [[ ! -d "${INSTALL_TARGET}/var/cache/pacman/pkg" ]] && mkdir -m 755 -p "${INSTALL_TARGET}/var/cache/pacman/pkg"
    [[ ! -d "${INSTALL_TARGET}/var/lib/pacman" ]] && mkdir -m 755 -p "${INSTALL_TARGET}/var/lib/pacman"
    ${PACMAN} -Sy
    ${TARGET_PACMAN} -Sy
    # Install prereqs from network (not on archboot media)
    echo -e "\nInstalling prereqs...\n$HR"
    #sed -i "s/^#S/S/" /etc/pacman.d/mirrorlist # Uncomment all Server lines
    UncommentValue S /etc/pacman.d/mirrorlist # Uncomment all Server lines
    ${PACMAN} --noconfirm -Sy gptfdisk btrfs-progs-unstable libusb-compat gnupg
    # Configure Host
    # Here we create three partitions:
    # 1. efi and /boot (one partition does double duty)
    # 2. swap
    # 3. our encrypted root
    # Note that all of these are on a GUID partition table scheme. This proves
    # to be quite clean and simple since we're not doing anything with MBR
    # boot partitions and the like.
    echo -e "format\n"
    # shred -v /dev/sda
    # disk prep
    sgdisk -Z /dev/sda # zap all on disk
    #sgdisk -Z /dev/mmcb1k0 # zap all on sdcard
    sgdisk -a 2048 -o /dev/sda # new gpt disk 2048 alignment
    #sgdisk -a 2048 -o /dev/mmcb1k0
    # create partitions
    sgdisk -n 1:0:+200M /dev/sda # partition 1 (UEFI BOOT), default start block, 200MB
    sgdisk -n 2:0:+4G /dev/sda # partition 2 (SWAP), default start block, 200MB
    sgdisk -n 3:0:0 /dev/sda # partition 3, (LUKS), default start, remaining space
    #sgdisk -n 1:0:1800M /dev/mmcb1k0 # root.gpg
    # set partition types
    sgdisk -t 1:ef00 /dev/sda
    sgdisk -t 2:8200 /dev/sda
    sgdisk -t 3:8300 /dev/sda
    #sgdisk -t 1:0700 /dev/mmcb1k0
    # label partitions
    sgdisk -c 1:"UEFI Boot" /dev/sda
    sgdisk -c 2:"Swap" /dev/sda
    sgdisk -c 3:"LUKS" /dev/sda
    #sgdisk -c 1:"Key" /dev/mmcb1k0
    echo -e "create gpg file\n"
    # create gpg file
    dd if=/dev/urandom bs=512 count=4 | gpg -v --cipher-algo aes256 --digest-algo sha512 -c -a > /root/root.gpg
    echo -e "format LUKS on root\n"
    # format LUKS on root
    gpg -q -d /root/root.gpg 2>/dev/null | cryptsetup -v --key-file=- -c aes-xts-plain -s 512 --hash sha512 luksFormat /dev/sda3
    echo -e "open LUKS on root\n"
    gpg -d /root/root.gpg 2>/dev/null | cryptsetup -v --key-file=- luksOpen /dev/sda3 root
    # NOTE: make sure to add dm_crypt and aes_i586 to MODULES in rc.conf
    # NOTE2: actually this isn't required since we're mounting an encrypted root and grub2/initramfs handles this before we even get to rc.conf
    # make filesystems
    # following swap related commands not used now that we're encrypting our swap partition
    #mkswap /dev/sda2
    #swapon /dev/sda2
    #mkfs.ext4 /dev/sda3 # this is where we'd create an unencrypted root partition, but we're using luks instead
    echo -e "\nCreating Filesystems...\n$HR"
    # make filesystems
    mkfs.ext4 /dev/mapper/root
    mkfs.vfat -F32 /dev/sda1
    #mkfs.vfat -F32 /dev/mmcb1k0p1
    echo -e "mount targets\n"
    # mount target
    #mount /dev/sda3 ${INSTALL_TARGET} # this is where we'd mount the unencrypted root partition
    mount /dev/mapper/root ${INSTALL_TARGET}
    # mount target
    mkdir ${INSTALL_TARGET}
    # mkdir ${INSTALL_TARGET}/key
    # mount -t vfat /dev/mmcb1k0p1 ${INSTALL_TARGET}/key
    mkdir ${INSTALL_TARGET}/boot
    mount -t vfat /dev/sda1 ${INSTALL_TARGET}/boot
    # Install base, necessary utilities
    mkdir -p ${INSTALL_TARGET}/var/lib/pacman
    ${TARGET_PACMAN} -Sy
    ${TARGET_PACMAN} -Su base
    # curl could be installed later but we want it ready for rankmirrors
    ${TARGET_PACMAN} -S curl
    ${TARGET_PACMAN} -S libusb-compat gnupg
    ${TARGET_PACMAN} -R grub
    rm -rf ${INSTALL_TARGET}/boot/grub
    ${TARGET_PACMAN} -S grub2-efi-x86_64
    # Configure new system
    SetValue HOSTNAME ${HOSTNAME} ${INSTALL_TARGET}/etc/rc.conf
    sed -i "s/^\(127\.0\.0\.1.*\)$/\1 ${HOSTNAME}/" ${INSTALL_TARGET}/etc/hosts
    SetValue CONSOLEFONT Lat2-Terminus16 ${INSTALL_TARGET}/etc/rc.conf
    #following replaced due to netcfg
    #SetValue interface eth0 ${INSTALL_TARGET}/etc/rc.conf
    # write fstab
    # You can use UUID's or whatever you want here, of course. This is just
    # the simplest approach and as long as your drives aren't changing values
    # randomly it should work fine.
    cat > ${INSTALL_TARGET}/etc/fstab <<FSTAB_EOF
    # /etc/fstab: static file system information
    # <file system> <dir> <type> <options> <dump> <pass>
    tmpfs /tmp tmpfs nodev,nosuid 0 0
    /dev/sda1 /boot vfat defaults 0 0
    /dev/mapper/cryptswap none swap defaults 0 0
    /dev/mapper/root / ext4 defaults,noatime 0 1
    FSTAB_EOF
    # write etwo
    mkdir -p /lib/initcpio/hooks/
    mkdir -p /lib/initcpio/install/
    cp /src/etwo_hooks /lib/initcpio/hooks/etwo
    cp /src/etwo_install /lib/initcpio/install/etwo
    mkdir -p ${INSTALL_TARGET}/lib/initcpio/hooks/
    mkdir -p ${INSTALL_TARGET}/lib/initcpio/install/
    cp /src/etwo_hooks ${INSTALL_TARGET}/lib/initcpio/hooks/etwo
    cp /src/etwo_install ${INSTALL_TARGET}/lib/initcpio/install/etwo
    # write crypttab
    # encrypted swap (random passphrase on boot)
    echo cryptswap /dev/sda2 SWAP "-c aes-xts-plain -h whirlpool -s 512" >> ${INSTALL_TARGET}/etc/crypttab
    # copy configs we want to carry over to target from install environment
    mv ${INSTALL_TARGET}/etc/resolv.conf ${INSTALL_TARGET}/etc/resolv.conf.orig
    cp /etc/resolv.conf ${INSTALL_TARGET}/etc/resolv.conf
    mkdir -p ${INSTALL_TARGET}/tmp
    cp /tmp/pacman.conf ${INSTALL_TARGET}/tmp/pacman.conf
    # mount proc, sys, dev in install root
    mount -t proc proc ${INSTALL_TARGET}/proc
    mount -t sysfs sys ${INSTALL_TARGET}/sys
    mount -o bind /dev ${INSTALL_TARGET}/dev
    echo -e "umount boot\n"
    # we have to remount /boot from inside the chroot
    umount ${INSTALL_TARGET}/boot
    # Create install_efi script (to be run *after* chroot /install)
    touch ${INSTALL_TARGET}/install_efi
    chmod a+x ${INSTALL_TARGET}/install_efi
    cat > ${INSTALL_TARGET}/install_efi <<EFI_EOF
    # functions (these could be a library, but why overcomplicate things
    SetValue () { VALUENAME="\$1" NEWVALUE="\$2" FILEPATH="\$3"; sed -i "s+^#\?\(\${VALUENAME}\)=.*\$+\1=\${NEWVALUE}+" "\${FILEPATH}"; }
    CommentOutValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^\(\${VALUENAME}.*\)\$/#\1/" "\${FILEPATH}"; }
    UncommentValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^#\(\${VALUENAME}.*\)\$/\1/" "\${FILEPATH}"; }
    echo -e "mount boot\n"
    # remount here or grub et al gets confused
    mount -t vfat /dev/sda1 /boot
    # mkinitcpio
    # NOTE: intel_agp drm and i915 for intel graphics
    SetValue MODULES '\\"dm_mod dm_crypt aes_x86_64 ext2 ext4 vfat intel_agp drm i915\\"' /etc/mkinitcpio.conf
    SetValue HOOKS '\\"base udev pata scsi sata usb usbinput keymap consolefont etwo encrypt filesystems\\"' /etc/mkinitcpio.conf
    SetValue BINARIES '\\"/usr/bin/gpg\\"' /etc/mkinitcpio.conf
    mkinitcpio -p linux
    # kernel modules for EFI install
    modprobe efivars
    modprobe dm-mod
    # locale-gen
    UncommentValue de_AT /etc/locale.gen
    locale-gen
    # install and configure grub2
    # did this above
    #${CHROOT_PACMAN} -Sy
    #${CHROOT_PACMAN} -R grub
    #rm -rf /boot/grub
    #${CHROOT_PACMAN} -S grub2-efi-x86_64
    # you can be surprisingly sloppy with the root value you give grub2 as a kernel option and
    # even omit the cryptdevice altogether, though it will wag a finger at you for using
    # a deprecated syntax, so we're using the correct form here
    # NOTE: take out i915.modeset=1 unless you are on intel graphics
    SetValue GRUB_CMDLINE_LINUX '\\"cryptdevice=/dev/sda3:root cryptkey=/dev/sda1:vfat:/root.gpg add_efi_memmap i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 pcie_aspm=force quiet\\"' /etc/default/grub
    # set output to graphical
    SetValue GRUB_TERMINAL_OUTPUT gfxterm /etc/default/grub
    SetValue GRUB_GFXMODE 960x600x32,auto /etc/default/grub
    SetValue GRUB_GFXPAYLOAD_LINUX keep /etc/default/grub # comment out this value if text only mode
    # install the actual grub2. Note that despite our --boot-directory option we will still need to move
    # the grub directory to /boot/grub during grub-mkconfig operations until grub2 gets patched (see below)
    grub_efi_x86_64-install --bootloader-id=grub --no-floppy --recheck
    # create our EFI boot entry
    # bug in the HP bios firmware (F.08)
    efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "ARCH LINUX" --loader "\\\\grub\\\\grub.efi"
    # copy font for grub2
    cp /usr/share/grub/unicode.pf2 /boot/grub
    # generate config file
    grub-mkconfig -o /boot/grub/grub.cfg
    exit
    EFI_EOF
    # Install EFI using script inside chroot
    chroot ${INSTALL_TARGET} /install_efi
    rm ${INSTALL_TARGET}/install_efi
    # Post install steps
    # anything you want to do post install. run the script automatically or
    # manually
    touch ${INSTALL_TARGET}/post_install
    chmod a+x ${INSTALL_TARGET}/post_install
    cat > ${INSTALL_TARGET}/post_install <<POST_EOF
    set -o errexit
    set -o nounset
    # functions (these could be a library, but why overcomplicate things
    SetValue () { VALUENAME="\$1" NEWVALUE="\$2" FILEPATH="\$3"; sed -i "s+^#\?\(\${VALUENAME}\)=.*\$+\1=\${NEWVALUE}+" "\${FILEPATH}"; }
    CommentOutValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^\(\${VALUENAME}.*\)\$/#\1/" "\${FILEPATH}"; }
    UncommentValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^#\(\${VALUENAME}.*\)\$/\1/" "\${FILEPATH}"; }
    # root password
    echo -e "${HR}\\nNew root user password\\n${HR}"
    passwd
    # add user
    echo -e "${HR}\\nNew non-root user password (username:${USERNAME})\\n${HR}"
    groupadd sudo
    useradd -m -g users -G audio,lp,optical,storage,video,games,power,scanner,network,sudo,wheel -s /bin/bash ${USERNAME}
    passwd ${USERNAME}
    # mirror ranking
    echo -e "${HR}\\nRanking Mirrors (this will take a while)\\n${HR}"
    cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
    mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.all
    sed -i "s/#S/S/" /etc/pacman.d/mirrorlist.all
    rankmirrors -n 5 /etc/pacman.d/mirrorlist.all > /etc/pacman.d/mirrorlist
    # temporary fix for locale.sh update conflict
    mv /etc/profile.d/locale.sh /etc/profile.d/locale.sh.preupdate || true
    # yaourt repo (add to target pacman, not tmp pacman.conf, for ongoing use)
    echo -e "\\n[archlinuxfr]\\nServer = http://repo.archlinux.fr/\\\$arch" >> /etc/pacman.conf
    echo -e "\\n[haskell]\\nServer = http://www.kiwilight.com/\\\$repo/\\\$arch" >> /etc/pacman.conf
    # additional groups and utilities
    pacman --noconfirm -Syu
    pacman --noconfirm -S base-devel
    pacman --noconfirm -S yaourt
    # sudo
    pacman --noconfirm -S sudo
    cp /etc/sudoers /tmp/sudoers.edit
    sed -i "s/#\s*\(%wheel\s*ALL=(ALL)\s*ALL.*$\)/\1/" /tmp/sudoers.edit
    sed -i "s/#\s*\(%sudo\s*ALL=(ALL)\s*ALL.*$\)/\1/" /tmp/sudoers.edit
    visudo -qcsf /tmp/sudoers.edit && cat /tmp/sudoers.edit > /etc/sudoers
    # power
    pacman --noconfirm -S acpi acpid acpitool cpufrequtils
    yaourt --noconfirm -S powertop2
    sed -i "/^DAEMONS/ s/)/ @acpid)/" /etc/rc.conf
    sed -i "/^MODULES/ s/)/ acpi-cpufreq cpufreq_ondemand cpufreq_powersave coretemp)/" /etc/rc.conf
    # following requires my acpi handler script
    echo "/etc/acpi/handler.sh boot" > /etc/rc.local
    # time
    pacman --noconfirm -S ntp
    sed -i "/^DAEMONS/ s/hwclock /!hwclock @ntpd /" /etc/rc.conf
    # wireless (wpa supplicant should already be installed)
    pacman --noconfirm -S iw wpa_supplicant rfkill
    pacman --noconfirm -S netcfg wpa_actiond ifplugd
    mv /etc/wpa_supplicant.conf /etc/wpa_supplicant.conf.orig
    echo -e "ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=network\nupdate_config=1" > /etc/wpa_supplicant.conf
    # make sure to copy /etc/network.d/examples/wireless-wpa-config to /etc/network.d/home and edit
    sed -i "/^DAEMONS/ s/)/ @net-auto-wireless @net-auto-wired)/" /etc/rc.conf
    sed -i "/^DAEMONS/ s/ network / /" /etc/rc.conf
    echo -e "\nWIRELESS_INTERFACE=wlan0" >> /etc/rc.conf
    echo -e "WIRED_INTERFACE=eth0" >> /etc/rc.conf
    echo "options iwlagn led_mode=2" > /etc/modprobe.d/iwlagn.conf
    # sound
    pacman --noconfirm -S alsa-utils alsa-plugins
    sed -i "/^DAEMONS/ s/)/ @alsa)/" /etc/rc.conf
    mv /etc/asound.conf /etc/asound.conf.orig || true
    #if alsamixer isn't working, try alsamixer -Dhw and speaker-test -Dhw -c 2
    # video
    pacman --noconfirm -S base-devel mesa mesa-demos
    # x
    #pacman --noconfirm -S xorg xorg-xinit xorg-utils xorg-server-utils xdotool xorg-xlsfonts
    #yaourt --noconfirm -S xf86-input-wacom-git # NOT NEEDED? input-wacom-git
    #TODO: cut down the install size
    #pacman --noconfirm -S xorg-server xorg-xinit xorg-utils xorg-server-utils
    # TODO: wacom
    # environment/wm/etc.
    #pacman --noconfirm -S xfce4 compiz ccsm
    #pacman --noconfirm -S xcompmgr
    #yaourt --noconfirm -S physlock unclutter
    #pacman --noconfirm -S rxvt-unicode urxvt-url-select hsetroot
    #pacman --noconfirm -S gtk2 #gtk3 # for taffybar?
    #pacman --noconfirm -S ghc
    # note: try installing alex and happy from cabal instead
    #pacman --noconfirm -S haskell-platform haskell-hscolour
    #yaourt --noconfirm -S xmonad-darcs xmonad-contrib-darcs xcompmgr
    #yaourt --noconfirm -S xmobar-git
    # TODO: edit xfce to use compiz
    # TODO: xmonad, but deal with video tearing
    # TODO: xmonad-darcs fails to install from AUR. haskell dependency hell.
    # switching to cabal
    # fonts
    pacman --noconfirm -S terminus-font
    yaourt --noconfirm -S webcore-fonts
    yaourt --noconfirm -S fontforge libspiro
    yaourt --noconfirm -S freetype2-git-infinality
    # TODO: sed infinality and change to OSX or OSX2 mode
    # and create the sym link from /etc/fonts/conf.avail to conf.d
    # misc apps
    #pacman --noconfirm -S htop openssh keychain bash-completion git vim
    #pacman --noconfirm -S chromium flashplugin
    #pacman --noconfirm -S scrot mypaint bc
    #yaourt --noconfirm -S task-git stellarium googlecl
    # TODO: argyll
    POST_EOF
    # Post install in chroot
    #echo "chroot and run /post_install"
    chroot /install /post_install
    rm /install/post_install
    # copy grub.efi file to the default HP EFI boot manager path
    mkdir -p ${INSTALL_TARGET}/boot/EFI/Microsoft/BOOT/
    mkdir -p ${INSTALL_TARGET}/boot/EFI/BOOT/
    cp ${INSTALL_TARGET}/boot/grub/grub.efi ${INSTALL_TARGET}/boot/EFI/Microsoft/BOOT/bootmgfw.efi
    cp ${INSTALL_TARGET}/boot/grub/grub.efi ${INSTALL_TARGET}/boot/EFI/BOOT/BOOTX64.EFI
    cp /root/root.gpg ${INSTALL_TARGET}/boot/
    # NOTES/TODO

  • Automated build server for Arch? (like the sourceforge build system)

    Has someone considered some kind of automated build system for Arch?
    Something that would work like this:
    - It'd have every library and dependency possible installed.
    - It'd intelligently read the makefiles produced to see what libraries they used and compare them against a lookup table to see what Arch dependencies they then required. Failing that, it could use ldd and a second lookup table that matched libraries to packages.
    - It'd attempt to figure out the target binary to run (again, from the makefiles produced), and then run it. If it worked, it'd be marked as usable. If it didn't work, it'd be marked as needing fixing.
    All of these points can fail, especially in the parsing of the makefiles; in each case, this would be noted by the system and user action could be taken.
    In operation, it wouldn't take away from users managing their own packages. It'd just provide a secure environment to build packages in, and attempt to automate some of the process. In the best cases, the system would theoretically be capable enough to download a package's sourcecode, ./configure it, make it, make a package out of it, get the package verified as usable, then update the repo with it.
    Note the verification step in the previous paragraph: I would never want this to be an automated system. Sure, it sound amazing on paper, and might even work for a little while, but sooner or later something would come crashing down and since repo management is quite a trust-based issue, everyone would freak out and they wouldn't want the build server anymore.
    -dav7
    Last edited by dav7 (2008-10-17 18:41:22)

    Who would have access to upload to such a build server? If it's the general public, then this is a security nightmare, as well as a growth curve nightmare. The monetary investment for a project like this would need to come from somewhere.
    And yeah, something like this has been considered, and a working proof-of-concept has been sitting around for years. http://projects.archlinux.org/?p=pacbuild.git;a=summary . What this kind of project really needs is someone with some distributed computing smarts and dedication (and time) to get it off the ground in a form that will survive past a proof-of-concept barebones implementation.
    One of the largest design challenges would be dependency resolution for batch upgrades. For instance, let's say we update libfoobar, which is depended upon by foo, bar, baz, and batman, the system needs to know that libfoobar needs to be built and installed in order to compile the rest of them against it.

  • Infinality-bundle-fonts: a free multilingual font collection for Arch

    infinality-bundle-fonts: a free multilingual font collection for Arch Linux
    infinality-bundle-fonts is meant to be a complete, 'install-and-forget' solution for most (Arch) Linux users looking for easy access to common type-faces diversity needed to create and reproduce (hyper)text documents. It consists of freely available, hand-picked fonts providing correct, uniform and high quality rendering of multilingual content.
    Obligatory teaser
    click
    Installation instructions
    See Infinality-bundle+fonts.
    Technical information and user notes
    Popular proprietary fonts substitutions
    See /etc/fonts/conf.avail.infinality/free/37-repl-global-free.conf.
    Default sans-serif, serif, monospace, fantasy, cursive
    See /etc/fonts/conf.avail.infinality/free/60-latin-free.conf.
    Languages covered and special cases
    Wikipedia was used as a reference when testing Latin and non-Latin linguistic scenarios and I believe that the majority of users should be satisfied with the results (the completeness, rendering quality, readability, clarity, coherence… you name it).
    If in doubt, you can easily check which font family is used to display a particular script:
    [~] $ fc-match :lang=ja
    sawarabi-gothic-medium.ttf: "Sawarabi Gothic" "Medium"
    Before you install a third-party font package, first check if it is already present in the infinality-bundle-fonts repository.
    The default sans family is Noto Sans. However, in order to preserve the correct layout of certain web documents, Liberation Sans will remain the replacement for Arial. The width difference between the two could be problematic for certain websites prioritizing Arial/Helvetica over 'anything sans' (rather than 'anything serif'). Websites intentionally designed to use any sans font will select Noto Sans by default.
    There is an extensive choice of available serif type-faces: the default is Heuristica, others include Crimson Text, Merriweather, TeX Gyre Termes, Gentium family, and more.
    A few popular font packages available in the Arch Linux official repositories were re-packed in order to avoid rendering issues.
    A few packages available in the AUR were re-packed for compatibility reasons.
    You will be notified if a package you already have in your system should be replaced with a corresponding one from the infinality-bundle-fonts repository.  If this is the case, just hit 'Y' to accept and install the new one.
    Additional font files can be found in infinality-bundle-fonts-extra group.  Some may be handy extensions for particular scripts (like 'ttf-dejavusans-yunati-*-ibx'), others are strictly optional and task specific.  The 'extra' group is expected to offer those few quality bits that users most often need to use but that do not belong to the main set. Suggestions are welcome. Note: 'extra' is not a place for 10 mono / sans / decorative type-faces, etc. This is technically impossible due to server bandwidth limits and practically against the usability principle that a well organized general purpose font collection should offer.
    Licensing
    The files available in the infinality-bundle-fonts repository are freely available for download, redistribution, personal and/or commercial use. 95% of the fonts are licensed under the GPL, Apache or OFL license. The remaining 5% can still be freely distributed and used under certain conditions specified by the author and/or the foundry. Please, consult a particular license for details if a proper license matters to you.
    Sources and build scripts
    All source files are available in the usual place:
    PKGBUILD
    Enjoy.
    Last edited by bohoomil (2013-12-04 23:29:11)

    bohoomil wrote:
    Thanks -- I will re-build and re-upload the package in a minute.
    Edit: OK, done. ttf-chromeos-fonts has to be in conflicts=() because it provides exactly the same content as ttf-chromeos-ib. ttf-chromeos-extra-fonts was removed.
    I say AND: conjuntion that mean both in this case conflict=('ttf-chromeos-fonts' 'ttf-chromes-extra-fonts')
    before
    ttf-chromeos-ib: /usr/share/fonts/TTF/Arimo-Bold.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Arimo-BoldItalic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Arimo-Italic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Arimo-Regular.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Cousine-Bold.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Cousine-BoldItalic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Cousine-Italic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Cousine-Regular.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Tinos-Bold.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Tinos-BoldItalic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Tinos-Italic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Tinos-Regular.ttf existe en el sistema de archivos
    now
    ttf-chromeos-ib: /usr/share/fonts/TTF/Arimo-Bold.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Arimo-BoldItalic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Arimo-Italic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Arimo-Regular.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Cousine-Bold.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Cousine-BoldItalic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Cousine-Italic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Cousine-Regular.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Tinos-Bold.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Tinos-BoldItalic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Tinos-Italic.ttf existe en el sistema de archivos
    ttf-chromeos-ib: /usr/share/fonts/TTF/Tinos-Regular.ttf existe en el sistema de archivos
    ttf-lohit-oriya-ib: /usr/share/fonts/TTF/Lohit-Oriya.ttf existe en el sistema de archivos
    ttf-lohit-punjabi-ib: /usr/share/fonts/TTF/Lohit-Punjabi.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansArmenian-Bold.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansArmenian-Regular.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansDevanagari-Bold.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansDevanagari-Regular.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansDevanagariUI-Bold.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansDevanagariUI-Regular.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansEthiopic-Bold.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansEthiopic-Regular.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansGeorgian-Bold.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansGeorgian-Regular.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansHebrew-Bold.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansHebrew-Regular.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansTamil-Bold.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansTamil-Regular.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansTamilUI-Bold.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansTamilUI-Regular.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansThai-Bold.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansThai-Regular.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansThaiUI-Bold.ttf existe en el sistema de archivos
    ttf-noto-sans-multilang-ib: /usr/share/fonts/TTF/NotoSansThaiUI-Regular.ttf existe en el sistema de archivos
    ttf-noto-serif-ib: /usr/share/fonts/TTF/NotoSerif-Bold.ttf existe en el sistema de archivos
    ttf-noto-serif-ib: /usr/share/fonts/TTF/NotoSerif-BoldItalic.ttf existe en el sistema de archivos
    ttf-noto-serif-ib: /usr/share/fonts/TTF/NotoSerif-Italic.ttf existe en el sistema de archivos
    ttf-noto-serif-ib: /usr/share/fonts/TTF/NotoSerif-Regular.ttf existe en el sistema de archivos
    ttf-noto-serif-multilang-ib: /usr/share/fonts/TTF/NotoSerifArmenian-Bold.ttf existe en el sistema de archivos
    ttf-noto-serif-multilang-ib: /usr/share/fonts/TTF/NotoSerifArmenian-Regular.ttf existe en el sistema de archivos
    ttf-noto-serif-multilang-ib: /usr/share/fonts/TTF/NotoSerifGeorgian-Bold.ttf existe en el sistema de archivos
    ttf-noto-serif-multilang-ib: /usr/share/fonts/TTF/NotoSerifGeorgian-Regular.ttf existe en el sistema de archivos
    ttf-noto-serif-multilang-ib: /usr/share/fonts/TTF/NotoSerifThai-Bold.ttf existe en el sistema de archivos
    ttf-noto-serif-multilang-ib: /usr/share/fonts/TTF/NotoSerifThai-Regular.ttf existe en el sistema de archivos

  • Crover - generate OS version numbers for Arch Linux

    Arch is a rolling distro, but did you ever wish it still had release numbers? So you could check what "version" you currently have installed, and upgrade to the latest "version" if necessary, with a reasonable delay between versions?
    Of course you didn't. No sensible person would want to attach pseudo-version numbers to a rolling distro.
    https://code.google.com/p/crover/
    https://aur.archlinux.org/packages/crover/
    crover returns a version number for Arch Linux based on time elapsed since the distro's initial release (March 11, 2002). The number format is X.Y, with X being years and Y being subdivisions of the current year. By default, the version number is generated for the current date with a subdivision size of one week.
    As of this writing, the current version is Arch Linux 12.1. In other words, Arch is 12 years and 1 week old.

    Hmm, you could actually make this somewhat more relevant to actual update practices if you wanted. Were I to try to accomplish such a task, I would figure out a way to check and see if all the official repos are up-to-date (or just if all the packages the user has installed are up-to-date with `checkupdates`). Then, take the number of seconds elapsed since Arch's release till the last update (which brought that rig up-to-date).
    Then, you could grab the user's list of currently installed packages with pacman and take a hash of it. And, by concatenating those two figures together, you could get some semblance of a "version" number. For example, mine would be something similar to the following:
    378691200.4c41d609
    Not to mention, with this calculation, it would not be difficult to format the time part of the version in a variety of ways. May be worth thinking about
    All the best,
    -HG

  • Ubuntu look-alike gnome theme for arch linux

    Is there any theme/gnome package(s) for arch linux that will give me gnome that looks kind of like the gnome package for ubuntu? I'm moving over from ubuntu to arch, and I'm hoping to ease the transition at first while I get used to the rest of the system. Thanks!
    EDIT:  Actually, how configurable is xfce? I've used gnome and kde for arch a bit, but they're just so vanilla, and I'm still looking for a relatively nice graphical interface on top of cli. Thanks!
    Last edited by pythonscript (2009-07-27 23:29:40)

    xfce4 is just about as configurable as GNOME at the level of gconf/ xfconf and way more configurable via the settings GUI.

  • Localepurge for arch linux

    I just seeked for some thing to clean unused locales from my system and while I used gentoo I used localepurge, so I realize update this script for Arch linux
    # unpac this package to your /usr/local (it will make sbin/localepurge and share/localepurge/*)
    robertek.no-ip.org/files/localepurge/localepurge.tar.bz2
    #copy this file to /etc/locale.nopurge (or wherever else but than you must edit /usr/local/sbin/localepurge)
    robertek.no-ip.org/files/localepurge/locale.nopurge
    !!!! Before run edit locale.nopurge file and write there your locales you dont want to delete !!!!!
    Than if you are pretty sure that you edit correct locales just add "#" before NEEDSCONFIGFIRST
    than you can run localepurge (/usr/local/sbin/localepurge if you dont have /usr/local/sbin in your PATH)
    !!! BE CAREFULL THERE IS NO WARANTY FOR THIS SCRIPT AND DONT BLAME ME FOR CORRUPTING YOUR SYSTEM !!!! (anyone can just scroll the script and look if it is correct by you look)
    For me it work great an I just delete more than 100MB of mess.
    Feel free to make a package out of it I will be pleased (and please share).

    have a look here...
    http://wiki.archlinux.org/index.php/Arc … _%28AUR%29

  • Release date for Arch 0.8 ?

    Hi all,
    I am a Slackware user in search of a new home. I have installed and played around with ArchLinux 0.7 on my test machine and feel ready to install it on my workstation, along with the current Slackware installation, in order to ease migration.
    On the main web page, it says that version 0.8 is 'pending'. As I like to install from CD, and as I couldn't find any -current ISO, is the relase date for version 0.8 close, far or undefined?
    Regards,
    -pu

    uselpa,
    Basically there are two suggestions I can give you:
    1 - Use the 0.7 - base iso. Which only contains the base for Arch, which is what most people do. Install that and the pacman -Syu up to the current release state.
    2 - Since you have to do 3 installs, and from what it sounds like you need to be up and running as quickly as possible, use the 0.7 full iso's. They contain the base and a few more apps (some DE's and what not). That way you'll have a full working system and can pacman -Syu later on when you have time.
    Basically to answer your question, there is no stated release date for 0.8, as Arch doesn't really function like that. Things are similar to Slackware, where you can follow Slackware-current and stay up to date. With Arch however, there really isn't anything other than current. So version numbers and releases don't really matter.
    I hope I cleared this up for you. If you have anymore questions feel free to ask .

  • Forum section for Arch-derived and "installation-assisted" distros?

    Apparently there's a policy that posts regarding Archbang, Bridge Linux and other "installation-assisted" Arch distros will be moved to that purgatory of forum sections known as "Off Topic".
    I'm wondering if a new forum section could be established to accommodate discussion of these distros.
    For example, I think it's helpful for Arch users to know that there are ways to achieve a quick and painless Arch installation if you don't have time to go through the config yourself. I've been using Arch for seven years and have installed it many times, but recently I needed to install Arch in a hurry. Bridge Linux let me do just that, and I suspect Archbang would have, as well.
    I think the Arch forum mods are trying to keep the forum focused on the essential Arch experience of installing from scratch, editing config files, etc. That's fine, but I suggest that a section be opened for installation-assisted Arch distros to accommodate Archbang, Bridge and other distros that yield an Arch system.
    People who use these "installation-assisted" distros are running full-fledged Arch Linux, not another distro derived from Arch.
    As things stand, it's almost as if you shouldn't expect support on the Arch forum if your spouse or a friend installed your system for you!
    Thanks.
    Last edited by dhave (2012-04-05 17:26:08)

    As one of the moderators, allow me to chime in here.  First off:
    dhave:  It was good trading emails with you earlier this week.  After we communicated, I saw that my colleague moved your post to off-topic.  Sorry, I did not have the opportunity to let them know you and I had communicated.  Regardless, off topic really is not purgatory -- that would be "Topics Going Nowhere" (Actually, I suppose that would be limbo in Dante's view)  The other side of Styx would be "Dustbin".  Some of the best discussions occur in off-topic
    In general, I am pretty easy going and try not to interfere with healthy discussion.  We are, after all, a community.  Not everything needs to be Arch centric.  I am also fairly tolerant of questions that have clearly been asked and answered before; sometimes because new users don't know what they don't know.  I don't mind doing some hand holding.  Sadly, some folks never get with the program
    Jason, Allan : good to see you both.  Hope you are having a good autumn down there.
    As to other distributions, here is the thing.  These are the Arch Linux forums.  People who are researching problems here depend on these forums as a dedicated Arch resource.  The moderator team works to keep these forums on topic and prevent "contamination" from distributions that handle things differently than Arch and may cause confusion or may be plain old wrong with respect to Arch. 
    As such, a friendly discussion about Bridge Linux is harmless; whereas questions about Archbang (a fine distribution) on the Arch forums can be a direct cause of misinformation that creates problems for the users of both distributions.
    Last edited by ewaller (2012-04-06 06:53:09)

  • Wocka 0.5 - checkinstall for Arch Linux

    Last updated: 17th-Feb-2007
    With Wocka you can do:
    ./configure
    make
    su
    wocka
    and you'll get the application installed, and a pacman db entry too.
    Wocka automatically figures out the package name, version and/or subversion revision, and if it can, other metadata too. It determines the build system (make, unsermake, scons, cmake, etc.). It can also create a basic PKGBUILD, with some of the fields (eg name, version) magically filled in. It can also handle upgrades and check AUR for PKGBUILDs.
    Visit the site for a Arch linux package, the source tarball, and detailed usage examples. There's also a feed you can subscribe to at the site if you want to be notified of updates.
    http://methylblue.com/wocka/
    Comments, contributions, etc. most welcome! Thanks.
    ===========
    I have discovered other programs that do a similar thing for Arch. They may be better and you may want to consider them, or at least demand I implement things they do into Wocka If you do use one of the others, I'd like to hear why, if you have the time, thanks!
    bpkg
    creapkg
    pacinstall
    versionpkg
    Last edited by mxcl (2007-02-17 03:24:12)

    Firstly, I'm really sorry I didn't see the above new replies, I subscribed to this thread, but never got the emails... Must have been my spam filter I expect.
    Gullible Jones wrote:Wait a minute, why the heck does this thing require QT? It doesn't have a GUI so why would it use the QT library? :?
    I used Qt as I have 4 years experience with it and develop fast with it. With Qt4 the library is separated into Core (CLI only) and GUI components, so as soon as Arch ships Qt4 and people have it installed en-mass, I'll switch to the CLI only library. I apologise if you think I'm crazy/stupid, you may be right
    You should have talked to Xentac. He already has an app named "Wakka" IIRC.
    Hmm sucks, I may have to rename again. I renamed the first time as pacgen is a name already used by two other projects!
    sud_crow wrote:wasnt pacman's sound waka waka waka?
    heh could be, I'm not a pacman expert. Extralife the webcomic always makes pacman say "Wocka!", but I spose I should have done more research!
    phrakture wrote:Send a PKGBUILD to AUR!
    Yeah I half did this and then couldn't figure out how to work the AUR or something. I'll try again.
    I had 0.3 ready a few weeks ago, then I started using my CRT with my new XBOX 360 and didn't boot to Linux until yesterday Now I have some new TFTs.
    The changes since 0.2:
    · Automatic upgrade/merge for new installs of subversion managed source installations
    · Better versioning detection
    · Easy automatic AUR builds via: wocka --aur appname
    · Metadata is extracted from LSM files
    · --upgrade switch
    The upgrade switch basically merges the old package with what's just installed, so you don't lose any information, I figured this was the safest route. Please correct me if you disagree. Thanks

  • How to compile for arch on Ubuntu without root?

    Maybe this is not the right section, but since it is about compiling...
    I have access to a rather powerful server, so I thought I could maybe compile some AUR packages like kernel-rc there. Unfortunately it runs ubuntu so gcc is still 4.4 and all the base libs don't match.
    I thought about installing a minimal arch system in a chroot but you need root to chroot...
    My next thought was crosscompiling gcc for ubuntu set up to crosscompile for arch... Doesn't sound fun to set up.
    Any other ideas?

    *edit: rephrasing*
    Do you have (or can you get) permission to run a virtual machine on the server? I compile packages for i686 on x86_64 using a minimal (i686) Arch system in KVM and it works well. I find it to be very clean and easy to manage.
    Last edited by Xyne (2010-05-05 12:29:52)

  • DCCA - Any changes for Arch?

    I have read been reading about the  Debian Core Components Alliance - and must say I am intrugued!  I like the sound of a common base to build from as long as the core is flexible and expandable to meet future needs.
    I am still fairly new into the Open Source world.  I can understand the implications of the DCCA to the corporate world in the future.  This sort of alliance has brought some questions to mind that I hope somebody with more knowledge/understanding of this agreement could demystify for me
    My questions areW
    ill this affect Arch users in the future?
    If Debian becomes the future MS competitor, will the linux distro's that have a different base setup suffer in the future? 
    If programmers have a common base to work from, development would flourish with those disto's who have adopted this base.  Would smaller distro's may be left in the "development" cold? 
    I am not sure if my understanding of this is correct, and please correct me if I am wrong.  Would Arch need to adopt to some common core in the future to be compatible to what will be main stream development? 
    I do believe that Archlinux will be a major player in the future.  Would it be as simple as downloading a "Linux Base System" package that standardizes linux distro's in the future?
    Cheers

    In a lot of distributions (arch included) in a tree there is only one version of a program/lib exept if there is a major api change.
    As far as I understand the goal of the dcca is to tell what programs/libs are available and what version of them are currently in the tree. So that programmers do know on what programs/libs they can build their app. It will be based on the stable tree of debian which means that it will be fairly old.
    I think this will not be negative for arch except that in very rare occasions it can be possible that a app is based on a older program/lib than what is in the current tree. If that app is opensource it could be patched to run with the newer programs/libs, if it's closed source arch could provide different versions of the depending programs/libs so that it works.
    Cheers,
    David

  • .dotjs and .dotcss for Arch Linux Users

    Hi all,
    I've created a new Google Chrome extension to enable the functionalities of .dotjs and .dotcss extensions for Arch Linux users.
    Check it here; https://github.com/azer/.w3
    Contributions and ideas are welcome,
    Azer

    Thanks for doing this, never heard of dotjs before, but I love the idea and definitely have some use cases for this.
    Of course as an arch user, Im just kindly asking if you plan to create an AUR - package for this?

  • Can you tell me the system requirements for arch please.

    can you tell me the system requirements for arch please.

    Enhu, welcome to the forums. Listing minimum requirements is pretty standard for most distros nowadays, and this being Arch, we expect you to do a minimum of effort to find out something like that. The wiki link is pretty clear on the memory, and since Arch is i686, any i686 CPU will do - something a search would have told you as well. This has been covered ad nauseam already.
    Closing before we get any more attempts at trolling Windows.

  • Disk partition for Arch only

    Hi,
    at present I have Dual boot Arch with Windows. My HD is 120 GB and I want to re-partition it for using Arch linux only, plus leaving around 20GB for trying from time to time other distros. My question is how to do it properly? I have done a lot of reading, but Im still unable to decide how to go about. Now, for Arch I have only two partitions: / and /swap.
    (1) Do I need /boot partition after deleting windows?
    (2) Im reading that it is advisable to have /home and /usr partitions separate from / partitions. If that so, how much space should be allocated for each of these partitions?
    (3) What should be the order? /boot; /swap/; /; /home; /usr?
    Thanks for any suggestion.

    1) Not necessarily, but it is probably best if you are going to try out other distros.
    2) I don't separate / and /usr.  I have 10Gb for / - add more if you are going to install lots of stuff.  How much does you install use currently minus your home direcotry?
    3) /boot first, nothing else matters but I go /boot; /swap; /; /home - I think stuff near the start of the disk gets read faster so if you hardly use swap move / to second
    Last edited by Allan (2008-04-10 03:11:25)

Maybe you are looking for