Build option in Pacman

Hi there,
Sorry if this is a double post.
I know of srcpac, but have it been discussed if pacman should have an option to compile packages? It doesn't seam like a particularly big feature---I would even be willing to make it myself. If this has been discussed, what were the main arguments pro/con?
Jacob

Trilby wrote:As far as I know (which may not be all that far in that case - so correct me if I'm wrong) pacman doesn't have a currently built in mechanism to get PKGBUILDS.  ..... I'm quite happy to have this package, and the abs tree - but I'm also happy that I chose to install it as a separate tool.  I can't see what possible advantage merging the two packages (pacman + abs) would serve.  .....
I don't see any advantage of adding a -B option to pacman.  The advantage of separating the "build from source" functionality is (imo) greatly increased flexibility.  As others have noticed there is not much reason to just build packages from source with custom CFLAGS.  The real motivation for using the source is to control dependencies and options, and possibly to integrate mutliple upstream sources (abs, aur, ...).
For example I build everything from source using my own "build" command.  It integrates abs and aur (in fact, it optionally integrates the unity, antergos, and manjaro source repos). So for example I can "build firefox-kde-opensuse" and build an aur package.  Or "build unity" and build the unity meta-package.  All "build" knows is that it should follow a search path in a collection of "upstream buildscripts" until it finds the desired package.  A "pacman -B" option is probably not going to be that simple or allow for that integration.  ("build" also needs access to a database of packages so that it knows the "pkgbase" corresponding to any "pkgname").
To further the example:  the function for fetching the pkgbuild is
FROMDIR=""
function from() { # dir -- copy dir to Buildfolder and set FROMDIR
cp -r --no-clobber $1 "${Buildfolder}"
FROMDIR=$1
# get the Pkgbase directory into $Buildfolder and initialize the dirty Pkgbase_build
function get_pkgbuild() {
cd "${Buildfolder}"
[ -d "${Pkgbase}_build" ] && rm -rf "${Pkgbase}_build"
if [[ $REBUILD == 1 && -d $MASTER/$Pkgbase ]]; then
from "$MASTER/$Pkgbase"
cp -r "${Buildfolder}/$Pkgbase" "${Buildfolder}/${Pkgbase}_build"
return 0
fi
for repo in ${UPSTREAM[*]}; do
if [ -d $repo ]; then
cd $repo
for folder in */; do
if [[ $folder == $Pkgbase/ ]]; then
from "${repo}/${Pkgbase}"
cp -r "${Buildfolder}/$Pkgbase" "${Buildfolder}/${Pkgbase}_build"
return 0
fi
done
fi
done
return 1
Just adding directories to the UPSTREAM array gives access to abs/core, abs/extra, abs/community, aur, unity, ... whatever.
The help message for "build" may give an idea of where you may end up by following this kind of factoring that I'm recommending:
└─> build --help
A utility for Archlinux to build packages from source code.
Syntax: build options packages
Build the packages named on the command line (and packages listed in the file
using the -f option). Packages are built in the order listed. Packages named
on the command line are built after any given in a file.
Use control-c to interrupt the build then "build --resume" when ready to continue.
Options:
--rebuild Copy pkgbuilds from the master repository, ignore upstream
-c, --chroot Build packages in $MYROOT using makechrootpkg, initializing
the root with packages from the mylinux current repo (or from
Archlinux upstream if the package is not in the mylinux repo).
-f file Read package names from file. Only one file can be used.
-m, --merge Interactively merge in changes master repository.
-e, --edit Edit each PKGBUILD before building the package.
-k, --keep-going Do not stop to show namcap errors.
-L, --log Enable makepkg build logging (do not use for interactive builds).
-r, --resume Resume the previously interrupted build in this directory.
-s, --save Save the buildscript for each package (see build.conf).
-S, --src Also save the unpacked and patched source code (./src)
-h, --help Print this message.
Examples:
Compile the kernel, headers, and docs:
build -mes linux
Upgrade all packages except those in groups that are in FREEZE:
pacman -Qq | versions -qu | freeze | order | unify >upgrades
build -msLf upgrades
Best practice:
build is intentionally dumb and builds just what you ask for in the way you specify.
* always use the -s option to accumulate pkgbuilds into a local master collection
* always use the -m option to merge back into upstream any local changes
* always use the order command to get packages in correct build order
See also the help messages for:
broken freeze group need order packages pkgtree release requires
unify use versions update-package-database
I know that that is way too much info but maybe the details of an example can stimulate folks who think similarly.
Last edited by sitquietly (2013-08-05 23:59:46)

Similar Messages

  • Different build options Icewm v1.13 and v1.14?

    Were new build options turned on for IceWM v1.14, versus v1.13?
    Namely, does the latest source have an "anti-aliasing" option you can build in?  I did not see an option in the `preferences' file to turn this off or on.
    My eyes are about to shrivel into the size of a green pea from the squinting.  The anti-aliasing was not as apparent in v1.13 for me.  v1.14 really BLURS ALL images beyond belief.  In fact, I ditched Gnome because it's too damn blurry.  Now, my good friend IceWM has abandoned me as well.
    Anyone know how to turn this anti-aliasing crap off?

    skoal wrote:I think I'm good for the moment with XFCE4 and won't be going back to ICEwm for the moment.
    Yes, I saw your enthusiastic (a little understatement there!) posts about XFCE4 after I replied ... I kinda figured you wouldn't be needing the ICEwm package.   
    skoal wrote:It would be nice if there were a way to retrieve older versions through pacman.  I would like to know how to do that for my own benefit for future packages, if possible.
    I don't think there is, but I don't know for sure.  You might want to tar up your pacman cache before your clear it, in case you ever want to revert to an earlier package.

  • "Build" option is greyed out.

    Hello. I am working on a Mac Book Pro with a Superdrive USB DVD drive. Using Adobe Encore CS6 with Creative Cloud. Exported .m2v and .wav files from premiere and imported them into Encore. Have set up the first play function. A new DVD is in the drive but the "Build" option is greyed out. Any ideas out there?

    Change for the output to be "folder" or "image" rather than disk. If the Build button is then available, it may indicate that Encore is not seeing your drive, or otherwise not ready to write to it.
    A workaround if that is the case is to build to image and burn with Toast.

  • Request for a "NeverUpgrade" option for pacman.

    Yesterday something very serious happened, pacman moved my grub menu.lst file to menu.lst.pacsave. If I wouldn't have spotted this, my system would have become unbootable. This can be fixed by putting it in NoUpgrade (pacman.conf) by default, but there is an underlying problem here.
    Pacman will always move your modified files (excluding the ones in NoUpgrade) to .pacsave and use a default file instead. Imagine this would happen on the httpd.conf (apache), my.cnf (mysql), php.ini (php),... files on a production server! It shouldn't, the server admin should have seen that pacman moved them, or he should have put them in the NoUpgrade line. But we're all human and these things happen. And a human error like this already happened with the grub file.
    I've always been concerned with the actions of pacman. As Gyroplast said on irc: "Don't f*cking touch any already exiting config files until I explicitly tell you to!".
    I've also noticed that a lot of times, these 'new' files are just the same as the original (unmodified) file, or are not worth the upgrade. It only costs time moving the old file back to its original position.
    Newbies, people who didn't see that pacman moved their old file (on big updates, the console can even be to small to show this), people that do a "pacman -Syu" through cron,.. will never notice that their system can become unbootable, that apache's config file has been moved, so all their client's sites will be down after a reboot or apache restart,...
    This is a very serious issue!
    I have a very simpel solution though. I'm sure there are some people that are used to the old way and want to keep it, so we should give people the choice. Either use the old system, or the new. Let's say there is a "NeverUpdate" = yes/no option in pacman.conf. (default: YES!)
    If you say no, everything will be back to 'normal'.
    If you say yes, things will be different. We will now work with a whitelist instead of a blacklist as Gyroplast proposed. So instead of the "NoUpgrade" option, we will have an "Upgrade" option. All files will be protected by default (and use the .pacnew system), only the files in "Upgrade" can be overwritten, and moved to a .pacsave version. This is all VERY easy (and fast) to implement, if I knew C I would do it myself
    I think it's important that this happens as soon as possible, to prevent things like the grub fiasco to happen again.
    We can go further however: when a packager creates a new package with config files, he can tell pacman what has been changed (with a new option in PKGBUILD). If I upgrade that package, pacman will tell me exactly what has been added/changed so I can upgrade my file really quickly. Much faster than doing a 'diff' or just comparing it line by line. More work for 1 packager, but less work for hundreds of users. (and that 1 packager will also benefit from this, because he will save time updating packages from other packagers, so a win-win situation 8)). I realize that this will be much more work to implement, but would be a very nice feature in some future version of pacman.
    I'm sure there will be some discussion about this, new ideas, people that hate me,..
    I hope the Arch developers (particulary apeiro) will join this discussion, and also explain to us why the current pacman is so radical.

    FreeBSDs mergemaster really only is a frontend for sdiff, no black magic, so it'd probably be well possible to port it to arch, especially as it's only a shell script.
    I think I've given enough examples of how someone can miss this
    Yeah, and I could easily construct a dozen more, but there's no excuse for not paying attention to the output of a crucial program if you cannot risk your system going haywire. If you _can_ risk it, though, your point is moot.
    The inherent problem is that you cannot fully automate the process, thus always requiring manual interaction if a new config file differs from the original file and the current file has been modified. There is no way around that. You will shredder your system if you do not pay attention when this scenario happens, with the proposed change a little less often, but still. Since problems are not totally ruled out, you still have to check just as often as before, because you cannot know in advance how basic the config file changes are. If you still have to do the same amount of work, I don't see a reason to change anything.
    I do not believe in "some security". Either pacman is able to do the job of upgrading reliably and automatically, or it is my sole duty to ensure configuration integrity. All pacman has to (and already can) do in that case is telling me that my interaction is required, and where. It does that now already (if I leave the NoUpgrade misbehaviour aside).
    The mergemaster tool would be a very helpful _additional_ tool that could be offered, I have nothing against that, but it's not part of pacman. As I wrote it's just a frontend to sdiff, a fancy tool that may or may not be used. One job - one tool. Pacman's job is installing packages, not solving impossible dilemmas, therefore I'd vote against this extra functionality and would rather discuss how to improve administrator notification to reduce the chance of changes going unnoticed.
    A solution to this underlying core problem would be "statistics" at the end of an upgrade process, stating if and what files have been replaced with newer versions. That's legible, it's easy to implement, and it does the job. If you're running pacman unattended, you're acting irresponsible. No matter if your config is replaced or not, you risk your system's integrity, the former risks it a bit more, the latter a bit less, but it's nevertheless risked, which is per se inacceptable, thus leaving the difference in reliability being merely a moot point.
    I'll rephrase that:
    Yes, the system will probably break more often if the current implementation is kept, but only if the administrator does not do his job and check pacman's warnings. There are no superfluous warnings being generated by pacman that would cause an admin to disregard the output, the only (documented) case of a pacsave being generated is when default config parameters have been changed in the package, which needs interaction _every time_. You're not winning anything by the change, you just gain a "safety net" that is not sufficient for the situation you are constantly referring to; A server system that simply must work. Therefore the safety measure is useless by concept. You cannot reliably help an admin who does not care, and if an admin does not care, it's by defintion not important enough to be considered, so why should a function be implemented that would solve (some, but not all) cases that are considered as unimportant by the admin anyway?
    Whoa, evil topic here, so I say "Port mergemaster, make pacman a bit more verbose, be done with it." to keep it short.
    Greets,
      Dennis

  • Command Line Build Option

    Hello All--
    Is there any way I can invoke jdev.exe from the command line with an option to specify that it build my .jpr project file, and without invoking the IDE or requiring any other interaction? I'm new to JDeveloper, and I got used to this nicety over many years of using the -build option of JBuilder (which is now WAY too pricey for my needs). BTW, I know I can use an Ant configuration file, and that is specifically what I am trying to now move away from, and keep things as simple and streamlined as possible.
    If there is currently no way to do this, I'd like to add this to the feature request list. Maybe the developers could squeeze that in before final rollout :)
    Thanks.

    If this is a requirement what is wrong with using Ant? You can generate the Build.xml from the project by using New > Ant > BuildFile from Project so you don't have the pain of maintaining the basic script. Likewise you can use Ant as your build-system in the product as well if you only want to use one method. I find useful for making and testing all in one go.
    Anyway in answer to your question no - to see the command line options to the IDE type jdev -help from the command prompt.

  • Build option export to different workspace - problem

    Hi All,
    I have a page with two regions. Logically, the two regions are mutually exclusive, only one should ever appear. I've created a build option called "Simulated Login" and set the build option of region 1 to "{Not Simulated Login}" and the build option of region 2 to "Simulated Login". When I run the page and the build option is excluded, I see only region 1. When the build option is included, I see only region 2.
    I have a problem when I export my application to another workspace. Region 2's build option is still set the same as the original application, but region 1's build option is not set after the import - it should be "{Not Simulated Login}" but instead it is blank. Now, when I run the page and the build option is excluded, I see only region 1 and when it's included, I see both regions.
    In the meantime I'll create another build option as the obvious workaround - I'll just have to make sure that I keep the two build options set to the opposite of eachother!
    Application Express 3.0.1.00.07. Database: 10.1.0.5.0 - Production
    Regards,
    Jerry

    For anyone that's interested, I think I've got it...
    In the export file I can see the build option:
    --application/shared_components/logic/build_options/simulated_login
    wwv_flow_api.create_build_option (
      p_id=> 123207604215572408 + wwv_flow_api.g_id_offset,
      p_flow_id=> wwv_flow.g_flow_id,
      p_build_option_name=> 'Simulated Login',
      p_build_option_status=> 'EXCLUDE',
      p_default_on_export=>'EXCLUDE',
      p_build_option_comment=> 'When this build option is enabled...');And the two regions:
    wwv_flow_api.create_page_plug (
      p_id=> 123523626092022134 + wwv_flow_api.g_id_offset,
      p_flow_id=> wwv_flow.g_flow_id,
      p_page_id=> 101,
      p_plug_name=> 'Region 1',
      p_region_name=>'',
      p_plug_template=> 239523132600564333+ wwv_flow_api.g_id_offset,
      p_plug_display_sequence=> 10,
      p_plug_display_column=> 3,
      p_plug_display_point=> 'AFTER_SHOW_ITEMS',
      p_plug_source=> s,
      p_plug_source_type=> 'STATIC_TEXT',
      p_translate_title=> 'Y',
      p_plug_query_row_template=> 1,
      p_plug_query_headings_type=> 'COLON_DELMITED_LIST',
      p_plug_query_row_count_max => 500,
      p_plug_display_condition_type => '',
      p_plug_customized=>'0',
      p_plug_caching=> 'NOT_CACHED',
      p_required_patch=> '-123207604215572408' + wwv_flow_api.g_id_offset,
      p_plug_comment=> '');
    wwv_flow_api.create_report_region (
      p_id=> 123527026425025070 + wwv_flow_api.g_id_offset,
      p_flow_id=> wwv_flow.g_flow_id,
      p_page_id=> 101,
      p_name=> 'Region 2',
      p_region_name=>'',
      p_template=> 239523132600564333+ wwv_flow_api.g_id_offset,
      p_display_sequence=> 20,
      p_display_column=> 3,
      p_display_point=> 'AFTER_SHOW_ITEMS',
      p_source=> s,
      p_source_type=> 'SQL_QUERY',
      p_display_error_message=> '#SQLERRM#',
      p_customized=> '0',
      p_translate_title=> 'Y',
      p_query_row_template=> 239534019006572870+ wwv_flow_api.g_id_offset,
      p_query_headings_type=> 'COLON_DELMITED_LIST',
      p_query_desc_image_attr=> 'width="10" height="11" alt=""',
      p_plug_query_strip_html=> 'Y',
      p_required_patch=> '123207604215572408' + wwv_flow_api.g_id_offset,
      p_comment=>'');The build option has the ID: 123207604215572408 + wwv_flow_api.g_id_offsetRegion 1 has the parameter: p_required_patch=> '-123207604215572408' + wwv_flow_api.g_id_offsetRegion 2 has the parameter: p_required_patch=> '123207604215572408' + wwv_flow_api.g_id_offsetSo the {Not <Build Option Name>} is stored as the negative of the build option ID. I manually changed the export file so that Region 1 has the parameter:p_required_patch=> '-123207604215572408' - wwv_flow_api.g_id_offsetSo I subtract the offset for the build option on Region 1. Then I imported it and it worked correctly.
    Think this is a bug in Apex!
    Jerry
    Edited by: Jerry Ahern on Jan 9, 2009 3:29 PM

  • Performance decrease due to build options

    I am trying to use the performance monitor remote tool to mainly view the process processor time for multiple processes on my WEC7 device with a native application code, however, the OS build with the required build options shows a significant decrease in
    performance to the point where it eventually crashes. Is there a work around for this performance decrease due to build options?
    I asked in the native application development section but received 1 response which was only a question to
    my question.
    Thanks,

    Hi Jaydeep,
    You create one J2ee library project. In this project include all required external jars. Build it and deploy on the server.
    Now, these jars are available on server. So, just make a reference to this library project in your webdynpro application.
    To accomplish this, goto webdynpro application's property. These select webdynpro references-> Library references.
    Here add the refernce as following:
    <Application provider>/<Library project name>
    By default application provider name is sap.com.
    Regards,
    Bhavik

  • Xcode 3.1 Java Missing Compiler/build options

    Hey,
    Ive been using xcode for a couple years now, under the 'Project->activebuild' there use to be settings where one can change the compiler and such.
    Some how the compiler for java is set to 1.3, im getting now generics supported for all my Vector<Type> calls, 1800 errors.
    I need to change the compiler to 1.5, i would luv 1.6 but its not supported yet.
    Any help would be appreciated, on all my old projects i still have access to the menu to choose which compiler to use.
    But any new project there is no option. I tried manually specifying build options by specifying JAVACOMPILER_SOURCEVERSION = 1.5
    JAVECOMPILER_TARGET_VMVERSION = 1.5
    But no luck im still getting,
    /Users/m3the01/rapidInvoicingLite/src/ClientSpecificsPanel.java:34: generics are not supported in -source 1.3
    Thanks!!

    So i figured out a way to finally change the target compiler.
    I edited the build.xml file directly, changing all instants of 1.3 to 1.5.
    Had a little more trouble with finding some files like icon images till i added the directly to bin directory that has the source .class files.
    All is good, this is far from intuitive and most likely a oversight with the xcode developers.

  • I don't find the action builder option, in tools menu

    Hi,
    I need to do an action with a button, but can not find the "action builder" option?
    I attached 2 pictures:
    one is taken from Internet ("Tools" menu)
    and the other is of my computer ("Herramientas" menu = "tools" in Spanish language).
    Can someone explain to me because I can not share?
    Thanks

    thanks Radzmar, then I can finish my form! that bad luck.
    I will have to buy the new version... (or finish the form with the trial).

  • Is the delta option in pacman.conf currently operational?

    Hey Folks,
    I noticed that there is a delta option in pacman.conf that is commented by default. What is the status of this function? Is it currently safe to use?
    Cheers,
    Scott

    Well, it is safe to use but the Arch repos do not provide package deltas so there is not benefit yet...

  • I am missing the Preview Builds option...

    My Windows 10 installations are all missing the preview builds option and the build versions are not updating. Do I have a group policy setting in the way?

    That seems actually like good design from Microsoft. I don't want a non-admin user to have any way of upgrading their PC - that should be solely reserved for admins.  And it's not like the option even appears for the user, so they won't know what
    they're missing.
    In the Modern UI, there's no way to elevate (I believe that's the word you're looking for) user's rights - you either have it or you don't.  So all one can do is show what you can access, and hide the rest.   

  • Build options in pl/sql

    Hi,<br><br>
    Do you know, how can I check my build option in pl/sql ? If it's possible ...

    You can call the public (but undocumented) functions wwv_flow.fetch_g_build_options_included and wwv_flow.fetch_g_build_options_excluded to retrieve colon-delimited lists of integers identifying build option IDs which you can map to build option names using the view apex_application_build_options.
    Scott

  • Bug report: Build option utilization (4000:203)

    Apex version 2.2, Oracle 9.2.0.6
    I am getting a
    failed to parse SQL query:
    ORA-00942: table or view does not existon the Build Option Utilization page (4000:203)
    Doing some debugging, the problem seems to be that the wwv_Flow_Application_Tab_Sets table/view no longer exists in the FLOWS_020200 schema.
    Thanks

    One more request regarding this page, while I have your attention
    Bug: Incorrect sorting on Build Option Utilization
    Thanks

  • Bugreport: Build Option Flag "Default on Export" not copied to Translation

    In a multilingual environment the Build-Option Flag "Default on Export" seems to be nulled when publishing the translations.
    The main application has the correct Default on Export-Flag, but the translations don't.
    This leads to the result that after publishing and exporting the build option is excluded in the main application but included in the translations.
    brgds,
    Peter
    Blog: http://www.oracle-and-apex.com
    ApexLib: http://apexlib.oracleapex.info
    BuilderPlugin: http://builderplugin.oracleapex.info
    Work: http://www.click-click.at

    Joel,
    thanks for confirming.
    For now i'm using another one of my "dirty" workarounds: after publishing the translations i do an Update on APEX_040000.WWV_FLOW_PATCHES and set the DEFAULT_ON_EXPORT to the value it should have.
    brgds,
    Peter
    Blog: http://www.oracle-and-apex.com
    ApexLib: http://apexlib.oracleapex.info
    BuilderPlugin: http://builderplugin.oracleapex.info
    Work: http://www.click-click.at

  • Build Option change

    Hi,
    Can I change the build option for the build option I created to all the items in my application at one place or need I to go page by page Item by Item.
    Thanks

    Willi,
    They're pretty easy to use. Let's say you had some functionality that you wanted to deliver in certain builds of your application but not in others, e.g., maybe a customer didn't opt for (pay for) a certain feature. You would create a build option, call it DELUXE, and set its status to INCLUDE. You could develop and test the app with that feature in it but put a build option on each of the pages, regions, buttons, tabsets, etc., dedicated to the feature. The build option is an LOV on most edit pages in the builder. Then when it's time to test the app without the feature, you could set the DELUXE build option to EXCLUDE and test away. Then you'd want to turn it back on and continue development. But while doing that you could set the "On Export" option of the build option to EXCLUDE so that when you export the application for shipment to the client who shouldn't have the feature, the build option will have a status of EXCLUDE in that file.
    When an application has a build option set to EXCLUDE status, the application elements associated with the option are never accessed. It's not like you have to have conditions or authorization schemes constantly being evaluated to see if this or that feature is appropriate to the current site, host, user, environment, whatever. The elements are never retrieved from the metadata when the application is loaded. For example if Page 10 uses an excluded build option, there is no way for a user to go to page 10 -- page 10 doesn't exist.
    Scott

Maybe you are looking for