ARCHER - Arch linux building tool

Many maintainers have a problem - at building package is required to install a plenty of dependences in to "working" system. Frequently, it is required to install a package which conflicts with an already installed and used. Building i686 packages on x86_64 machines Is required.
Solution - chrooting.
Arсher - system created to help maintainers (or other useres) with this tasks.
Archer can (now):
Create enviroment ready for chroot with independedt pacman, and basic utils.
Create enviroment with mounted (o -bind) pacman database and cache from "working" system.
Create eviroment from target pacman.conf file (e.g. i686 specified).
Build PKGBUILD in a chrooted enviroment with automatically syncing dependencies.
I'm trying to create wery simple system. This is just in a "template" state.
This is first version. It have a lot of bugs.
Examles
sudo ./archer -c
create ARCHER (specify with -R key) directory with
bash pacman filesystem sed gawk wget file tar make pkgconfig findutils gzip
and all dependencies. Archer used your /etc/pacman.conf to create pacman db, then just sync packages into chrooted system.
You can now do
chroot ARCHER
to use it for you own needs.
You can do
sudo ./archer -c -p ~/my.pacman.conf
Archer create a pacman db using this pacman.conf file. This mean that you can create i686 chroot in x86_64 system.
You can do
sudo ./archer -c -m -u
Archer mount (with bind) your pacman db and pacman cache into chrooted evniroment, then -S basic packages. You can save traffic/time.
And the major:
sudo ./archer -cb
Archer create chrooted enviroment, copy your PKGBUILD into ARCHER/home/pkg, chroot, and do makepkg -s. This will install all dependencies and build package.
Again - this is _very_ early version. It mosly unstable. Please test it.
Please do not test it unless you are clear understood what it do. you can have many problems with your db.
You can download it: http://zeus.hovel.ru/archer
Last edited by zeus (2007-07-02 18:23:18)

Many maintainers have a problem - at building package is required to install a plenty of dependences in to "working" system. Frequently, it is required to install a package which conflicts with an already installed and used. Building i686 packages on x86_64 machines Is required.
Solution - chrooting.
Arсher - system created to help maintainers (or other useres) with this tasks.
Archer can (now):
Create enviroment ready for chroot with independedt pacman, and basic utils.
Create enviroment with mounted (o -bind) pacman database and cache from "working" system.
Create eviroment from target pacman.conf file (e.g. i686 specified).
Build PKGBUILD in a chrooted enviroment with automatically syncing dependencies.
I'm trying to create wery simple system. This is just in a "template" state.
This is first version. It have a lot of bugs.
Examles
sudo ./archer -c
create ARCHER (specify with -R key) directory with
bash pacman filesystem sed gawk wget file tar make pkgconfig findutils gzip
and all dependencies. Archer used your /etc/pacman.conf to create pacman db, then just sync packages into chrooted system.
You can now do
chroot ARCHER
to use it for you own needs.
You can do
sudo ./archer -c -p ~/my.pacman.conf
Archer create a pacman db using this pacman.conf file. This mean that you can create i686 chroot in x86_64 system.
You can do
sudo ./archer -c -m -u
Archer mount (with bind) your pacman db and pacman cache into chrooted evniroment, then -S basic packages. You can save traffic/time.
And the major:
sudo ./archer -cb
Archer create chrooted enviroment, copy your PKGBUILD into ARCHER/home/pkg, chroot, and do makepkg -s. This will install all dependencies and build package.
Again - this is _very_ early version. It mosly unstable. Please test it.
Please do not test it unless you are clear understood what it do. you can have many problems with your db.
You can download it: http://zeus.hovel.ru/archer
Last edited by zeus (2007-07-02 18:23:18)

