[HTC One S] rmbq:
ok i've got some minutes so here is the how to:

follow the 1# post of this guide: http://xdaforums.com/showthread.php?t=1863547 (install required package, download sources)

until "# Initialize the ParanoidAndroid Repo:" section "-> Now, Lets add the device specific trees:"

create the file ".repo/local_manifest.xml" and open it with gedit, we have to add all repositories of our device:

paste this in your file:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="cm"
fetch="git://github.com/CyanogenMod/" />
<!-- remove unneeded project -->
<remove-project name="system/vold"/>
<remove-project name="external/e2fsprogs"/>
<!-- QCOM -->
<project name="android_hardware_qcom_audio" path="hardware/qcom/audio" remote="cm" revision="cm-10.1" />
<project name="android_hardware_qcom_audio-caf" path="hardware/qcom/audio-caf" remote="cm" revision="cm-10.1" />
<project name="android_hardware_qcom_bt" path="hardware/qcom/bt" remote="cm" revision="cm-10.1" />
<project name="android_hardware_qcom_camera" path="hardware/qcom/camera" remote="cm" revision="cm-10.1" />
<project name="CyanogenMod/android_hardware_qcom_display" path="hardware/qcom/display" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_hardware_qcom_display-caf" path="hardware/qcom/display-caf" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_hardware_qcom_media-caf" path="hardware/qcom/media-caf" remote="github" revision="cm-10.1" />
<project name="android_hardware_qcom_gps" path="hardware/qcom/gps" remote="cm" revision="cm-10.1" />
<project name="android_hardware_qcom_keymaster" path="hardware/qcom/keymaster" remote="cm" revision="cm-10.1" />
<project name="CyanogenMod/android_hardware_qcom_media" path="hardware/qcom/media" remote="github" revision="cm-10.1" />
<project name="android_hardware_qcom_msm8960" path="hardware/qcom/msm8960" remote="cm" revision="cm-10.1" />
<project name="android_hardware_qcom_power" path="hardware/qcom/power" remote="cm" revision="cm-10.1" />
<project name="android_hardware_qcom_sensors" path="hardware/qcom/sensors" remote="cm" revision="cm-10.1" />
<project name="android_hardware_qcom_wlan" path="hardware/qcom/wlan" remote="cm" revision="cm-10.1" />
<!-- ville -->
<project path="device/htc/ville" name="android_device_htc_ville" remote="cm" revision="cm-10.1" />
<project path="kernel/htc/msm8960" name="android_kernel_htc_msm8960" remote="cm" revision="cm-10.1" />
<project path="device/htc/msm8960-common" name="android_device_htc_msm8960-common" remote="cm" revision="cm-10.1" />
<project path="vendor/htc" name="TheMuppets/proprietary_vendor_htc" remote="github" revision="cm-10.1" />
<project path="device/htc/s4-common" name="android_device_htc_s4-common" remote="cm" revision="cm-10.1" />
<!-- project from CM instead PA -->
<project path="system/vold" name="android_system_vold" remote="cm" revision="cm-10.1"/>
<project path="external/e2fsprogs" name="Root-Box/external_e2fsprogs" remote="github" revision="jb-mr1" />
</manifest>

under <!-- remove unneeded project --> there are all the projects we don't need or we don't need the PA version.

vold and e2fsprogs are for SD card but PA version don't work.

under <!-- QCOM --> there are all qualcomm stuff

under <!-- ville --> there are the needed projects for ville (kernel, vendor files, device files)

in ./repo/manifest.xml there are a lot of unneeded project (kernel for other device, compiler for OSX), delete they to make the download phase faster.

now read the guide from "# Sync the Repo" (1st post) to the end

skip "# Create /manifest/<device>.adds:", "# Create /manifest/<device>.removes:", "# Create /vendorprops/<device>.proprietaries:" we already added all needed stuff in .repo/local_manifest.xml.

now you have a ready to compile source code!!

some explanation:

if you add a project to ville.adds PA script will adds it to local_manifest.

{
"remote": "github",
"account": "CyanogenMod",
"repository": "android_hardware_qcom_display-caf",
"target_path": "hardware/qcom/display-caf",
"revision": "jellybean"
}

in ville.adds will be

<project name="CyanogenMod/android_hardware_qcom_display-caf" path="hardware/qcom/display-caf" remote="github" revision="cm-10.1" />

in local_manifest. it's the same with ville.remove.

following this HOW TO you will be able to build a booting rom but i've got not working camera... maybe i'm missing something, like use the CM version of some project instead PA version.

if you take a look at bravo.adds they replace a lot of projects, all "android_hardware_*" projects come to my attention, so just try and try and try unless you will got a bugless ROM.

btw building PA it's easy as build the other ROMs, the difficult is to find all correct projects for our device (other ROMs include all needed stuff in their manifest.xml).

If you got some errors while compile write here and don't PM