Similar Messages

  • Bodhi Linux Arch-based build, need dev(s) and supporting team members

    Hello forum,
         First, apologies if I have posted this topic in the wrong thread. I am writing to inquire as to whether or not there are any other Arch users and/or developers that would be interested in assisting Jeff Hoogland with his new distro, Bodhi Linux, and working on an Arch-based build. Bodhi Linux is a Ubuntu-based distribution that uses Enlightenment as the desktop environment and is focused on promoting the light weight, beauty, and speed of Enlightenment while remaining minimalist. Jeff has plans to release a Fedora-based version of Bodhi in the future, as well as an Arch-based build, but he would need some help, specifically with the OS disc itself. He can work on the Enlightenment side of things. Is there anyone interested in working on such a project? If you haven't heard of Bodhi Linux already, please visit http://bodhilinux.com/

    Greg_S. wrote:ANOKNUSA, you think it's wasted energy? "Throw-away distro" is it?
    Sorry if this seems unduly harsh.  I wasn't trying to troll, but merely reiterating what others here have said.  The Bodhi Linux developers are certainly within their right to direct their efforts in any way they wish.  However, they have two serious conceptual flaws they need to consider and overcome:
    1)  Are the devs planning on releasing both x86 and AMD64 versions of Bodhi?  Even if not, this still means that once the project gets going, they'll need to build the entire E17 compilation three times a week; if so, they'll need to do so six times a week.  This is very tedious and time-consuming for a group of people working in their spare time, with no financial backing or chance for compensation.  Naturally, it leaves very little time to maintain the rest of the repos, discuss/research/pursue further development, track bug reports, etc.  The latter is worth noting, since
    2)  The devs will need to keep track of bugs and development roadmaps for three different distros, each with their own kernel patches, boot/init protocols, etc.  They'll need to build separate packages and "tune" separate repos for each spin, provide a forum(s) able to handle questions regarding each spin, with devs and moderators specializing in each spin.
    This is an awful lot of work to simply "showcase E17 and give it the 'love' it deserves."  The Enlightenment devs are the ones providing the weekly snapshots on SVN; the Bodhi devs just package them.  If promotion of Enlightenment DR17 is the ultimate goal, it could be better accomplished by establishing and promoting a PPA for Ubuntu, a PKGBUILD or PUR for Arch, and a (name of unofficial repo here) for Fedora.  This would make an up-to-date version of E17 readily available, and require only promotion and packaging on the part of the maintainers.  Bug reports could be sent directly to the Enlightenment folks with no need for an intermediary, as well as to the appropriate distro, rather than sending them to Bodhi which must then check to see if the problem is one extant in the base distro concerned before applying efforts to fix the problem.  Just think: you get a bug report and begin to reseach it, only to find out it's a problem you inherited from Ubuntu which in turn inherited it From Debian [unstable].  Where does that leave you?  If you do manage to fix the problem, then the only decent thing to do would be to share whatever patch/code changes you made with the folks upstream anyway.
    I ain't trying to be a killjoy here, and I'm definitely not trying to discourage the commitment and spirit of contribution the Bodhi folks obviously have; just the opposite.  Besides, it does look like you found at least one Archer willing to help you guys, so whatever ends up happening, I wish you all good luck with it.

  • Backpac: A package state snapshot and restore tool for Arch Linux

    backpac:
    A package state snapshot and restore tool for Arch Linux with config file save/restore support.
    https://aur.archlinux.org/packages.php?ID=52957
    https://github.com/altercation/backpac (see readme on the github repository for more information)
    Summary & Features
    It's a common method of setting up a single system: take some notes about what packages you've installed, what files you've modified.
    Backpac creates those notes for you and helps back up important configuration files. Specifically, backpac does the following:
    maintains a list of installed groups (based on 80% of group packages being installed)
    maintains a list of packages (including official and aur packages, listed separately)
    maintains a list of files (manually created)
    backs up key config files as detailed in the files list you create
    The package, group and files lists along with the snapshot config files allows system state to be easily committed to version control such as git.
    Backpac can also use these lists to install packages and files. Essentially, then, backpac takes a snapshot of your system and can recreate that state from the files and lists it archives.
    Use Cases
    Ongoing system state backup to github
    Quick install of new system from existing backpac config
    Conform current system to given state in backpac config
    Backpac is a very, very lightweight way of saving and restoring system state.
    It's not intended for rolling out and maintaining multiple similar systems, it's designed to assist individual users in the maintainance of their own Arch Linux box.
    Status
    Alpha, release for testing among those interested. Passing all tests right now but will continue to rework and refine. Bug reports needed.
    Why?
    There are a lot of 'big-iron' solutions to maintaining, backing up and restoring system state. Setting these up for a single system or a handful of personal systems has always seemed like overkill.
    There are also some existing pacman list making utilities around, but most of them seem to list either all packages or don't separate the official and aur packages the way I wanted. Some detect group install state, some don't. I wanted all these features in backpac.
    Finally, whatever tool I use, I'd like it to be simple (c.f. the Arch Way). Lists that are produced should be human readable, human maintainable and not different from what I'm using in non-automated form. Backpac fulfills these requirements.
    Regarding files, I wanted to be able to backup arbitrary system files to a git repository. Tools like etckeeper are interesting but non /etc files in that case aren't backed up (without some link trickery) and there isn't any automatic integration with pacman, so there is no current advantage to using a tool like that. I also like making an explicit list of files to snapshot.
    Sample Output
    This is the command line report. Additionally, backpac saves this information to the backpac groups, packages and files lists and the files snapshot directory.
    $ backpac -Qf
    backpac
    (-b) Backups ON; Files will be saved in place with backup suffix.
    -f Force mode ON; No prompts presented (CAUTION).
    (-F) Full Force mode OFF; Prompt displayed before script runs.
    (-g) Suppress group check OFF; Groups will be checked for currency.
    (-h) Display option and usage summary.
    (-p) Default backpac: /home/es/.config/backpac/tau.
    -Q Simple Query ON; Report shown; no changes made to system.
    (-R) Auto-Remove OFF; Remove/Uninstall action default to NO.
    (-S) System update OFF; No system files will be updated.
    (-U) backpac config update OFF; backpac files will not be updated.
    Sourcing from backpac config directory: /home/es/.config/backpac/tau
    Initializing.................Done
    GROUPS
    ============================================================================
    /home/es/.config/backpac/tau/groups
    GROUPS UP TO DATE: group listed in backpac and >80% local install:
    base base-devel xfce4 xorg xorg-apps xorg-drivers xorg-fonts
    GROUP PACKAGES; MISSING?: group member packages not installed:
    (base: nano)
    (xfce4: thunar xfdesktop)
    PACKAGES
    ============================================================================
    /home/es/.config/backpac/tau/packages
    PACKAGES UP TO DATE: packages listed in backpac also installed on system:
    acpi acpid acpitool aif alsa-utils augeas cowsay cpufrequtils curl dialog
    firefox gamin git ifplugd iw mesa mesa-demos mutt netcfg openssh rfkill
    rsync rxvt-unicode sudo terminus-font vim wpa_actiond wpa_supplicant_gui
    xmobar xorg-server-utils xorg-twm xorg-utils xorg-xclock xorg-xinit xterm
    yacpi yajl youtube-dl zsh
    AUR UP TO DATE: aur packages listed in backpac also installed on system:
    flashplugin-beta freetype2-git-infinality git-annex haskell-json
    package-query-git packer wpa_auto xmonad-contrib-darcs xmonad-darcs
    AUR NOT IN backpac: installed aur packages not listed in backpac config:
    yaourt-git
    FILES
    ============================================================================
    /home/es/.config/backpac/tau/files
    MATCHES ON SYSTEM/CONFIG:
    /boot/grub/menu.lst
    /etc/acpi/handler.sh
    /etc/rc.conf
    /etc/rc.local

    firecat53 wrote:I think your plan for handling an AUR_HELPER is good. If AUR_HELPER is defined by the user, then either you might need a list of major AUR helpers and their command line switches so you can pick the correct switch for what needs to be done (most use some variation of -S for installing, but not all), or have the user define the correct switch(es) somehow for their chosen AUR helper.
    That's a good idea. I'll add that to my AUR refactoring todo.
    I also found directory tracking to be a weakness in other dotfile managers that I tried. I think you would definitely have to recursively list out the contents of a tracked directory and deal with each file individually. Wildcard support would be nice...I just haven't personally found a use case for it yet.
    I've been thinking that I could just add the directory and scan through it for any non-default attribute files. If those are found then they get automatically added to the files list. That's pretty close to what etckeeper does.
    Edit: I just compiled the dev version and removed my comments for already fixed things...sorry!
    The master branch should have those fixes as well, but I didn't update the version number in the package build. I'll have to do that.
    1. Still apparently didn't handle the escaped space for this item: (the file does exist on my system)
    Ok, good to know. This wildcard directory business will require some new code and refactoring so I'll also rework my filenames handling.
    2. Suggestion: you should make that awesome README into a man page!
    I was working on one (the pkgbuild has a commented out line for the man page) but I had to leave it for later. Definitely want a man page. Once this stabilizes and I'm sure there aren't any big structural changes, I'll convert it to man format.
    3. Suggestion: add the word 'dotfile' into your description somewhere on this page, the github page, and in the package description so people looking for dotfile managers will find it. You could also consider modularizing the script into a dotfile manager and the package manager, so people on other distros could take advantage of your dotfile management scheme.
    I actually have a different script for dotfile management that doesn't touch packages, but there is definitely overlap with this one. That script isn't released yet, though, and if people find this useful for dotfile management that's great. I'll add that in.
    4. Suggestion: since -Q is a read-only operation, why not just make it run with -f automatically to avoid the prompt?
    Originally, running backpac without any command line options produced the Query output. I was concerned that since it is a utility that can potentially overwrite system files, it is important to give users a clear statement prior to execution about what will be done. Since the Query output is essentially the same as the Update and System reports in format and content, I wanted to be explicit about the Query being a passive no-change operation. The current command line options aren't set in stone though. If you feel strongly about it being different, let me know.
    Long answer to a short question
    5. Another suggestion: any thought to providing some sort of 'scrub' function to remove private information from the stored files if desired? This would be cool for publishing public dotfiles to github. Perhaps a credentials file (I did this with python for my own configs). Probably detecting email addresses and passwords without a scrub file would be rather difficult because dotfiles come in so many flavors.
    Yes, absolutely. In fact, if you look at the lib/local file (pretty sure it's in both master and dev branches in this state) you'll see some references to a sanitize function. The idea there is that the user will list out bash associative arrays like this:
    SANITIZE_WPA_=(
    [FILE]='/etc/wpa_supplicant.conf'
    [CMD]='sed s/expungepattern/sanitizedoutput/g'
    Question: am I missing an obvious option to remove a file from the files.d directory if I delete it from the files list? Or do I have to delete it manually? It might be helpful to add a section to the README on how to update and delete dotfiles from being tracked, and also a more detailed description of what the -b option does (and what is actually created when it's not used).
    You are only missing the function I didn't finish. There should be either dummy code or a TODO in the backpac main script referencing garbage collection, which isn't difficult but I just haven't finished it. The idea being another loop of "hey I found these old files in your files.d, mind if I delete them?" It's on my list and I'll try to get it in asap.
    And finally, just out of curiosity, why did you choose to actually copy the files instead of symlink like so many other dotfile managers do?
    git not following symlinks, hardlinks also out for permissions issues (git wouldn't be able to read the files, change them, etc.)
    I definitely would prefer to not make an entire copy of the file, but I haven't come up with a better option. Shout with ideas, though. Also, if there is a way around the link issues I noted above, let me know. I don't see one but that doesn't mean it's not there.
    edit: I think a Seattle area Arch meetup would be cool! Perhaps coffee someplace? Bellevue? U-district? Anyone else? BYOPOL (bring your own pimped out laptop)
    A general meetup sounds good. I was also thinking it would be fun to do a mini archcon with some demos.

  • [SOLVED]How to build debian package source in Arch Linux?

    I'm porting openssl for sh4 arch.
    If I use Arch Linux PKGBUILD, it built failed. (I guess that's caused by there is no asm code for sh4 cpu).
    So, I decide use debian's source.
    But, is there any one know how to porting debian's package into Arch Linux?
    I can apt-get source openssl from other machine.  But I don't know what's the correct step to build it into Arch Linux' structure.
    Solution: refer brebs's PKGBUILD hint.
    Last edited by dlin (2013-02-26 09:44:16)

    The source is not hard to find. Look on Debian packages - each package has 2 files, the ".orig", and Debian's diff (which is sometimes not a diff, these days, thankfully because just having a simple "debian/patches" subdirectory available is a little bit easier for us).
    Edit: Here ya go, convenient links:
    http://packages.debian.org/sid/openssl
    http://ftp.de.debian.org/debian/pool/ma … ian.tar.gz
    Last edited by brebs (2013-02-26 09:42:10)

  • What source base the Arch Linux Xorg build from?

    I need a complete package of X windows system installed. No idea which directory the Arch Linux X11 install to.
    Only find  below with "find"
    /usr/share/X11
    /usr/lib/ghostscript/8.64/X11.so
    /usr/lib/X11
    /usr/include/X11
    /var/cache/man/X11R6
    /etc/X11
    So I try to get some souce by http://xorg.freedesktop.org/wiki/Releases/7.4
    I found its x server is only 1.5.1 and Arch Linux is 1.6.1(show when pacman -S xorg)
    I really confused.
    Actually what I need is pretty simple, need a xdm and xdm-configure to enable XDMCP so that I can remote connecct to X.
    (I tried KDE and GNOME, it doesn't work because X)
    Anybody can give me a clue?
    Thanks very much,
    Mike

    tomk wrote:Please consult the wiki.
    The Arch Wiki has become simply amazing.. Just thought I'd throw that out there.
    Last edited by 10wattmindtrip (2009-06-23 18:29:24)

  • Building VIA's Prosavage drivers on Arch Linux

    The source code for VIA's prosavage drivers for Linux is available here:
    http://www.viaarena.com/default.aspx?Pa … bCatID=112
    What I'd like to know is, how do I compile it for Arch Linux instead of Redhat? I know it sounds stupid, but if the readme.txt is correct, Redhat has the placement of XFree86 arse backwards, with the executables, libraries, etc. in /root/xc (!), and the stuff within that directory also vastly changed from the normal layout. Unless I am reading the instructions totally wrong, installing VIA's drivers is going to be a big fat pain in the ass... Does anyone have advice as to how to go about this?
    (Please read the readme.txt included with the source package at the link I gave. I know this may be inconvenient, but I'm pretty sure that I can't post the readme here, as it is copyrighted material.)

    D'oh... I was reading it wrong. I have to recompile XOrg to install this driver... Shouldn't be too tough.
    My question now is: is it worth it? How do VIA's drivers compare to the DRI/Mesa ones - is OpenGL support any better?

  • Arch Linux (and general Linux) graphics and artists community

    TheBodziO has started a discussion about the (Arch) linux graphics community. That gives me an idea. It would be nice to create an online (sub)community dedicated to graphics, DTP, and photography centered around Arch Linux. For now, I can only offer some ideas, my experience in graphics and DTP, and lots of hosting space on a non-dedicated server.
    The ideas for the (sub)community:
    * an open forum for discussion, not just Arch-related but 'graphics on Linux' in general
    * a wiki for Linux artists
    * a gallery (d'oh!)
    * an Arch LiveCD for graphics artists
    * a dedicated graphics repository
    If you have suggestions and/or are interested to participate, please post below.

    For start I want to say that I'm content that the new thread have been started to discuss the matters of cooperation of designers and developers communities. It's a good sign.
    As foxbunny said the whole idea is *much* more than another art repository. I thought about creating a common ground - a meeting point - for both developers and designers. Developers have the skills to code. Designers have needs and ideas how to speed up/ease their work. Developers create tools that designers use and designers provide feedback and ideas. What I think free software world lacks is an organized way to provide the pan-project and pan-distro connection between these groups.
    To illustrate the whole thing on a simple example: let's assume that I'd love to have a possibility to lock some operations on elements of my project with password. It's because my work will be given to someone else who will be responsible for placing a text in proper places on the design. I don't want to see him to move or delete something accidentally. It's possible that also some other designers will find that feature useful too. Then maybe some developer will be willing to implement that. The trouble is, that if I propose that feature and encourage its implementation in gimp, I would have to repeat the same process for scribus for example. But the idea is common. I want to state it once and see who will catch the bait . To some extent it will promote deeper integration between different projects.
    Today graphic designers have the tools for editing vector graphics, raster graphics some page design tools. These tools often use the same methodologies! There are bezier curves in gimp, inkscape, scribus... whatever yet they are implemented redundantly. Perhaps thanks to one thoughts sharing panel it will be possible to come with some common solutions. Maybe some common libraries or platforms will emerge in time? I think that mentioned meeting point will keep us close to unix philosophy: do it for a single purpose and do it well. In other words I think that it will allow us to have powerful building blocks on which something even better than today state of the art apps could be build.
    I want to at least start some discussion about the issue. Hopefully this will be only a beginning.
    First I want to ask: do you believe that a subcommunity of archers that would be responsible for communication between the developers and designers would be useful? If so then we could more precisely state our goals and code of conduct.
    Designers experience is of the essence if we want to make free software usable for demanding "art" community.
    Last edited by TheBodziO (2007-10-28 20:35:15)

  • Arch Linux 32x64 bits, Developers and Window Managers Support

    Greetings!
    After having some time issues due to college that prevented me from this, I wish to have again a rolling-release distro in my computer.
    I was in the past a big fan of Gentoo, but now it seems too much work to compile everything from scratch. Also they seemed to have some issues with the developers - the original developer if I understood correctly has quit the project, others were forced to quit due to misbehavior, etc. - and maybe due to some other facts their popularity on distrowatch dropped drastically.
    Then this year I've tried Debian Testing... My goodness, that was messy. Tons and tons of bugs on XFCE, like thunar hanging on load and displaying error messages, gedit not removing the ~lock files properly on close, so I had the myfile and ~myfile, and many others. Really, I gave up.
    I wish to give Arch Linux I try then. Of course that would be quite stupid to ask if arch linux is the best choice in an arch linux forum, but there are some key points that if you could answer would help me a lot to give it a try:
    1. 32x64
    "Should I use 32-bit or 64-bit?" is NOT the intended question. Many still prefer 32-bit-pae on a 64-bit capable machine, others prefer 64-bit. I wish to use 64-bit. Made my mind. But I would like to know if the support of 64-bit on Arch Linux is as good as 32-bit and if it comes by default with cross-libs which makes me able to run 32-bit applications natively right out of the box,
    2. Developers
    About how many and what's their relation with the users? When I've googled for Arch Linux, I've had found a review video on youtube where some guy said in the comments that developer's mind changed a lot in the past 2 years and they introduced many buggy packages that required manual workaround. At the end of his comments, he said "Sympathy? Apologies for the ****? Nope. blame the user for trusting 'pacman -Syu'" Surely I don't know which are these options because I haven't read about pacman yet (just know it's the default package manager) but you get the idea.
    Another key question: Is Arch Linux hiring new developers over the time? Replacing the ones that leaves for the many reasons?
    3. Window Managers Support
    With Gnome3's overall rejection (including mine), we have only two options: Switch to KDE or try other Window Managers. I still wish to have faith on gtk, so the first option is still not considered by me. I don't wish to know "which one is the best", because that's another large discussion just as the 32-bit x 64-bit. Just how good is Arch's support (updated constantly? bug-fixes?) on:
    - XFCE
    - MATE
    - Cinnamon
    (Of course there are others like LXDE, Enlightenment, etc. but I've decided to narrow down to XFCE even having quite bad experiences on Debian Testing.)
    4. Package Manager
    Last, being a rolling-release dist, can I add an option for a specific package to install a specific older version and/or not upgrade when you tell the dist. to upgrade everything? I remember that back on Gentoo I could edit a text file and just type the version of the package I wished to keep and the "update everything" option wouldn't touch the package (worked also to try new versions that were still not stable enough).
    Any replies will be very appreciated. Sorry for the long post.
    Best regards.

    I'll start at the end with #4.  Of course on the arch forums you will get people who are biased towards liking arch - but I think if you ask in other communities you will regularly hear that arch's package management system is its greatest strength.  Pacman is the primary tool for this, but we also have makepkg for things in the Arch User Repository (AUR), and the Arch Build System (ABS) to recompile anything from the main repos with additional/alternate compilation options.
    But for your direct question, there is an option to only upgrade to a particular version of a given package.  There is an option in pacman's configuration file for just this purpose.  However depending on what the package is, this could lead to problems.  Users are discouraged from updating most of their system while keeping some older packages - This can lead to issues with shared dependencies.  Of course if you build the package from source (AUR or ABS) yourself, such issues would be easy to resolve.  Is there a certain package you know you'd want to keep at an older version?  If you tell us what it is, we can give more specific information on how easy/hard it would be to accomplish.
    #3: Arch is a DIY distro.  You choose whatever window manager / DE you want.  I can vouche for XFCE working wonderfully in arch.  There are also numerous archers who use mate and cinnamon.  I have heard of some problems, but (AFAIK) these have nothing to do with compatibility with arch, rather these are due to upstream issues.  In other words, cinnamon, mate, xfce, or any other WM should work just as well on arch as on any other distro.  I'd bet our wiki for installing and configuring those WMs are better than those of the distros that bundle the WM with the core install.  (In addition to package management, you will find the arch wiki is second to none).
    #2: I can't answer with any specifics - other than to say they continue to do an excellent job.  I am not surprised by the youtube video - not because I'd agree with it, quite the opposite.  But as arch is a DIY distro it puts some responsibility on the user to maintain their own system.  If one is not prepared for nor willing to do this, they often become frustrated and end up blaming someone else.  Often this is the developers, sometimes it is the forum moderators, other times it is the whole arch community.  In every case these accusations are absurd.  Your questions on replacement of developers is a good question though - there is a history page on the wiki which might give some insight on this, but I suspect others will have better input on this.
    #1: I use i686 (32bit) on two of my computers and it works perfectly.  It sounds, however, that a majority of the community uses 64bit (which I just updated to on one of my computers).  My 64bit system works perfectly as well, but I don't have any 32bit-only apps.  Occasionally there are forum threads about some issue or another with "multilib" applications which are 32bit programs run in a 64bit system.  Generally these threads seem to be resolved without much hassle.  You can search for some of them yourself: Skype seems to be a common topic of such issues.
    All in all, I'd reiterate arch's strengths in it's package management and wiki/documentation.  Potential weaknesses could be found by users who are unwilling or unable to take responsibility for their own system.  I word this is a bit biased manner - there are many people who have no interest in being responsible for maintaining their own system, a majority of all computer users would fall into this category; most of them would be quite unhappy with arch linux.  If you were happy with gentoo in the past and only want to avoid constant recompiling then you probably would be one who could be very happy with arch.
    Or an even shorter summary: try it out.  If you don't like it, switch.

  • 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

  • Arch Linux on SmartQ (V5II) -looking to start project-

    Upfront I will note that I am not skilled enough to accomplish this alone at my current level.  I will learn what I can in order to achieve this task, so any and all links to tutorials and ideas on how to get this working will be taken and put through heavy consideration.  Primary concern will be getting a working "livecd" cloned image (basically, all the most standard core packages to get a working Arch Linux with USB Keyboard and mouse support, then build from there till I get X and all the nice features of the V5(II) working, and branch out from there  Will probably look into repartitioning the NAND so I can have a complete and full install (probably preserve Android for being boot from SD, which is fine since it's a complete dual-boot which requires rebooting to switch anyway)  As of now, I am referencing the development tutorial for SmartQ, tutorials for building firmware images from plugapps (nice Arch port to ARM devices) and whatever information I can gather from someone on the Arch Linux forums who has recently ported it to the newest ARM processor type (v7, if I'm not mistaken).  All links will be provided at the bottom of this post.
    My guess is that I will have to approach this with a "Linux From Scratch" mindset of compiling the kernel, busybox and whatever else I need to get a working base install (which, from there, I can compile everything else natively on the actual device)to the point where I reach a working system with gui, basic tools, maybe a game or two, and whatever else would constitute being enough for "firmware" status.  I guess, my only question ahead of all that is how do I go about making the "base install" firmware to build up from?  Secondary question to that is, once I get a nice setup, how do I take that (all being on the actual V5II) and remaster THAT into a firmware that I can then post online for others to test?  I already have my homework cut out for me, so I'll be reading what i can to figure this out while anybody and everybody here throws me tutorial links and ideas on how I can accomplish this each step of the way...  We shall see where this train takes us.
    SmartQ Linux Development Guild: https://docs.google.com/View?id=ddtx8wk … skpm&pli=1
    PlugApps Development Portal: http://www.plugapps.com/index.php5?titl … evelopment
    Arch Forum post for developer who ported Arch Linux to the v7 ARM processor: https://bbs.archlinux.org/viewtopic.php?id=59638
    can't think of anything else at this point, but I will categorize links the best I can to morph them into somewhat of a workflow process and group the help aids to each relevant step along the way.  Anyone interested in helping, feel free to join in on the fun..  Will be looking that the ArchMobile stuff and incorporating what I can into my project... maybe this will help revive the ArchMobile project as well...

    If you are a new programmer then Python is a good place to start.  Install WingIDE 101 from the AUR for a good beginner's IDE for that.
    Think Python is a free book to get started with (PDF or HTML download on that page and you can buy the dead tree if you want)
    If you want to do programming that requires fast code above all else then C++ is the standard.  Code::Blocks is a good IDE for that.  Be sure to install "base-devel" and "gdb" to go along with it.
    Programming - Principles and Practice Using C++ is a dead tree book for C++, you have to buy it but that is offset by the fact that its author is also the author of the C++ language.

  • Arch Linux 0.7.1 - my feedback

    please read the post before vote
    Well, I've used Arch linux for many months in late 2004 / early 2005 and then I've switched to Ubuntu...
    some days ago I've installed version 0.7.1 and updated it with pacman -Syu
    I've seen a lot of improvement since the last time I used it and I was near to think "ok let's switch back to Arch" until I found I that thing I really hate  :!: is still here..
    You can't install old versions of some packages. For example, kernel.. or.. php (ok there is one in Aur that is maybe "too" old) and mysql..
    in the php/mysql example it's true that version 5 is the latest one but they (at least php) still develope the 4.x version for security and many server still have it and also many scripts supports only php4 and 5.
    also, as I am a php developer, I need to test scripts with old versions.
    but as I said this is just an example. I think that while you can't think to have a big repository of binaries it would be great to be able to install old versions via source.
    and recompiling software by hand using old PKGBUILDS is a problem case you don't have a tool that tells you wich packaged were "aligned" with wich.. I mean.. the new php works only with the mysql5 extension so even if you build mysql by yourself it won't work with php.. and so on for apache..
    anyway.. if a user is able to block a package and prevent the automatic update he should also be able to use the non-latest version of it.
    I know that arch is a bleeding edge distro but this shouldn't mean that you have only the bleeding things. (see gentoo for example)
    Another thing that will help a lot in my opinion is to have in the wiki 2 lists:
    - one very detailed with available daemons and their use.. for example.. ok.. fam is the file alteration monitor.. but why you need it and wich are the main programs that takes advantage from it and what happens if you doesn't run it? and so on for hal, etc. ..
    - one list with all available standard groups that tells user to wich group subscribe in order to be able to performe a specific action
    imho this 2 lists will help the (new) user understand better what is doing and why The arch philosophy of "do it yourself  and learn doing it" is great but have to be encouraged, and in fact there already is a very good documentation.
    Just my 2 cents. And sorry if some one else already said this before; in this case take my post as an underline mark btw.. I'll attach a poll to it.
    bye,
    Giovanni.

    iphitus wrote:To me this thread looks more like "i dont want to make a second package for myself, so let's get the devs to do it".
    hmm.. this sounds a bit offenisve to me. Cause I don't actually need that packages as I'm not using Arch as main distro. This post was meant to give a feedback..
    iphitus wrote:Especially as there isnt a huge demand for such a package, and you are most likely to be one of a very small minority to use that duplicate package.
    ok I agree with this. but from my point of view it is because users that needed it too already switched to another distro..
    and this leads us to this:
    tomk wrote:I voted "No, there is no need", because I think this is simply an indication that Arch is not the right distro for you - it doesn't meet your requirements.
    Imho, the point is that Arch have a lot of great features. The one I'd like to have is a feature that I think will just increase the number of great features Arch already have and will make Arch the right distro for more users. So users that switch to another distro will lose a lot of features that they like to get one or two that they need..
    tomk wrote:This "thing that you really hate" is still there because firstly the Arch devs, and secondly Arch users, have not needed to change it. If you want to work "from within" to change that, with polls like this, feature requests, etc, I wish you the best of luck, but I think your poll result so far should tell you something about the support you can expect.
    the poll was mainly for myself to get an idea of the users opinion not to change the things. And as I said it is not a change from my point of view, but just a new feature. About Arch devs I agree but about users I don't.. how you can say it if you say to me that I should change distro? In this way people that thinks like me will always remain a minority in arch community. And I don't think that having a old version of a "core" package would be against the Arch philosophy.
    tomk wrote:Finally a general point, and this applies to wiki entries as well - you will get a better response if you do something, and then ask "what do you think?" instead of asking "Why doesn't Arch do this?"
    I did it for the software thing with the poll and anyway also for the wiki I didn't wrote it but I thought it was clear.. For the wiki I posted my idea and there was no need for the question "what do you think" cause is a discussion forum Also please keep in mind that I wrote the original post in late night and that I'm italian so my english isn't so good  :oops:
    anyway.. thanks for the tip about subit a feature request and for your answers.
    bye,
    Giovanni.

  • Arch Linux for Google Compute Engine

    Hi Arch users,
    I’ve created a tool that can create an Arch Linux image for Google Compute Engine. It has the compute-image-packages software preinstalled so basic GCE integration works.
    I’m working to improve the boot times and shrink the image since it’s a bit larger than I’d like it to be. You can follow the instructions below to boot a virtual machine running Arch.
    The source code is hosted on Github: https://github.com/GoogleCloudPlatform/ … ge-builder, pull requests welcome!
    I've already built one today and has been made public on Cloud Storage at gs://jeremyje/arch-stable/arch-v20140906.tar.gz
    Instructions to boot a VM with the image:
    1. Create a project or pick an existing one. Turn on Compute Engine.
    https://console.developers.google.com/
    Click "Create project"
    Enter a project name and project id.
    Go to Compute > Compute Engine
    If necessary, enable billing.
    2. Add the Arch Image to your Project
    Go to Compute > Compute Engine > Images
    Click "New image"
    Name: arch-v20140906
    Description: Arch Linux built on 2014-09-06
    Source Type: Cloud Storage object
    Cloud Storage Object Path: gs://jeremyje/arch-stable/arch-v20140906.tar.gz
    3. Create an Arch Linux instance.
    Go to https://console.developers.google.com/
    Select your project.
    Compute > Compute Engine > VM instances > Add Instance
    Select a zone, machine type, and select the “arch-v20140906” image.
    You can SSH into the VM by clicking on the SSH button after you create it.
    If you like command line here's the equivalent.
    Google Cloud SDK: https://developers.google.com/cloud/sdk/
    # Install Python2
    pacman -S python2
    # Install Cloud SDK
    export CLOUDSDK_PYTHON=/usr/bin/python2
    curl https://sdk.cloud.google.com | bash
    echo “export CLOUDSDK_PYTHON=/usr/bin/python2” >> ~/.bashrc
    source ~/.bashrc
    # Login, create a project
    gcloud auth login
    # Add the image to your project.
    gcloud compute images create archlinux gs://jeremyje/arch-stable/arch-v20140906.tar.gz --description “Arch Linux built on 2014-09-06”
    # Create the instance booting Arch
    gcloud compute instances create archvm --zone us-central1-a --machine-type f1-micro --image arch-v20140906
    Lastly, there’s no official support for these images but if you find a problem please file a bug or submit a fix on Github.

    Hi! Do you have any update of your Arch image?
    Thank you

  • Adobe Photoshop Plug-ins going to Arch linux!

    Great news for everyone using Gimp and who wants to use Adobe Photoshop plugins.
    I've been granted legal acces to Photoshop CS SDK and after long fight I've managed to compile pspi (Gimp plugin which can run Photohop plugins via wine) on Arch linux!
    Unfortunately getting Adobe Photoshop CS SDK is a little bit difficult (you have to write them what do you want to do with it and many more things and then wait if  they grant you access to their SDK).
    But one thing is good for every Archer here (oh! only for i686 users). It's possible to distribute plugins for free. So I've made package with it.
    You can find it in Arch-graphics repository under the name gimp-plugin-pspi
    Direct link
    PKGBUILD (I'm not going to put it to AUR, because there are some steps which have to be made outside of PKGBUILD in order to build pspi on Linux)
    Screenshot showing Virtual Photographer plugin under Archlinux.

    pspi works pretty well for older plug-ins. The Flaming Pear link on the main page has some of the coolest filters that I've ever seen. They'll time out after thirty days unless you delete your Wine directory and start over again.
    --EDIT--
    Works on 64 bit through Wine and a lot of lib32 stuff.
    Last edited by skottish (2008-09-10 18:54:21)

  • Why not use Arch Linux only?

    Named as an Arch Linux "Linux Addict" (according to my upgraded user profile ), for some times I have asked myself why use other distros than AL, especially RedHat, SuSE and Mandrake. What do they provide what AL doesn't?
    One of the roles of RedHat became clear reading Linux Today, though it may not be for the common users but have to admit its impressive (there are three major advances in the new RHEL3 product line....):
    http://linuxtoday.com/it_management/2003102200926NWRHSW
    PS.
    Does it sound like I am addicted??... it feels natural   :idea: 

    maturity? stable? can't trust?
    let me tell you something i learned by experience ...
    i runed SuSE for long time (from 5.2 to 8.1) and what i know they do wrong is: if you have e.g. 6.0 (the most stable SuSE i know) then you can update your packages over internet, but after some time you will be "forced" to  buy the next release that is totally differently constructed (7.1, because it uses YaST2 instead of the YaST and other stupid inovations that you cannot easily update from internet) ... and after a while again you have to upgrade by buying the next one ...
    sure, you install it in about an hour and everything works, but hey, each package costs some money and this install is each time from quite 0 (because the integrated update often does not work) :-(
    trusting?
    i trust only in systems i configure myself ... and since SuSE 7.2 i lost the overview in where you can configure what and why ... and you are not sure that YaST2 will change your changed settings to default
    archlinux is fully configureable and does not have a tool that changes files behind your back (well, there is one case: when you update init-scripts with packman without setting in pacman.conf to exclude some files you changed ... but also then you can restore the settings by mv'ing the original files to their right name-links :-)
    why using also other distros?
    well since arch 0.5 i removed all other linuces from my machine (to save space) and now have only arch and winXP ... xp is used only for watching tv (because hauppauge usb "usbvision" module cannot be compiled with  a 2.4.x or 2.6.0tx kernel (but 2.5.x) and because of ebanking software that will not install on archlinux but easily on SuSE and WinXP (need the original sun's java vm, but have no time to construct a PKGBUILD for sun's jdk 1.4)
    ... and the needed other software i built packages of and installed on my local repository (and also copied in incoming) ... now i'm quite happy with archlinux as an OS (and i hope with a more advanced 2.6.x TV will come too, and java i will find one day time to build for ebanking)
    -> "use an OS that works, use archlinux"
    ps
    and about "linux addict":
    no, i dont think i'm addict, but i use this forum as a normal member  (to help others switching to an os that works,  to help people with problems i had myself often some time ago, to ask if i find something interessting or funny about something in arch, to inform that i built packages and put them in incoming :-) ... i would be much happier to have "regular user" instead of "linux addict", but that's something i cannot change

  • Arch linux for Sparc Ultra2

    I have flat rate adsl2 24/7 and a sparc ultra 2 idle connected, I can trust some people on it to port all arch PKGBUILD,
    18Gb hard disk scsi3 15000 rpm 1280Mb rom 2 300Mhz CPUs.
    I can make Arch base boot on it in a couple of weeks. Anybody with me?

    I have an ss10 I can test/compile(once the port is ready) on
    I would also point out that debian was compiling 32bit userland for all sparcs with some exceptions that saw speedups like the kernel so supporting older 32bit sparcs should be an added bonus
    I have been trying to get T2 SDE (it just spits out binary packages you can build a custom distro with... supposedly supports sparc32) to build a bootstrap environment but the cross compiler build is broken and I can't figure out how to get on the mailing list to ask for help I may email the main dev directly. T2 should also be able to create bootable install images to get us started once the bugs are cleaned up. Gentoo has dropped sparc32 support which I don't really understand except that the machines were slow they are still pretty neat and would make decent personal servers etc.
    I think it would be nice to get a single boot image ready and have 64bit additional repos for those that can run them.
    Anybody could fix the T2 GCC compiler that would be GREAT Glibc and quite a few other packages needed for the cross compiler work however it fails here
    == 16:27:56 =[0]=> Building base/gcc [4.3.4 8.0-trunk].
    /home/tv/t2/t2-trunk/build/sparc-8.0-trunk-generic-sparc-v8-cross-linux/TOOLCHAIN/tools.cross/lib/parse-config: line 8: package/./base/gcc/parse-config: No such file or directory
    -> Reading package config: package/base/gcc/gcc.conf
    -> Preparing build in src.gcc.sparc.20091101.162755.20021.Vectortheta
    -> Building. Writing output to $root/var/adm/logs/0-gcc.out
    *> Corrected ./libtool.m4
    *> Corrected ./libjava/libltdl/ltmain.sh
    *> Corrected ./libjava/classpath/ltmain.sh
    !> checking whether sigaltstack is declared... yes
    !> checking for struct tms... yes
    !> checking for clock_t... yes
    !> checking for .preinit_array/.init_array/.fini_array support... yes
    !> checking if mkdir takes one argument... no
    !> *** Configuration sparcv8-t2-linux-gnu not supported
    !> Due to previous errors, no 0-gcc.log file!
    !> (Try enabling xtrace in the config to track an error inside the build system.)
    -> $root/var/adm/logs/0-gcc.out -> 0-gcc.err
    Last edited by cb88 (2009-11-01 22:37:26)

Maybe you are looking for

  • What are the following Fields meant to contain...?

    What info are the following Fields in iTunes meant to contain? 'Comments', 'Description', 'Category', 'Grouping'? Thanks.

  • Portal using Webdynpro for ABAP

    Hi Gurus!     I am using one portal using 'Webdynpro For ABAP'. It contains Contextual Panel as well as ViewUIContainer. Contextual Panel contains all the reqd options available for user; while ViewUIContainer contains diff views as requested.    Now

  • How do I get photos out of iphone and in PC

    I have a PC. How in the world do I get my 90 photos out of the iphone and onto my pc without having to email them one at a time to myself. Can someone please help me. I am sure I am overlooking something very simple. Perry

  • I tried to update my itunes but now i keep on getting an error message.

    I also uninstalled it and re installed it but I still get the same error message and I can't open my Itunes

  • Automating connection string to mysql?

    I've just started to venture into some of my own php scripts that don't not follow the step by step beginner tutorials. What I can't seem to understand though is how do you get dreamweaver to automatically write the script to establish a database con